Skip to main content

Quarterback AI

IBM QRadar

IBM QRadar is a network security management platform that provides situational awareness and uses a combination of flow-based network knowledge, security event correlation, and asset-based vulnerability assessment.

Supported Actions and Example Prompts 

The following table lists the supported actions and prompt examples for an action:

Action Name

Description

Example Prompt

Get Offense Details 

This action retrieves the details of an offense. For more information, see Action: Get Offense Details.

Get the details of the offense ID 705 using IBM QRadar.

Get Offenses 

This action retrieves the offenses that were triggered in QRadar. For more information, see Action: Get Offenses.

Get all the Offenses from IBM QRadar.

Get Search Query Results 

This action retrieves the search query results. For more information, see Action: Get Search Query Results.

Get the search query results of the ID c02c77a7-9908-434d-9de4-3ec6ad1049b1 using the IBM QRadar app.

Search Indicators in Events 

This action searches for indicators in QRadar events. For more information, see Action: Search Indicators in Events.

Search for the 1.1.1.1 indicator in the IBM QRadar app.

Start New Search Using Ariel QL 

This action starts a new search using the Ariel query language. For more information, see Action: Start New Search using Ariel QL.

Search select * from events in the IBM QRadar app.

Install and Configure the App

Install and configure the required apps to enable Quarterback AI to perform various security-related tasks and provide relevant responses. After installing an app, you must create an instance that will be used to communicate with the app endpoints. An app can have multiple instances, and you can set a default instance from the configured instance list.

Before you Start 

Ensure you have the API token to authenticate with the IBM QRadar app.

Steps 

To install and configure an app, follow these steps:

  1. Go to the application, in the left pane, select Quarterback AI.

  2. In Apps, select IBM QRadar and click Install.

  3. After the app is installed, click Configure and enter the following details to create an instance:

    • Instance Name: Enter a name for the instance.

    • Instance Description: Enter a description for the instance.

    • Expiry: Select an expiry date for the instance.

    • Set as default instance: Select this option to set this instance as the default instance. By default, this instance will be used to perform actions from this app.

    • Base URL: Enter the base URL to access IBM QRadar. For example, https://ibmqradardomain.com.

    • Username: Enter the username to access the QRadar application. Authentication requires either a username and password or an API token.

    • Password: Enter the password to access the QRadar application. Authentication requires either a username and password or an API token.

    • API Token: Enter the API token to access the QRadar application. Authentication requires either a username and password or an API token.

    • Verify: Select this option to verify SSL while making requests. It is recommended to select this option to ensure a secure connection. By default, this option is not selected.

    • Timeout: Enter the timeout value in seconds. This is the number of seconds that requests will wait to establish a connection with IBM QRadar. You can enter values between 15 - 120 seconds. By default, 15 seconds is set.

    • API Version: Enter the IBM QRadar API version. For example, 11.0. The default version supported is 11.0.

  4. Click Done.

The instance is created, and you can view it in Instances. To create another instance, click Add Instance.

Action: Get Offense Details

This action retrieves the details of an offense structure that describes the properties of an offense.

Action Input Parameters

Parameter 

Description 

Field Type 

Required / Optional 

Comments 

Offense ID 

Enter the offense ID. 

Example:

705

Text

Required

Headers 

Enter the headers.

Example:

Range: items 0-1

Key Value

False

Filter 

Enter the filters to get the details of offenses.

Key Value

False

Example Request

[
  {
    "offense_id": "705"
   }
]

Action Response Parameters

Parameter

Field Type

Description

{app_instance}  

JSON Object

This parameter indicates the ID of the app instance configured in Orchestrate from which the response is retrieved.

app_instance.response  

Array of JSON Objects

Includes the response received from the app action. Each JSON object includes the details of one offense.

app_instance.response.id

Integer

The ID of the offense.

app_instance.response.description

String

The description of the offense.

app_instance.response.assigned_to

String

The user the offense is assigned to.

app_instance.response.categories

Array of Strings

Event categories that are associated with the offense.

app_instance.response.category_count

Integer

The number of event categories that are associated with the offense.

app_instance.response.policy_category_count

Integer

The number of policy event categories that are associated with the offense.

app_instance.response.security_category_count

Integer

The number of security event categories that are associated with the offense.

app_instance.response.close_time

Integer

The number of milliseconds since epoch when the offense was closed.

app_instance.response.closing_user

String

The user that closed the offense.

app_instance.response.closing_reason_id

Integer

The ID of the offense closing reason. The reason the offense was closed.

app_instance.response.credibility

Integer

The credibility of the offense.

app_instance.response.relevance

Integer

The relevance of the offense.

app_instance.response.severity

Integer

The severity of the offense.

app_instance.response.magnitude

Integer

The magnitude of the offense.

app_instance.response.destination_networks

Array of Strings

The destination networks that are associated with the offense.

app_instance.response.source_network

String

The source network that is associated with the offense.

app_instance.response.device_count

Integer

The number of devices that are associated with the offense.

app_instance.response.event_count

Integer

The number of events that are associated with the offense.

app_instance.response.flow_count

Integer

The number of flows that are associated with the offense.

app_instance.response.inactive

Boolean

True if the offense is inactive.

app_instance.response.last_updated_time

Integer

The number of milliseconds since epoch when the last event contributing to the offense was seen.

app_instance.response.local_destination_count

Integer

The number of local destinations that are associated with the offense.

app_instance.response.offense_source

String

The source of the offense.

app_instance.response.offense_type

Integer

A number that represents the offense type.

app_instance.response.protected

Boolean

True if the offense is protected.

app_instance.response.follow_up

Boolean

True if the offense is marked for follow up.

app_instance.response.remote_destination_count

Integer

The number of remote destinations that are associated with the offense.

app_instance.response.source_count

Integer

The number of sources that are associated with the offense.

app_instance.response.start_time

Integer

The number of milliseconds since epoch when the offense was started.

app_instance.response.status

String

The status of the offense. One of "OPEN", "HIDDEN", or "CLOSED".

app_instance.response.username_count

Integer

The number of usernames that are associated with the offense.

app_instance.response.source_address_ids

Array of Integers

The source address IDs that are associated with the offense.

app_instance.response.local_destination_address_ids

Array of Integers

The local destination address IDs that are associated with the offense.

app_instance.response.domain_id

Integer

Optional. ID of associated domain if the offense is associated with a single domain.

app_instance.response.last_persisted_time

Integer

The number of milliseconds since epoch when an offense field was last updated.

app_instance.response.first_persisted_time

Integer

The number of milliseconds since epoch at the time when the offense was created.

app_instance.response.rules

Array

An array of rules that contributed to the offense.

app_instance.response.rules.id

Long Integer

The id of the rule.

app_instance.response.rules.type

String

The type of rule. One of "ADE_RULE", "BUILDING_BLOCK_RULE", or "CRE_RULE".

app_instance.response.log_sources

Array

An array of log sources contributed to the offense.

app_instance.response.log_sources.id

Long Integer

The id of the log source.

app_instance.response.log_sources.name

String

The name of the log source.

app_instance.response.log_sources.type_id

Long Integer

The id of the log source type.

app_instance.response.log_sources.type_name

String

The name of the log source type.

Action: Get Offenses

This action retrieves a list of offenses that were triggered in QRadar.

Action Input Parameters

Parameter

Description

Field Type

Required / Optional

Comments

Extra Filter Params

Enter additional parameters to filter the responses. For time-based filtering, use EPOCH Time in milliseconds format.

Key value

Optional

Allowed values: id, description, assigned_to, categories, category_count, close_time, credibility, severity, magnitude, event_count, flow_count, policy_category_count, security_category_count, closing_time, closing_reason_id, relevance, destination_network, source_network, device_count, inactive, last_updated_time, offense_source, offense_type, protected, follow_up, source_count, start_time, status, username_count, domain_id, rules: {id, type}

Headers

Enter headers in the form of key-value pairs to get a paginated response. 

Example: 

Range: items=0-2

Key value

Optional

Example Request

[
   {
     "headers": 
     {
       "Range":"items=0-2"
     },
     “filter”:
     {
         “id”: “10”,
         “flow_count“: “42“,
         “event_count“: “25“,
         “follow_up”: “true”,
         “magnitude”: “42”,
         “protected”: “true”
     }
   }
]

Action Response Parameters

Parameter

Field Type

Description

{app_instance}  

JSON Object

This parameter indicates the ID of the app instance configured in Orchestrate from which the response is retrieved.

app_instance.response  

Array of JSON Objects

Includes the response received from the app action. Each JSON object includes the details of one offense.

app_instance.response.id

Integer

The ID of the offense.

app_instance.response.description

String

The description of the offense.

app_instance.response.assigned_to

String

The user the offense is assigned to.

app_instance.response.categories

Array of Strings

Event categories that are associated with the offense.

app_instance.response.category_count

Integer

The number of event categories that are associated with the offense.

app_instance.response.policy_category_count

Integer

The number of policy event categories that are associated with the offense.

app_instance.response.security_category_count

Integer

The number of security event categories that are associated with the offense.

app_instance.response.close_time

Integer

The number of milliseconds since epoch when the offense was closed.

app_instance.response.closing_user

String

The user that closed the offense.

app_instance.response.closing_reason_id

Integer

The ID of the offense closing reason. The reason the offense was closed.

app_instance.response.credibility

Integer

The credibility of the offense.

app_instance.response.relevance

Integer

The relevance of the offense.

app_instance.response.severity

Integer

The severity of the offense.

app_instance.response.magnitude

Integer

The magnitude of the offense.

app_instance.response.destination_networks

Array of Strings

The destination networks that are associated with the offense.

app_instance.response.source_network

String

The source network that is associated with the offense.

app_instance.response.device_count

Integer

The number of devices that are associated with the offense.

app_instance.response.event_count

Integer

The number of events that are associated with the offense.

app_instance.response.flow_count

Integer

The number of flows that are associated with the offense.

app_instance.response.inactive

Boolean

True if the offense is inactive.

app_instance.response.last_updated_time

Integer

The number of milliseconds since epoch when the last event contributing to the offense was seen.

app_instance.response.local_destination_count

Integer

The number of local destinations that are associated with the offense.

app_instance.response.offense_source

String

The source of the offense.

app_instance.response.offense_type

Integer

A number that represents the offense type.

app_instance.response.protected

Boolean

True if the offense is protected.

app_instance.response.follow_up

Boolean

True if the offense is marked for follow up.

app_instance.response.remote_destination_count

Integer

The number of remote destinations that are associated with the offense.

app_instance.response.source_count

Integer

The number of sources that are associated with the offense.

app_instance.response.start_time

Integer

The number of milliseconds since epoch when the offense was started.

app_instance.response.status

String

The status of the offense. One of "OPEN", "HIDDEN", or "CLOSED".

app_instance.response.username_count

Integer

The number of usernames that are associated with the offense.

app_instance.response.source_address_ids

Array of Integers

The source address IDs that are associated with the offense.

app_instance.response.local_destination_address_ids

Array of Integers

The local destination address IDs that are associated with the offense.

app_instance.response.domain_id

Integer

Optional. ID of associated domain if the offense is associated with a single domain.

app_instance.response.last_persisted_time

Integer

The number of milliseconds since epoch when an offense field was last updated.

app_instance.response.first_persisted_time

Integer

The number of milliseconds since epoch at the time when the offense was created.

app_instance.response.rules

Array

An array of rules that contributed to the offense.

app_instance.response.rules.id

Long Integer

The id of the rule.

app_instance.response.rules.type

String

The type of rule. One of "ADE_RULE", "BUILDING_BLOCK_RULE", or "CRE_RULE".

app_instance.response.log_sources

Array

An array of log sources contributed to the offense.

app_instance.response.log_sources.id

Long Integer

The id of the log source.

app_instance.response.log_sources.name

String

The name of the log source.

app_instance.response.log_sources.type_id

Long Integer

The id of the log source type.

app_instance.response.log_sources.type_name

String

The name of the log source type.

Action: Get Search Query Results

This action retrieves the search query results. 

Action Input Parameters

Parameter 

Description 

Field Type 

Required / Optional 

Comments 

Search ID

Enter the search ID.

Example:

c02c77a7-9908-434d-9de4-3ec6ad1049b1

Text

Required

Example Request

[
   {
     "search_id": "c02c77a7-9908-434d-9de4-3ec6ad1049b1"
   }
]

Action Response Parameters

Parameter 

Type 

Description 

{app_instance} 

JSON Object

This parameter indicates the ID of the app instance configured in Orchestrate from which the response is retrieved.

app_instance.response 

JSON Object

Includes the response received from the app action.

app_instance.response.events 

Array of JSON Objects

The search results for the specified search ID.

Action: Search Indicators in Events

This action searches for indicators in QRadar events.

Action Input Parameters 

Parameter 

Description 

Field Type 

Required/Optional 

Comments 

IP 

Enter one or more IP addresses in a list. 

Example: 

$LIST['1.1.1.1']

List

Optional

Username 

Enter one or more usernames in a list. 

Example:

$LIST['john']

List

Optional

URL 

Enter one or more URLs in a list. 

Example: 

$LIST[‘https://www.sampledomain.com']

List

Optional

MD5 Hash 

Enter one or more MD5 hash values in a list. 

Example: 

$LIST['d41d8cd98f00b204e9800998ecf8427e']

List

Optional

SHA-256 Hash 

Enter one or more SHA256 hash values in a list. 

Example: 

$LIST['e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855']

List

Optional

SHA-1 Hash 

Enter one or more SHA1 hash values in a list. 

Example: 

$LIST['2aae6c35c94fcfb415dbe95f408b9ce91ee846ed']

List

Optional

Search String 

Enter the query string to search for indicators in the event name and description.

Example: 

['exampleevent']

List

Optional

Example Request

[
  {
    "ip": [
      "1.1.1.1"
    ],
    "url": "[https://www.sampledomain.com]",
    "username": "[JohnDoe]"
  }
]

Action Response Parameters

Parameter

Type

Description

{app_instance}

JSON Object

This parameter indicates the ID of the app instance configured in Orchestrate from which the response is retrieved.

app_instance.response

JSON Object

Includes the response received from the app action. Each key within this object represents a specific aspect of the response.

app_instance.response.completed

Boolean

Indicates whether the process is completed or not. Example: true

app_instance.response.compressed_data_file_count

Integer

The number of compressed data files. Example: 5

app_instance.response.compressed_data_total_size

Long

The total size of compressed data files in bytes. Example: 10485760

app_instance.response.cursor_id

String

The ID of the cursor for tracking the query results. Example: "abc123"

app_instance.response.data_file_count

Integer

The number of data files. Example: 3

app_instance.response.data_total_size

Long

The total size of data files in bytes. Example: 20485760

app_instance.response.desired_retention_time_msec

Long

The desired retention time in milliseconds. Example: 86400000

app_instance.response.index_file_count

Integer

The number of index files. Example: 1

app_instance.response.index_total_size

Long

The total size of index files in bytes. Example: 102400

app_instance.response.processed_record_count

Integer

The number of records that have been processed. Example: 5000

app_instance.response.progress

Integer

The progress of the query, represented as a percentage. Example: 75

app_instance.response.progress_details

Array

Detailed information about the progress, typically an empty array if not provided.

app_instance.response.query_execution_time

Long

The time taken to execute the query in milliseconds. Example: 2500

app_instance.response.query_string

String

The SQL query string used to retrieve the data. Example: "SELECT * FROM table_name"

app_instance.response.record_count

Integer

The total number of records returned by the query. Example: 10000

app_instance.response.save_results

Boolean

Indicates whether the results are saved. Example: true

app_instance.response.search_id

String

The unique identifier for the search operation. Example: "search123"

app_instance.response.size_on_disk

Long

The size of the data on disk in bytes. Example: 409600

app_instance.response.status

String

The current status of the query, e.g., 'WAIT', 'RUNNING', 'COMPLETED'. Example: "COMPLETED"

app_instance.response.subsearch_ids

Array

An array of subsearch IDs associated with the main search. Example: ["subsearch1", "subsearch2"]

Action: Start New Search using Ariel QL

This action starts a new search using Ariel QL. This creates a new Ariel search as specified by the Ariel Query Language (AQL) query expression. Searches are executed asynchronously. A reference to the search ID is returned and should be used in subsequent API calls to determine the search status and retrieve the results after completion.

Queries are applied to the range of data in a certain time interval. By default, this time interval is the last 60 seconds.

Action Input Parameters

Parameter 

Description 

Field Type 

Required / Optional 

Comments 

Query Expression

Enter the Ariel QL expression to search. 

Example: 

select * from events

Text

Required

Example Request

[
    {
       "query_expression": "select * from events"
    }
]

Action Response Parameters

Parameter

Field Type

Description

{app_instance}   

JSON Object

This parameter indicates the ID of the app instance configured in Orchestrate from which the response is retrieved.

app_instance.response   

JSON Object

Includes the response received from the app action.

app_instance.response.status 

Integer

Status of the newly created search. One of WAIT, EXECUTE, SORTING, COMPLETED, CANCELED, and ERROR.

app_instance.response.search_id 

String

ID of the newly created search.

app_instance.response.cursor_id

String

The cursor ID.

app_instance.response.error_messages

Array of JSON Objects

List of error messages.

app_instance.response.progress

Integer

Progress of the search.

app_instance.response.progress_details

Array

Details of the search progress.

app_instance.response.query_execution_time

Integer

Execution time of the search query.

app_instance.response.query_string

String

Query string of the search.

app_instance.response.record_count

Integer

Number of records.

app_instance.response.save_results

Boolean

True if the search if saved.

app_instance.response.subsearch_ids

Array

List of sub-searches.

app_instance.response.data_total_size

Integer

Total data size.