Publisher: ThreatQuotient
Connector Version: 2.3.2
Product Vendor: ThreatQuotient
Product Name: ThreatQ
Product Version Supported (regex): "4.*"
Minimum Product Version: 5.3.0
Integrates a variety of ThreatQ services into Splunk SOAR
The Splunk SOAR App for ThreatQ allows a user to execute a variety of actions on ThreatQ from a
Phantom playbook.
With ThreatQ as a single source of truth for Threat Intelligence, you will be able to accurately
triage a sighting, and ultimately, make a quick decision.
This will allow your analysts to focus on what’s important to their organization, instead of getting
inundated with sightings of non-malicious indicators.
The goal being, to increase your response time and improve your ROI.
This section will describe how you can install the app into your Phantom instance
WARNING : This release (v2.x) has fundamentally changed how the App operates!
If you are upgrading from v1.x, please refer to the
App Instructions -> Upgrading from 1.x to 2.x
section!
- Download the Splunk SOAR App (tar.gz) for ThreatQ via any of these methods:
- Marketplace
- Download Center
- Splunkbase
- Login to your Phantom instance
- In your navigation dropdown, select
Apps
- Click on the
Install App
button at the top right of your Apps page - Select the Splunk SOAR App for ThreatQ tar.gz file
Once the app is installed, you will see a ThreatQ logo on your Apps page. If you do not, you can
search for ThreatQ
in the search bar
- Next to the ThreatQ logo, click on the
Configure New Asset
button - Fill out the following information in the
Asset Info
tab, and save:- Asset name : threatq
- Asset description : Integration with the ThreatQ Threat Intelligence Platform
- Product vendor : ThreatQuotient
- Product name : ThreatQ
- Fill out the following information in the
Asset Settings
tab, and save:- Server IP/Hostname : Enter the hostname or IP address for your ThreatQ instance
- Client ID : Enter your API Credentials found under your
My Account
page in ThreatQ - Username : Enter your username to authenticate with ThreatQ
- Password : Enter your password to authenticate with ThreatQ
- Trust SSL Certificate? : Check this box if you want to trust the ThreatQ certificate (default: checked)
- Click the
Test Connectivity
button after saving to test your connection information- If this test fails, verify your Phantom instance has access to your ThreatQ instance, as well as make sure your credentials are correct
- The ThreatQ App should now be configurable within a playbook!
The following actions come out of the box with the Splunk SOAR App for ThreatQ
Name: query_indicators
Description: Query a list of indicators against ThreatQ
Parameters:
- indicator_list: A list of indicator values to query
Name: create_indicators
Description: Create indicators in ThreatQ
Parameters:
- indicator_list: A list of indicators to add
Formatting:
See Details > Formatting an Indicator List
Name: create_task
Description: Create a task in ThreatQ
Parameters:
- task_name: The name of the task to create
- assigned_to: The email or username of a user within ThreatQ to assign the task to
- task_status: The task status in ThreatQ
- task_priority: The task priority in ThreatQ
- task_description: The description of the task
- indicator_list: A list of indicators to relate to the task
Formatting:
See Details > Formatting an Indicator List
Name: create_event
Description: Creates an event in ThreatQ, based on the container metadata in Phantom
Parameters:
- event_type: The type of event to create in ThreatQ
- indicator_list: A list of indicators to relate to the event
Formatting:
See Details > Formatting an Indicator List
Name: upload_spearphish
Description: Creates a spearphish event in ThreatQ, based on a spearphish email in the Phantom vault
Parameters:
- vault_id: The ID of an email file in your Phantom vault
- indicator_status: The indicator status for any parsed indicators from the spearphish
Name: upload_file
Description: Creates a file (attachment) in ThreatQ
Parameters:
- vault_id: The ID of the file in your Phantom vault
- parse_for_indicators: Whether or not to parse the file for indicators
- default_indicator_status: The indicator status for any parsed indicators from the file
Name: start_investigation
Description: Start an investigation within ThreatQ
Parameters:
- investigation_name: The name of the investigation to create in ThreatQ
- investigation_priority: The priority of the investigation in ThreatQ
- investigation_description: The description of the investigation in ThreatQ
- investigation_visibility: Whether the investigation is public or private
- indicator_list: A list of indicators to relate to the investigation
Formatting:
See Details > Formatting an Indicator List
Name: create_adversaries
Description: Create adversaries in ThreatQ
Parameters:
- adversary_list: A list of adversary names to create in ThreatQ
Name: create_custom_objects
Description: Creates custom objects in ThreatQ
Parameters:
- object_list: A list of custom object values in ThreatQ
- object_type: The type of object that the object list specifies
Name: add_attribute
Description: Adds an attribute to a list of custom objects
Parameters:
- object_list: A list of custom object values in ThreatQ
- object_type: The type of object that the object list specifies
- attribute_name: The name for the attribute to add
- attribute_value: The value for the attribute to add
Name: set_indicator_status
Description: Sets the status of an indicator in ThreatQ
Parameters:
- indicator_list: A list of indicators
- indicator_status: The status to give to the list of indicators
Formatting:
See Details > Formatting an Indicator List
You can pass a list of indicators to action in few different ways. Each being parsed, slightly differently, but with similar outcomes
- If only values are specified, the integration will attempt to “detect” the indicator types and
upload the known values (i.e.
1.1.1.1, badurl.com
) - You can specify indicator types by separating the type and value by a
:
or=
character (i.e.IP Address: 1.1.1.1, FQDN: badurl.com
) - You can even pass the function a list of dictionaries, specifying the indicator type and value, like so:
[
{
"type": "IP Address",
"value": "1.1.1.1"
},
{
"type": "FQDN",
"value": "badurl.com"
}
]
While many of the actions in v2.x of the Phantom App look very similar to the v1.x App, they operate
very differently. Chances are, you will need to recreate all of the ThreatQ App actions, and
reconfigure them. Please review all of the actions under the App Actions
section to see
how to configure them.
N/A
Version 2.3.0
Improves parsing & support for other input formats for `object_list` parameters:
- The `object_list` parameter can now take ThreatQ IDs (line-separated, comma-separated, JSON List, or JSON Dict)
- The `object_list` parameter now supports Event object types better
- Improves IOC parser
Fixes issue adding attributes to events
Adds `add tag` action
Adds `add comment` action
Version 2.2.0
- Adds create signature action
Version 2.1.x
- Fixed unwanted FQDN indicators creation when a parsed URL does not have a URL path
- Fixed miscellaneous JSON and documentation issues
Version 2.0.3
- Rewrite of the app to improve stability, error handling, and input support
- Remove all “reputation” actions, and replaced them with an all-in-one query action
- Adds actions to interact with custom objects
- All response views now share the same template, including tables for attributes and related objects (including custom objects)
- Response data is now better formatted to be used within phantom playbooks to make better decisions
- Querying an indicator will query all information about that indicator, including attributes, score, status, and relationships. That information is then made accessible within the conditions block in order to make a decision
Version 1.0.0
- Initial release
The app uses HTTP/ HTTPS protocol for communicating with the ThreatQuotient server. Below are the default ports used by the Splunk SOAR Connector.
SERVICE NAME | TRANSPORT PROTOCOL | PORT |
---|---|---|
http | tcp | 80 |
https | tcp | 443 |
The below configuration variables are required for this Connector to operate. These variables are specified when configuring a ThreatQ asset in SOAR.
VARIABLE | REQUIRED | TYPE | DESCRIPTION |
---|---|---|---|
tq_server | required | string | Server IP/Hostname |
clientid | required | string | Client ID |
username | required | string | Username |
password | required | password | Password |
trust_ssl | optional | boolean | Trust SSL Certificate? |
test connectivity - Validate the asset configuration for connectivity
query indicators - Query ThreatQ for indicator context
create indicators - Create indicators within ThreatQ
create adversaries - Create adversaries within ThreatQ
create custom objects - Create custom objects within ThreatQ
add attribute - Adds an attribute to objects in ThreatQ
add comment - Adds a comment to objects in ThreatQ
add tag - Adds a tag to objects in ThreatQ
set indicator status - Set a status for a given list of indicators
create task - Create a task within ThreatQ
create event - Create an event within ThreatQ
start investigation - Start an investigation within ThreatQ
upload spearphish - Upload a spearphish attempt to ThreatQ
upload file - Upload (and parse) a file to ThreatQ
get related objects - Query ThreatQ for an object's relationships
create signature - Create a signature within ThreatQ
Validate the asset configuration for connectivity
Type: test
Read only: True
No parameters are required for this action
No Output
Query ThreatQ for indicator context
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
indicator_list | required | A comma-separated or line-separated list of indicator values | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
exact | optional | Do we want to find an exact match or an approximate match? | boolean | |
with_all_relationships | optional | Should we fetch all relationships with this action? | boolean |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.exact | boolean | |
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.parameter.with_all_relationships | boolean | |
action_result.data.*.adversaries.*.name | string | |
action_result.data.*.attack_pattern.*.value | string | |
action_result.data.*.attributes | string | |
action_result.data.*.campaign.*.value | string | |
action_result.data.*.course_of_action.*.value | string | |
action_result.data.*.events.*.title | string | |
action_result.data.*.exploit_targets.*.value | string | |
action_result.data.*.identity.*.value | string | |
action_result.data.*.incident.*.value | string | |
action_result.data.*.indicators.*.value | string | |
action_result.data.*.intrusion_set.*.value | string | |
action_result.data.*.malware.*.value | string | |
action_result.data.*.report.*.value | string | |
action_result.data.*.score | numeric | |
action_result.data.*.signatures.*.name | string | |
action_result.data.*.signatures.*.value | string | |
action_result.data.*.sources.*.name | string | |
action_result.data.*.status.name | string | |
action_result.data.*.tool.*.value | string | |
action_result.data.*.ttp.*.value | string | |
action_result.data.*.type.name | string | |
action_result.data.*.value | string | |
action_result.data.*.vulnerability.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create indicators within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
indicator_list | required | A comma-separated or line-separated list of indicators and indicator type (optional) name/value pairs (e.g.: IP Address: 1.1.1.1) | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
indicator_status | optional | The default status for the indicators uploaded to ThreatQ | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.parameter.indicator_status | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create adversaries within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
adversary_list | required | A comma-separated or line-separated list of adversary names | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.adversary_list | string | |
action_result.data.*.name | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create custom objects within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
object_list | required | A comma-separated or line-separated list of custom object values | string | |
object_type | required | The object type of the specified list values | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.object_list | string | |
action_result.parameter.object_type | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Adds an attribute to objects in ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
object_list | required | A comma-separated or line-separated list of object values | string | |
object_type | required | The object type of the specified list values | string | |
attribute_name | required | The name of the attribute in ThreatQ | string | |
attribute_value | required | The value fo the attribute in ThreatQ | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.attribute_name | string | |
action_result.parameter.attribute_value | string | |
action_result.parameter.object_list | string | |
action_result.parameter.object_type | string | |
action_result.data.*.name | string | |
action_result.data.*.title | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Adds a comment to objects in ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
object_list | required | A comma-separated or line-separated list of object values | string | |
object_type | required | The object type of the specified list values | string | |
comment | required | The comment to add to the objects | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.comment | string | |
action_result.parameter.object_list | string | |
action_result.parameter.object_type | string | |
action_result.data.*.name | string | |
action_result.data.*.title | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Adds a tag to objects in ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
object_list | required | A comma-separated or line-separated list of object values | string | |
object_type | required | The object type of the specified list values | string | |
tag | required | The tag to add to the objects | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.tag | string | |
action_result.parameter.object_list | string | |
action_result.parameter.object_type | string | |
action_result.data.*.name | string | |
action_result.data.*.title | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Set a status for a given list of indicators
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
indicator_list | required | A comma-separated or line-separated list of indicators and indicator type (optional) name/value pairs (e.g.: IP Address: 1.1.1.1) | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
indicator_status | required | The status to give to the list of indicators | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.parameter.indicator_status | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create a task within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
task_prefix | optional | Prefix for the task name | string | |
task_name | required | Task name | string | |
assigned_to | optional | ThreatQ user to assign the task to | string | |
task_status | required | Task status in ThreatQ | string | |
task_priority | required | Task priority in ThreatQ | string | |
task_description | optional | Task description in ThreatQ | string | |
indicator_list | optional | List of indicator values (use format node) | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.assigned_to | string | |
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.parameter.task_description | string | |
action_result.parameter.task_name | string | |
action_result.parameter.task_prefix | string | |
action_result.parameter.task_priority | string | |
action_result.parameter.task_status | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create an event within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
event_type | required | The event type in ThreatQ | string | |
indicator_list | optional | List of comma-separated or line-separated indicator | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.event_type | string | |
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.data.*.title | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Start an investigation within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
investigation_name | required | The investigation name | string | |
investigation_priority | required | The investigation's priority | string | |
investigation_visibility | required | The investigation's sharing status | string | |
investigation_description | optional | The investigation's description | string | |
indicator_list | required | List of comma-separated or line-separated indicator | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.indicator_list | string | domain ip email url hash sha256 string file name file path host name md5 process name sha1 user name |
action_result.parameter.investigation_description | string | |
action_result.parameter.investigation_name | string | |
action_result.parameter.investigation_priority | string | |
action_result.parameter.investigation_visibility | string | |
action_result.data.*.name | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Upload a spearphish attempt to ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
vault_id | required | The Vault ID for the spearphish email file | string | vault id |
indicator_status | optional | Default indicator status. If none selected, Review is used | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.indicator_status | string | |
action_result.parameter.vault_id | string | vault id |
action_result.data.*.title | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Upload (and parse) a file to ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
vault_id | required | The Vault ID for the file to upload | string | vault id |
parse_for_indicators | required | Whether or not to parse the file for indicators | boolean | |
indicator_status | optional | Default indicator status. If none selected, Review is used | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.indicator_status | string | |
action_result.parameter.parse_for_indicators | boolean | |
action_result.parameter.vault_id | string | vault id |
action_result.data.*.name | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Query ThreatQ for an object's relationships
Type: investigate
Read only: True
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
object_list | required | A comma-separated or line-separated list of custom object values | string | |
object_type | required | The object type of the specified list values | string | |
related_object_type | required | The object type of the relationships you want to find | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.object_list | string | |
action_result.parameter.object_type | string | |
action_result.parameter.related_object_type | string | |
action_result.data.*.attributes | string | |
action_result.data.*.name | string | |
action_result.data.*.score | numeric | |
action_result.data.*.sources.*.name | string | |
action_result.data.*.status.name | string | |
action_result.data.*.title | string | |
action_result.data.*.type.name | string | |
action_result.data.*.value | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary.total | numeric | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |
Create a signature within ThreatQ
Type: generic
Read only: False
PARAMETER | REQUIRED | DESCRIPTION | TYPE | CONTAINS |
---|---|---|---|---|
signature_name | required | The name for the signature uploaded to ThreatQ | string | |
signature_value | required | The value for the signature uploaded to ThreatQ | string | |
signature_type | required | The type for the signature uploaded to ThreatQ | string | |
signature_status | required | The status for the signature uploaded to ThreatQ | string |
DATA PATH | TYPE | CONTAINS |
---|---|---|
action_result.parameter.signature_name | string | |
action_result.parameter.signature_value | string | |
action_result.parameter.signature_type | string | |
action_result.parameter.signature_status | string | |
action_result.data | string | |
action_result.status | string | |
action_result.message | string | |
action_result.summary | string | |
summary.total_objects | numeric | |
summary.total_objects_successful | numeric |