Attack Simulation

June 30, 2026 · View on GitHub

Attack Simulation prepares and records ATT&CK-aligned validation scenarios for approved lab targets. It is designed for detection validation, telemetry verification, and coverage-gap documentation.

The v5 workspace combines three related workflows:

  • TTP-first simulation selection from an ATT&CK-style matrix.
  • Real lab-target attack flows that produce target-side telemetry.
  • AI-assisted kill-chain telemetry generation for SIEM rule validation, scenario drills, and detection engineering exercises.

Screenshots for this release are stored in docs/assets/attack-simulation-v5.

Published release article: AdversaryGraph v5.0: From CTI Mapping to Attack Simulation and SIEM Validation.

Safety Model

The MVP is intentionally conservative:

  • No arbitrary command execution from the UI.
  • No exploit execution. Web scenarios use fixed benign canary strings that look like attack telemetry but are never executed by the lab server.
  • No user-supplied internet targets.
  • No password attacks against real users.
  • No malware or live payload execution.
  • No arbitrary network traffic emitted by the AdversaryGraph API runner.
  • Only predefined simulations and approved lab targets are available.
  • Each TTP family must run against the correct lab fixture type. Web TTPs use the web target, endpoint/internal-activity TTPs use the endpoint target, and SQL/FTP/identity/egress TTPs must use dedicated lab targets with their own native telemetry. Do not map every scenario to webserver logs.

The module creates dry-run plans, expected telemetry checklists, and manual validation records. Analysts must attach evidence from an authorized lab run before marking detection coverage as passed.

Telemetry Fidelity Architecture Rule

Every Attack Simulation scenario must be designed from the telemetry source backward. CTI-to-detection validation is only useful when the emitted evidence matches the system that would observe the behavior.

  • Select the telemetry source before generating events: Windows Security, Sysmon, PowerShell 4104, EDR, NGINX/Apache/IIS, WAF, firewall, DNS, proxy, cloud audit, Linux auditd, database audit, IdP, or application logs.
  • Use source/vendor-shaped event structures wherever the simulator supports them. Examples include Windows Event XML, Sysmon XML, NGINX access lines, ModSecurity-style WAF alerts, Palo Alto traffic logs, BIND DNS query logs, BlueCoat-style proxy lines, and EDR JSON.
  • Do not treat generic fake events or normalized-only JSON as primary evidence when a source-specific format exists.
  • Web attacks must use web-server, application-auth, WAF, proxy, or DNS telemetry. Endpoint/internal TTPs must use endpoint, Windows, Sysmon, PowerShell, Linux auditd, or EDR-style telemetry.
  • If a TTP cannot be represented by the currently deployed lab target or by a source-realistic event template, the simulator must mark it as a telemetry gap instead of producing misleading logs.

The AI Attack Assistant receives this rule in its system prompt. In complicated attack mode it should build a coherent kill chain from supported telemetry families and report unsupported coverage as a gap.

Real vs. Synthetic Telemetry

AdversaryGraph produces two types of telemetry during attack simulation. Analysts must understand the difference before using simulation outputs for detection validation.

PropertyReal lab telemetrySynthetic (AI-generated) telemetry
SourceActual lab target (endpoint, web server)AdversaryGraph backend (AI or template)
ExecutionRuns predefined scenario against lab fixtureNo execution — data only
Required lab infraYes — configured and running lab targetNo
Validates rule fires on real behaviorYesNo — validates rule syntax and field mapping only
Analyst validation requiredYesYes — must cross-reference with a real lab run
SafetyIsolated lab environmentPurely data forwarding; no code execution

Synthetic telemetry validates rule syntax and field mapping. It does NOT confirm that a detection fires on real attack behavior. Full detection validation requires a real lab run and analyst review of the captured telemetry.

For SIEM forwarding security details see attack-simulation-siem-forwarding-security.md.

Visual Walkthrough

TTP-First Simulation Matrix

Attack Simulation matrix

The Attack Simulation landing page shows the ATT&CK matrix first. Techniques with available simulations are marked as runnable cells so an analyst starts from the behavior they want to validate, not from a generic form.

Per-TTP Configuration

Per-TTP configuration page

After selecting a technique, the workspace opens a dedicated configuration page. The left panel explains the selected scenario, adversary activity, production log sources, detection logic, discriminators, and validation gaps. The analyst can run a lab simulation, inspect live telemetry, forward events to a SIEM, or use the AI assistant to build a broader kill chain.

SIEM Forwarding

SIEM forwarding configuration

Forwarding supports HTTP(S) collectors, raw host/IP inputs, route selection, payload format selection, source selection, and authentication modes. Recent destinations are saved so repeated validation against the same collector does not require retyping the URL. Secret values such as bearer tokens and passwords are not stored.

AI Scenario Library

AI scenario library

The AI Attack Assistant can work from a selected TTP, a named threat actor, or Challenge Me mode. For repeatable work, the Scenario Library contains named coherent kill-chain templates with preconditions, success criteria, expected detections, and ordered phase definitions.

Attack Chain Graph

AI generated attack chain graph

Generated scenarios include an attack-chain graph. Each phase shows the ATT&CK technique, phase order, telemetry source, event format, event count, and detection goal. This helps analysts verify that the story is a plausible sequence rather than a random set of unrelated events.

Explain Attack

Explain attack panel

Challenge and AI-generated scenarios expose an Explain attack action. The explanation summarizes the kill chain, phase rationale, expected telemetry, detection opportunities, and assumptions that must be validated in the SIEM.

Real-Time Logs

Real-time attack logs

The real-time log panel tails target-side logs. For web scenarios, this includes the Docker lab web server access log, security/WAF-style log, error log, auth log, structured web JSONL, endpoint fixture log, or merged attacked-server events.

Delivery and History

SIEM history and delivery

Delivery status reports how many events were posted to the configured SIEM collector and the HTTP result. The UI keeps the last 10 non-secret destinations for fast retesting.

Target-Specific Lab Instances

Attack Simulation uses target-specific lab instances. This matters because a valid detection test needs the telemetry that the real target class would produce:

TTP familyLab targetPrimary telemetry
HTTP reconnaissance, web exploitation, web auth attacks, web C2/exfil canariesattack-lab-web / lab-web-01NGINX access/error logs, application auth logs, WAF/security-style alerts
Endpoint credential access and internal host activityattack-lab-endpoint / lab-endpoint-01Sysmon-style process events, process-access events, Linux auditd-style file access, EDR canary records
SQL service attacksdedicated SQL lab targetDatabase authentication logs, query audit logs, connection/source metadata
FTP/service transfer attacksdedicated FTP lab targetFTP command logs, login result logs, upload/download metadata
Identity and SSO attacksidentity lab targetIdP sign-in logs, MFA logs, VPN/SSO events
Egress/C2 validationlab agent/egress targetDNS resolver logs, proxy logs, NDR/EDR network events

The current Docker Compose deployment includes the web and endpoint fixtures. SQL, FTP, identity, and egress scenarios are kept as separate target classes and remain plan-only until dedicated fixtures are deployed. They are not exposed as executable simulations because they would otherwise create run records without native target logs.

Local Web Telemetry Server

For web-focused simulations in Docker Compose, AdversaryGraph runs a separate attack-lab-web target container and the API performs real HTTP attack flows against http://attack-lab-web:8080 over the compose network. The target container uses NGINX as the front web server and a small upstream lab application for controlled responses. lab-web-access.log and lab-web-error.log are emitted by NGINX from the real requests received by the container; they are not formatted by the AdversaryGraph API runner. The in-process 127.0.0.1:8765 server remains only as a test/development fallback when the Docker target URL is not configured.

The Docker target is configured to generate consistent telemetry for reconnaissance, public exposure checks, path discovery, traversal-shaped canaries, SQLi/XSS-shaped canaries, SSRF-shaped parameters, command-injection-shaped requests, web-shell-shaped requests, upload/download canaries, exposed secret/config/key access canaries, failed-login sequences, brute-force login sequences, Basic auth brute-force sequences, password-spray sequences, user-enumeration probes, HTTP method probing, 404 discovery bursts, scanner/tool user-agent fingerprinting, suspicious extension upload attempts, HTTP beacon canaries, and exfiltration-shaped POST bodies.

The runner sends only predefined requests to the approved lab target. The target server writes logs under:

<LOG_DIR>/attack-simulation/

At the start of every new attack run, AdversaryGraph clears the shared target log streams listed below. This keeps the real-time view and SIEM forwarding focused on the current attack. Historical per-run run-*.jsonl files are not deleted.

Generated files include:

  • lab-web-access.jsonl — server-side web access telemetry with method, path, clean path, query keys, client IP, headers, request body length, request body hash, short body preview, matched canary categories, status, response bytes, run ID, and simulation ID.
  • lab-web-access.log — real NGINX access log lines written by the Docker lab web server while it receives the attack requests. The format includes normal webserver fields plus correlation fields for run ID, simulation ID, request index, request length, request time, upstream time, and upstream status.
  • lab-web-security.log — WAF/security-style alert lines emitted whenever a canary category is matched, including severity, category, rule ID, client, URI, run ID, simulation ID, and body hash.
  • lab-web-error.log — real NGINX error log for the Docker lab web server. Most benign canary requests are valid HTTP requests and may not generate error lines unless NGINX or upstream handling emits an operational warning/error.
  • lab-web-auth.log — application authentication log lines for login attacks, including username, user-exists flag, outcome, failure reason, attack type, password length/hash, source IP, status, run ID, and simulation ID. The lab server does not write cleartext passwords to this log.
  • lab-endpoint.log — endpoint telemetry for internal host activity. Linux credential-file canaries are written as auditd/EDR-style file access events. Windows credential-dumping canaries are written as Sysmon/EDR-style process creation and process-access events. These records are not WAF or webserver logs.
  • lab-endpoint.jsonl — structured endpoint target telemetry from the endpoint fixture, including run ID, simulation ID, process, command, operation, target process, file path, and canary classification.

Endpoint simulations currently cover credential dumping, command execution, LOLBin/proxy execution, persistence, tool transfer, and discovery canaries. They are sent as real HTTP requests to the endpoint lab fixture, and the fixture writes Sysmon/auditd/EDR-style telemetry from the received activity records.

  • run-*.jsonl — attack-run telemetry with request sequence, response status, request purpose, request body length/hash, duration, response headers, byte counts, summary, and errors if any.

The Real-Time Attack Logs panel tails the real access, security, and error logs by default. Structured JSONL sources remain available for programmatic analysis. The Forward Logs To SIEM panel can POST the selected telemetry to an HTTP(S) collector, for example a Splunk HEC, Logstash HTTP input, custom webhook, or test receiver. The POST body is JSON:

{
  "product": "AdversaryGraph",
  "module": "Attack Simulation",
  "source": "web",
  "run_id": "run-...",
  "event_count": 3,
  "events": []
}

Forwarding guardrails:

  • Only http and https collector URLs are accepted.
  • Destination can be entered as a full URL or as raw host:port/path; raw values are normalized to http://host:port/path.
  • Connection route can be selected per send:
    • Direct exact address preserves the destination exactly from the API runtime.
    • Docker host gateway maps localhost and 127.0.0.1 to host.docker.internal for collectors running on the Docker host.
    • Auto uses Docker host gateway for loopback destinations when the API is running inside a container.
  • 0.0.0.0 and [::] are accepted as convenience inputs even though they are bind addresses, not remote destinations. The forwarder maps them to host.docker.internal in Docker-host/auto mode or 127.0.0.1 in direct mode.
  • For Docker host gateway mode, the collector must listen on the host network interface or 0.0.0.0, not only loopback.
  • Authentication modes: none, bearer token, token auth, basic username/password, or custom token header.
  • Optional HTTP fallback can retry the same destination with http:// when an https:// collector fails with a TLS protocol error. This is intended for local lab collectors that expose an HTTPS-looking URL while listening over plain HTTP.
  • Payload formats:
    • Raw original line per request is the recommended mode for Logeye/XpoLog-style logger.jsp collectors when you want the SIEM event body to be the native NGINX/auth/security log line rather than an AdversaryGraph JSON wrapper.
    • JSON event per request sends one normalized AdversaryGraph JSON event per POST.
    • JSON lines sends newline-delimited JSON events in one request.
    • Batch envelope sends the original AdversaryGraph wrapper object with an events array.
  • Log sources:
    • All attacked-server events sends a merged time-ordered stream of the Docker target's access, auth, endpoint, security, error, and structured web telemetry.
    • Real web access log sends lab-web-access.log lines.
    • Endpoint EDR/Sysmon log sends lab-endpoint.log lines for host-level activity such as Sysmon-style process creation/process access, Linux auditd-style file access, and EDR canary events.
    • Real WAF/security log sends lab-web-security.log alert lines.
    • Real web error log sends lab-web-error.log error lines.
    • Real auth log sends lab-web-auth.log login/authentication lines.
    • Structured web JSONL sends lab-web-access.jsonl.
    • Attack run JSONL sends the selected run-*.jsonl file.
  • The UI keeps the last 10 SIEM destinations in browser local storage, including route, payload format, source, and non-secret auth metadata. Passwords, bearer tokens, and custom auth token values are not saved.
  • URL-embedded credentials are rejected; use the dedicated auth fields.
  • Sensitive query parameters such as api_key, secret, and password are redacted in API responses and audit metadata. A Logeye-style token parameter is treated as a listener identifier and remains visible.
  • Metadata/link-local/multicast/unspecified destinations are blocked.
  • Only generated Attack Simulation telemetry is sent.

The Docker target is a lab fixture, not a production target. It is useful for validating real request flow, server-side log shape, ATT&CK mapping, parser behavior, SIEM ingestion, and detection logic before running any approved scenario in a wider lab.

Workflow

  1. Open Attack Simulation from the sidebar or Discover page.
  2. Select the ATT&CK TTP first.
  3. The selected TTP opens a dedicated attack simulation configuration page.
  4. Select an approved lab target from the target registry and review the target address context.
  5. Add analyst context such as ticket, purpose, and maintenance window.
  6. Generate a dry-run plan.
  7. Review safety controls, expected telemetry, and approval checklist.
  8. Create a controlled run record. For web simulations this starts the shared local telemetry server, performs the predefined benign request set for the selected TTP, classifies canary indicators, and writes JSONL telemetry.
  9. Paste SIEM/WAF/firewall/DNS/proxy/EDR/IdP evidence into the manual result form when validating beyond the local lab server.
  10. Mark the detection result as passed, failed, partial, or not_proven.

AI Attack Assistant

The AI Attack Assistant builds SIEM-validation telemetry stories. It does not execute malware, exploit targets, or run arbitrary commands. The assistant sends generated telemetry to the configured SIEM destination so detection rules, parsers, dashboards, and correlation logic can be tested.

Assistant modes:

  • Selected TTP — build a focused telemetry sequence around the selected technique.
  • Threat actor — build a coherent actor-inspired validation scenario using ATT&CK techniques and telemetry sources relevant to that actor profile.
  • Challenge me — generate a multi-phase detection challenge for analyst training and blind rule validation.

Planning controls:

  • LLM provider selects Claude, OpenAI, Gemini, MiniMax, or a local OpenAI-compatible model when configured.
  • Complicated attack asks the assistant for a longer, multi-source flow with Windows Event, Sysmon, EDR, DNS, proxy, firewall, web, and WAF-style events.
  • If the selected LLM is unavailable or times out, AdversaryGraph falls back to deterministic scenario templates so the workflow remains repeatable. The UI reports whether AI planning succeeded or a deterministic fallback was used.

Event-shape rules:

  • Windows Security events keep Windows Event Log structure and event IDs such as 4624, 4625, 4698, and 1102.
  • Sysmon events keep Sysmon-style provider/channel structure and event IDs such as 1, 3, 7, 10, 11, 13, and 22.
  • EDR, proxy, DNS, firewall, WAF, and web events are sent in source/vendor shaped formats instead of being flattened into one generic schema.
  • The attack-chain graph remains the high-level explanation; the SIEM receives source-shaped event bodies.

Named AI Scenario Library

The current library contains 25 named coherent scenarios. They are designed as plausible detection-validation stories with ordered phases, not as random event bundles.

ScenarioDifficultyMain validation focus
Web App to Endpoint Compromisefull intrusionReconnaissance, web access, endpoint execution, credential access, persistence, C2/exfiltration
Password Spray to Valid Account Footholdsimple chainUser enumeration, password spray, successful logon, endpoint discovery
SQL Injection to Data Theftfull intrusionSQLi-shaped web telemetry, database audit style events, staging, exfiltration
Recon to Web Shell Persistencefull intrusionHTTP discovery, upload/web-shell canaries, persistence-style access
Valid Account to LSASS Accesssimple chainSuccessful logon, discovery, LSASS access, credential-dumping detections
Password Spray to Exfiltrationfull intrusionIdentity attack, valid account, staged collection, proxy upload
XSS Canary to Session Abusesimple chainXSS-shaped telemetry, session token misuse, suspicious authenticated actions
SSRF Metadata Probe to C2full intrusionSSRF-shaped requests, metadata access canaries, follow-on beaconing
Ransomware Precursor Chainfull intrusionDiscovery, defense evasion, credential access, mass file change canaries
Living-off-the-Land Transfer and Executionsimple chainCertutil/BITS/rundll32 style telemetry and process lineage
Internal Discovery After Footholdsimple chainHost, user, network, process, and service discovery telemetry
Web Enumeration to Password Spraysimple chainHTTP enumeration followed by identity/authentication failures
Public App Exploit to Persistencefull intrusionPublic web exposure, endpoint execution, Run key/service persistence
Credential Dump to Cloud Uploadfull intrusionLSASS access, archive creation, proxy/cloud upload telemetry
Signed Binary Proxy to C2simple chainLOLBin process creation, suspicious network connection, beacon pattern
FIN7-Style Web, Identity, Persistencefull intrusionWeb entry, credential attack, persistence, lateral discovery signals
APT29-Style Identity and PowerShellfull intrusionIdentity abuse, PowerShell, discovery, C2-style telemetry
Lazarus-Style Delivery and Exfiltrationfull intrusionDelivery, execution, credential access, collection, exfiltration
Noisy Red-Team Drillnoisy drillHigh-volume multi-source detections for tuning and dashboard testing
Stealthy Low-Volume Intrusion Chainfull intrusionSparse cross-source correlation and low-noise detections
WAF Bypass Retry Chainsimple chainRepeated web probes with encoding/bypass variation
Service Account Abusesimple chainService-account logon behavior, privilege use, unusual source host
External Recon to Credential Accessfull intrusionPublic discovery, credential attack, endpoint credential-access telemetry
C2 Telemetry Validationatomic chainDNS/proxy/beacon detections and periodicity checks
Persistence Control Validationatomic chainRun key, scheduled task, service, WMI, and startup artifact events

Current Simulation Catalog

SimulationATT&CKPurpose
HTTP/TLS service fingerprint planT1595Validate telemetry for benign local service fingerprinting
Public web exposure validation planT1190Validate web visibility without exploit payloads
Web content discovery and path enumerationT1595Validate admin, API, backup, and repository path discovery telemetry
Path traversal canary validationT1190Validate traversal-shaped parser, WAF, and SIEM telemetry
SQL injection and XSS canary validationT1190Validate SQLi/XSS-shaped request detection without database or browser execution
SSRF metadata and loopback canary validationT1190Validate SSRF-shaped URL parameter detection without server-side fetches
Web command execution canary validationT1059Validate command-injection-shaped GET and POST telemetry without execution
Web shell URI and POST canary validationT1505.003Validate web-shell-shaped access telemetry without file creation
Ingress tool transfer upload/download canaryT1105Validate upload/download-like web transfer telemetry with benign bodies
Web-exposed secret and backup file canaryT1552.001Validate exposed .env, backup config, and private-key path access telemetry
HTTP method and override probingT1595Validate real OPTIONS, TRACE, and method-override telemetry
Web 404 discovery burstT1595Validate short path-discovery bursts with real 404 access logs
Scanner and tool user-agent fingerprintingT1595Validate scanner/tool user-agent detection from real HTTP requests
HTTP Basic authentication brute-force sequenceT1110.001Validate Basic auth failures/success with redacted authorization telemetry
Suspicious web extension uploadT1505.003Validate benign upload attempts to PHP/ASPX/JSP paths without persisting files
Linux /etc/shadow access canaryT1003.008Validate internal process/file telemetry for shadow credential-file access without reading real files
LSASS and Mimikatz usage canaryT1003.001Validate Mimikatz/LSASS command-line and credential-dumping telemetry without running tools or dumping memory
PowerShell encoded command executionT1059.001Validate encoded PowerShell process telemetry without executing PowerShell
Windows command shell executionT1059.003Validate cmd.exe shell execution telemetry without starting a shell
Certutil and BITS ingress tool transferT1105Validate LOLBin transfer command telemetry without downloading files
Registry Run key persistenceT1547.001Validate Run-key registry-set telemetry without registry writes
Scheduled task creationT1053.005Validate scheduled-task creation telemetry without creating tasks
Windows service creationT1543.003Validate service creation telemetry without creating services
Rundll32 signed binary proxy executionT1218.011Validate rundll32 proxy-execution telemetry without loading DLLs
Regsvr32 signed binary proxy executionT1218.010Validate regsvr32 proxy-execution telemetry without registration or network fetch
System information discoveryT1082Validate common discovery command telemetry without executing commands
File and directory discoveryT1083Validate file-discovery command telemetry without traversing the filesystem
System owner and user discoveryT1033Validate user-discovery process telemetry without executing commands
Process discoveryT1057Validate process-listing command telemetry without enumerating processes
System network configuration discoveryT1016Validate network configuration discovery telemetry without querying interfaces
Remote system discoveryT1018Validate domain/remote-system discovery telemetry without network enumeration
Software discoveryT1518Validate installed-software discovery telemetry without querying installed software
Web failed-login sequence canaryT1110Validate low-rate web login failure telemetry against lab-only endpoints
Web login brute-force sequenceT1110.001Validate repeated-password attempts against one lab user, including final success telemetry
Web password spraying sequenceT1110.003Validate one-password-across-many-users auth telemetry without real accounts
Web user enumeration sequenceT1589.002Validate known/unknown username probe telemetry and enumeration alerts
HTTP web beacon canaryT1071.001Validate web-protocol beacon-shaped telemetry with a fixed small sequence
Web exfiltration-shaped upload canaryT1041Validate small benign POST body telemetry and exfiltration-shaped parser logic
External remote service reachability planT1133Validate remote-service reachability telemetry without authentication attempts
Controlled HTTP/DNS beacon validation planT1071Plan lab-agent egress telemetry validation
Lab-only failed-login sequence planT1110Plan low-rate identity telemetry validation against lab-only test accounts

Atomic Event Pack

The atomic event pack adds single-event/artifact simulations for techniques that can reasonably be validated from one high-signal telemetry record. These are not real attack executions. They are detection-validation fixtures that write one event to the endpoint telemetry target.

Windows-based atomic events are emitted as strict Windows Event Log shaped JSON: Event.System.Provider, Event.System.EventID, Event.System.Channel, Event.System.Computer, Event.System.Security, Event.EventData.Data[], and event.original XML are present. Sysmon records use the Microsoft-Windows-Sysmon/Operational channel and Sysmon-style EventData field names such as Image, CommandLine, ParentImage, TargetFilename, TargetObject, SourceImage, and TargetImage. Windows Security records use native field names such as TargetUserName, LogonType, IpAddress, ShareName, and ObjectName.

Non-Windows atomic events, such as proxy, email gateway, firewall, cloud-like, or generic EDR artifacts, are emitted as structured vendor JSON with observer, event, host, process, source, destination, URL, rule, and AdversaryGraph correlation fields.

Use these when the rule trigger is event/artifact based, for example Sysmon ProcessCreate, Windows Security logon, PowerShell 4104, Defender configuration change, proxy upload, email gateway delivery, or EDR API/file events.

Current atomic pack: 55 simulations. Validation status: 55/55 create endpoint events, 41/55 are strict Windows Event Log shaped records, and 14/55 are non-Windows vendor JSON records.

ATT&CKSimulationAtomic event
T1027sim-t1027-atomic-encoded-powershell-scriptblockwindows_powershell 4104 ScriptBlockLogging
T1036sim-t1036-atomic-masqueraded-svchost-user-pathsysmon 1 ProcessCreate
T1047sim-t1047-atomic-wmic-process-call-createsysmon 1 ProcessCreate
T1048sim-t1048-atomic-exfiltration-over-alternative-protocolfirewall NETFLOW OutboundTransfer
T1049sim-t1049-atomic-netstat-network-connectionssysmon 1 ProcessCreate
T1055sim-t1055-atomic-remote-thread-injectionsysmon 8 CreateRemoteThread
T1056.001sim-t1056-001-atomic-keylogger-driver-or-hookedr INPUT_CAPTURE KeyboardHookRegistered
T1059.005sim-t1059-005-atomic-visual-basic-script-executionsysmon 1 ProcessCreate
T1059.006sim-t1059-006-atomic-python-executionsysmon 1 ProcessCreate
T1068sim-t1068-atomic-privilege-escalation-exploit-child-shelledr PRIV_ESC ExploitPrivilegeEscalation
T1070.001sim-t1070-001-atomic-windows-event-log-clearedwindows_security 1102 AuditLogCleared
T1070.004sim-t1070-004-atomic-suspicious-file-deletesysmon 23 FileDelete
T1078sim-t1078-atomic-valid-account-remote-logonwindows_security 4624 SuccessfulLogon
T1090sim-t1090-atomic-proxy-tool-network-connectionsysmon 3 NetworkConnection
T1098sim-t1098-atomic-account-added-to-admin-groupwindows_security 4728 MemberAddedToSecurityEnabledGlobalGroup
T1102sim-t1102-atomic-web-service-c2-user-agentproxy HTTP_REQUEST ProxyWebRequest
T1106sim-t1106-atomic-suspicious-native-api-calledr API_CALL NativeApiCall
T1112sim-t1112-atomic-registry-security-setting-modifiedsysmon 13 RegistryValueSet
T1113sim-t1113-atomic-screen-capture-apiedr SCREEN_CAPTURE ScreenCapture
T1115sim-t1115-atomic-clipboard-readedr CLIPBOARD_READ ClipboardAccess
T1123sim-t1123-atomic-audio-capture-apiedr AUDIO_CAPTURE MicrophoneAccess
T1125sim-t1125-atomic-video-capture-apiedr VIDEO_CAPTURE CameraAccess
T1134sim-t1134-atomic-token-impersonationedr TOKEN_IMPERSONATION TokenImpersonation
T1135sim-t1135-atomic-network-share-discoverysysmon 1 ProcessCreate
T1140sim-t1140-atomic-certutil-decodesysmon 1 ProcessCreate
T1203sim-t1203-atomic-office-spawned-script-hostsysmon 1 ProcessCreate
T1204.002sim-t1204-002-atomic-user-executed-downloaded-filesysmon 1 ProcessCreate
T1219sim-t1219-atomic-remote-access-software-startedsysmon 1 ProcessCreate
T1222.001sim-t1222-001-atomic-icacls-permission-changesysmon 1 ProcessCreate
T1482sim-t1482-atomic-domain-trust-discoverysysmon 1 ProcessCreate
T1486sim-t1486-atomic-ransomware-file-renameedr RANSOMWARE_CANARY MassFileRename
T1490sim-t1490-atomic-shadow-copy-deletionsysmon 1 ProcessCreate
T1497sim-t1497-atomic-sandbox-evasion-checksysmon 1 ProcessCreate
T1518.001sim-t1518-001-atomic-security-software-discoverysysmon 1 ProcessCreate
T1539sim-t1539-atomic-browser-cookie-accesssysmon 11 FileCreate
T1546.003sim-t1546-003-atomic-wmi-event-subscriptionsysmon 19 WmiEventFilter
T1546.008sim-t1546-008-atomic-accessibility-feature-backdoorsysmon 13 RegistryValueSet
T1547.009sim-t1547-009-atomic-shortcut-modificationsysmon 11 FileCreate
T1550.002sim-t1550-002-atomic-pass-the-hash-logonwindows_security 4624 SuccessfulLogon
T1552.002sim-t1552-002-atomic-credentials-in-registrysysmon 1 ProcessCreate
T1552.006sim-t1552-006-atomic-cloud-credential-file-accessedr FILE_READ SensitiveFileAccess
T1555.003sim-t1555-003-atomic-browser-login-data-accesssysmon 11 FileCreate
T1556.002sim-t1556-002-atomic-password-filter-dll-registeredsysmon 13 RegistryValueSet
T1560.001sim-t1560-001-atomic-archive-with-rarsysmon 1 ProcessCreate
T1562.001sim-t1562-001-atomic-disable-defender-realtimewindows_defender 5007 ConfigurationChanged
T1562.004sim-t1562-004-atomic-disable-windows-firewallsysmon 1 ProcessCreate
T1564.001sim-t1564-001-atomic-hidden-file-attributesysmon 1 ProcessCreate
T1566.001sim-t1566-001-atomic-email-attachment-deliveryemail_gateway MESSAGE_DELIVERED EmailDelivered
T1567.002sim-t1567-002-atomic-exfil-to-cloud-storageproxy HTTP_UPLOAD LargeUpload
T1569.002sim-t1569-002-atomic-service-executionwindows_system 7045 ServiceInstalled
T1574.002sim-t1574-002-atomic-dll-side-loadingsysmon 7 ImageLoaded
T1574.011sim-t1574-011-atomic-services-registry-permissions-weaknesssysmon 13 RegistryValueSet
T1021.001sim-t1021-001-atomic-rdp-network-logonwindows_security 4624 SuccessfulLogon
T1021.002sim-t1021-002-atomic-smb-admin-share-accesswindows_security 5140 NetworkShareAccess
T1039sim-t1039-atomic-network-share-data-accesswindows_security 4663 ObjectAccess

API Endpoints

GET  /api/simulation/catalog
GET  /api/simulation/targets
GET  /api/simulation/logs
POST /api/simulation/plan
POST /api/simulation/run
POST /api/simulation/forward-logs
POST /api/simulation/manual-result

Validation Status

The default status is not_proven. A detection should only be marked passed after external evidence confirms:

  • The planned behavior happened in an authorized lab.
  • Expected telemetry was collected.
  • The relevant detection fired.
  • Benign lookalikes and known gaps were considered.

Future Build Path

The next safe expansion is an isolated runner agent:

AdversaryGraph API
  -> job queue
  -> isolated lab runner
  -> approved lab target
  -> telemetry evidence
  -> AdversaryGraph validation record

The runner must enforce target allowlists, predefined adapters, rate limits, timeouts, transcript logging, and cleanup hooks.