SOAR QRadar Integration Guide
SOAR QRadar Integration Guide
SOAR QRadar Integration Guide
o A dedicated Resilient account. The account must have the permissions to create incidents, and view and
modify administrator and customization settings. You need to know the account username and password.
If supporting the Resilient for MSSP feature, the Resilient account must have permission to access the
configuration, global dashboard and all child organizations.
NOTE: Should you later change the Resilient account, make sure the account has the same permissions.
• The integration requires a minimum of 500MB memory.
• Configure your network to allow QRadar access to the following ports of Resilient platform:
o 443. Required for QRadar to connect to Resilient data using the REST API. This an "inbound-only" connection
from QRadar to the Resilient platform.
o 65001. Required to communicate with the platform using ActiveMQ OpenWire. The connection is
bidirectional.
Download the IBM QRadar SOAR Plugin .zip file from the IBM Security App Exchange and install it using QRadar’s
Extensions Management. Make sure to clear the cache after installation, as advised by IBM QRadar.
Execution of the background process and all manual actions are paused until the upgrade is confirmed and performed.
To perform migration, enter the access configuration, enable the Configuration checkbox, and click Verify and Configure
then Save at the bottom of the configuration page.
NOTE: During configuration, the browser window might turn white. Please monitor completion of the upgrade by
monitoring the logs. Additionally, if upon the refresh upgrade message is not displayed anymore, then the upgrade was
completed. You must click Save if the screen turned white after clicking the Verify and Configure button.
In the new section you will find a list of all the actions that will be performed as you will be gradually upgraded to the
version of the plugin you have installed from your latest version.
7. Click OK to finish the installation when you see the status of UPGRADE.
From there, click on Add Authorized Service and create a new service called Resilient with Admin Security Profile and
User Role.
This token is copied in the Resilient configuration screen in the next step.
If supporting the Resilient for MSSP feature, this token must have permission to access all the domains used in the
mapping.
Figure 1
o URL prefix: Prefix to use with the entered SOAR URL to access the API.
Example: cases-rest
o STOMP Host: URL with prefix used to access STOMP protocol. Do not start with https://.
Example: cases-stomp.example.com
o STOMP Port: Port to use along with STOMP URL to access SOAR’s STOMP.
Example: 443
• For authentication, two options are available:
o If using a Resilient user account for authentication:
o API User (email address): Email address of the Resilient account used for this integration.
o API User Password: Password for the API user.
o If using a Resilient API key account:
o API Key ID: ID of the key account.
o API Key Secret: Secret of the key account.
Note: If using CP4S, make sure that the API key is created in the “Orchestration and Automation” setting of
CP4S, and not within “Settings/Manage API key”.
Before clicking Save, a Resilient administrator must log in to the Resilient platform and perform a push operation from
the configuration organization. This pushes the configuration information to all the child organizations. Once this
operation completes successfully, you can click the Save button from this window.
For each offense, it searches the Resilient platform for an open incident that was previously escalated using this offense
ID. If none is found, it creates a new incident. In this way, new offenses are automatically and continuously mapped to
new Resilient incidents.
IMPORTANT: Automatic escalations run against new and existing open offenses in QRadar when the application
is first installed. Any open offenses that match your selection criteria should be closed prior to enabling
automatic escalation if you do not want an incident created for them.
An administrator can configure the mapping between properties of the offense and fields for the new incident by
providing a custom template file for each incident escalation rule. This can be used to automatically determine the
incident type, the assigned groups, and any other incident fields. For details of this custom template file format, see
Custom Templates.
If Multiple Organization Support is enabled, automatic escalation rules apply to all QRadar domains. Also, domain
information of an offense is used to look for the mapped Resilient organization. If a mapped organization is not found,
the corresponding offense is not escalated even if an automatic escalation condition is met.
Raising an Incident
To send an offense from QRadar to the Resilient platform, go to the QRadar console and perform the following.
8. Make sure that you enable popups in your browser.
9. In the QRadar console, click the Offenses tab.
10. From the list of offenses, select only one offense. For example:
Figure 2
NOTE: If you are in the Offense Details screen, the Send to SOAR button is in the Details toolbar.
11. In the toolbar, click Send to SOAR. This opens a popup for you to select which mapping template you wish to use to
generate the incident.
Figure 3
NOTE: Should you log into the Resilient platform after creating an incident and see the following message, Error: Unable
to find object with ID xxxxx, verify that you have logged into the same Resilient organization as the one configured in
the Access.
6. In the Add Artifact screen, select the incident to add this IP address.
7. Click Add Artifacts.
To view the complete list of offense fields available for mapping, click show fields at the top of the screen. It includes all
the regular offense fields, plus ones that store ID fields converted to text values. The fields are QRadar siem/offenses API
endpoints, which are accessible and testable through the Interactive API for Developers menu item. The syntax to map
an offense field to an incident field is {{ offense.<fieldname> }}.
The list of valid values for incident selection fields is available from the field’s drop-down lists.
A red asterisk next to a field indicates that it is required, so a mapping must be specified.
NOTE: The template language is based on JINJA2. See the JINJA2 documentation for details.
Filter Name Description Sample Usage
ago Converts epoch milliseconds {{ offense.start_time|ago }}
timestamp value to a string
representation of the time in
milliseconds that has elapsed since
then.
csv Converts a list of values to a comma {{ offense.categories|csv }}
separated string.
res_email Converts the user’s display name to an {{ offense.assigned_to|res_email }}
email address, if the email address
exists in the Resilient org. If not, it
returns the default Resilient email
address specified in app.config.
html HTML-escaped version of value.
Iso8601 Converts epoch milliseconds {{ offense.start_time|iso8601 }}
timestamp value to an ISO8601
datetime value.
js Same as json filter but strips the {{ offense.description|js }}
surrounding quotes from the result.
json JSON-friendly version of the value. {{ offense.description|js }}
local_dest_ip_whitelist Removes all entries that are on the {{
offense.local_destination_addresses|local_de
configured Local Destination IP ignore
st_ip_whitelist }}
list from a list of values.
severity Maps a numeric QRadar severity to a {{ offense.severity|severity }}
Resilient severity:
8-10 = High
4-7 = Medium
1-3 = Low
src_ip_whitelist Removes all entries that are on the {{ offense.source_addresses|src_ip_whitelist
configured Source IP ignore list from a }}
list of values.
uniq Removes duplicate entries from a list
of values.
Mapping Incident Artifacts
In addition to incident fields, mapping templates also allow you to specify which artifacts you want created from an
offense. Artifacts are automatically created from the list of offense source addresses, offense local destination
addresses, and offense source if those boxes are checked.
If you wish to create artifacts from incident fields other than those, you can do so in the Create Additional Artifacts
section.
As new source and local destination IP addresses are added to the offense, new artifacts are added to the Incident as
well. In the event that an offense has a large number of IP addresses, it converts (from IDs to IP addresses) a maximum
of 20 to artifacts during each polling session.
You can test your template with the Test Template button. When clicked, you have the option to Render Test Only, that
will validate the field mappings, or Render and Submit Simulated Incident, that will additionally create a simulated
incident. Note: starting in Resilient v34.2, Simulation Permissions must be enabled in Resilient Administration Settings
for the user role / API key to create a simulated incident.
You manage template files on the Escalation tab in the configuration screen. Clicking Build a New Template or Modify
for an existing template takes you to the mapping screen. Clicking Download allows you to retrieve an existing template
for manual updates, and clicking Delete permanently removes a template from the app.
FROZEN="incident_type_ids","name","start_date","confirmed","discovered_date"
Possible values displayed are: Running, Initialization – happens when the container running the application gets
restarted, Stopped – when background process gets terminated, and Restarting – when system registers poller’s
termination and attempts to start it up again.
Dashboard item
Information displayed in the Poller Status tab can also be accessed as a dashboard item as shown below. In this form the
status is refreshed at a regular interval.
To add Poller status to your dashboard find the dashboard item under the IBM QRadar SOAR Plugin section of the menu
in the list of available dashboard items.
If Multiple Organization Support is enabled, make sure that a new Ariel search query contains the following token in all
proper places: domainid={{qradar_dom_id}} . This is to limit the ariel search with the proper domain. Also Enable
Adding Reference Entries From Resilient is disabled, since the QRadar API does not support adding reference entries to
a specific domain.
Select the type of Ariel Query you wish to run from the popup modal.
Synchronized Notes
The integration polls QRadar for new offense notes to copy over to the Resilient platform. An automatic custom action
in the Resilient platform alerts the integration any time a new note is added to an Incident, which is then copied to the
corresponding offense. This bi-directional sync is enabled with the Synchronize Notes option in the Synchronization
section of the Preferences tab in the Configuration screen.
NOTE: This feature applies only to notes added to incidents, not the notes added to tasks.
When the offense is closed, a note is added to indicate the Resilient user who closed the incident, the Resolution ID, and
the Resolution Summary.
Under the Synchronization section of the Preferences tab in the Configuration Screen, check Close Incident when
Offense closes. This prompts you to map a value for each of the Incident fields that have been set as “required on
close”. The syntax is the same as described in Mapping Incident Fields section.
The software and documentation within IBM Resilient's Development Kit are copyrighted by and contain confidential information of IBM Resilient.
By accessing and/or using this software and documentation, you agree that while you may make derivative works of them, you:
1) will not use the software and documentation or any derivative works for anything but your internal business purposes in conjunction with your
licensed used of IBM Resilient's software, nor will you;
2) provide or disclose the software and documentation or any derivative works to any third party.
THIS SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IBM RESILIENT
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.