Customize indicator types, fields, and layouts
Customize indicator types, fields, and layouts in Cortex XSOAR 8.10 On-prem.
Cortex XSOAR provides out-of-the-box indicator types, fields, and layouts. However, you may need to customize indicators to suit your use case, either by editing existing indicator types, fields, or layouts or by creating new ones to help investigate and respond to potential security threats specific to your organization.
Custom indicators can provide more accurate and efficient identification of potential cyber security threats. For example, you can customize indicators to monitor and detect unusual activity within your organization's internal network. This can include creating indicators to flag unauthorized access attempts or unusual data transfers, or identifying insider threats or compromised accounts.
Before customizing an indicator, review the ingested indicator and then customize it as needed. After ingesting incidents and indicators, check the indicator information associated with your incident. From an incident, review the context data (from Side panels). If there is information in the context data that you don't see in the indicator, map it into indicator fields and display it in the layout.
You can customize the following:
Indicator type
Customize an indicator type by setting the relevant fields, display layout, scripts to run, and reputation command for the indicator type. You can create a new indicator type or you can edit an out-of-the-box indicator type. For more information, see Create an indicator type.
Indicator fields
Custom indicator fields add specific details or attributes to indicators, helping to better classify and understand the nature of potential security threats. You can edit an existing indicator field or create a new one. After creating a new indicator field, map the field to the relevant context data. You can add the field to an indicator type and view it in an indicator layout.
For more information, see Create an indicator field.
Indicator layout
Custom indicator layouts enable you to organize and display specific details about potential threats in a way that makes sense for your organization, making it easier to quickly understand and respond to security issues. You can view, customize, import and export indicator layouts as well as add a custom layout to an indicator type.
For more information, see Indicator layout customization.
Create an indicator type
Indicators are categorized by indicator type, which determines the indicator layout and fields that are displayed and which scripts are run on indicators of that type. Cortex XSOAR includes several out-of-the-box indicator types, such as:
IP Address
Domain
URL
File
For more information about file indicators and how to configure the file hash, see File indicators.
When you create a new indicator type, you define its properties, including whether and how to format the indicator data and how the verdict is calculated.
Go to Settings & Info → Settings → Object Setup → Indicators → Types.
Click New.
In the Settings tab, add the required indicator profile, such as name and Regex.
For more information, see Indicator type profile.
In the Custom Fields tab, map the fields, as required.
For more information, see Map custom indicator fields.
See this video for an example of creating a custom indicator type: Indicators and Enrichment.
Example 33. Create a company email indicator type
The following example describes how to create a new indicator type to manage employee emails, for example for resource management or inside threat investigation.
Create a new indicator type for the employee email addresses which contain the “our_company.com” company domain.
Under Settings & Info → Settings → Object Setup → Indicators → Types → New, in the Settings tab, define the following.
Name: Company email
Regex:
.*?@our_company.com(simplified to capture all the email addresses using the our_company.com domain).Reputation command: Not relevant for this example, since we don't want any external enrichment.
Formatting script: If more formatting is needed, you can use a formatting script to edit the saved value.
Reputation script: If needed, you can create a reputation script to affect the DBot score given to the new custom indicator.
In the Custom Fields tab, map custom fields for the new indicator type.
You can map fields returned using an integration such as Active Directory to obtain more data about the actual user to whom the email belongs. You can also collect data using integrations such as Okta (MFA, SSO), SIEM, and email security. Fields such as Username, Full name, and various groups the user is part of as well as other identifiers are returned to context and mapped into the indicator using the custom fields.

use-case-custom-indicator-type-mapping.png Design a custom layout for the new indicator type.
You can use the Dynamic section in the indicator layout to run python scripts and return results from within the layout itself.
Indicator type profile
Each indicator type has its own profile that enables Cortex XSOAR to recognize it across the platform. During the indicator extraction flow, the order of execution is regex, formatting script, reputation command, and reputation script. You can update the following fields when updating an indicator type.
Name
A meaningful name for the indicator type.
Reputation script
The output of the reputation script is a verdict score, which is used as the basis for the indicator verdict. Reputation scripts must be tagged reputation to appear in the list for the indicator type. For more information, see Reputation scripts
The results of reputation scripts do not print to the War Room in the extraction flow.
Formatting script
Modifies how the indicator displays in Cortex XSOAR.
Formatting scripts must be tagged indicator-format to appear in the list for the indicator type. For more information, see Formatting scripts.
Enhancement script
The enhancement script is not part of the indicator extraction flow and is run manually on the indicator type. Examples of enhancement scripts include an enrichment script and a script that runs a search in an SIEM for the indicator.
After indicators are identified, you can go to the Indicator Quick View page, click the Actions button, and run an enhancement script directly on an indicator. For these scripts to be available in the menu, they need the enhancement tag. For more information, see Enhancement scripts.
When you run an enhancement script, it is the equivalent of running the script in the CLI. The script can write to context, return an entry, etc.
Reputation command
Calculates the reputation of indicators of this type. The verdict (reputation) is only associated with the specific indicator value on which it’s run (not the indicator type). The command returns the reputation of the indicator value as an entry with entry context and in some cases also returns context values that can be mapped to the indicator type custom fields.
The results of the reputation command do not print to the War Room in the indicator extraction flow. For more information, see Reputation commands.
Regex
The regular expression (regex) to identify indicators for this indicator type.
Layout
Select the indicator layout to use.
Exclude these integrations for the reputation command
Integrations to exclude when calculating the verdict, evaluating, and enriching indicators of this indicator type. Excluding an integration here prevents it from triggering during automated enrichment processes such as indicator extraction, the enrichIndicators command, or the Enrich button. This setting does not prevent the integration from running if you explicitly execute its command (for example, !url or !ip).
Indicator Expiration Method
The method by which to expire indicators of this type. The expiration method that you select is the default expiration method for indicators of this indicator type.
The expiration can also be assigned when configuring a feed integration instance, which overrides the default method.
Never Expire: indicators of this type never expire.
Time Interval: indicators of this type expire after the specified number of days or hours. For more information, see Configure indicator expiration.
Context path for verdict value (Advanced)
When an indicator is extracted, the entry data from the command is mapped to the incident context. This path defines where in context the data is mapped.
Context value of verdict (Advanced)
The value of this field defines the actual data that is mapped to the context path.
Cache expiration in minutes (Advanced)
The amount of time (in minutes) after which the cache for indicators of this type expire. The default is 4,320 minutes (three days). The cache enables you to limit API requests by only updating indicators after a specific time period has passed. The cache cannot be cleared manually.
File indicators
Cortex XSOAR uses a single File indicator for file objects. As a result, files that appear with their SHA256 hash and all other hashes associated with the file, (MD5, SHA1, and SSDeep) are listed as properties of the same indicator. In addition, when ingesting an incident through an integration, all file information is presented as one object.
When investigating an incident, in the Indicators field (Investigation or Case info tabs), click a File indicator. You can see additional information for that indicator, including:
SHA256
MD5
SHA1
SSDeep
Associated File Names
The
File.Namevalues associated with the indicator hash, based onFilecontext objects created in Cortex XSOAR (automatically populated).Modified
The date and time the File indicator was last modified.
First Seen
The date and time the file was first seen in Cortex XSOAR.
If the file appears in a different incident with a different name and has any of the same hash values, it automatically associates with the original indicator.
Note
A new File indicator only affects new indicators ingested to the Cortex XSOAR platform. Indicators that were already in Cortex XSOAR continue to appear as their respective hash-related indicators.
Formatting scripts
A formatting script has the following main functions:
Validate inputs, for example, to check that the top-level domain (TLD) is valid.
Modify how the indicator appears in Cortex XSOAR such as the War Room.
After indicator values are extracted according to the defined regex, the formatting script can be used to modify how the indicator value appears in the War Room and reports. For example, the IP indicator type uses the UnEscapeIPs formatting script, which removes any defanged characters from an IP address, so 127[.]0[.]0[.]1 is formatted to 127.0.0.1. When you click the IP address in the War Room, you see the formatted IP address. This extracted indicator value is then added to the Threat Intel database.
Out-of-the-box Formatting Scripts
You can create a new script, or you can use an out-of-the-box formatting script on the Scripts page, for example:
UnEscapeIPs:Removes escaping characters from IP addresses. For example, 127[.]0[.]0[.]1 transforms to 127.0.0.1.ExtractDomainAndFQDNFromUrlAndEmail:Extracts domains and FQDNs from URLs and emails, used by the Domain indicator. It removes prefixes such as proofpoint or safelinks, removes escaped URLs, and extracts the FQDN.ExtractEmailV2:Verifies that an email address is valid and only returns the address if it is valid.
Enhancement scripts
Enhancement scripts enable you to gather additional data about the highlighted entry in the War Room. They can enrich indicators, search a SIEM for a specific indicator, write indicator details to context, and return entries to the War Room.
Enhancement scripts are run manually from the Indicator Quick View window or the CLI after indicators are extracted to allow you to collect additional information about an indicator. If you have an incident that contains an IP indicator and you want to run one or more enhancement scripts, go to Indicator Quick View → Actions and under Run Scripts, select the desired script.
Note
Enhancement scripts are different from reputation commands. A reputation command runs every integration that has that command within it, to enrich the indicator. The reputation command ip , for example, runs every IP integration command in your enabled integrations, to collect data from multiple sources. An enhancement script is manually run after the initial extraction and enrichment for the indicator type is complete.
Reputation scripts
Reputation scripts are used to assess and assign reputation scores to indicators. These scripts integrate external threat intelligence or internal data sources to evaluate the reputation of indicators (such as IP addresses, URLs, or file hashes). Reputation scripts enable you to implement custom logic and algorithms for determining the reputation of indicators.
Reputation scripts return the verdict of an indicator as a number. The number overrides the verdict returned from the reputation command and any default settings for the indicator that relates to the verdict, but does not override a manually set verdict.
The system automatically executes the reputation script in the following cases:
During enrichment: When enrichment is triggered (via indicator extraction, the
enrichIndicatorscommand, or the Enrich button), the system runs the reputation command and then the reputation script for the specific indicator type.If a verdict changes not via the enrichment process: When explicitly running a reputation command such as
!file, if the result changes the indicator's verdict the reputation script runs to finalize the decision. This happens even if you use theusingargument to target a specific integration.
The reliability of the score from a reputation script is by default A++ - Reputation script. You can modify the reliability by navigating to Settings & Info → Settings → System → Server Settings → + Add Server Configuration and adding the server configuration enrichment.reputationScript.reliability with the desired reliability score.
Out-of-the-box reputation scripts
You can create a new reputation script, or you can use an out-of-the-box reputation script in the Scripts page, for example:
CertificateReputationcveReputationMaliciousRatioReputationSSDeepReputation
Reputation commands
Reputation commands are built-in or custom commands that use integrations such as Unit 42 to provide predefined functionalities for obtaining an indicator verdict for specific indicator types. These commands simplify the process of fetching reputation data from external services or threat intelligence feeds without requiring extensive scripting. Reputation commands come with preconfigured parameters and settings for commonly used threat intelligence sources.
You can set an indicator type to run reputation commands. The command returns the verdict of the indicator as an entry with entry context and may also return context values that can be mapped to the custom fields of the indicator.
Note
Running a reputation command directly (such as !ip) might not apply the result to an indicator, nor does it use the enrichment cache. To ensure an indicator is enriched, and to take advantage of caching, use the enrichIndicators command or the Enrich button in the UI. This runs the appropriate reputation command/script based on the indicator type settings. Note that extracted indicators are enriched in the same way.
Out-of-the-box reputation commands
You can create a new reputation command, or you can use an out-of-the-box reputation command, for example:
ipfileurlemaildomain
For more details on using out-of-the-box reputation commands or developing new reputation commands, see Generic Commands Reputation.
Reputation command input
The reputation command uses the indicator value as the input argument.
The value of the indicator
For example ip, email, url. Inputs are based on different integrations. Basic inputs are common to all reputation commands. For example, the !ip command has the following basic inputs:
- name: ip arguments: - name: ip default: true description: List of IPs. isArray: true
In this example, the ip script uses ip, as the input, with the is array field checked.

Reputation command output
Outputs return a dbotScore.
Run a Reputation command in the CLI
The following are examples of the syntax for running the ip , domain, and file reputation commands in the CLI.
!ip ip=<value of the indicator>!domain domain=<value of the indicator>!file file=<value of the indicator>
Map custom indicator fields
Indicator mapping enables you to automatically update the value of an indicator field without having to manually change it. For example, the IP indicator automatically maps the Country field. If it was not mapped, each time the IP address changes country the analyst would have to update the country every time that indicator type is ingested.
The value of an indicator field is determined by the value of the key in context data the field is mapped to in Cortex XSOAR.
When you start ingesting indicators, the incoming fields are automatically mapped to the relevant indicator fields. Sometimes you may want to change the default settings or map custom indicator fields to specific context data. Before you map custom indicator fields, you need to create the indicator field and add it to the relevant indicator type layout.
Note
Some integrations have indicator mappers and classifiers, such as AWS. If you want to use an integration mapper or classifier, see Indicator classification and mapping.
To map custom fields to the indicator type, you need to enrich the indicator either by using the !enrichindicators command in the CLI, in a playbook, or by opening an indicator and click Enrich indicator. Enrichment returns an entry, with the EntryContext property as the source of the mapping process. When editing an indicator type, in the Custom Fields tab, type the name of the indicator exactly how it appears (in the Threat Intel page) and click Load.
For the enrichment data to be considered valid, EntryContext must include a DBotScore with the fields: Indicator, Score, Vendor , and Type. If DBotScore has those fields, all the data of EntryContext is used as the source for the mapping, and not only the data under EntryContext.DBotScore.
How to map indicator fields
Go to Settings & Info → Settings → Object Setup → Indicators → Types
Select the indicator type and click Edit.
Click the Custom Fields tab.
The custom fields associated with this indicator type are listed in the table. If you do not see a custom field in the list, verify that you associated the custom field with this indicator type.
(Optional) In the Indicator Sample panel, enter an indicator relevant to the indicator type to load sample data.
Click Choose data path to map the custom field to a data path.
(Optional) Click the curly brackets to map the field to a context path.
(Optional) From the Indicator Sample panel, select a context key to map to the field.
Save the indicator type.
Source reliability and custom indicator field mapping
Custom indicator fields are mapped and populated according to source reliability hierarchy. When there are two different values for a single custom indicator field, the field is mapped and populated with the value provided by the integration instance with the highest source reliability score. For example, if an instance with a higher source reliability has no mapping for a specific custom indicator field, the field will display No entries in the dashboard even though the integration instance with the lower reliability score contains mapping for that field.
To ensure your custom indicator field populates correctly, the integration instance you want to use to map the data must be the primary source used by the system. You can do this by:
Editing the Source reliability setting of the integration instance you want to use for mapping and data so that its reliability score is higher than all other active enrichment integrations.
Disabling other enrichment integration instances with equal or higher source reliability and setting them to Do not use by default. This prevents them from competing for priority, allowing your integration to map and populate custom indicator fields correctly.
Create an indicator field
Indicator fields are used to add specific indicator information to incidents. When you create an indicator field, you can associate the field to a specific indicator type or all indicator types. You can then map the custom field to the relevant indicator type. You can also add an indicator field trigger script.
Note
Cortex XSOAR IOC fields are based on the STIX 2.1 specifications. For more information, see Indicator field structure.
Indicator fields structure
Cortex XSOAR IOC fields are based on the STIX 2.1 specifications. These fields provide a guideline for the fields we recommend you maintain within an IOC. None of the fields are mandatory, except the value field. Maintaining this field structure enables you to share and export IOCs to additional threat intel based systems as well as to other cybersecurity devices.
Like STIX, Cortex XSOAR indicators are divided into two categories, STIX Domain Objects (SDOs) and STIX Cyber-observable Objects (SCOs). The category determines which fields are presented in the layout of that specific IOC. In Cortex XSOAR, all SCOs can be used in a relationship with either SDOs or SCOs.
Each IOC table of fields is separated into three parts:
System fields - Fields created and managed by Cortex XSOAR.
Custom core fields - Custom fields shared by all IOCs of the same time (SDO or SCO). Fields may be empty.
Custom unique fields - Fields unique to a specific type of IOC. If a user associates more fields with the IOC, the additional fields are also treated as unique.
STIX Cyber-observable Objects (SCO)
STIX Domain Objects (SDO)
Indicator field trigger scripts
Indicator field trigger scripts are automated responses that are triggered by a change in an indicator field value. In the script, you define the change in the indicator field value to check for and the actions to take when the change occurs. For example, you can:
Create a script that runs when the Verdict field of an indicator changes. For example, the script will fetch all incidents related to the indicator and take any action that is configured, such as reopening or changing severity.
Create a script that runs when the Expiration Status field changes. For example, you can define a script that will immediately update the relevant allow/block list and not wait for the next iteration, as seen in the following sample script:
Indicator layout customization
Each indicator type has a unique set of data relevant to that specific indicator type, including layouts. It is important to display the most relevant data for users. Each out-of-the-box indicator comes with a layout. You can customize almost every aspect of the layout, including which tabs appear, in which order they appear, who has permission to view the tabs, what information appears, and how it is displayed.
You can see which indicator type uses the indicator layout in the Types tab under Settings & Info → Settings → Object Setup → Indicators. The indicator layout name appears in the Layout column.
You can customize the display information including fields for existing indicators, by modifying the sections and fields for the following views:
Indicator Summary
You can customize almost every aspect of the layout, including which tabs appear, the order they appear, and who has permission. In each field or tab, you can add filters by clicking the eye icon, which enables you to add conditions that show specific fields or tabs relevant to the indicator.
You can add a script in the indicator layout, such as a mapping script, which determines where an IP address originates and displays it on a map.
Quick View
Add, edit, and delete sections, fields, and filters in the Quick View section from an incident.
"New"/"Edit" form
Add, edit, and delete fields and buttons to be displayed when creating or editing an indicator.
Note
By default, when editing a list or text values in an incident/indicator layout, the changes are not saved until you confirm your changes (clicking the checkmark icon in the value field). These icons are designed to give you additional security when updating fields in incidents and indicators.
You can change this default behavior by adding a server configuration. For more information, see Configure inline value fields.
Last updated
Was this helpful?




