DRAGNET Threat Model¶
Assets¶
- Integrity of the evidence and of the custody log
- Correctness and calibration of the attribution output
- The campaign knowledge graph
Trust boundaries¶
- Evidence JSON files come from REVENANT/VITRINE or an analyst. They are treated as untrusted input.
- The knowledge-graph JSON is analyst-curated and trusted only to the extent of its provenance.
- Reports go to human analysts.
Threats and mitigations (STRIDE-style)¶
| Threat | Example | Mitigation | Gap / TODO |
|---|---|---|---|
| Adversarial false flag (primary) | Attacker plants a Rich header, locale strings or mutexes tied to another actor | Forgeable kinds are low-weight and cannot attribute alone. Rule-based false-flag indicators. Mandatory FALSE_FLAG hypothesis. Confidence withheld when it leads |
Deeper forgery checks, e.g. Rich-header vs. linker consistency |
| Evidence or report tampering | Evidence changed after ingestion; verdict, confidence or weights edited in a signed report | Per-item SHA-256, hash-chained custody log, optional Ed25519 signature over the canonical report body and the chain head (keygen, assess --sign-key, verify --pub); any edit to the body or chain fails verify (exit 1), chain-only signatures from <= 1.1.0 are flagged LEGACY |
Key management; no external timestamping; STIX bundles are not signed |
| Overconfidence / analyst anchoring | Single code-similarity hit read as proof | Noisy-OR caps any single signal; specificity weighting; HIGH requires 2 anchor kinds and a margin. "Raise/lower confidence" guidance. Calibration measured (Brier/ECE, accuracy per grade) in results/RESULTS.md |
Raw scores are not calibrated; an isotonic map is evaluated on a temporal split (section R) |
| KG poisoning | Wrong or fabricated campaign IOCs | Graph built only from pinned, checksummed public sources (ATT&CK, MISP galaxy) plus manifest-recorded abuse.ch snapshots; every curated kg_additions edge cites a source |
No per-edge source-reliability grading |
| Feed pollution | Shared packer / .NET-stub imphashes or commodity IOCs pulling in unrelated actors | Imphash collision filter (> 2 families dropped); specificity weighting; min ThreatFox confidence | Commodity malware attributed by ATT&CK to a few groups still links |
| Shared infrastructure | CDN or VPS IP overlap misread as actor link | Listed under "lower confidence" guidance | Automated shared-hosting and sinkhole enrichment |
| Malicious input files | Oversized or malformed JSON | Strict schema checks (IngestError), API body and evidence-count limits (413/422), stdlib json only, no sample execution |
Streaming parse for very large offline cases |
| Information disclosure | Reports leak victim data | Fixtures contain only public IOCs/metadata of documented incidents, no victim data | Redaction pass |
| Malicious dataset download | Tampered upstream file | Pinned SHA-256 for ATT&CK/MISP/APTnotes; zip/JSON structural validation; metadata only, nothing executed | abuse.ch exports cannot be pinned (daily) |
Out of scope¶
Live malware handling (SPECIMEN lab), network enrichment, and any offensive or "hack-back" use.