illuminate Deprecated
Deprecated. Use Analyst1 integration instead.
Data Enrichment & Threat Intelligence · Analyst1
Details
| ID | illuminate |
|---|---|
| Provider | Renaissance Learning |
| Category | Data Enrichment & Threat Intelligence |
| From Version | 5.0.0 |
| Docker Image | demisto/python3:3.9.5.21272 |
README
Overview
Deprecated. Use Analyst1 integration instead.
This integration was integrated and tested with version 1.8.7 of illuminate
illuminate Playbook
illuminate Basic Indicator Enrichment: This is a simple playbook that can apply on top of an incident created from an indicator that will determine the indicator type and then properly enrich it with the associated illuminate integration command.
Use Cases
- When you wish to have more information on a given indicator
- When you use both Cortex XSOAR and illuminate and wish to have easy linking between the two
Configure illuminate on Cortex XSOAR
- Navigate to Settings > Integrations > Servers & Services.
- Search for illuminate.
- Click Add instance to create and configure a new integration instance.
- Name: a textual name for the integration instance.
- illuminate API Credentials (username/password)
- Domain of illuminate server to use
- Trust any certificate (not secure)
- Use system proxy settings
- Click Test to validate the URLs, token, and connection.
Commands
You can execute these commands from the Cortex XSOAR CLI, as part of an automation, or in a playbook.
After you successfully execute a command, a DBot message appears in the War Room with the command details.
- domain
- ip
- file
- illuminate-enrich-string
- illuminate-enrich-ipv6
- illuminate-enrich-mutex
- illuminate-enrich-http-request
- url
1. domain
Queries the illuminate REST API and enriches the given domain with illuminate Indicator data
Base Command
domain
Input
| Argument Name | Description | Required |
|---|---|---|
| domain | The domain for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Domain.Name | string | The domain name, for example, “google.com”. |
| Illuminate.Domain.ID | number | The indicator’s unique ID in illuminate. |
| Illuminate.Domain.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Domain.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Domain.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Domain.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Domain.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Domain.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Domain.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Domain.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Domain.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.Domain.Malwares.Name | string | Each matched malware name in illuminate. |
| Illuminate.Domain.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Domain.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Domain.IlluminateLink | string | The URL of the matched indicator in illuminate. |
| Illuminate.Domain.IpResolution | string | The resolved IP address for this domain. |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The actual score. |
| DBotScore.Type | String | The type of indicator. |
| DBotScore.Vendor | String | The AlienVault OTX vendor. |
Command Example
!domain domain=abc.com
Context Example
{
"Illuminate.Domain": {
"LastHit": null,
"ReportedDates": [
"2018-06-12"
],
"Indicator": "abc.com",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [],
"EvidenceCount": 1,
"Actors": {},
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/2043650",
"ID": 2043650
},
"Domain": {
"Malicious": {
"Vendor": "illuminate",
"Description": "illuminate has determined that this indicator is malicious via internal analysis."
},
"Name": "abc.com"
},
"DBotScore": {
"Vendor": "illuminate",
"Indicator": "abc.com",
"Score": 3,
"Type": "domain"
}
}
Human Readable Output
illuminate Domain Information
| Active | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|
| true | 1 | 2043650 | https://partner.analystplatform.com/indicators/2043650 | abc.com | 2018-06-12 |
2. email
Queries the illuminate REST API and enriches the given email with illuminate indicator data.
Base Command
email
Input
| Argument Name | Description | Required |
|---|---|---|
| The email for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Email.From | string | The sender of the email. |
| Illuminate.Email.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.Email.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Email.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Email.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Email.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Email.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Email.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Email.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Email.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Email.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.Email.Malwares.Name | string | Each matched malware name in illuminate. |
| Illuminate.Email.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Email.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Email.IlluminateLink | string | The URL of the matched indicator in illuminate. |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The actual score. |
| DBotScore.Type | String | The indicator type. |
| DBotScore.Vendor | String | The AlienVault OTX vendor. |
Command Example
!email email=001toxic@gmail.com
Context Example
{
"DBotScore": {
"Vendor": "illuminate",
"Indicator": "001toxic@gmail.com",
"Score": 3,
"Type": "email"
},
"Illuminate.Email": {
"LastHit": null,
"ReportedDates": [
"2018-02-05"
],
"Indicator": "001toxic@gmail.com",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [],
"EvidenceCount": 1,
"Actors": [
{
"id": -2,
"name": "Unknown"
}
],
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/1637756",
"ID": 1637756
},
"Email": {
"Malicious": {
"Vendor": "illuminate",
"Description": "illuminate has determined that this indicator is malicious via internal analysis."
},
"From": "001toxic@gmail.com"
}
}
Human Readable Output
illuminate Email Information
| Active | Actors | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|
| true | id = -2, name = Unknown | 1 | 1637756 | https://partner.analystplatform.com/indicators/1637756 | 001toxic@gmail.com | 2018-02-05 |
3. ip
Queries the illuminate REST API and enriches the given IP address with illuminate indicator data.
Base Command
ip
Input
| Argument Name | Description | Required |
|---|---|---|
| ip | The IP address for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| IP.Address | string | The IP address. |
| Illuminate.Ip.ID | number | The indicator’s unique ID in illuminate. |
| Illuminate.Ip.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Ip.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Ip.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Ip.FirstHit | date | The first date this this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ip.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ip.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ip.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Ip.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Ip.Malwares.ID | number | Each matched malware unique identifier in illuminate |
| Illuminate.Ip.Malwares.Name | string | Each matched malware name in illuminate |
| Illuminate.Ip.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Ip.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Ip.IlluminateLink | string | The URL of the matched indicator in illuminate. |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The actual score. |
| DBotScore.Type | String | The type of indicator. |
| DBotScore.Vendor | String | The AlienVault OTX vendor. |
Command Example
!ip ip=0.154.17.105
Context Example
{
"IP": {
"Malicious": {
"Vendor": "illuminate",
"Description": "illuminate has determined that this indicator is malicious via internal analysis."
},
"Address": "0.154.17.105"
},
"Illuminate.Ip": {
"LastHit": null,
"ReportedDates": [
"2014-01-04"
],
"Indicator": "0.154.17.105",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [],
"EvidenceCount": 1,
"Actors": {},
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/51469",
"ID": 51469
},
"DBotScore": {
"Vendor": "illuminate",
"Indicator": "0.154.17.105",
"Score": 3,
"Type": "ip"
}
}
Human Readable Output
illuminate Ip Information
| Active | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|
| true | 1 | 51469 | https://partner.analystplatform.com/indicators/51469 | 0.154.17.105 | 2014-01-04 |
4. file
Queries the illuminate REST API and enriches the given file with illuminate indicator data.
Base Command
file
Input
| Argument Name | Description | Required |
|---|---|---|
| file | The file for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| File.MD5 | String | The MD5 hash of the file. |
| File.SHA1 | String | The SHA1 hash of the file. |
| File.SHA256 | String | The SHA256 hash of the file. |
| Illuminate.File.ID | number | The indicator’s unique ID in illuminate. |
| Illuminate.File.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.File.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.File.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.File.FirstHit | date | The first date this this indicator was seen in a source scanned by illuminate. |
| Illuminate.File.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.File.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.File.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.File.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.File.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.File.Malwares.Name | string | Each matched malware name in illuminate |
| Illuminate.File.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.File.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.File.IlluminateLink | string | The URL of the matched indicator in illuminate. |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Number | The actual score. |
| DBotScore.Type | String | The type of indicator. |
| DBotScore.Vendor | String | The AlienVault OTX vendor. |
Command Example
!file file=00000000000000000000000000000000
Context Example
{
"Illuminate.File": {
"LastHit": null,
"ReportedDates": [
"2019-06-25",
"2020-01-09"
],
"Indicator": "00000000000000000000000000000000",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [
"2018-08-02",
"2019-09-01"
],
"EvidenceCount": 2,
"Actors": [
{
"id": -4,
"name": "Multiple Actors Extracted"
},
{
"id": 150,
"name": "FIN8"
}
],
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/1527155",
"ID": 1527155
},
"DBotScore": {
"Vendor": "illuminate",
"Indicator": "00000000000000000000000000000000",
"Score": 3,
"Type": "file"
},
"File": {
"Malicious": {
"Vendor": "illuminate",
"Description": "illuminate has determined that this indicator is malicious via internal analysis."
},
"MD5": "00000000000000000000000000000000"
}
}
Human Readable Output
illuminate File Information
| Active | ActivityDates | Actors | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|---|
| true | 2018-08-02, 2019-09-01 |
id = -4, name = Multiple Actors Extracted, id = 150, name = FIN8 |
2 | 1527155 | https://partner.analystplatform.com/indicators/1527155 | 00000000000000000000000000000000 | 2019-06-25, 2020-01-09 |
5. illuminate-enrich-string
Queries the illuminate REST API and enriches the given string with illuminate indicator data
Base Command
illuminate-enrich-string
Input
| Argument Name | Description | Required |
|---|---|---|
| string | The string for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Illuminate.String.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.String.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.String.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.String.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.String.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.String.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.String.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.String.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.String.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.String.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.String.Malwares.Name | string | Each matched malware name in illuminate |
| Illuminate.String.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.String.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.String.IlluminateLink | string | The URL of the matched indicator in illuminate. |
Command Example
!illuminate-enrich-string string=??
Context Example
{
"Illuminate.String": {
"LastHit": null,
"ReportedDates": [
"2014-12-12",
"2014-12-14",
"2014-12-19",
"2014-12-20"
],
"Indicator": "??",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [
"2014-12-11",
"2014-12-14",
"2014-12-19",
"2014-12-20"
],
"EvidenceCount": 15,
"Actors": [
{
"id": -2,
"name": "Unknown"
}
],
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/90548",
"ID": 90548
}
}
Human Readable Output
illuminate String Information
| Active | ActivityDates | Actors | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|---|
| true | 2014-12-11, 2014-12-14, 2014-12-19, 2014-12-20 |
id = -2, name = Unknown | 15 | 90548 | https://partner.analystplatform.com/indicators/90548 | ?? | 2014-12-12, 2014-12-14, 2014-12-19, 2014-12-20 |
6. illuminate-enrich-ipv6
Queries the illuminate REST API and enriches the given IP address with illuminate indicator data.
Base Command
illuminate-enrich-ipv6
Input
| Argument Name | Description | Required |
|---|---|---|
| ip | The IP address for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Illuminate.Ipv6.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.Ipv6.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Ipv6.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Ipv6.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Ipv6.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ipv6.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ipv6.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Ipv6.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Ipv6.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Ipv6.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.Ipv6.Malwares.Name | string | Each matched malware name in illuminate |
| Illuminate.Ipv6.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Ipv6.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Ipv6.IlluminateLink | string | The URL of the matched indicator in illuminate. |
Command Example
!illuminate-enrich-ipv6 ip=16::
Context Example
{
"Illuminate.Ipv6": {
"LastHit": null,
"ReportedDates": [
"2015-05-13"
],
"Indicator": "16::",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [
"2018-09-08"
],
"EvidenceCount": 1,
"Actors": {},
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/2623838",
"ID": 2623838
}
}
Human Readable Output
illuminate Ipv6 Information
| Active | ActivityDates | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|
| true | 2018-09-08 | 1 | 2623838 | https://partner.analystplatform.com/indicators/2623838 | 16:: | 2015-05-13 |
7. illuminate-enrich-mutex
Queries the illuminate REST API and enriches the given mutex with illuminate indicator data.
Base Command
illuminate-enrich-mutex
Input
| Argument Name | Description | Required |
|---|---|---|
| mutex | The mutex to query information for | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Illuminate.Mutex.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.Mutex.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Mutex.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Mutex.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Mutex.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Mutex.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Mutex.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Mutex.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Mutex.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Mutex.Malwares.ID | number | Each matched malware unique identifier in illuminate. |
| Illuminate.Mutex.Malwares.Name | string | Each matched malware name in illuminate |
| Illuminate.Mutex.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Mutex.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Mutex.IlluminateLink | string | The URL of the matched indicator in illuminate. |
Command Example
!illuminate-enrich-mutex mutex=??
Context Example
{
"Illuminate.Mutex": {
"LastHit": null,
"ReportedDates": [
"2015-01-07",
"2015-01-14",
"2015-02-23",
"2017-08-05",
"2017-08-06"
],
"Indicator": "??",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [
"2015-01-06",
"2015-01-07",
"2015-01-14",
"2015-02-23",
"2017-08-05",
"2017-08-06"
],
"EvidenceCount": 6,
"Actors": [
{
"id": -2,
"name": "Unknown"
}
],
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/95267",
"ID": 95267
}
}
Human Readable Output
illuminate Mutex Information
| Active | ActivityDates | Actors | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|---|
| true | 2015-01-06, 2015-01-07, 2015-01-14, 2015-02-23, 2017-08-05, 2017-08-06 |
id = -2, name = Unknown | 6 | 95267 | https://partner.analystplatform.com/indicators/95267 | ?? | 2015-01-07, 2015-01-14, 2015-02-23, 2017-08-05, 2017-08-06 |
8. illuminate-enrich-http-request
Queries the illuminate REST API and enriches the given HTTP request with illuminate indicator data.
Base Command
illuminate-enrich-http-request
Input
| Argument Name | Description | Required |
|---|---|---|
| http-request | The HTTP request for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| Illuminate.Httprequest.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.Httprequest.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Httprequest.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Httprequest.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Httprequest.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Httprequest.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Httprequest.HitCount | number | The total number of times this indicator was seen in a source scanned by illuminate. |
| Illuminate.Httprequest.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Httprequest.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Httprequest.Malwares.ID | number | Each matched malware unique identifier in illuminate |
| Illuminate.Httprequest.Malwares.Name | string | Each matched malware name in illuminate. |
| Illuminate.Httprequest.Actors.ID | number | Each matched actor unique identifier in illuminate. |
| Illuminate.Httprequest.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Httprequest.IlluminateLink | string | The URL of the matched indicator in illuminate. |
Command Example
!illuminate-enrich-http-request http-request=/~
Context Example
{
"Illuminate.Httprequest": {
"LastHit": null,
"ReportedDates": [
"2020-01-06"
],
"Indicator": "/~",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [],
"EvidenceCount": 1,
"Actors": {},
"ConfidenceLevel": "high",
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/2885382",
"ID": 2885382
}
}
Human Readable Output
illuminate Httprequest Information
| Active | ConfidenceLevel | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|
| true | high | 1 | 2885382 | https://partner.analystplatform.com/indicators/2885382 | /~ | 2020-01-06 |
9. url
Queries the illuminate REST API and enriches the given URL with illuminate indicator data.
Base Command
url
Input
| Argument Name | Description | Required |
|---|---|---|
| url | The URL for which to return information. | Required |
Context Output
| Path | Type | Description |
|---|---|---|
| URL.Data | String | The URL. |
| Illuminate.Url.ID | number | The unique identifier of the given Indicator in illuminate |
| Illuminate.Url.EvidenceCount | number | The number of evidence reports of the given indicator in illuminate. |
| Illuminate.Url.Active | boolean | Whether the given indicator is noted as active in illuminate. |
| Illuminate.Url.ConfidenceLevel | string | The confidence level of the data in illuminate. |
| Illuminate.Url.FirstHit | date | The first date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Url.LastHit | date | The most recent date this indicator was seen in a source scanned by illuminate. |
| Illuminate.Url.HitCount | number | The total number of this indicator was seen in a source scanned by illuminate. |
| Illuminate.Url.ReportedDates | date | The dates this indicator was reported on in illuminate. |
| Illuminate.Url.ActivityDates | date | The dates this indicator had reported activity in illuminate. |
| Illuminate.Url.Malwares.ID | number | Each matched malware unique identifier in illuminate |
| Illuminate.Url.Malwares.Name | string | Each matched malware name in illuminate. |
| Illuminate.Url.Actors.ID | number | Each matched actor unique identifier in illuminate |
| Illuminate.Url.Actors.Name | string | Each matched actor name in illuminate. |
| Illuminate.Url.IlluminateLink | string | The URL of the matched indicator in illuminate. |
| DBotScore.Indicator | String | The indicator that was tested. |
| DBotScore.Score | Numbe | The actual score. |
| DBotScore.Type | String | The type of indicator. |
| DBotScore.Vendor | String | The AlienVault OTX vendor. |
Command Example
!url url=104.218.120.128/check.aspx
Context Example
{
"URL": {
"Malicious": {
"Vendor": "illuminate",
"Description": "illuminate has determined that this indicator is malicious via internal analysis."
},
"Data": "104.218.120.128/check.aspx"
},
"Illuminate.Url": {
"LastHit": null,
"ReportedDates": [
"2019-07-04"
],
"Indicator": "104.218.120.128/check.aspx",
"Malwares": {},
"FirstHit": null,
"ActivityDates": [
"2018-12-08"
],
"EvidenceCount": 1,
"Actors": [
{
"id": 178,
"name": "APT33"
}
],
"ConfidenceLevel": null,
"Active": true,
"HitCount": null,
"IlluminateLink": "https://partner.analystplatform.com/indicators/2699554",
"ID": 2699554
},
"DBotScore": {
"Vendor": "illuminate",
"Indicator": "104.218.120.128/check.aspx",
"Score": 3,
"Type": "url"
}
}
Human Readable Output
illuminate Url Information
| Active | ActivityDates | Actors | EvidenceCount | ID | IlluminateLink | Indicator | ReportedDates |
|---|---|---|---|---|---|---|---|
| true | 2018-12-08 | id = 178, name = APT33 | 1 | 2699554 | https://partner.analystplatform.com/indicators/2699554 | 104.218.120.128/check.aspx | 2019-07-04 |
Configuration parameters
credentials— illuminate API Credentials (username/password) (required)server— Domain of illuminate server to use (format - server.that_you_use.com - No http/https) (required)insecure— Trust any certificate (not secure)proxy— Use system proxy settings
Commands (9)
-
domainQueries the illuminate REST API and enriches the given domain with illuminate Indicator data
-
emailQueries the illuminate REST API and enriches the given email with illuminate indicator data.
-
fileQueries the illuminate REST API and enriches the given file with illuminate indicator data.
-
illuminate-enrich-http-requestQueries the illuminate REST API and enriches the given HTTP request with illuminate indicator data.
-
illuminate-enrich-ipv6Queries the illuminate REST API and enriches the given IP address with illuminate indicator data.
-
illuminate-enrich-mutexQueries the illuminate REST API and enriches the given mutex with illuminate indicator data.
-
illuminate-enrich-stringQueries the illuminate REST API and enriches the given string with illuminate indicator data
-
ipQueries the illuminate REST API and enriches the given IP address with illuminate indicator data.
-
urlQueries the illuminate REST API and enriches the given URL with illuminate indicator data.
import demistomock as demisto from CommonServerPython import * from CommonServerUserPython import * ''' IMPORTS ''' import requests import traceback from typing import Dict, Optional, List, Any, Callable, Collection # Disable insecure warnings requests.packages.urllib3.disable_warnings() ''' CONSTANTS ''' # Integration information INTEGRATION_NAME = 'illuminate' INTEGRATION_CONTEXT_BRAND = 'Illuminate' MALICIOUS_DATA: Dict[str, str] = { 'Vendor': 'illuminate', 'Description': 'illuminate has determined that this indicator is malicious via internal analysis.' } ''' HELPER FUNCTIONS ''' class IdNamePair(object): def __init__(self, unique_id: int, name: str): self.id = unique_id self.name = name def __str__(self): return f'id = {self.id}, name = {self.name}' class EnrichmentOutput(object): def __init__(self, illuminate_context_data: dict, raw_data: dict, indicator_type: str) -> None: self.illuminate_context_data = illuminate_context_data self.raw_data = raw_data self.indicator_type = indicator_type self.reputation_context: dict = {} def get_human_readable_output(self) -> str: human_readable_data = self.illuminate_context_data.copy() human_readable_data['Actors'] = [IdNamePair(d['id'], d['name']) for d in human_readable_data['Actors']] human_readable_data['Malwares'] = [IdNamePair(d['id'], d['name']) for d in human_readable_data['Malwares']] return tableToMarkdown( t=human_readable_data, name=f'{INTEGRATION_NAME} {self.indicator_type.capitalize()} Information', removeNull=True ) def build_illuminate_context(self) -> dict: return { f'{INTEGRATION_CONTEXT_BRAND}.{self.indicator_type.capitalize()}(val.ID && val.ID === obj.ID)': self.illuminate_context_data } def generate_reputation_context( self, primary_key: str, indicator_value: str, indicator_type: str, reputation_key: str, extra_context: Optional[dict] = None ): if self.has_context_data(): reputation_context: Dict[str, Any] = {primary_key: indicator_value} if extra_context is not None: reputation_context.update(extra_context) malicious = Client.is_indicator_malicious(self.raw_data) if malicious: reputation_context['Malicious'] = MALICIOUS_DATA self.add_reputation_context( f'{reputation_key}(val.{primary_key} && val.{primary_key} === obj.{primary_key})', reputation_context ) self.add_reputation_context('DBotScore', { 'Indicator': indicator_value, 'Score': 3 if malicious else 1, 'Type': indicator_type, 'Vendor': INTEGRATION_NAME }) def build_all_context(self) -> dict: all_context = {} all_context.update(self.build_illuminate_context()) if len(self.reputation_context) > 0: all_context.update(self.reputation_context) return all_context def return_outputs(self): # We need to use the underlying demisto.results function call rather than using return_outputs because # we need to add the IgnoreAutoExtract key to ensure that our illuminate links are not marked as indicators entry = { "Type": entryTypes["note"], "HumanReadable": self.get_human_readable_output(), "ContentsFormat": formats["json"], "Contents": self.raw_data, "EntryContext": self.build_all_context(), "IgnoreAutoExtract": True } demisto.results(entry) def add_illuminate_context(self, key: str, data: Any): self.illuminate_context_data[key] = data def add_reputation_context(self, key: str, context: dict): self.reputation_context[key] = context def has_context_data(self): return len(self.illuminate_context_data) > 0 class Client(BaseClient): def __init__(self, server: str, username: str, password: str, insecure: bool, proxy: bool): # NB: 404 is a valid response since that just means no entries, and we want the UI to respect that and show "No Entries" super().__init__( base_url=f'https://{server}/api/1_0/', verify=not insecure, proxy=proxy, auth=(username, password), ok_codes=(200, 404) ) def indicator_search(self, indicator_type: str, indicator: str) -> dict: params = {'type': indicator_type, 'value': indicator} return self._http_request(method='GET', url_suffix='indicator/match', params=params) def perform_test_request(self): data: dict = self._http_request(method='GET', url_suffix='') if data['links'] is None: raise DemistoException('Invalid URL or Credentials. JSON structure not recognized') def enrich_indicator(self, indicator: str, indicator_type: str) -> EnrichmentOutput: raw_data: dict = self.indicator_search(indicator_type, indicator) if raw_data is None: return EnrichmentOutput({}, {}, indicator_type) context_data = self.get_context_from_response(raw_data) return EnrichmentOutput(context_data, raw_data, indicator_type) @staticmethod def get_data_key(data: dict, key: str) -> Optional[Any]: return None if key not in data else data[key] @staticmethod def get_nested_data_key(data: dict, key: str, nested_key: str) -> Optional[Any]: top_level = Client.get_data_key(data, key) return None if top_level is None or nested_key not in top_level else top_level[nested_key] @staticmethod def get_data_key_as_date(data: dict, key: str, fmt: str) -> Optional[str]: value = Client.get_data_key(data, key) return None if value is None else datetime.fromtimestamp(value / 1000.0).strftime(fmt) @staticmethod def get_data_key_as_list(data: dict, key: str) -> List[Any]: data_list = Client.get_data_key(data, key) return [] if data_list is None or not isinstance(data[key], (list,)) else data_list @staticmethod def get_data_key_as_list_of_values(data: dict, key: str, value_key: str) -> List[Any]: data_list = Client.get_data_key_as_list(data, key) return [value_data[value_key] for value_data in data_list] @staticmethod def get_data_key_as_list_of_dicts(data: dict, key: str, dict_creator: Callable) -> Collection[Any]: data_list = Client.get_data_key_as_list(data, key) return {} if len(data_list) == 0 else [dict_creator(value_data) for value_data in data_list] @staticmethod def is_indicator_malicious(data: dict) -> bool: benign = Client.get_nested_data_key(data, 'benign', 'value') return False if benign is None or benign is True else True @staticmethod def get_context_from_response(data: dict) -> dict: result_dict = { 'ID': Client.get_data_key(data, 'id'), 'Indicator': Client.get_nested_data_key(data, 'value', 'name'), 'EvidenceCount': Client.get_data_key(data, 'reportCount'), 'Active': Client.get_data_key(data, 'active'), 'HitCount': Client.get_data_key(data, 'hitCount'), 'ConfidenceLevel': Client.get_nested_data_key(data, 'confidenceLevel', 'value'), 'FirstHit': Client.get_data_key_as_date(data, 'firstHit', '%Y-%m-%d'), 'LastHit': Client.get_data_key_as_date(data, 'lastHit', '%Y-%m-%d'), 'ReportedDates': Client.get_data_key_as_list_of_values(data, 'reportedDates', 'date'), 'ActivityDates': Client.get_data_key_as_list_of_values(data, 'activityDates', 'date'), 'Malwares': Client.get_data_key_as_list_of_dicts(data, 'malwares', lambda d: {'id': d['id'], 'name': d['name']}), 'Actors': Client.get_data_key_as_list_of_dicts(data, 'actors', lambda d: {'id': d['id'], 'name': d['name']}), 'Benign': Client.get_nested_data_key(data, 'benign', 'value'), 'IlluminateLink': None } links_list = Client.get_data_key_as_list(data, 'links') result_dict['IlluminateLink'] = next(( link['href'].replace("api/1_0/indicator/", "indicators/") for link in links_list if 'rel' in link and link['rel'] == 'self' and 'href' in link ), None) return result_dict def build_client(demisto_params: dict) -> Client: server: str = str(demisto_params.get('server')) proxy: bool = demisto_params.get('proxy', False) insecure: bool = demisto_params.get('insecure', False) credentials: dict = demisto_params.get('credentials', {}) username: str = str(credentials.get('identifier')) password: str = str(credentials.get('password')) return Client(server, username, password, insecure, proxy) ''' COMMAND EXECUTION ''' def perform_test_module(client: Client): client.perform_test_request() def domain_command(client: Client, args: dict) -> List[EnrichmentOutput]: domains: List[str] = argToList(args.get('domain')) enrichment_data_list: List[EnrichmentOutput] = [] for domain in domains: enrichment_data: EnrichmentOutput = client.enrich_indicator(domain, 'domain') if enrichment_data.has_context_data(): extra_context = {} ip_resolution = Client.get_nested_data_key(enrichment_data.raw_data, 'ipResolution', 'name') if ip_resolution is not None: enrichment_data.add_illuminate_context('IpResolution', ip_resolution) extra_context['DNS'] = ip_resolution enrichment_data.generate_reputation_context('Name', domain, 'domain', 'Domain', extra_context) enrichment_data_list.append(enrichment_data) return enrichment_data_list def email_command(client: Client, args: dict) -> List[EnrichmentOutput]: emails: List[str] = argToList(args.get('email')) enrichment_data_list: List[EnrichmentOutput] = [] for email in emails: enrichment_data: EnrichmentOutput = client.enrich_indicator(email, 'email') if enrichment_data.has_context_data(): enrichment_data.generate_reputation_context('From', email, 'email', 'Email') enrichment_data_list.append(enrichment_data) return enrichment_data_list def ip_command(client: Client, args: dict) -> List[EnrichmentOutput]: ips: List[str] = argToList(args.get('ip')) enrichment_data_list: List[EnrichmentOutput] = [] for ip in ips: enrichment_data: EnrichmentOutput = client.enrich_indicator(ip, 'ip') if enrichment_data.has_context_data(): enrichment_data.generate_reputation_context('Address', ip, 'ip', 'IP') enrichment_data_list.append(enrichment_data) return enrichment_data_list def file_command(client: Client, args: dict) -> List[EnrichmentOutput]: files: List[str] = argToList(args.get('file')) enrichment_data_list: List[EnrichmentOutput] = [] for file in files: enrichment_data: EnrichmentOutput = client.enrich_indicator(file, 'file') if enrichment_data.has_context_data(): hash_type = get_hash_type(file) if hash_type != 'Unknown': enrichment_data.generate_reputation_context(hash_type.upper(), file, 'file', 'File') enrichment_data_list.append(enrichment_data) return enrichment_data_list def illuminate_enrich_string_command(client: Client, args: dict) -> List[EnrichmentOutput]: strings: List[str] = argToList(args.get('string')) enrichment_data_list: List[EnrichmentOutput] = [] for string in strings: enrichment_data_list.append(client.enrich_indicator(string, 'string')) return enrichment_data_list def illuminate_enrich_ipv6_command(client: Client, args: dict) -> List[EnrichmentOutput]: ips: List[str] = argToList(args.get('ip')) enrichment_data_list: List[EnrichmentOutput] = [] for ip in ips: enrichment_data_list.append(client.enrich_indicator(ip, 'ipv6')) return enrichment_data_list def illuminate_enrich_mutex_command(client: Client, args: dict) -> List[EnrichmentOutput]: mutexes: List[str] = argToList(args.get('mutex')) enrichment_data_list: List[EnrichmentOutput] = [] for mutex in mutexes: enrichment_data_list.append(client.enrich_indicator(mutex, 'mutex')) return enrichment_data_list def illuminate_enrich_http_request_command(client: Client, args: dict) -> List[EnrichmentOutput]: http_requests: List[str] = argToList(args.get('http-request')) enrichment_data_list: List[EnrichmentOutput] = [] for http_request in http_requests: enrichment_data_list.append(client.enrich_indicator(http_request, 'httpRequest')) return enrichment_data_list def url_command(client: Client, args: dict) -> List[EnrichmentOutput]: urls: List[str] = argToList(args.get('url')) enrichment_data_list: List[EnrichmentOutput] = [] for url in urls: enrichment_data: EnrichmentOutput = client.enrich_indicator(url, 'url') if enrichment_data.has_context_data(): enrichment_data.generate_reputation_context('Data', url, 'url', 'URL') enrichment_data_list.append(enrichment_data) return enrichment_data_list ''' EXECUTION ''' def main(): commands = { 'domain': domain_command, 'email': email_command, 'file': file_command, 'ip': ip_command, 'url': url_command, 'illuminate-enrich-string': illuminate_enrich_string_command, 'illuminate-enrich-ipv6': illuminate_enrich_ipv6_command, 'illuminate-enrich-mutex': illuminate_enrich_mutex_command, 'illuminate-enrich-http-request': illuminate_enrich_http_request_command } command: str = demisto.command() LOG(f'command is {command}') try: client = build_client(demisto.params()) if command == 'test-module': perform_test_module(client) demisto.results('ok') elif command in commands: enrichment_outputs: List[EnrichmentOutput] = commands[command](client, demisto.args()) [e.return_outputs() for e in enrichment_outputs] except Exception as e: err_msg = f'Error in {INTEGRATION_NAME} Integration [{e}]\nTrace:\n{traceback.format_exc()}' return_error(err_msg, error=e) if __name__ in ['__main__', 'builtin', 'builtins']: main()