@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.
- package/AGENTS.md +232 -0
- package/ARCHITECTURE.md +267 -0
- package/CHANGELOG.md +616 -0
- package/CONTEXT.md +203 -0
- package/LICENSE +200 -0
- package/NOTICE +82 -0
- package/README.md +307 -0
- package/SECURITY.md +73 -0
- package/agents/README.md +81 -0
- package/agents/report-generator.md +156 -0
- package/agents/skill-updater.md +102 -0
- package/agents/source-validator.md +119 -0
- package/agents/threat-researcher.md +149 -0
- package/bin/exceptd.js +183 -0
- package/data/_indexes/_meta.json +88 -0
- package/data/_indexes/activity-feed.json +362 -0
- package/data/_indexes/catalog-summaries.json +229 -0
- package/data/_indexes/chains.json +7135 -0
- package/data/_indexes/currency.json +359 -0
- package/data/_indexes/did-ladders.json +451 -0
- package/data/_indexes/frequency.json +2072 -0
- package/data/_indexes/handoff-dag.json +476 -0
- package/data/_indexes/jurisdiction-clocks.json +967 -0
- package/data/_indexes/jurisdiction-map.json +536 -0
- package/data/_indexes/recipes.json +319 -0
- package/data/_indexes/section-offsets.json +3656 -0
- package/data/_indexes/stale-content.json +14 -0
- package/data/_indexes/summary-cards.json +1736 -0
- package/data/_indexes/theater-fingerprints.json +381 -0
- package/data/_indexes/token-budget.json +2137 -0
- package/data/_indexes/trigger-table.json +1374 -0
- package/data/_indexes/xref.json +818 -0
- package/data/atlas-ttps.json +282 -0
- package/data/cve-catalog.json +496 -0
- package/data/cwe-catalog.json +1017 -0
- package/data/d3fend-catalog.json +738 -0
- package/data/dlp-controls.json +1039 -0
- package/data/exploit-availability.json +67 -0
- package/data/framework-control-gaps.json +1255 -0
- package/data/global-frameworks.json +2913 -0
- package/data/rfc-references.json +324 -0
- package/data/zeroday-lessons.json +377 -0
- package/keys/public.pem +3 -0
- package/lib/framework-gap.js +328 -0
- package/lib/job-queue.js +195 -0
- package/lib/lint-skills.js +536 -0
- package/lib/prefetch.js +372 -0
- package/lib/refresh-external.js +713 -0
- package/lib/schemas/cve-catalog.schema.json +151 -0
- package/lib/schemas/manifest.schema.json +106 -0
- package/lib/schemas/skill-frontmatter.schema.json +113 -0
- package/lib/scoring.js +149 -0
- package/lib/sign.js +197 -0
- package/lib/ttp-mapper.js +80 -0
- package/lib/validate-catalog-meta.js +198 -0
- package/lib/validate-cve-catalog.js +213 -0
- package/lib/validate-indexes.js +83 -0
- package/lib/validate-package.js +162 -0
- package/lib/validate-vendor.js +85 -0
- package/lib/verify.js +216 -0
- package/lib/worker-pool.js +84 -0
- package/manifest-snapshot.json +1833 -0
- package/manifest.json +2108 -0
- package/orchestrator/README.md +124 -0
- package/orchestrator/dispatcher.js +140 -0
- package/orchestrator/event-bus.js +146 -0
- package/orchestrator/index.js +874 -0
- package/orchestrator/pipeline.js +201 -0
- package/orchestrator/scanner.js +327 -0
- package/orchestrator/scheduler.js +137 -0
- package/package.json +113 -0
- package/sbom.cdx.json +158 -0
- package/scripts/audit-cross-skill.js +261 -0
- package/scripts/audit-perf.js +160 -0
- package/scripts/bootstrap.js +205 -0
- package/scripts/build-indexes.js +721 -0
- package/scripts/builders/activity-feed.js +79 -0
- package/scripts/builders/catalog-summaries.js +67 -0
- package/scripts/builders/currency.js +109 -0
- package/scripts/builders/cwe-chains.js +105 -0
- package/scripts/builders/did-ladders.js +149 -0
- package/scripts/builders/frequency.js +89 -0
- package/scripts/builders/jurisdiction-clocks.js +126 -0
- package/scripts/builders/recipes.js +159 -0
- package/scripts/builders/section-offsets.js +162 -0
- package/scripts/builders/stale-content.js +171 -0
- package/scripts/builders/summary-cards.js +166 -0
- package/scripts/builders/theater-fingerprints.js +198 -0
- package/scripts/builders/token-budget.js +96 -0
- package/scripts/check-manifest-snapshot.js +217 -0
- package/scripts/predeploy.js +267 -0
- package/scripts/refresh-manifest-snapshot.js +57 -0
- package/scripts/refresh-sbom.js +222 -0
- package/skills/age-gates-child-safety/skill.md +456 -0
- package/skills/ai-attack-surface/skill.md +282 -0
- package/skills/ai-c2-detection/skill.md +440 -0
- package/skills/ai-risk-management/skill.md +311 -0
- package/skills/api-security/skill.md +287 -0
- package/skills/attack-surface-pentest/skill.md +381 -0
- package/skills/cloud-security/skill.md +384 -0
- package/skills/compliance-theater/skill.md +365 -0
- package/skills/container-runtime-security/skill.md +379 -0
- package/skills/coordinated-vuln-disclosure/skill.md +473 -0
- package/skills/defensive-countermeasure-mapping/skill.md +300 -0
- package/skills/dlp-gap-analysis/skill.md +337 -0
- package/skills/email-security-anti-phishing/skill.md +206 -0
- package/skills/exploit-scoring/skill.md +331 -0
- package/skills/framework-gap-analysis/skill.md +374 -0
- package/skills/fuzz-testing-strategy/skill.md +313 -0
- package/skills/global-grc/skill.md +564 -0
- package/skills/identity-assurance/skill.md +272 -0
- package/skills/incident-response-playbook/skill.md +546 -0
- package/skills/kernel-lpe-triage/skill.md +303 -0
- package/skills/mcp-agent-trust/skill.md +326 -0
- package/skills/mlops-security/skill.md +325 -0
- package/skills/ot-ics-security/skill.md +340 -0
- package/skills/policy-exception-gen/skill.md +437 -0
- package/skills/pqc-first/skill.md +546 -0
- package/skills/rag-pipeline-security/skill.md +294 -0
- package/skills/researcher/skill.md +310 -0
- package/skills/sector-energy/skill.md +409 -0
- package/skills/sector-federal-government/skill.md +302 -0
- package/skills/sector-financial/skill.md +398 -0
- package/skills/sector-healthcare/skill.md +373 -0
- package/skills/security-maturity-tiers/skill.md +464 -0
- package/skills/skill-update-loop/skill.md +463 -0
- package/skills/supply-chain-integrity/skill.md +318 -0
- package/skills/threat-model-currency/skill.md +404 -0
- package/skills/threat-modeling-methodology/skill.md +312 -0
- package/skills/webapp-security/skill.md +281 -0
- package/skills/zeroday-gap-learn/skill.md +350 -0
- package/vendor/blamejs/LICENSE +201 -0
- package/vendor/blamejs/README.md +54 -0
- package/vendor/blamejs/_PROVENANCE.json +54 -0
- package/vendor/blamejs/retry.js +335 -0
- package/vendor/blamejs/worker-pool.js +418 -0
|
@@ -0,0 +1,381 @@
|
|
|
1
|
+
{
|
|
2
|
+
"_meta": {
|
|
3
|
+
"schema_version": "1.0.0",
|
|
4
|
+
"source": "skills/compliance-theater/skill.md (7 documented patterns)",
|
|
5
|
+
"pattern_count": 7
|
|
6
|
+
},
|
|
7
|
+
"patterns": {
|
|
8
|
+
"pattern-1": {
|
|
9
|
+
"pattern_number": 1,
|
|
10
|
+
"pattern_name": "Patch Management Theater",
|
|
11
|
+
"primary_attack_class": "patch-cycle vs. KEV-listed instant-root exploits",
|
|
12
|
+
"claim": "\"We have a patch management program. All Critical/High CVEs are remediated within 30 days.\"",
|
|
13
|
+
"audit_evidence": "Patch management policy document, ticketing system showing CVEs opened and closed within SLA, vulnerability scanner reports showing declining open vulnerabilities.",
|
|
14
|
+
"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.",
|
|
15
|
+
"why_its_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.",
|
|
16
|
+
"fast_test": "Pull last 12 months of patch records. Any CISA KEV patched > 72 hours after KEV listing = THEATER FLAG.",
|
|
17
|
+
"controls": [
|
|
18
|
+
{
|
|
19
|
+
"framework": "NIST 800-53",
|
|
20
|
+
"control_id": "SI-2",
|
|
21
|
+
"note": "30-day critical patch SLA designed for slow-weaponization era"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"framework": "ISO 27001:2022",
|
|
25
|
+
"control_id": "A.8.8",
|
|
26
|
+
"note": "'Appropriate timescales' undefined; commonly read as 30 days for High"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"framework": "PCI DSS 4.0",
|
|
30
|
+
"control_id": "6.3.3",
|
|
31
|
+
"note": "One-month critical-patch window"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"framework": "NIS2",
|
|
35
|
+
"control_id": "Art. 21",
|
|
36
|
+
"note": "No specific patching SLA"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"framework": "CIS Controls v8",
|
|
40
|
+
"control_id": "Control 7",
|
|
41
|
+
"note": "Continuous vulnerability management; 'within one month' still too long"
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
"evidence": {
|
|
45
|
+
"cve": "CVE-2026-31431",
|
|
46
|
+
"rationale": "Copy Fail: deterministic 732-byte root, CISA KEV, AI-discovered, public PoC"
|
|
47
|
+
},
|
|
48
|
+
"ttps": [
|
|
49
|
+
"T1068",
|
|
50
|
+
"T1203"
|
|
51
|
+
],
|
|
52
|
+
"source_skill": "compliance-theater",
|
|
53
|
+
"source_section": "### Pattern 1: Patch Management Theater"
|
|
54
|
+
},
|
|
55
|
+
"pattern-2": {
|
|
56
|
+
"pattern_number": 2,
|
|
57
|
+
"pattern_name": "Network Segmentation Theater (IPsec)",
|
|
58
|
+
"primary_attack_class": "IPsec subsystem as both control and attack surface",
|
|
59
|
+
"claim": "\"We have network segmentation between security zones implemented via IPsec tunnels. SC-8 / PCI DSS Req 1 compliant.\"",
|
|
60
|
+
"audit_evidence": "Network diagrams showing zone separation, IPsec configuration documentation, firewall rule reviews.",
|
|
61
|
+
"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.",
|
|
62
|
+
"why_its_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.",
|
|
63
|
+
"fast_test": "Identify hosts using IPsec for segmentation compliance. If kernel patch for CVE-2026-43284 not applied = THEATER FLAG.",
|
|
64
|
+
"controls": [
|
|
65
|
+
{
|
|
66
|
+
"framework": "NIST 800-53",
|
|
67
|
+
"control_id": "SC-8",
|
|
68
|
+
"note": "Transmission confidentiality — IPsec common compensating control"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"framework": "NIST 800-53",
|
|
72
|
+
"control_id": "SC-7",
|
|
73
|
+
"note": "Boundary protection — IPsec tunnel as zone separator"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"framework": "PCI DSS 4.0",
|
|
77
|
+
"control_id": "Req 1",
|
|
78
|
+
"note": "Network segmentation between trust zones"
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"evidence": {
|
|
82
|
+
"cve": "CVE-2026-43284",
|
|
83
|
+
"rationale": "Dirty Frag: kernel IPsec subsystem LPE — the control's cryptographic mechanism is the attack surface"
|
|
84
|
+
},
|
|
85
|
+
"ttps": [
|
|
86
|
+
"T1190"
|
|
87
|
+
],
|
|
88
|
+
"source_skill": "compliance-theater",
|
|
89
|
+
"source_section": "### Pattern 2: Network Segmentation Theater (IPsec)"
|
|
90
|
+
},
|
|
91
|
+
"pattern-3": {
|
|
92
|
+
"pattern_number": 3,
|
|
93
|
+
"pattern_name": "Access Control Theater (AI Agent)",
|
|
94
|
+
"primary_attack_class": "prompt injection bypasses access control via authorized service account",
|
|
95
|
+
"claim": "\"Our access control program (CC6 / AC-2) ensures all system access is authenticated, authorized, and logged.\"",
|
|
96
|
+
"audit_evidence": "IAM configuration reviews, access logs showing authorized accounts, no unauthorized access events, SOC 2 CC6 pass.",
|
|
97
|
+
"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.",
|
|
98
|
+
"why_its_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.",
|
|
99
|
+
"fast_test": "If AI agents have prod access and (a) prompt content + tool calls aren't logged or (b) no behavioral baseline = THEATER FLAG.",
|
|
100
|
+
"controls": [
|
|
101
|
+
{
|
|
102
|
+
"framework": "SOC 2",
|
|
103
|
+
"control_id": "CC6",
|
|
104
|
+
"note": "Logical access — designed for human-controlled accounts"
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"framework": "NIST 800-53",
|
|
108
|
+
"control_id": "AC-2",
|
|
109
|
+
"note": "Account management — no concept of AI agent authority delegation"
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"framework": "NIST 800-53",
|
|
113
|
+
"control_id": "AC-3",
|
|
114
|
+
"note": "Access enforcement — model judgment is the gate, not a recognized control"
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"framework": "ISO 27001:2022",
|
|
118
|
+
"control_id": "A.5.15",
|
|
119
|
+
"note": "Access control policy"
|
|
120
|
+
}
|
|
121
|
+
],
|
|
122
|
+
"evidence": {
|
|
123
|
+
"cve": "CVE-2025-53773",
|
|
124
|
+
"rationale": "Copilot prompt-injection RCE: AI service account executes attacker-chosen actions; no identity boundary crossed"
|
|
125
|
+
},
|
|
126
|
+
"ttps": [
|
|
127
|
+
"AML.T0051",
|
|
128
|
+
"AML.T0054",
|
|
129
|
+
"T1059"
|
|
130
|
+
],
|
|
131
|
+
"source_skill": "compliance-theater",
|
|
132
|
+
"source_section": "### Pattern 3: Access Control Theater (AI Agent)"
|
|
133
|
+
},
|
|
134
|
+
"pattern-4": {
|
|
135
|
+
"pattern_number": 4,
|
|
136
|
+
"pattern_name": "Incident Response Theater (AI Pipeline)",
|
|
137
|
+
"primary_attack_class": "IR program with no detection input or procedure for AI-class incidents",
|
|
138
|
+
"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.\"",
|
|
139
|
+
"audit_evidence": "IR policy, incident response playbooks, tabletop exercise records, defined roles and responsibilities.",
|
|
140
|
+
"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.",
|
|
141
|
+
"why_its_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).",
|
|
142
|
+
"fast_test": "Search IR playbooks for 'prompt injection', 'model poisoning', 'AI agent', 'LLM', 'MCP server'. Zero matches = THEATER FLAG.",
|
|
143
|
+
"controls": [
|
|
144
|
+
{
|
|
145
|
+
"framework": "SOC 2",
|
|
146
|
+
"control_id": "CC7",
|
|
147
|
+
"note": "System operations / anomaly detection — no baseline for AI-API traffic"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"framework": "NIST 800-53",
|
|
151
|
+
"control_id": "IR-4",
|
|
152
|
+
"note": "Incident handling — phases defined but not AI-class triggers"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"framework": "ISO 27001:2022",
|
|
156
|
+
"control_id": "A.5.24-A.5.28",
|
|
157
|
+
"note": "IR planning/preparation/reporting/response/learning"
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
"evidence": {
|
|
161
|
+
"campaign": "SesameOp",
|
|
162
|
+
"rationale": "AML.T0096 LLM Integration Abuse as C2 — no detection triggers exist, so IR procedures have no input"
|
|
163
|
+
},
|
|
164
|
+
"ttps": [
|
|
165
|
+
"AML.T0020",
|
|
166
|
+
"AML.T0096",
|
|
167
|
+
"AML.T0010"
|
|
168
|
+
],
|
|
169
|
+
"source_skill": "compliance-theater",
|
|
170
|
+
"source_section": "### Pattern 4: Incident Response Theater (AI Pipeline)"
|
|
171
|
+
},
|
|
172
|
+
"pattern-5": {
|
|
173
|
+
"pattern_number": 5,
|
|
174
|
+
"pattern_name": "Change Management Theater (AI Model)",
|
|
175
|
+
"primary_attack_class": "external model updates bypass operator change control",
|
|
176
|
+
"claim": "\"All changes to production systems go through our change management process (CM-3 / A.8.32). Changes are reviewed, approved, and documented.\"",
|
|
177
|
+
"audit_evidence": "Change management tickets for infrastructure deployments, software releases, configuration changes.",
|
|
178
|
+
"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.",
|
|
179
|
+
"why_its_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.",
|
|
180
|
+
"fast_test": "List LLM API deps. Does each provider update open a change ticket? Is there a behavioral test suite? Is the model version pinned? Any 'no' = THEATER FLAG.",
|
|
181
|
+
"controls": [
|
|
182
|
+
{
|
|
183
|
+
"framework": "NIST 800-53",
|
|
184
|
+
"control_id": "CM-3",
|
|
185
|
+
"note": "Configuration change control — drafted for changes the operator controls"
|
|
186
|
+
},
|
|
187
|
+
{
|
|
188
|
+
"framework": "ISO 27001:2022",
|
|
189
|
+
"control_id": "A.8.32",
|
|
190
|
+
"note": "Change management"
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"framework": "SOC 2",
|
|
194
|
+
"control_id": "CC8",
|
|
195
|
+
"note": "Change management"
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"evidence": {
|
|
199
|
+
"campaign": "Continuous provider model updates",
|
|
200
|
+
"rationale": "Vendor-managed model updates bypass operator change control entirely; safety properties can shift silently"
|
|
201
|
+
},
|
|
202
|
+
"ttps": [
|
|
203
|
+
"AML.T0018",
|
|
204
|
+
"AML.T0020"
|
|
205
|
+
],
|
|
206
|
+
"source_skill": "compliance-theater",
|
|
207
|
+
"source_section": "### Pattern 5: Change Management Theater (AI Model)"
|
|
208
|
+
},
|
|
209
|
+
"pattern-6": {
|
|
210
|
+
"pattern_number": 6,
|
|
211
|
+
"pattern_name": "Vendor/Third-Party Risk Theater (AI API + MCP)",
|
|
212
|
+
"primary_attack_class": "vendor program scope excludes LLM APIs and MCP servers",
|
|
213
|
+
"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.\"",
|
|
214
|
+
"audit_evidence": "Vendor security questionnaires, SOC 2 reports for critical vendors, data processing agreements.",
|
|
215
|
+
"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.",
|
|
216
|
+
"why_its_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.",
|
|
217
|
+
"fast_test": "List LLM API providers. Is there a vendor risk assessment + DPA for each? List MCP servers on dev workstations — did each pass vendor review? Either gap = THEATER FLAG.",
|
|
218
|
+
"controls": [
|
|
219
|
+
{
|
|
220
|
+
"framework": "SOC 2",
|
|
221
|
+
"control_id": "CC9",
|
|
222
|
+
"note": "Risk mitigation; vendor management"
|
|
223
|
+
},
|
|
224
|
+
{
|
|
225
|
+
"framework": "NIST 800-53",
|
|
226
|
+
"control_id": "SA-12",
|
|
227
|
+
"note": "Supply chain protection"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"framework": "ISO 27001:2022",
|
|
231
|
+
"control_id": "A.5.19",
|
|
232
|
+
"note": "Supplier relationships — drafted for SaaS-style vendors"
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"framework": "ISO 27001:2022",
|
|
236
|
+
"control_id": "A.5.20",
|
|
237
|
+
"note": "Information security in supplier agreements"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"framework": "US FedRAMP",
|
|
241
|
+
"control_id": "Rev 5 Moderate",
|
|
242
|
+
"note": "Authorization-as-evidence pattern; ATO does not cover tenant-side MCP"
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"framework": "US DoD CMMC",
|
|
246
|
+
"control_id": "2.0 Level 2",
|
|
247
|
+
"note": "Certification-as-evidence; does not cover AI coding-assistant supply chain"
|
|
248
|
+
}
|
|
249
|
+
],
|
|
250
|
+
"evidence": {
|
|
251
|
+
"cve": "CVE-2026-30615",
|
|
252
|
+
"rationale": "Windsurf MCP zero-interaction RCE — vendor management program had no coverage of MCP servers as third-party code"
|
|
253
|
+
},
|
|
254
|
+
"ttps": [
|
|
255
|
+
"AML.T0010"
|
|
256
|
+
],
|
|
257
|
+
"source_skill": "compliance-theater",
|
|
258
|
+
"source_section": "### Pattern 6: Vendor/Third-Party Risk Theater (AI API + MCP)"
|
|
259
|
+
},
|
|
260
|
+
"pattern-7": {
|
|
261
|
+
"pattern_number": 7,
|
|
262
|
+
"pattern_name": "Security Awareness Theater (AI Phishing)",
|
|
263
|
+
"primary_attack_class": "phishing simulation tests resistance to template-era phish, not AI-generated content",
|
|
264
|
+
"claim": "\"We conduct regular security awareness training and phishing simulations. Our click-rate on simulated phishes is < 5%.\"",
|
|
265
|
+
"audit_evidence": "Training completion records, phishing simulation results showing < 5% click rate, awareness program documentation.",
|
|
266
|
+
"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.",
|
|
267
|
+
"why_its_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.",
|
|
268
|
+
"fast_test": "Were any simulation emails AI-generated (not template-based) in the last 3 sims? Is MFA phishing-resistant (hardware keys / passkeys)? Either 'no' = THEATER FLAG.",
|
|
269
|
+
"controls": [
|
|
270
|
+
{
|
|
271
|
+
"framework": "NIST 800-53",
|
|
272
|
+
"control_id": "AT-2",
|
|
273
|
+
"note": "Security awareness training — drafted against human-template phishing"
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"framework": "ISO 27001:2022",
|
|
277
|
+
"control_id": "A.6.3",
|
|
278
|
+
"note": "Information security awareness, education and training"
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
"framework": "PCI DSS 4.0",
|
|
282
|
+
"control_id": "12.6",
|
|
283
|
+
"note": "Security awareness program"
|
|
284
|
+
}
|
|
285
|
+
],
|
|
286
|
+
"evidence": {
|
|
287
|
+
"campaign": "AI-generated phishing baseline (82.6% of phish contain AI-generated content)",
|
|
288
|
+
"rationale": "Grammar/style heuristics are no longer reliable detectors; <5% click rate on template phish is non-informative"
|
|
289
|
+
},
|
|
290
|
+
"ttps": [
|
|
291
|
+
"T1566",
|
|
292
|
+
"AML.T0016"
|
|
293
|
+
],
|
|
294
|
+
"source_skill": "compliance-theater",
|
|
295
|
+
"source_section": "### Pattern 7: Security Awareness Theater (AI Phishing)"
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"by_control": {
|
|
299
|
+
"NIST 800-53::SI-2": [
|
|
300
|
+
"pattern-1"
|
|
301
|
+
],
|
|
302
|
+
"ISO 27001:2022::A.8.8": [
|
|
303
|
+
"pattern-1"
|
|
304
|
+
],
|
|
305
|
+
"PCI DSS 4.0::6.3.3": [
|
|
306
|
+
"pattern-1"
|
|
307
|
+
],
|
|
308
|
+
"NIS2::Art. 21": [
|
|
309
|
+
"pattern-1"
|
|
310
|
+
],
|
|
311
|
+
"CIS Controls v8::Control 7": [
|
|
312
|
+
"pattern-1"
|
|
313
|
+
],
|
|
314
|
+
"NIST 800-53::SC-8": [
|
|
315
|
+
"pattern-2"
|
|
316
|
+
],
|
|
317
|
+
"NIST 800-53::SC-7": [
|
|
318
|
+
"pattern-2"
|
|
319
|
+
],
|
|
320
|
+
"PCI DSS 4.0::Req 1": [
|
|
321
|
+
"pattern-2"
|
|
322
|
+
],
|
|
323
|
+
"SOC 2::CC6": [
|
|
324
|
+
"pattern-3"
|
|
325
|
+
],
|
|
326
|
+
"NIST 800-53::AC-2": [
|
|
327
|
+
"pattern-3"
|
|
328
|
+
],
|
|
329
|
+
"NIST 800-53::AC-3": [
|
|
330
|
+
"pattern-3"
|
|
331
|
+
],
|
|
332
|
+
"ISO 27001:2022::A.5.15": [
|
|
333
|
+
"pattern-3"
|
|
334
|
+
],
|
|
335
|
+
"SOC 2::CC7": [
|
|
336
|
+
"pattern-4"
|
|
337
|
+
],
|
|
338
|
+
"NIST 800-53::IR-4": [
|
|
339
|
+
"pattern-4"
|
|
340
|
+
],
|
|
341
|
+
"ISO 27001:2022::A.5.24-A.5.28": [
|
|
342
|
+
"pattern-4"
|
|
343
|
+
],
|
|
344
|
+
"NIST 800-53::CM-3": [
|
|
345
|
+
"pattern-5"
|
|
346
|
+
],
|
|
347
|
+
"ISO 27001:2022::A.8.32": [
|
|
348
|
+
"pattern-5"
|
|
349
|
+
],
|
|
350
|
+
"SOC 2::CC8": [
|
|
351
|
+
"pattern-5"
|
|
352
|
+
],
|
|
353
|
+
"SOC 2::CC9": [
|
|
354
|
+
"pattern-6"
|
|
355
|
+
],
|
|
356
|
+
"NIST 800-53::SA-12": [
|
|
357
|
+
"pattern-6"
|
|
358
|
+
],
|
|
359
|
+
"ISO 27001:2022::A.5.19": [
|
|
360
|
+
"pattern-6"
|
|
361
|
+
],
|
|
362
|
+
"ISO 27001:2022::A.5.20": [
|
|
363
|
+
"pattern-6"
|
|
364
|
+
],
|
|
365
|
+
"US FedRAMP::Rev 5 Moderate": [
|
|
366
|
+
"pattern-6"
|
|
367
|
+
],
|
|
368
|
+
"US DoD CMMC::2.0 Level 2": [
|
|
369
|
+
"pattern-6"
|
|
370
|
+
],
|
|
371
|
+
"NIST 800-53::AT-2": [
|
|
372
|
+
"pattern-7"
|
|
373
|
+
],
|
|
374
|
+
"ISO 27001:2022::A.6.3": [
|
|
375
|
+
"pattern-7"
|
|
376
|
+
],
|
|
377
|
+
"PCI DSS 4.0::12.6": [
|
|
378
|
+
"pattern-7"
|
|
379
|
+
]
|
|
380
|
+
}
|
|
381
|
+
}
|