plugins/security-engineering/skills/physical-threat-modeling/SKILL.md
Threat library for physical-access threats STRIDE and OWASP Top 10 miss — evil-maid, DMA, hostile peripheral, travel-host, coercion, cold-boot, side-channel.
npx skillsauth add jmagly/aiwg physical-threat-modelingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Threat library for systems that face physical-access adversaries. Use when designing or reviewing systems that travel, are stored unattended, are operated in shared spaces, or face threat actors with momentary physical access (border crossings, hotel rooms, conferences, theft of laptops).
STRIDE and OWASP Top 10 implicitly assume a network adversary against a fixed-asset server. Their threat enumeration is silent on physical attacks — the threat model literally doesn't have categories for "evil-maid swap" or "Thunderbolt DMA". This skill fills that gap.
forensics-complete)The library lists ten canonical physical-access threats. For each: applicability conditions, attacker capabilities required, detection difficulty, and remediation patterns. The remediation patterns are references to other skills' solutions — this skill is the enumeration.
Description: Adversary with brief physical access modifies code that runs before the integrity chain is established (bootloader, init scripts on writable media, USB bootstrap files).
Applicability:
Attacker capability: ~5–30 minutes physical access, basic technical skill, ability to write to the device or swap it.
Detection difficulty: Hard — the swap is functionally transparent until the operator runs something that reveals tampering, which the modified bootstrap can prevent.
Remediation: chain-of-trust-design skill — Pattern A (signed bootstrap blob) + Pattern D (printed hash card), or Pattern B (signed live image so the host code itself isn't on the writable media). Maps to review finding B3.
Description: Adversary plugs a hostile DMA-capable peripheral into a Thunderbolt or USB-C port (with PCIe tunneling) and reads RAM via direct memory access, bypassing OS protections.
Applicability:
Attacker capability: 30–60 seconds, commodity attack tool (PCILeech, Inception), direct port access.
Detection difficulty: Detection-only via post-hoc memory analysis. Real-time detection requires DMAR/IOMMU event logging.
Remediation:
Thunderbolt Security Level: User Authorization or DisplayPort Only)intel_iommu=on iommu=pt Linux kernel)Maps to review finding H4.
Description: Adversary hands or plants a USB device that presents itself as a HID (keyboard) and runs commands, OR presents itself as a network adapter and intercepts traffic, OR presents as a mass storage device and exploits autorun.
Applicability:
/sys/bus/usb/.../authorized) not enforcedAttacker capability: Pre-attack hardware preparation; one-shot usage; deniability.
Detection difficulty: Hard at runtime; possible via USB authorization logs, USBGuard rules.
Remediation:
USBGuard) with allowlistDescription: The host the operator uses to access the secret system is itself compromised at the OS or firmware level. Anything that runs on it — including the secrets pipeline — is observed by the adversary.
Applicability:
Attacker capability: Persistent root malware; potentially firmware persistence.
Detection difficulty: Hard — root malware can hide from standard tools.
Remediation: This is the single highest-leverage mitigation for portable secret systems.
chain-of-trust-design). The host stops being a trust dependency.Maps to review finding H4.
Description: Adversary compels the operator (legally, threateningly, or via deception) to authenticate against the secret system.
Applicability:
Attacker capability: Physical access to operator AND device.
Detection difficulty: After-the-fact; sometimes never.
Remediation: auth-factor-design skill —
Maps to review finding H2.
Description: Adversary cools and removes RAM modules (or freezes the host with liquid nitrogen) to preserve the contents long enough to read out secrets that were unlocked in memory.
Applicability:
Attacker capability: Physical access; cooling spray (commodity); 5–10 minutes uninterrupted.
Detection difficulty: Impossible at runtime; possible via post-hoc inventory check.
Remediation:
Description: A device is intercepted in supply chain (during shipment, at customs, by a malicious supplier) and a hardware implant is added — modified firmware, added microcontroller on motherboard, modified USB cable.
Applicability:
Attacker capability: Resourced adversary — nation-state, well-funded criminal group.
Detection difficulty: Very hard. Requires hardware teardown + comparison to known-good.
Remediation:
Description: Adversary observes physical emanations from the device — fan noise, EM radiation, power consumption, thermal output — and infers cryptographic operations, key bits, or content.
Applicability:
Attacker capability: Specialized equipment for advanced attacks; acoustic and timing attacks have been demonstrated with consumer microphones.
Detection difficulty: Detection-only via specialized monitoring.
Remediation:
Description: Adversary observes the screen or keyboard during operation — direct shoulder-surf, hidden camera, reflection in glass.
Applicability:
Attacker capability: Trivial — anyone with line of sight or a phone camera.
Detection difficulty: Easy if you're paying attention; hard otherwise.
Remediation:
Description: Adversary obtains the device but does not have keys, bio, or operator. Pure theft scenario.
Applicability: Always relevant for portable assets.
Attacker capability: Has the device; can attempt offline brute force, can preserve for later authenticated access.
Detection difficulty: Operator typically notices loss within hours; some scenarios (luggage skimming) may not be noticed.
Remediation:
This is the expected scenario the system is designed for. If the design fails this scenario, the design is broken.
Not every system needs to consider every threat. Walk this tree to identify which threats apply:
Is the asset portable (travels with operator)?
├── YES → Threats 1, 2, 3, 4, 5, 6, 9, 10 apply
│ If high-value target: + 7
│ If TEMPEST-relevant operation: + 8
└── NO (datacenter / fixed)
├── Is the asset accessible to non-employees (cleaning, contractors)?
│ ├── YES → Threats 1, 3, 6 apply (limited)
│ └── NO (controlled DC) → Threats 7, 8 apply (resourced adversary only)
For each applicable threat, document in physical-threat-scenarios.md (template):
| Threat | Primary mitigation skill |
|---|---|
| 1. Evil-maid bootstrap swap | chain-of-trust-design |
| 2. DMA attack | (BIOS-level config; no skill — see Threat 2 remediation above) |
| 3. Hostile USB peripheral | (USB authorization; no skill yet) |
| 4. Travel-host compromise | chain-of-trust-design Pattern B (signed live image) |
| 5. Coercion | auth-factor-design (PIN factor, duress) |
| 6. Cold-boot RAM | secret-handling-runtime (memory hygiene); BIOS-level S5 lock |
| 7. Hardware implant | supply-chain-trust (procurement, diversity) |
| 8. Side-channel | (constant-time libs; physical shielding) |
| 9. Shoulder-surf | (operational pattern; privacy filter) |
| 10. Lost device | LUKS + factor separation (basic hygiene) |
This skill flags Threat 1 as in-scope. Mitigation per chain-of-trust-design (Pattern A + D). Cross-reference recorded in physical-threat-scenarios.md and chain-of-trust-design.md.
This skill flags Threats 1, 2, 4, 6 as all in-scope for portable operator secrets system. Mitigations:
chain-of-trust-design.md open assumptions)When invoked, produce a physical-threat-scenarios.md document (template) covering applicable threats, mitigations, and residual risk. When invoked as part of a review, produce findings in standard format identifying threats not yet addressed.
This skill is also referenced by sdlc-complete/skills/security-assessment when the threat-model template's "Physical Access Considerations" section is non-empty (see Tier 2 issue #1079).
sdlc-complete/templates/security/threat-model-template.md will be extended with a "Physical Access Considerations" section that triggers this skill (#1079)physical-threat-scenarios.mdchain-of-trust-design, auth-factor-design, secret-handling-runtime, supply-chain-trustdata-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.