You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add GROUND_TRUTH.md feature specification to PRD and TODO
Adds comprehensive specification for attack ground truth documentation:
- Auto-generated GROUND_TRUTH.md in output directory for scenarios with malicious activity
- Three-section format: Attack Summary (narrative), Timeline (key events with timestamps/record IDs), IOCs (atomic indicators grouped by type)
- Integration into generation engine (Phase 1.7) and evaluation framework (Phase 3.4)
- Validation of IOC presence during evaluation phase
This provides ground truth for threat hunting training exercises and enables verification that detection rules capture malicious activity.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3. Generate report with scores and specific findings
161
-
4. Optional: Save report for comparison across runs
165
+
3. If GROUND_TRUTH.md exists, validate that all documented IOCs are present in logs
166
+
4. Generate report with scores and specific findings
167
+
5. Optional: Save report for comparison across runs
162
168
163
169
### 4.2 Data Model
164
170
@@ -426,6 +432,92 @@ class GeneratorState:
426
432
checkpoint_data: dict # For resume capability
427
433
```
428
434
435
+
#### Output Files
436
+
437
+
**Directory Structure**
438
+
439
+
Generated logs are written to a timestamped output directory:
440
+
```
441
+
output/
442
+
scenario-name-YYYYMMDD-HHMMSS/
443
+
generation.log # Detailed generation log
444
+
GROUND_TRUTH.md # Attack ground truth (if malicious activity present)
445
+
windows_events.xml # Windows Event Logs
446
+
zeek_conn.log # Zeek connection logs
447
+
syslog.log # Linux syslogs
448
+
snort_alerts.log # Snort/Suricata alerts
449
+
web_access.log # Web/proxy logs
450
+
.checkpoints/ # Resume checkpoints (deleted on success)
451
+
```
452
+
453
+
**GROUND_TRUTH.md Format**
454
+
455
+
When a scenario includes malicious or suspicious activities (not baseline-only scenarios), the generator creates a GROUND_TRUTH.md file documenting the attack for training and evaluation purposes.
456
+
457
+
```markdown
458
+
# Ground Truth: [Scenario Name]
459
+
460
+
Generated: YYYY-MM-DD HH:MM:SS UTC
461
+
Time Window: [start] to [end]
462
+
463
+
## Attack Summary
464
+
465
+
[Narrative description of the malicious/suspicious activities. Excludes benign baseline
466
+
activity. Describes the attack from initial access through objectives, including
467
+
techniques used, systems compromised, data accessed, etc.]
468
+
469
+
## Timeline
470
+
471
+
Chronological sequence of key malicious events. Each entry includes:
472
+
- Timestamp (ISO 8601 format)
473
+
- Optional record ID (EventRecordID, UID, line number) if applicable
474
+
- Human-readable description with relevant context
475
+
476
+
Format:
477
+
YYYY-MM-DDTHH:MM:SS.ssssssZ [RecordID: 12345] - Description with IOCs
478
+
479
+
Example:
480
+
2024-01-15T10:23:45.123456Z [EventRecordID: 12345] - Initial access: Threat actor logged in to WIN-TEST-01 as CORP\jdoe from source IP 203.0.113.50
481
+
2024-01-15T10:24:12.789012Z - C2 communication: Outbound connection from 192.168.1.100 to C2 server 198.51.100.45:443
482
+
2024-01-15T10:25:03.456789Z [EventRecordID: 12389] - Credential dumping: Process mimikatz.exe (PID 4532) executed by CORP\jdoe
483
+
484
+
## Indicators of Compromise (IOCs)
485
+
486
+
Atomic indicators that can be searched for in the logs to identify malicious activity.
487
+
Grouped by type for easy reference.
488
+
489
+
### Network Indicators
490
+
- Attacker IP addresses: 203.0.113.50, 198.51.100.45
0 commit comments