Exercise Anatomy
Every exercise is made up of the following fields:Title
Title
A short, descriptive name that identifies the scenario. Displayed on the exercise card and in learning path listings.
Description
Description
A narrative overview of the scenario — the threat context, the environment, and what you are expected to investigate.
Difficulty
Difficulty
One of four tiers: Easy, Medium, Hard, or Expert. Difficulty reflects the complexity of the log data and the depth of analysis required.
Duration
Duration
The estimated time to complete the exercise, expressed in minutes.
Points
Points
The score awarded when you submit all required artifacts and complete the exercise.
MITRE ATT&CK Tags
MITRE ATT&CK Tags
Archive Sections
Archive Sections
One or more log archive sections, each carrying LEEF and/or ECS payloads. ThreatLab selects the correct payload format at exercise start based on your SIEM destination. Each section can optionally carry staged release rules so it ships to the SIEM mid-attempt instead of at start.
Investigation Steps
Investigation Steps
An ordered list of steps that guide you through the scenario. Each step carries a prompt and one or more expected artifact values you must submit to advance.
Archive Formats
ThreatLab supports two log payload formats so exercises can target any supported SIEM:LEEF
Log Event Extended Format. Used by Splunk, QRadar, and any syslog TCP-compatible SIEM. LEEF archives ship as structured key-value event lines.
ECS
Elastic Common Schema. Used by Elasticsearch. ECS archives contain JSON documents formatted for bulk indexing.
- LEEF is recognised by its
LEEF:<version>|vendor|product|...header. - ECS is recognised when the row is JSON or NDJSON with an
@timestampfield and at least one ECS-like field (event.*,host.*,source.*,destination.*,log.*,process.*,user.*, or a non-emptymessage).
- You enable Convert to LEEF on a section.
- A row is detected as ECS but a LEEF destination (e.g.
splunk_hec,syslog_tcp) is enabled. - A row is detected as LEEF but an ECS destination (e.g.
elastic_bulk) is enabled. - Any row is detected as unknown.
.zip, .tar.gz, .tgz, or paste log text directly into the editor (ThreatLab packs pasted content into a ZIP automatically).
Section Release Rules
By default, every archive section ships to the SIEM the instant an analyst starts the exercise. That immediate shipping model is still the default — you do not need to configure anything for it. Sections also support an optional staged release model so authors can hold individual sections back until specific conditions are met. Each section can declare:- A release delay — minutes after the attempt starts before the section becomes eligible.
- One or more artifact gates — expected artifacts that must be submitted before the section becomes eligible.
- A release condition that combines them:
delay_only,artifacts_only,delay_and_artifacts, ordelay_or_artifacts. - An artifact gate mode of
alloranywhen more than one gate is linked.
Exercise Lifecycle States
An exercise moves through four states from authoring to analyst completion:Draft
A working state for authors. The exercise is invisible to analysts and does not appear in learning path progress. Drafts are server-backed and autosaved — once a title is set, metadata, steps, and section shells persist automatically without uploading archives, finalizing live TCP intakes, or provisioning SIEM indexes. Description, steps, and archives can be incomplete while in draft. See Author exercises for the autosave UX and Draft vs publish validation for which checks fire at each stage.
Active
The exercise is published and visible to analysts. It appears in the exercise catalog and counts toward learning path progress. Toggling Active on runs the full strict validation pipeline — archive validation, LEEF/ECS readiness checks, deadlock checks, live TCP finalization, and SIEM index provisioning — before the exercise goes live.
In Progress
An analyst has started the exercise but has not yet submitted all required artifacts. Partial progress is auto-saved after every submission.
Step Artifacts
Each investigation step defines one or more expected artifact values — the answers you are expected to extract from the log data. When you submit a response, ThreatLab matches it against the expected value using case-insensitive, whitespace-trimmed equality, so minor capitalisation differences do not cause incorrect failures.Investigation Notebooks
While working through an exercise you can maintain a private investigation notebook — a scratchpad attached to your session. Notebook entries are organised into four categories:| Category | When to use it |
|---|---|
| Observation | Raw facts you notice in the log data — timestamps, IPs, user accounts. |
| Hypothesis | Theories about what the threat actor may have done or intended. |
| Finding | Conclusions you are confident enough to include in a report. |
| Other | Anything that does not fit the above categories. |
review_notebooks capability can read your notes for coaching and assessment purposes.
Only users with the Author exercises (
manage_exercises) capability can create or edit exercises.