Purpose
This guide explains how to connect IBM QRadar SIEM to Logsign as a Response integration, so an analyst (or an action rule triggered by a correlation) can search QRadar event data and close QRadar offenses directly from a Logsign Incident. This is a query/action integration, not a log collection poller: it does not pull QRadar logs or offenses into Logsign on a schedule. It only runs when something calls one of its methods from Settings > Integrations > Responses.
This is a different integration from two other things also named "QRadar" in Logsign, and it is important not to mix them up:
- "IBM - QRadar" (Data Collection / poller). Logsign already has a separate, existing integration under Settings > Data Collection that pulls QRadar offense/event data into Logsign on a schedule using an Authorized Service token. That is a log ingestion path. This guide's integration is the opposite direction: it lets an analyst working an Incident in Logsign reach out and query or act on a live QRadar deployment on demand. If you only want QRadar's own logs and offenses inside Logsign's event store, use the existing "IBM - QRadar" Data Collection documentation instead; this guide does not cover that.
- IBM QRadar EDR (formerly ReaQta / ReaQta-Hive). This is a completely different IBM product: an endpoint detection and response tool with its own "Hive Server" console, its own API ("Hive API" under
/rqt-api), and its own separate Logsign integration and documentation ("IBM QRadar EDR Integration via API"). It has no relationship to QRadar SIEM's API, authentication, or the methods described in this guide. If you are integrating endpoint alerts from QRadar EDR, use that documentation instead.
This guide covers only the Response/Action integration: search_offense, close_offense, get_search_status, and get_search_result, configured under Settings > Integrations > Responses > +Device against your own QRadar Console's REST API.
Prerequisites
You need network reachability from your Logsign instance to your QRadar Console (or Event Collector/App Host configured to accept API calls) on its HTTPS management port, typically 443. You also need a QRadar Authorized Service token generated from a scoped, non-Admin user role; Step 1 below covers how to create one instead of reusing an existing Admin-level token.
QRadar SIEM is deployed on-premises or as QRadar on Cloud, and in both cases the Console address is specific to your own deployment; there is no shared multi-tenant API host. The Host field in Step 2 always points at your organization's own QRadar Console.
The exact minimum Logsign version that ships this integration was not confirmed against release notes for this guide. Release note history shows an "IBM - QRadar integration added" entry for Responses in a 6.3.x build and further updates in later 6.4.x releases, so any reasonably current Logsign 6.3+/6.4+ build should include it; confirm with Logsign support if you do not see IBM QRadar listed under Settings > Integrations > Responses.
Step 1: Create a least-privilege Authorized Service token in QRadar
Do not point this integration at an existing Admin-role Authorized Service token that is also used for other purposes. Create a dedicated token instead, scoped to only the capabilities this integration actually calls.
- Sign in to the QRadar Console as a user with Admin access, and open Admin > Authorized Services.
- Before creating the token, create a dedicated custom user role first (Admin > User Roles > add a new role, for example
logsign-response-svc) rather than reusing the built-in Admin role. QRadar's Authorized Service token is issued against a user role and a security profile, and whatever permissions that role has become the token's permissions. In the custom role, enable only the two capability groups this integration needs:
- Offenses, specifically the ability to view and close offenses (QRadar's role editor exposes this as offense management permissions such as assigning/closing offenses and managing closing reasons). This is required for
close_offense. - Log Activity (the Event Viewer capability group), which is required to run Ariel searches through the API. This is required for
search_offense,get_search_status, andget_search_result, since all three operate against the/ariel/searchesendpoints that back the Log Activity tab.
Do not enable Admin, System Administrator, or other capability groups unrelated to these two; a broader role than this is not needed for the four methods this integration exposes.
- Offenses, specifically the ability to view and close offenses (QRadar's role editor exposes this as offense management permissions such as assigning/closing offenses and managing closing reasons). This is required for
- Assign a Security Profile to the role that covers the networks, log sources, and domains whose offenses and events you want this integration to be able to search and close. A role with no security profile access will authenticate successfully but return empty results or fail to find offenses that exist.
- Back in Admin > Authorized Services, click Add Authorized Service. Give it an identifiable name (for example, "Logsign Response Integration"), select the custom user role and security profile created above, and optionally set an expiration date for the token.
- Click Create Service, then copy the generated Authentication Token immediately. QRadar shows this value only once; if you navigate away without copying it, you must regenerate a new token.
The exact wording of role capability checkboxes (for example, whether offense closing appears under a single "Offenses" group or is broken into finer sub-permissions) can vary slightly between QRadar versions; this guide's permission names are based on IBM's published user role documentation and were not confirmed against a live QRadar console for this guide. If the exact checkboxes described above are not present in your version, look for the closest equivalent under Offenses and Log Activity rather than falling back to Admin.
Step 2: Configure the integration in Logsign
In Logsign, go to Settings > Integrations > Responses, search for IBM QRadar, click Configure, then +Device.
| Field | Required | Value / Notes |
|---|---|---|
| Url | Yes | The base URL of your QRadar Console, including the scheme, for example https://qradar.yourcompany.com. The integration appends /api and the endpoint path itself, so do not include /api or a trailing slash here. There is no fixed list of regional or shared hosts for this integration, since it always points at your own QRadar deployment. |
| Auth Token | Yes | The Authentication Token copied in Step 1. Stored encrypted by Logsign, sent on every request as the SEC HTTP header, which is QRadar's required header name for Authorized Service token authentication. |
| Insecure Skip Verify | Yes | Boolean, defaults to true (TLS certificate validation is skipped). This default is convenient for Consoles running a self-signed certificate, which is common for on-premises QRadar installs, but it also means a man-in-the-middle between Logsign and the Console would go undetected. If your Console has a certificate issued by a CA that Logsign already trusts, set this to false. |
Format warning: the Url field is a plain base address, not a URL with the API path baked in. Correct: https://qradar.yourcompany.com. Incorrect: https://qradar.yourcompany.com/api or a value ending in a trailing slash; the integration builds request paths by concatenating this value directly with /api/..., so an extra path segment or slash produces a broken URL.
This is the complete configuration form; the current manifest for this integration exposes only the fields above. (The integration's underlying configuration structure also defines an optional outbound proxy URL, but it is not present in the configuration schema/form, so it does not appear as a field here; this was not independently verified by testing the live form.)
Save the device. There is a registered test method in the integration (_test, exposed as a connection test in the manifest), but based on source-code review its current implementation does not actually call QRadar; it returns success without making a request. Do not rely on a green "test" result as proof the token or Url are correct. Verify instead by running search_offense against a known offense ID after saving.
Available Methods
Every method below is invoked from within an Incident's Responses panel by selecting the configured IBM QRadar device and the method name.
search_offense
Starts an asynchronous Ariel search for all events tied to a given offense ID, within a specified lookback window. This is typically the first call an analyst makes when pivoting from a triggered offense into its underlying event data. The query issued is an AQL expression of the form select * from events where INOFFENSE(offense_id) last since_hours hours, run against the POST /api/ariel/searches endpoint. Because the search is asynchronous, this call returns a search_id; use get_search_status and then get_search_result to retrieve the actual events.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offense_id | string | Yes | The QRadar offense ID to search events for. Passed directly into the AQL query string; supply only the numeric ID. |
| since_hours | string | No | How many hours back from now to search. Also passed directly into the AQL query string. Based on source-code review, this value is not validated before being concatenated into the query, so an empty or non-numeric value will produce an invalid AQL expression and QRadar will reject the search; not confirmed against a live console for this guide. |
get_search_status
Polls the status of a search created by search_offense (progress, record count, and completion status), calling GET /api/ariel/searches/{search_id}.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| search_id | string | Yes | The search_id returned by search_offense. |
| wait_for_seconds | integer | No, default 60 | Sent as QRadar's Prefer: wait=<n> header, which tells QRadar to hold the response open until the search completes or the timeout elapses, instead of returning the current status immediately. Set to 0 for an immediate, non-blocking status check. |
get_search_result
Retrieves the results of a completed search and summarizes them into deduplicated lists (usernames, source/destination IPs, source/destination ports, event counts, magnitudes) rather than the raw per-event array, calling GET /api/ariel/searches/{search_id}/results. Call this only after get_search_status reports the search as completed; QRadar's results endpoint can return partial or empty data for a search that is still running.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| search_id | string | Yes | The search_id returned by search_offense. |
close_offense
Closes an open QRadar offense with a specified closing reason, calling POST /api/siem/offenses/{offense_id} with status=CLOSED.
| Parameter | Type | Required | Notes |
|---|---|---|---|
| offense_id | string | Yes | The QRadar offense ID to close. |
| closing_reason_id | integer | Yes, default 1 | The numeric ID of an existing QRadar offense closing reason (managed in QRadar under Admin > Offense Closing Reasons, or the equivalent Offenses tab settings). The default of 1 typically corresponds to QRadar's built-in "Non-Issue" reason on a fresh install, but closing reason IDs are not guaranteed stable across QRadar deployments since administrators can add custom reasons; confirm the correct ID in your own QRadar instance before relying on the default. This was not confirmed against a live console for this guide. |
Notes and Limits
- This is a query/action integration, not a log collector. It does not ingest QRadar offense or event data into Logsign's event store on its own; each method call returns data only for the specific request an analyst or action rule makes at that moment. For continuous ingestion of QRadar data into Logsign, use the separate "IBM - QRadar" Data Collection integration.
- The integration does not expose any reference set (IP/domain blocklist) methods. Based on a full review of the current source code (
ibmqradar.go,ibmqradar_impl.go), the only four registered methods aresearch_offense,close_offense,get_search_status, andget_search_result; there is noadd_reference_set_element,remove_reference_set_element, or equivalent, even though QRadar's own REST API supports reference set operations. If your use case depends on pushing an IP or domain into a QRadar reference set for blocklisting from Logsign, that capability does not currently exist in this integration and would need to be requested as a product enhancement. - Authentication is a single static Authorized Service token sent as the
SECheader on every request. There is no OAuth flow and no token refresh; if the token expires (if you set an expiration date in Step 1) or is revoked in QRadar, every call fails until you generate a new token in QRadar and update the device configuration in Logsign. - The registered connection test (
_test) does not call QRadar as of this source review; a successful test result is not proof of a working token or Url. Verify with a realsearch_offensecall instead. - QRadar's REST API is versioned via a
Versionrequest header (for exampleVersion: 21.0). Based on source-code review, this integration does not set aVersionheader on its requests, so QRadar falls back to its own configured default API version. This is generally fine for the stable endpoints used here (/siem/offenses,/ariel/searches), but it means behavior could shift if IBM changes the default version's response shape in a future QRadar upgrade. Not confirmed against a live console for this guide. - IBM's published QRadar API documentation does not describe a numeric rate limit or a 429 response for these endpoints; Ariel searches are, however, resource-intensive on the QRadar side, so avoid triggering large numbers of concurrent
search_offensecalls against a single Console. - The TLS verification setting (Insecure Skip Verify) defaults to true, which skips certificate validation. This is a sensible default for a self-signed on-premises Console but is worth revisiting if your Console has a certificate from a CA your organization already trusts.
Troubleshooting
| Symptom / Code | Likely Cause | What to Check |
|---|---|---|
| 401 Unauthorized, "No SEC header present" or similar | The Auth Token field is empty, was truncated when copied, or the token was revoked/expired in QRadar. | Re-enter the full Authentication Token in the Logsign device configuration. In QRadar, confirm under Admin > Authorized Services that the token still exists and has not expired. |
| 403 Forbidden | The token authenticated successfully but its user role lacks the specific capability for the method called, most commonly Log Activity access missing for search_offense/get_search_status/get_search_result, or offense-close permission missing for close_offense. | In QRadar, open Admin > User Roles, find the role attached to this token's Authorized Service, and confirm it has the Offenses (close/manage) and Log Activity (Event Viewer) capabilities described in Step 1. |
| 422 Unprocessable Entity or a QRadar error body with a non-2xx http_response code | A malformed AQL query (commonly an empty or non-numeric since_hours on search_offense), an offense_id that does not exist, or a closing_reason_id that is not a valid ID in this QRadar deployment. | Confirm the offense_id exists and is numeric. For close_offense, verify the closing_reason_id against Admin > Offense Closing Reasons in QRadar rather than assuming the default of 1 is valid in your environment. |
| Empty results from get_search_result | The search has not finished yet, or the security profile attached to the token's role does not cover the domains/networks/log sources the offense's events belong to. | Call get_search_status first and confirm status is completed before calling get_search_result. If status is completed but results are still empty, check the token's security profile coverage in QRadar. |
| Connection refused / timeout | Wrong Url, or a firewall between Logsign and the QRadar Console is blocking the management port (typically 443). | Confirm the Url field is the correct Console address and that the Logsign server can reach it over HTTPS on the expected port. |
| TLS / certificate error | Insecure Skip Verify was set to false against a Console using a self-signed or internally issued certificate that Logsign does not trust. | Either set Insecure Skip Verify back to true, or import the Console's CA certificate into Logsign's trust store. |
| Broken URL in logs (extra /api or double slash) | The Url field was entered with a trailing slash or with /api already included. | Confirm Url is a bare base address with no trailing slash and no /api suffix, for example https://qradar.yourcompany.com. |
| get_search_status appears to hang | wait_for_seconds was set to a large value; this is expected. QRadar holds the HTTP response open (via the Prefer: wait header) until the search finishes or the timeout elapses. | Lower wait_for_seconds for a faster, non-blocking status poll, or allow more time for large searches to complete. |