Home |
---|
In FortiSOAR, the indicator extraction feature extracts indicators from incident fields and enriches them using playbooks defined for the indicator type. In the indicator extraction, you can configure the extraction logic according to the incident type and the associated field.
We recommend that you optimize the indicator extraction process and define extraction settings for each incident type as needed.
FortiSOAR has automated the indicator extraction process through sets of playbooks; however, you can enhance the indicator extraction process by adding more fields of interest to a playbook so that it picks more fields apart from the default ones specified in the playbook.
E.g., the default playbook may not collect a field of interest, say “targeted employee email address”. This field of interest must be a part of the alert that we intend to target. To add a field to the alert, refer to the section Extending Default Alert Schema.
You can extend the indicator extraction by modifying Indicator_Type_Map
global variable.
To access the Indicator_Type_Map
global variable:
-
Navigate to Automation > Playbooks > 03 - Enrich > Extract Indicator Playbook.
Refer to the playbooks section in this document to check the playbook collection included with this Solution Pack.
-
Navigate to Automation > Playbooks.
-
Select a playbook collection. A list of included playbooks appears on the right.
-
Select a playbook and go to Tools > Global Variables.
-
Select the edit button on
Indicator_Type_Map
to edit it.Following is the default JSON contained in Field Value of the
Indicator_Type_Map
global variable. The key-value pairs are in the format<FieldAPIKey>:<FieldType>
{ "attachmentNames": "File", "commandLine": "Process", "computerName": "Host", "decodedCommandLine": "Process", "destinationIp": "IP Address", "destinationPort": "Port", "domain": "Domain", "dllLoaded": "Process", "emailFrom": "Email Address", "emailCc": "Email Address", "emailTo": "Email Address", "fileHash": "FileHash-MD5", "parentProcessCmdLine": "Process", "parentProcessName": "Process", "recipientEmailAddress": "Email Address", "registryKey": "Registry", "registryKeyValue": "Registry", "reporter": "Email Address", "returnPath": "Email Address", "senderDomain": "Domain", "senderEmailAddress": "Email Address", "services": "Process", "sourceIp": "IP Address", "sourcePort": "Port", "sourceProcess": "Process", "targetAsset": "Host", "targetProcess": "Process", "url": "URL", "userName": "User", "userDetails": "User", "urlFull": "URL", "otherRecipients": "Email Address", "iPAddresses": "IP Address", "fileHashes": "FileHash-MD5", "dLLName": "Process", "filehash": "FileHash-MD5", "processName": "Process", "destinationIP": "IP Address", "sourceIP": "IP Address", "receipientEmailAddress": "Email Address" }
When you add a new field to the alert schema or an incident schema, you specify a Field Type and – based on your field name – get a Field API Key name.
As an example, let us add a field Targeted Employee Email Address, with a field API key targetedEmployeeEmailAddress
and the Field Type as Email Field
.
-
Enter the Field API Key and the Field Type in JSON’s key-value pair format in the box labeled Field Value.
-
Click Submit to save the changes and Save Playbook to publish them.
The key value pair for the JSON is
"targetedEmployeeEmailAddress": "Email Address"
.
After adding the above key-value pair, the JSON you need to enter in the Field Value of Indicator_Type_Map
is:
{
"attachmentNames": "File",
"commandLine": "Process",
"computerName": "Host",
"decodedCommandLine": "Process",
"destinationIp": "IP Address",
"destinationPort": "Port",
"domain": "Domain",
"dllLoaded": "Process",
"emailFrom": "Email Address",
"emailCc": "Email Address",
"emailTo": "Email Address",
"fileHash": "FileHash-MD5",
"parentProcessCmdLine": "Process",
"parentProcessName": "Process",
"recipientEmailAddress": "Email Address",
"registryKey": "Registry",
"registryKeyValue": "Registry",
"reporter": "Email Address",
"returnPath": "Email Address",
"senderDomain": "Domain",
"senderEmailAddress": "Email Address",
"services": "Process",
"sourceIp": "IP Address",
"sourcePort": "Port",
"sourceProcess": "Process",
"targetAsset": "Host",
"targetProcess": "Process",
"url": "URL",
"userName": "User",
"userDetails": "User",
"urlFull": "URL",
"otherRecipients": "Email Address",
"iPAddresses": "IP Address",
"fileHashes": "FileHash-MD5",
"dLLName": "Process",
"filehash": "FileHash-MD5",
"processName": "Process",
"destinationIP": "IP Address",
"sourceIP": "IP Address",
"receipientEmailAddress": "Email Address",
"targetedEmployeeEmailAddress": "Email Address"
}
Now your playbook captures indicators corresponding to the Targeted Employee Email Address field.
You can exclude certain extracted indicators from enrichment by adding them to an exclude list. This is done by adding the indicators to the key store records within the Key Store module.
NOTE | The Key Store module installs with the Platform Utilities solution pack. |
---|
Following keystore records are available for each indicator type:
sfsp-excludelist-cidr-ranges
: Specify a CIDR Range and press Enter or Tab on the keyboard to exclude.sfsp-excludelist-ips
: Specify an IP Address and press Enter or Tab on the keyboard to exclude.sfsp-excludelist-urls
: Specify a URL and press Enter or Tab on the keyboard to exclude.sfsp-excludelist-domains
: Specify a Domain and press Enter or Tab on the keyboard to exclude.sfsp-excludelist-files
: Specify a File Name and press Enter or Tab on the keyboard to exclude.*
as a wildcard is supported. For example,*.pdf
excludes all PDFs from being extracted as indicatorssfsp-excludelist-ports
: Specify a Port and press Enter or Tab on the keyboard to exclude.
NOTE | For managing and modifying key store records, refer to the Indicator Extraction Configuration widget settings. |
---|
Following are the exclude list values out-of-the-box with the Key Store module:
Global Variable | Default Field Value |
---|---|
sfsp-excludelist-ips |
8.8.8.8, 10.1.1.2 |
sfsp-excludelist-urls |
https://www.google.com, https://mail.yahoo.com/login.html, https://www.office.com/ |
sfsp-excludelist-domains |
google.com, yahoo.com, fortinet.net, gmail.com, outlook.com, microsoft.com, fortinet.com, twitter.com, facebook.com, linkedin.com, instagram.com, fortiguard.com, forticloud.com, w3.org |
sfsp-excludelist-files |
blank |
sfsp-excludelist-ports |
blank |
sfsp-excludelist-cidr-ranges |
10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16 |
You can choose to add a comment to alerts associated with the excluded files. By default, no comments are added to alerts associated with these files.
-
Open the Configuration step of the playbook Extract indicators in the collection 03- Enrich.
-
Edit the variable
add_excluded_file_comment
and set it totrue
.This results in execution of the last step
Add Comment for Excluded Files
and a comment is added to the alert when a file is skipped from the indicator creation process.You can change the content of the comment by editing the Content field of the
Add Comment for Excluded Files
step.
You can choose to skip creating file indicators entirely so the indicators of type file are never created.
-
Open the Configuration step of the playbook Extract indicators in the collection 03- Enrich.
-
Edit the variable
create_file_iocs
and set it tofalse
.This results in file indicators not being created at all.
When the Exchange connector playbooks create attachment records in the Attachments module for each file attachment in the email, they remove all special characters in the filename except -
, \
, and .
. So a file indicator is created for files that may contain other characters in their names, even if they are in the exclude list.
Example | A filename Demo-File_Attachment.txt in the exclude list has no effect as the underscore (_ ) is suppressed and a file indicator with the filename Demo-FileAttachment.txt is still created. |
---|
Here are 2 possible ways to work around this situation:
-
Avoid using characters other than
-
,\
, and.
when adding filenames in the exclude list. For example, add the filenameDemo-FileAttachment.txt
instead ofDemo-File_Attachment.txt
, as the underscore (_
) is suppressed by the Exchange ingestion playbooks. -
Edit the
Upload File IOC and Create Attachment
step of the > Exchange > Create Indicators and Attachments playbook in the Sample - Exchange - [version] collection and modify the regex so that it does not suppress_
or similar harmless characters in filenames.Remove the following:
"{{vars.input.params.attachmentMetadata.metadata.filename.split("/")[-1] | regex_replace("[^A-Za-z0-9. /\-]", "") if "/tmp/" in vars.input.params.attachmentMetadata.metadata.filename else vars.input.params.attachmentMetadata.metadata.filename |regex_replace("[^A-Za-z0-9. /\-]", "")}}"
Replace with the following:
"{{vars.input.params.attachmentMetadata.metadata.filename.split("/")[-1] | regex_replace("[^A-Za-z0-9. /\-_]", "") if "/tmp/" in vars.input.params.attachmentMetadata.metadata.filename else vars.input.params.attachmentMetadata.metadata.filename |regex_replace("[^A-Za-z0-9. /\-_]", "")}}"
Installation | Configuration | Usage | Contents |
---|