@blamejs/exceptd-skills 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/AGENTS.md +232 -0
  2. package/ARCHITECTURE.md +267 -0
  3. package/CHANGELOG.md +616 -0
  4. package/CONTEXT.md +203 -0
  5. package/LICENSE +200 -0
  6. package/NOTICE +82 -0
  7. package/README.md +307 -0
  8. package/SECURITY.md +73 -0
  9. package/agents/README.md +81 -0
  10. package/agents/report-generator.md +156 -0
  11. package/agents/skill-updater.md +102 -0
  12. package/agents/source-validator.md +119 -0
  13. package/agents/threat-researcher.md +149 -0
  14. package/bin/exceptd.js +183 -0
  15. package/data/_indexes/_meta.json +88 -0
  16. package/data/_indexes/activity-feed.json +362 -0
  17. package/data/_indexes/catalog-summaries.json +229 -0
  18. package/data/_indexes/chains.json +7135 -0
  19. package/data/_indexes/currency.json +359 -0
  20. package/data/_indexes/did-ladders.json +451 -0
  21. package/data/_indexes/frequency.json +2072 -0
  22. package/data/_indexes/handoff-dag.json +476 -0
  23. package/data/_indexes/jurisdiction-clocks.json +967 -0
  24. package/data/_indexes/jurisdiction-map.json +536 -0
  25. package/data/_indexes/recipes.json +319 -0
  26. package/data/_indexes/section-offsets.json +3656 -0
  27. package/data/_indexes/stale-content.json +14 -0
  28. package/data/_indexes/summary-cards.json +1736 -0
  29. package/data/_indexes/theater-fingerprints.json +381 -0
  30. package/data/_indexes/token-budget.json +2137 -0
  31. package/data/_indexes/trigger-table.json +1374 -0
  32. package/data/_indexes/xref.json +818 -0
  33. package/data/atlas-ttps.json +282 -0
  34. package/data/cve-catalog.json +496 -0
  35. package/data/cwe-catalog.json +1017 -0
  36. package/data/d3fend-catalog.json +738 -0
  37. package/data/dlp-controls.json +1039 -0
  38. package/data/exploit-availability.json +67 -0
  39. package/data/framework-control-gaps.json +1255 -0
  40. package/data/global-frameworks.json +2913 -0
  41. package/data/rfc-references.json +324 -0
  42. package/data/zeroday-lessons.json +377 -0
  43. package/keys/public.pem +3 -0
  44. package/lib/framework-gap.js +328 -0
  45. package/lib/job-queue.js +195 -0
  46. package/lib/lint-skills.js +536 -0
  47. package/lib/prefetch.js +372 -0
  48. package/lib/refresh-external.js +713 -0
  49. package/lib/schemas/cve-catalog.schema.json +151 -0
  50. package/lib/schemas/manifest.schema.json +106 -0
  51. package/lib/schemas/skill-frontmatter.schema.json +113 -0
  52. package/lib/scoring.js +149 -0
  53. package/lib/sign.js +197 -0
  54. package/lib/ttp-mapper.js +80 -0
  55. package/lib/validate-catalog-meta.js +198 -0
  56. package/lib/validate-cve-catalog.js +213 -0
  57. package/lib/validate-indexes.js +83 -0
  58. package/lib/validate-package.js +162 -0
  59. package/lib/validate-vendor.js +85 -0
  60. package/lib/verify.js +216 -0
  61. package/lib/worker-pool.js +84 -0
  62. package/manifest-snapshot.json +1833 -0
  63. package/manifest.json +2108 -0
  64. package/orchestrator/README.md +124 -0
  65. package/orchestrator/dispatcher.js +140 -0
  66. package/orchestrator/event-bus.js +146 -0
  67. package/orchestrator/index.js +874 -0
  68. package/orchestrator/pipeline.js +201 -0
  69. package/orchestrator/scanner.js +327 -0
  70. package/orchestrator/scheduler.js +137 -0
  71. package/package.json +113 -0
  72. package/sbom.cdx.json +158 -0
  73. package/scripts/audit-cross-skill.js +261 -0
  74. package/scripts/audit-perf.js +160 -0
  75. package/scripts/bootstrap.js +205 -0
  76. package/scripts/build-indexes.js +721 -0
  77. package/scripts/builders/activity-feed.js +79 -0
  78. package/scripts/builders/catalog-summaries.js +67 -0
  79. package/scripts/builders/currency.js +109 -0
  80. package/scripts/builders/cwe-chains.js +105 -0
  81. package/scripts/builders/did-ladders.js +149 -0
  82. package/scripts/builders/frequency.js +89 -0
  83. package/scripts/builders/jurisdiction-clocks.js +126 -0
  84. package/scripts/builders/recipes.js +159 -0
  85. package/scripts/builders/section-offsets.js +162 -0
  86. package/scripts/builders/stale-content.js +171 -0
  87. package/scripts/builders/summary-cards.js +166 -0
  88. package/scripts/builders/theater-fingerprints.js +198 -0
  89. package/scripts/builders/token-budget.js +96 -0
  90. package/scripts/check-manifest-snapshot.js +217 -0
  91. package/scripts/predeploy.js +267 -0
  92. package/scripts/refresh-manifest-snapshot.js +57 -0
  93. package/scripts/refresh-sbom.js +222 -0
  94. package/skills/age-gates-child-safety/skill.md +456 -0
  95. package/skills/ai-attack-surface/skill.md +282 -0
  96. package/skills/ai-c2-detection/skill.md +440 -0
  97. package/skills/ai-risk-management/skill.md +311 -0
  98. package/skills/api-security/skill.md +287 -0
  99. package/skills/attack-surface-pentest/skill.md +381 -0
  100. package/skills/cloud-security/skill.md +384 -0
  101. package/skills/compliance-theater/skill.md +365 -0
  102. package/skills/container-runtime-security/skill.md +379 -0
  103. package/skills/coordinated-vuln-disclosure/skill.md +473 -0
  104. package/skills/defensive-countermeasure-mapping/skill.md +300 -0
  105. package/skills/dlp-gap-analysis/skill.md +337 -0
  106. package/skills/email-security-anti-phishing/skill.md +206 -0
  107. package/skills/exploit-scoring/skill.md +331 -0
  108. package/skills/framework-gap-analysis/skill.md +374 -0
  109. package/skills/fuzz-testing-strategy/skill.md +313 -0
  110. package/skills/global-grc/skill.md +564 -0
  111. package/skills/identity-assurance/skill.md +272 -0
  112. package/skills/incident-response-playbook/skill.md +546 -0
  113. package/skills/kernel-lpe-triage/skill.md +303 -0
  114. package/skills/mcp-agent-trust/skill.md +326 -0
  115. package/skills/mlops-security/skill.md +325 -0
  116. package/skills/ot-ics-security/skill.md +340 -0
  117. package/skills/policy-exception-gen/skill.md +437 -0
  118. package/skills/pqc-first/skill.md +546 -0
  119. package/skills/rag-pipeline-security/skill.md +294 -0
  120. package/skills/researcher/skill.md +310 -0
  121. package/skills/sector-energy/skill.md +409 -0
  122. package/skills/sector-federal-government/skill.md +302 -0
  123. package/skills/sector-financial/skill.md +398 -0
  124. package/skills/sector-healthcare/skill.md +373 -0
  125. package/skills/security-maturity-tiers/skill.md +464 -0
  126. package/skills/skill-update-loop/skill.md +463 -0
  127. package/skills/supply-chain-integrity/skill.md +318 -0
  128. package/skills/threat-model-currency/skill.md +404 -0
  129. package/skills/threat-modeling-methodology/skill.md +312 -0
  130. package/skills/webapp-security/skill.md +281 -0
  131. package/skills/zeroday-gap-learn/skill.md +350 -0
  132. package/vendor/blamejs/LICENSE +201 -0
  133. package/vendor/blamejs/README.md +54 -0
  134. package/vendor/blamejs/_PROVENANCE.json +54 -0
  135. package/vendor/blamejs/retry.js +335 -0
  136. package/vendor/blamejs/worker-pool.js +418 -0
@@ -0,0 +1,365 @@
1
+ ---
2
+ name: compliance-theater
3
+ version: "1.0.0"
4
+ description: Detect where an organization passes an audit but remains exposed — seven documented compliance theater patterns with specific detection tests
5
+ triggers:
6
+ - compliance theater
7
+ - paper compliance
8
+ - audit but exposed
9
+ - compliant but vulnerable
10
+ - compliance gap
11
+ - checkbox security
12
+ - audit theater
13
+ data_deps:
14
+ - framework-control-gaps.json
15
+ - cve-catalog.json
16
+ - exploit-availability.json
17
+ atlas_refs: []
18
+ attack_refs: []
19
+ framework_gaps:
20
+ - ALL-AI-PIPELINE-INTEGRITY
21
+ - ALL-PROMPT-INJECTION-ACCESS-CONTROL
22
+ - FedRAMP-Rev5-Moderate
23
+ - CMMC-2.0-Level-2
24
+ last_threat_review: "2026-05-01"
25
+ ---
26
+
27
+ # Compliance Theater Detection
28
+
29
+ Compliance theater is the condition where an organization passes an audit of a security control while remaining exposed to the threat that control is supposed to address. It is not fraud — the control exists, operates, and generates the required evidence. The problem is the control was designed for a different threat environment.
30
+
31
+ This skill identifies the specific, testable conditions where audit-passing controls provide no real protection.
32
+
33
+ ---
34
+
35
+ ## Threat Context (mid-2026)
36
+
37
+ The defining mid-2026 reality is that an organization can pass a clean ISO 27001:2022, SOC 2 Type II, or PCI DSS 4.0 audit while remaining exposed to KEV-listed deterministic LPEs and zero-interaction RCEs. The contrast cases drive every theater pattern below:
38
+
39
+ - **CVE-2026-31431 (Copy Fail)** — Linux kernel LPE, CISA KEV, AI-discovered in approximately one hour, deterministic 732-byte public PoC, no race condition. An organization with an A.8.8 / SI-2 / PCI 6.3.3 program that meets the framework's "appropriate timescale" language (commonly 30 days for High) is *passing the audit* during the active-exploitation window. This is the canonical Patch Management Theater case. Catalog entry: `data/cve-catalog.json`.
40
+ - **CVE-2026-30615 (Windsurf MCP zero-interaction RCE)** — 150M+ affected downloads. An organization's CC9 / SA-12 / A.5.19 vendor management program rated as "operating effectively" by an auditor typically has zero coverage of MCP servers running in developer environments. The vendor-management control passes the audit and provides no control surface for the attack class. Catalog entry: `data/cve-catalog.json`.
41
+ - **CVE-2025-53773 (GitHub Copilot prompt-injection RCE)** — CVSS 9.6. An organization's SOC 2 CC6 access control program is rated "passed" while prompt injection executes attacker-chosen actions using the AI service account's authorized identity. The audit evidence (IAM reviews, access logs with no unauthorized events) is correct and complete; it provides zero signal about the intrusion.
42
+
43
+ In each case, a real-world public exploit produced by current adversary TTPs renders a passing audit non-informative about actual security posture. The seven theater patterns below codify the most common recurrences of this pattern.
44
+
45
+ ---
46
+
47
+ ## Framework Lag Declaration
48
+
49
+ Compliance theater is the operational shadow of framework lag. Per-framework lag statements that drive the theater patterns in this skill:
50
+
51
+ | Framework | Control | Lag (what the control language does not cover) |
52
+ |---|---|---|
53
+ | SOC 2 | CC6 (Logical and Physical Access) | Logical-access language was drafted for human-controlled accounts and machine identities in traditional IAM. It does not cover prompt injection as an access control bypass: the AI service account is authorized, monitored, and within least-privilege scope; the attacker's intent travels through the model's context window and never appears in access logs. See CVE-2025-53773. |
54
+ | ISO 27001:2022 | A.8.8 (Management of Technical Vulnerabilities) | "Appropriate timescales" is undefined; auditor practice typically reads as 30 days for High / 90 days for Medium. The language does not operationalize the CISA KEV class. For CVE-2026-31431 these timescales mean active exploitation during the "compliant" remediation window. |
55
+ | PCI DSS 4.0 | 6.3.3 (Patches) | The one-month critical-patch window predates AI-assisted exploit development. For any CVE with CISA KEV listing and a public PoC, the one-month window is an exploitation-acceptance window, not a security window. |
56
+ | SOC 2 | CC7 (System Operations) | Anomaly detection guidance has no baseline for AI API traffic, AI-as-C2 (SesameOp), or PROMPTFLUX behavioral patterns. The control passes the audit with no AI-relevant detection surface. |
57
+ | ISO 27001:2022 | A.5.19 / A.5.20 (Supplier relationships) | Drafted for SaaS and outsourced-service vendors. Does not cover MCP servers as third-party code executing inside the developer environment, nor LLM API providers as data processors for sensitive prompt content. |
58
+ | NIST 800-53 | CM-3 (Configuration Change Control) | Drafted for changes the organization controls. LLM model updates by external providers occur without operator notification or consent, on the provider's schedule, and can alter safety-relevant behavior. The change-management control passes the audit and has zero coverage of this change vector. |
59
+ | NIST 800-53 | AT-2 (Security Awareness Training) | Drafted against human-template phishing. 82.6% of phishing emails now contain AI-generated content. Grammar/style heuristics are no longer reliable detectors. A < 5% click rate on human-generated simulations says nothing about resistance to AI-generated highly personalized spear-phishing. |
60
+ | US FedRAMP | Rev 5 Moderate baseline | Authorization-as-evidence pattern. A current ATO certifies that the CSP's control implementation was assessed against the Rev 5 Moderate baseline at a point in time. It does not certify that the CSP has any control over MCP servers running in tenant developer environments, prompt-injection attack surface in AI features, or AI-API providers used downstream. The Authority To Operate is treated by procurement as a security guarantee — Pattern 6 (Vendor/Third-Party Risk Theater) recurs at the federal-cloud layer. |
61
+ | US DoD | CMMC 2.0 Level 2 (110 NIST 800-171 practices) | Certification-as-evidence pattern. A Level 2 certificate attests to assessor-verified implementation of the 110 practices at the time of assessment. It does not cover AI coding-assistant supply chain, MCP server trust on engineering workstations developing CUI-touching software, or model-update change control. The same Pattern 5 (Change Management Theater) and Pattern 6 (Vendor Management Theater) patterns recur with sharper consequences because CMMC gates DoD contract eligibility. |
62
+
63
+ The pre-analyzed gaps for these controls live in the framework-gap-analysis skill's Built-In Gap Catalog. This skill consumes those gaps and produces a theater detection per gap.
64
+
65
+ ---
66
+
67
+ ## TTP Mapping (MITRE ATLAS v5.1.0 and ATT&CK)
68
+
69
+ Each theater pattern below maps to one or more attacker TTPs in `data/atlas-ttps.json` and MITRE ATT&CK Enterprise. The mapping is what distinguishes theater from genuine compliance: a control claimed as compensating must map to a TTP it actually disrupts.
70
+
71
+ | Theater pattern | Primary TTPs | Bypass mechanism |
72
+ |---|---|---|
73
+ | Patch Management Theater (Pattern 1) | T1068 (Exploitation for Privilege Escalation), T1203 (Exploitation for Client Execution) | Public PoC + KEV + AI-accelerated weaponization compresses the exploitation window inside the SLA |
74
+ | Network Segmentation Theater — IPsec (Pattern 2) | T1190 (Exploit Public-Facing Application) targeting the IPsec kernel subsystem | The control's cryptographic mechanism is the attack surface |
75
+ | Access Control Theater — AI Agents (Pattern 3) | AML.T0051 (LLM Prompt Injection), AML.T0054 (Craft Adversarial Data — NLP), T1059 (Command and Scripting Interpreter) | Authorized service account executes attacker-chosen actions; no identity boundary is crossed |
76
+ | Incident Response Theater — AI Pipeline (Pattern 4) | AML.T0020 (Poison Training Data), AML.T0096 (LLM Integration Abuse as C2), AML.T0010 (ML Supply Chain Compromise) | Detection triggers do not exist, so documented IR procedures have no input |
77
+ | Change Management Theater — AI Models (Pattern 5) | AML.T0018 (Backdoor ML Model), AML.T0020 | Externally-managed model updates bypass operator change control entirely |
78
+ | Vendor/Third-Party Risk Theater — AI APIs (Pattern 6) | AML.T0010 (ML Supply Chain Compromise) | MCP servers and LLM APIs sit outside the vendor-management scope |
79
+ | Security Awareness Theater — AI Phishing (Pattern 7) | T1566 (Phishing), AML.T0016 (Acquire Public ML Artifacts — misuse) | AI-generated content evades grammar/style heuristics and template-matching detectors |
80
+
81
+ Source-of-truth TTP catalog: `data/atlas-ttps.json` (pinned to MITRE ATLAS v5.1.0, November 2025). Any theater claim in an assessment must cite at least one TTP ID from that catalog or an ATT&CK Enterprise ID — claims without a mapped TTP fail Hard Rule #4 (no orphaned controls).
82
+
83
+ ---
84
+
85
+ ## Exploit Availability Matrix
86
+
87
+ The theater patterns most acutely under attack today are those backed by high-RWEP entries in `data/cve-catalog.json`. Prioritize remediation of theater flags in this order:
88
+
89
+ | Theater pattern | Evidence CVE | CVSS | RWEP tier | KEV | Public PoC | AI-accelerated | Live-patchable | Active exploitation |
90
+ |---|---|---|---|---|---|---|---|---|
91
+ | Patch Management Theater | CVE-2026-31431 (Copy Fail) | High | Critical | Yes | Yes (732 bytes, deterministic) | Yes (AI-discovered) | Yes (kpatch/livepatch) | Confirmed |
92
+ | Vendor Management Theater (AI APIs / MCP) | CVE-2026-30615 (Windsurf MCP) | 9.8 | Critical | No | Partial | No | N/A (vendor-side) | Suspected |
93
+ | Access Control Theater (AI agents) | CVE-2025-53773 (Copilot prompt injection RCE) | 9.6 | High | No | Yes (demonstrated) | Yes (AI tooling enables) | N/A (vendor-side) | Suspected |
94
+ | Network Segmentation Theater (IPsec) | CVE-2026-43284 (Dirty Frag) | High | High | Pending | Partial | No | Limited (subsystem-dependent) | Suspected |
95
+ | Incident Response Theater (AI pipeline) | SesameOp campaign + AML.T0096 | N/A | High | N/A | ATLAS-documented | Yes | N/A | Confirmed campaign |
96
+ | Change Management Theater (AI models) | Continuous provider updates | N/A | Medium | N/A | N/A | N/A | N/A | Ongoing (uncontrolled) |
97
+ | Security Awareness Theater (AI phishing) | AI-generated phishing baseline (82.6%) | N/A | High | N/A | Operational | Yes | N/A | Confirmed (industry-wide) |
98
+
99
+ The first three rows (Critical / Critical / High RWEP with public PoC or active exploitation) are the most dangerous theater patterns to leave un-remediated. Pull authoritative scoring from `data/exploit-availability.json` and `data/cve-catalog.json` before producing the output.
100
+
101
+ ---
102
+
103
+ ## Theater Pattern Library
104
+
105
+ ### Pattern 1: Patch Management Theater
106
+
107
+ **The claim:** "We have a patch management program. All Critical/High CVEs are remediated within 30 days."
108
+
109
+ **The audit evidence:** Patch management policy document, ticketing system showing CVEs opened and closed within SLA, vulnerability scanner reports showing declining open vulnerabilities.
110
+
111
+ **The reality:** CVE-2026-31431 (Copy Fail) was CISA KEV listed on 2026-03-15 with a public 732-byte exploit script. A 30-day SLA means an organization can be "compliant" while having a public deterministic root exploit unpatched for 30 days. During that window: active exploitation confirmed.
112
+
113
+ **Why it's theater:** The 30-day SLA was designed for environments where weaponization takes weeks. Copy Fail's weaponization time was ~1 hour (AI-discovered and PoC-ready). The control measures compliance with a time window that no longer reflects exploit development reality.
114
+
115
+ **Detection test:**
116
+ ```
117
+ 1. Pull the last 12 months of patch management records
118
+ 2. Filter for CISA KEV entries
119
+ 3. For each CISA KEV entry: calculate time from KEV listing date to verified-patched date
120
+ 4. If any CISA KEV took > 72 hours to patch (or deploy live patch): THEATER FLAG
121
+ 5. Supplemental: does the organization have live kernel patching deployed?
122
+ If no: for any system running a production workload, kernel CVEs require a reboot.
123
+ Ask: when was the last kernel reboot on each production system?
124
+ If > 90 days: THEATER FLAG (likely accumulating unpatched kernel CVEs behind the "compliant" SLA)
125
+ ```
126
+
127
+ **What a real control looks like:** Tiered SLA: CISA KEV = 4 hours to live-patch or isolate; public PoC = 24 hours; Critical (no public PoC) = 72 hours; High = 7 days. Live patching capability deployed and verified quarterly.
128
+
129
+ ---
130
+
131
+ ### Pattern 2: Network Segmentation Theater (IPsec Edition)
132
+
133
+ **The claim:** "We have network segmentation between security zones implemented via IPsec tunnels. SC-8 / PCI DSS Req 1 compliant."
134
+
135
+ **The audit evidence:** Network diagrams showing zone separation, IPsec configuration documentation, firewall rule reviews.
136
+
137
+ **The reality:** CVE-2026-43284 (Dirty Frag) exploits the IPsec subsystem. An unpatched host cannot use IPsec as a compensating control for Dirty Frag — the IPsec implementation is the attack surface. Network controls that rely on IPsec are providing no isolation guarantee for Dirty Frag-exposed hosts.
138
+
139
+ **Why it's theater:** The segmentation control is real. The IPsec configuration is correct. The audit evidence is legitimate. But the control's security guarantee fails specifically for the class of vulnerability that uses IPsec as its attack path.
140
+
141
+ **Detection test:**
142
+ ```
143
+ 1. Identify hosts using IPsec for network segmentation compliance
144
+ 2. Check kernel version: is CVE-2026-43284 patched?
145
+ 3. If unpatched: the IPsec control is not providing the isolation it claims
146
+ 4. Note in risk register: "SC-8/PCI Req 1 IPsec segmentation provides no isolation guarantee
147
+ for CVE-2026-43284-exposed hosts until kernel patch applied."
148
+ 5. THEATER FLAG: any compliance report that claims IPsec segmentation as a compensating
149
+ control without noting CVE-2026-43284 patch status
150
+ ```
151
+
152
+ ---
153
+
154
+ ### Pattern 3: Access Control Theater (AI Agent Edition)
155
+
156
+ **The claim:** "Our access control program (CC6 / AC-2) ensures all system access is authenticated, authorized, and logged."
157
+
158
+ **The audit evidence:** IAM configuration reviews, access logs showing authorized accounts, no unauthorized access events, SOC 2 CC6 pass.
159
+
160
+ **The reality:** AI agent service accounts operate under CC6-compliant access controls. Prompt injection attacks cause the AI agent to take actions using its service account. The actions are authorized from CC6's perspective. The attacker's identity never appears in access logs. The audit evidence is correct and complete — and provides zero signal about the intrusion.
161
+
162
+ **Why it's theater:** CC6 was designed for human-controlled accounts. AI agents with tool use capabilities create an authorization model where model judgment is the gating mechanism, not traditional access control. Prompt injection bypasses the model's judgment — and therefore bypasses the access control — without triggering any CC6 monitoring.
163
+
164
+ **Detection test:**
165
+ ```
166
+ 1. Ask: does the organization have AI systems (coding assistants, chatbots, agents) with
167
+ access to production systems, data, or codebases?
168
+ 2. Ask: are AI agent API calls logged with: (a) full prompt content, (b) tool calls made,
169
+ (c) correlation to initiating user identity?
170
+ 3. If (2) is no: the access control has no visibility into the access pattern that
171
+ prompt injection exploits. THEATER FLAG.
172
+ 4. Ask: is there a behavioral baseline for what actions an AI agent should take?
173
+ Is there alerting when the agent takes unusual actions (accessing files outside normal scope,
174
+ calling tools it doesn't normally use, making external network requests)?
175
+ 5. If no: THEATER FLAG for access control coverage of AI agents
176
+ ```
177
+
178
+ ---
179
+
180
+ ### Pattern 4: Incident Response Theater (AI Pipeline Edition)
181
+
182
+ **The claim:** "We have an incident response program (IR-1 through IR-8 / A.5.24-A.5.28) with documented procedures for detecting, responding to, and recovering from security incidents."
183
+
184
+ **The audit evidence:** IR policy, incident response playbooks, tabletop exercise records, defined roles and responsibilities.
185
+
186
+ **The reality:** The incident response program covers: malware infection, data breach, DDoS, ransomware, insider threat. It does not cover: model poisoning detected in production, prompt injection attack via AI assistant, AI-as-C2 channel discovered in network traffic, SesameOp-style exfiltration via AI API.
187
+
188
+ **Why it's theater:** The IR program passes the audit because it meets the framework's requirements for documented procedures and tested response capabilities. Those capabilities are real for traditional incidents. For AI-specific incidents, the detection mechanisms don't exist (so incidents aren't detected) and the response procedures haven't been written (so response is ad-hoc if detection does occur).
189
+
190
+ **Detection test:**
191
+ ```
192
+ 1. Pull the incident response playbook library
193
+ 2. Search for: "prompt injection", "model poisoning", "AI agent", "LLM", "MCP server"
194
+ 3. If none found: THEATER FLAG — IR program has no AI-specific procedures
195
+ 4. Ask: has the organization conducted a tabletop exercise for an AI-specific incident
196
+ in the last 12 months?
197
+ 5. Ask: what is the detection mechanism for model poisoning?
198
+ (Acceptable answers: model behavioral regression testing, output monitoring,
199
+ model fingerprinting.
200
+ Unacceptable: "our ML team would notice" or "our AV would catch it")
201
+ 6. If detection mechanism doesn't exist: the IR procedures for AI incidents are
202
+ a procedure without a trigger. THEATER FLAG.
203
+ ```
204
+
205
+ ---
206
+
207
+ ### Pattern 5: Change Management Theater (AI Model Edition)
208
+
209
+ **The claim:** "All changes to production systems go through our change management process (CM-3 / A.8.32). Changes are reviewed, approved, and documented."
210
+
211
+ **The audit evidence:** Change management tickets for infrastructure deployments, software releases, configuration changes.
212
+
213
+ **The reality:** LLM models used by the organization are updated continuously by their providers (OpenAI, Anthropic, Google, etc.). These updates change model behavior, capabilities, and potentially safety properties. They do not go through the organization's change management process because the organization does not control them. Behavioral regressions introduced in model updates are not detected by change management controls.
214
+
215
+ **Why it's theater:** The change management control is real and functioning. It controls everything the organization actually controls. But the organization's AI systems depend on externally managed components (the LLMs themselves) that change continuously outside the control perimeter.
216
+
217
+ **Detection test:**
218
+ ```
219
+ 1. List all LLM API dependencies (OpenAI, Anthropic Claude, Google Gemini, Azure OpenAI)
220
+ 2. For each: does a change management ticket get opened when the provider deploys a model update?
221
+ 3. If no: THEATER FLAG — model updates are uncontrolled changes to production AI systems
222
+ 4. Ask: is there a behavioral test suite that runs against AI systems after model updates?
223
+ (Tests that would detect if model behavior changed in security-relevant ways)
224
+ 5. If no: changes to AI system behavior are undetected even if a ticket existed
225
+ 6. Ask: does the organization pin model versions where the API supports it?
226
+ (e.g., gpt-4o-2024-11-20 instead of gpt-4o)
227
+ 7. If no: the organization is accepting continuous uncontrolled behavioral changes
228
+ ```
229
+
230
+ ---
231
+
232
+ ### Pattern 6: Vendor/Third-Party Risk Theater (AI API Edition)
233
+
234
+ **The claim:** "We have a vendor management program (CC9 / SA-12 / A.5.19). All third-party vendors with access to our systems or data undergo security review."
235
+
236
+ **The audit evidence:** Vendor security questionnaires, SOC 2 reports for critical vendors, data processing agreements.
237
+
238
+ **The reality:** AI/LLM APIs (OpenAI, Anthropic, Google, etc.) receive organization data in prompts. Developer workstations have MCP servers installed from public npm registries. Neither category typically undergoes the same vendor review as, say, a cloud storage provider — they're treated as SaaS tools, not vendors with data access.
239
+
240
+ **Why it's theater:** The vendor management program is functional for its intended scope. The scope doesn't include: LLM API providers as data processors for prompt content, MCP server packages as third-party code executing in production environments, AI coding assistants as vendors with access to source code.
241
+
242
+ **Detection test:**
243
+ ```
244
+ 1. List LLM API providers used (OpenAI, Anthropic, Google, Azure OpenAI, Cohere, etc.)
245
+ 2. For each: is there a vendor risk assessment? A DPA? A data classification for what goes in prompts?
246
+ 3. If no DPA for LLM providers handling sensitive data: GDPR/CCPA risk, potential THEATER FLAG
247
+ 4. List MCP servers installed on developer workstations
248
+ 5. For each: did it go through vendor security review?
249
+ 6. If no: the vendor management program has zero coverage for the attack surface where
250
+ CVE-2026-30615 class vulnerabilities occur. THEATER FLAG.
251
+ ```
252
+
253
+ ---
254
+
255
+ ### Pattern 7: Security Awareness Theater (AI Phishing Edition)
256
+
257
+ **The claim:** "We conduct regular security awareness training and phishing simulations. Our click-rate on simulated phishes is < 5%."
258
+
259
+ **The audit evidence:** Training completion records, phishing simulation results showing < 5% click rate, awareness program documentation.
260
+
261
+ **The reality:** 82.6% of phishing emails now contain AI-generated content indistinguishable from legitimate emails by grammar/style checks. Traditional phishing simulation content is crafted by humans using templates. A < 5% click rate on human-generated phishing simulations says nothing about resistance to AI-generated highly personalized spear-phishing.
262
+
263
+ **Why it's theater:** The training and simulation program is real. The click-rate metric is real. But the threat has shifted to AI-generated content that looks nothing like what the simulations train against. The 5% click rate is measured against last generation's phishing, not current generation.
264
+
265
+ **Detection test:**
266
+ ```
267
+ 1. Pull the last 3 phishing simulation reports
268
+ 2. Ask: were any simulation emails AI-generated (not template-based)?
269
+ 3. If no: THEATER FLAG — simulations test resistance to 2021 phishing, not 2026 phishing
270
+ 4. Ask: what are the primary phishing detection signals in the email security gateway?
271
+ Acceptable: sender reputation, link analysis, behavioral signals, sandboxing
272
+ Theater: grammar checks, template matching, "unusual phrasing" rules
273
+ 5. Ask: is MFA deployed and phishing-resistant (hardware keys, passkeys)?
274
+ SMS/TOTP-protected accounts remain fully vulnerable to AI-generated real-time phishing
275
+ If SMS/TOTP and "we have MFA" is the answer: THEATER FLAG for credential theft resistance
276
+ ```
277
+
278
+ ---
279
+
280
+ ## Analysis Procedure
281
+
282
+ ### Step 1: Identify scope
283
+
284
+ Ask for or determine:
285
+ - Which compliance framework(s) the organization is auditing against
286
+ - Which theater patterns are most relevant to their environment (AI systems? Cloud-native? Critical infrastructure?)
287
+ - Recent audit results (what passed)
288
+
289
+ ### Step 2: Run applicable detection tests
290
+
291
+ For each relevant theater pattern:
292
+ 1. Run the detection test
293
+ 2. Record: THEATER FLAG / CLEAR / NEEDS VERIFICATION
294
+ 3. Note specific evidence that supports the finding
295
+
296
+ ### Step 3: Score theater level
297
+
298
+ | Theater Score | Meaning |
299
+ |---|---|
300
+ | 0 flags | Controls appear adequate for current threat reality |
301
+ | 1–2 flags | Targeted gaps — specific controls are theater for specific threats |
302
+ | 3–4 flags | Systematic theater — control program has structural gaps |
303
+ | 5+ flags | Compliance framework mismatch — the framework is not aligned with current threats |
304
+
305
+ ### Step 4: Generate output
306
+
307
+ ---
308
+
309
+ ## Output Format
310
+
311
+ ```
312
+ ## Compliance Theater Assessment
313
+
314
+ **Date:** YYYY-MM-DD
315
+ **Framework(s):** [in scope]
316
+
317
+ ### Theater Detection Results
318
+
319
+ | Pattern | Finding | Key Evidence |
320
+ |---------|---------|--------------|
321
+ | Patch Management | THEATER / CLEAR | [e.g., "CISA KEV average remediation time: 18 days"] |
322
+ | Network Segmentation (IPsec) | THEATER / CLEAR | [e.g., "CVE-2026-43284 unpatched on 12 of 40 hosts using IPsec"] |
323
+ | Access Control (AI Agents) | THEATER / CLEAR | [e.g., "No prompt-level logging on Copilot deployments"] |
324
+ | Incident Response (AI) | THEATER / CLEAR | [e.g., "Zero AI-specific playbooks in IR library"] |
325
+ | Change Management (Models) | THEATER / CLEAR | [e.g., "No model version pinning, no behavioral test suite"] |
326
+ | Vendor Management (AI APIs) | THEATER / CLEAR | [e.g., "3 LLM providers, 0 vendor risk assessments"] |
327
+ | Security Awareness (AI Phishing) | THEATER / CLEAR | [e.g., "Zero AI-generated simulation emails in last 12 months"] |
328
+
329
+ ### Theater Score: [X/7 flags]
330
+
331
+ ### Auditor-Facing Remediation Language
332
+ [Per theater flag: specific evidence gap, what a closed gap looks like,
333
+ what a compensating control declaration requires]
334
+
335
+ ### Priority Remediation Roadmap
336
+ [Ordered by RWEP impact: most dangerous theater first]
337
+ ```
338
+
339
+ ---
340
+
341
+ ## Compliance Theater Check
342
+
343
+ This skill *is* the compliance theater check. The seven pattern tests above produce theater findings; the universal test below is the single question that drives every one of them.
344
+
345
+ > **For each control the organization claims as compensating, demand the publicly documented attacker TTP that bypasses it, mapped to a specific MITRE ATLAS or ATT&CK ID resolvable in `data/atlas-ttps.json`.**
346
+
347
+ Decision rule:
348
+
349
+ - The org names a documented TTP and the control's mechanism does not disrupt it → the compensating-control claim is theater. Record the theater flag with the TTP ID and the bypass mechanism.
350
+ - The org cannot name any TTP → the claim is unsubstantiated; treat as theater pending verification. The most common variant is "we have controls that would handle that" where no one has traced the control to a specific bypass mechanism.
351
+ - The org names a TTP and the control verifiably disrupts it (e.g., the bypass requires a precondition the control prevents) → the claim is genuine, not theater. Record as CLEAR with the TTP ID as the disrupted technique.
352
+
353
+ Applied at the level of the seven theater patterns:
354
+
355
+ | Pattern | Demand this evidence | Theater signal |
356
+ |---|---|---|
357
+ | 1 Patch Management | Time from CISA KEV listing to verified-patched for last 12 months of KEV entries | Any KEV entry > 72 hours unmitigated |
358
+ | 2 Network Segmentation (IPsec) | CVE-2026-43284 patch status on every host whose segmentation evidence cites IPsec | Any unpatched host in the IPsec compliance scope |
359
+ | 3 Access Control (AI agents) | Prompt-level logging + behavioral baseline for AI agent tool use | Absence of prompt-level visibility |
360
+ | 4 Incident Response (AI) | IR playbook search results for prompt injection / model poisoning / MCP / AI-as-C2 | Zero matches in playbook library |
361
+ | 5 Change Management (AI models) | Model version pinning + behavioral regression test suite + provider changelog review cadence | Any of the three missing |
362
+ | 6 Vendor Management (AI APIs) | DPA + risk assessment for every LLM provider; vendor review record for every installed MCP server | Any AI provider or MCP server without vendor-management evidence |
363
+ | 7 Security Awareness (AI phishing) | AI-generated content proportion in last 3 phishing simulations + phishing-resistant MFA deployment | Zero AI-generated simulation content or SMS/TOTP-only MFA |
364
+
365
+ The output is consumed by policy-exception-gen (to convert theater flags into defensible exceptions with real compensating controls), framework-gap-analysis (to escalate any newly discovered theater pattern into a Framework Lag Declaration), and global-grc (to roll up theater findings across EU/UK/AU/ISO jurisdictions per Hard Rule #5).