Prerequisites
Configuring SIEM destinations requires themanage_exercises capability, which is included in the built-in admin role.
Adding a SIEM Destination
1
Open the destination form
Navigate to Admin > Resources > SIEMs and click Add Destination.
2
Enter a SIEM name
Type a display name for this destination. This name is used in the UI, API calls, and noise job target lists — it is case-sensitive.
3
Choose a driver
Select the driver that matches your SIEM product. Each driver has its own required fields:
splunk_hec — Splunk HTTP Event Collector
splunk_hec — Splunk HTTP Event Collector
syslog_tcp — Raw TCP Syslog
syslog_tcp — Raw TCP Syslog
See QRadar API management below to enable optional REST API features on a
syslog_tcp destination that targets QRadar.elastic_bulk — Elasticsearch Bulk API
elastic_bulk — Elasticsearch Bulk API
4
Optional: configure QRadar API management
For
syslog_tcp destinations only, expand QRadar API management to let ThreatLab call the QRadar REST API for log source provisioning and offense cleanup. Event delivery still uses syslog/LEEF — these settings only authorize follow-up management calls.QRadar API management is only available for the
syslog_tcp driver. Switching a destination to another driver clears these settings.5
Set the payload format
Choose the log format ThreatLab will ship to this destination:
- LEEF — Default. Best for Splunk and syslog receivers.
- ECS — Elastic Common Schema. Use this for Elasticsearch destinations.
6
Enable the destination
Toggle Enabled on. Disabled destinations are silently skipped when an exercise starts.
7
Save
Click Save to create the destination. It is immediately active for any new exercise sessions.
SIEM name is case-sensitive. It must match exactly in exercise start requests and noise job target lists.
QRadar API management
For QRadar destinations on thesyslog_tcp driver, you can give ThreatLab REST API credentials so it can automate console tasks alongside event delivery. Event delivery still flows over syslog/LEEF — the API is only used for the management actions you opt into.
Expand the qradar api management section on a syslog_tcp destination to configure it.
Both toggles are scoped strictly to the destination’s log source and the current exercise attempt window. ThreatLab will not touch offenses or log sources that belong to other destinations or attempts.
Close offenses on completion
When Close offenses is enabled, ThreatLab closes any OPEN QRadar offenses linked to the exercise log source that were opened during the analyst’s attempt window. Cleanup runs after the attempt is scored and is non-blocking: if QRadar is unreachable or the API rejects a request, the analyst still gets a successful completion, and the failure is recorded for administrators to review. Every cleanup attempt is recorded with the matched, closed, and failed offense IDs and one of three outcomes:
Cleanup is skipped — without an audit row — when the destination is disabled, uses a different driver, has the toggle off, or has no API credentials, and when the exercise has no provisioned QRadar log source for that destination yet.
Enabling and Disabling Destinations
You can toggle a destination on or off from its detail page at any time. Disabled destinations are ignored at exercise start — no logs are shipped to them, and they do not block other destinations from receiving events.QRadar Log Source Provisioning
When asyslog_tcp destination targets QRadar and Enable log source provisioning is on, ThreatLab calls the QRadar REST API at exercise start to ensure a dedicated log source exists for that exercise. This lets you tie every event in QRadar back to a single exercise run.
To use provisioning:
- Set the QRadar API host and QRadar API token on the destination.
- Optionally pin the QRadar event collector ID, log source type, and log source protocol. ThreatLab uses sensible defaults (
Universal LEEFoverSyslog) and resolves the first available event collector if you leave them blank. - Toggle Enable log source provisioning on.
- Make sure the QRadar API token has permission to read event collectors and log source types and to create log sources.
threatlab-{exercise}-{siem} so the same exercise always reuses the same QRadar log source. Provisioning failures abort the exercise start so analysts never see a partially configured run — see QRadar log source provisioning for the end-to-end behavior.
Wipe Behavior on Session Reset
When an analyst resets their session (DELETE /api/sessions), ThreatLab wipes the SIEM index before re-shipping archives so the analyst starts with a clean dataset.
Splunk HEC
Wipes the configured index via the Splunk management API using the admin credentials you provided.
Elasticsearch
Removes all documents in the target index using the
_delete_by_query API.Syslog TCP
No wipe mechanism exists for raw TCP syslog. These destinations are skipped during the wipe phase.