@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,464 @@
1
+ ---
2
+ name: security-maturity-tiers
3
+ version: "1.0.0"
4
+ description: Three-tier implementation roadmap — MVP you can ship today, practical best practices useable now, overkill gold standard for defense-in-depth
5
+ triggers:
6
+ - security maturity
7
+ - implementation roadmap
8
+ - what should we do first
9
+ - security tiers
10
+ - mvp security
11
+ - where to start
12
+ - security roadmap
13
+ - minimum viable security
14
+ - what's practical
15
+ - security best practices
16
+ - defense in depth
17
+ - how do we get from here to there
18
+ data_deps:
19
+ - cve-catalog.json
20
+ - framework-control-gaps.json
21
+ - global-frameworks.json
22
+ atlas_refs: []
23
+ attack_refs: []
24
+ framework_gaps: []
25
+ forward_watch:
26
+ - New attack classes that change MVP requirements (especially zero-interaction RCE)
27
+ - Framework updates that change minimum compliance baselines
28
+ - New tooling that makes higher tiers more accessible
29
+ - PQC tooling maturity shifting overkill to practical
30
+ last_threat_review: "2026-05-01"
31
+ ---
32
+
33
+ # Security Maturity Tiers
34
+
35
+ Three tiers. Each is complete, not a stepping stone to the next. An organization that ships Tier 1 correctly is more secure than one that half-implements Tier 3.
36
+
37
+ **The cardinal rule:** A half-implemented Tier 3 is worse than a complete Tier 1. Do not reach for the overkill tier if the foundation isn't solid.
38
+
39
+ ---
40
+
41
+ ## How to Use This Skill
42
+
43
+ This skill produces a three-column roadmap for any security domain. Tell it:
44
+ - What domain (kernel patching, AI systems, cryptography, MCP security, etc.)
45
+ - Your current state
46
+ - Your constraint (team size, budget, compliance requirement, timeline)
47
+
48
+ It outputs Tier 1 (MVP), Tier 2 (Practical), Tier 3 (Overkill) for that domain — specific, actionable, honest about trade-offs.
49
+
50
+ ---
51
+
52
+ ## Tier Framework
53
+
54
+ | Tier | Name | Principle | Trade-off |
55
+ |---|---|---|---|
56
+ | 1 | MVP | The smallest set of controls that closes your highest-priority RWEP gaps | Coverage over depth: broad protection of the most critical things |
57
+ | 2 | Practical | Production-grade controls that scale, monitor, and adapt | Operational cost to maintain properly |
58
+ | 3 | Overkill | Defense-in-depth that assumes Tier 1 and Tier 2 have been bypassed | High cost, high operational complexity — but you're safer than sorry |
59
+
60
+ ---
61
+
62
+ ## Domain: Kernel LPE (Copy Fail / Dirty Frag Class)
63
+
64
+ ### Tier 1 — MVP
65
+
66
+ **What it is:** The minimum that closes RWEP 90+ exposures today.
67
+
68
+ **Deploy in order:**
69
+
70
+ 1. **Triage exposed systems** (today, < 2 hours)
71
+ ```bash
72
+ # On each Linux host:
73
+ uname -r
74
+ # Cross-reference against patched versions for your distro
75
+ # RHEL: kernel >= 4.18.0-553.xx = patched
76
+ # Ubuntu 22.04: linux-image-5.15.0-xxx (check latest USN)
77
+ ```
78
+
79
+ 2. **Deploy live kernel patches on exposed systems** (same day)
80
+ ```bash
81
+ # RHEL:
82
+ kpatch install [patch-name]
83
+ kpatch list # verify active
84
+
85
+ # Ubuntu:
86
+ canonical-livepatch enable
87
+ canonical-livepatch status # verify applied
88
+ ```
89
+
90
+ 3. **Audit rules for exploitation detection** (same day, takes 5 minutes)
91
+ ```bash
92
+ cat >> /etc/audit/rules.d/lpe-detection.rules << 'EOF'
93
+ -a always,exit -F arch=b64 -S userfaultfd -k lpe_attempt
94
+ -w /proc/self/mem -p w -k lpe_mem_write
95
+ EOF
96
+ augenrules --load
97
+ ```
98
+
99
+ 4. **Schedule reboots** for full kernel update at next maintenance window. Document the date.
100
+
101
+ **Tier 1 is done when:** Every production host is either live-patched, fully patched, or network-isolated with a reboot date scheduled and documented.
102
+
103
+ **Cost:** Hours of engineer time. No new tooling required.
104
+
105
+ **What Tier 1 misses:** Automated detection pipelines, fleet-wide patch visibility, centralized alerting. You're protected but flying manual.
106
+
107
+ ---
108
+
109
+ ### Tier 2 — Practical
110
+
111
+ **What it is:** Sustainable, scalable patch and detection operations.
112
+
113
+ 1. **Fleet-wide vulnerability scanning** (automated, continuous)
114
+ - Wazuh, Tenable, Qualys, or equivalent
115
+ - Daily scans cross-referenced against NVD
116
+ - Alert on: any CISA KEV unpatched after 48h
117
+
118
+ 2. **Live patching fleet management**
119
+ - Canonical Livepatch / Red Hat Insights (manages live patch deployment across fleet)
120
+ - Patch status dashboard: which hosts are live-patched, which need reboots, which are pending
121
+ - SLA tracking: time from CISA KEV listing to live-patch verified
122
+
123
+ 3. **SIEM integration for LPE detection**
124
+ - auditd + SIEM (Splunk, Elastic, Wazuh SIEM)
125
+ - Alert rule: `lpe_attempt` or `lpe_mem_write` audit keys trigger P1 alert
126
+ - Automated isolation workflow for confirmed exploitation
127
+
128
+ 4. **Maintenance window calendar** (automated)
129
+ - Hosts grouped by reboot-tolerance
130
+ - Kernel reboot SLA tracked per host group
131
+ - Automated reminders when reboot is overdue
132
+
133
+ **Tier 2 is done when:** You have visibility into patch status for every host, automated alerting for CISA KEV exposures, and a measured SLA for live-patch deployment.
134
+
135
+ ---
136
+
137
+ ### Tier 3 — Overkill
138
+
139
+ **What it is:** Assumes an LPE exploit will run. Limits what it can do.
140
+
141
+ 1. **Kernel hardening** (reduce attack surface before exploitation)
142
+ ```bash
143
+ # /etc/sysctl.d/99-kernel-hardening.conf
144
+ kernel.unprivileged_userns_clone = 0
145
+ kernel.kptr_restrict = 2
146
+ kernel.perf_event_paranoid = 3
147
+ vm.unprivileged_userfaultfd = 0
148
+ kernel.yama.ptrace_scope = 2
149
+ ```
150
+
151
+ 2. **seccomp profiles** for all containerized workloads (limits syscalls available to container processes — raises bar for exploitation even on unpatched kernel)
152
+
153
+ 3. **eBPF-based runtime security** (Tetragon, Falco, Cilium)
154
+ - Monitor all privilege escalation events in real time
155
+ - Automatic process kill on confirmed LPE pattern detection
156
+ - Kernel subsystem integrity monitoring
157
+
158
+ 4. **Immutable infrastructure** — ephemeral hosts that are replaced, not patched
159
+ - On-demand provisioning from known-good base images
160
+ - Kernel version is part of the image specification
161
+ - No persistent hosts = no accumulated patch debt
162
+
163
+ 5. **Blast radius isolation**
164
+ - Container runtime: no `--privileged`, no host PID namespace, no host network
165
+ - Workload network micro-segmentation: even a rooted container can't reach production DBs
166
+ - Separate kernel per workload via VM/MicroVM (Firecracker) for maximum isolation
167
+
168
+ **Tier 3 is done when:** An exploited LPE gets root on one process in one container on one host, and can't reach anything else.
169
+
170
+ ---
171
+
172
+ ## Domain: AI Attack Surface
173
+
174
+ ### Tier 1 — MVP
175
+
176
+ 1. **Audit all MCP servers** (today, < 1 hour)
177
+ ```bash
178
+ # Check each AI coding assistant's config:
179
+ cat ~/.claude/settings.json | python -m json.tool | grep -A5 mcpServers
180
+ cat ~/.cursor/mcp.json
181
+ cat ~/.windsurf/mcp.json
182
+ cat ~/.gemini/settings.json
183
+ # VS Code: check settings.json for mcp entries
184
+ ```
185
+ Remove any server you didn't explicitly install and verify.
186
+
187
+ 2. **Pin all MCP server versions** (no auto-update)
188
+ - Change `@modelcontextprotocol/server-filesystem` to `@modelcontextprotocol/server-filesystem@1.2.3`
189
+
190
+ 3. **Add explicit tool allowlists** where the client supports it
191
+ ```json
192
+ { "allowed_tools": ["read_file", "list_directory"] }
193
+ ```
194
+
195
+ 4. **Turn on full prompt+response logging** for AI coding assistants where possible.
196
+
197
+ 5. **Treat the AI assistant's output like untrusted input** — don't run AI-suggested shell commands without reading them first.
198
+
199
+ **Tier 1 is done when:** You know what MCP servers are installed, versions are pinned, and you're reading AI-suggested commands before executing.
200
+
201
+ ---
202
+
203
+ ### Tier 2 — Practical
204
+
205
+ 1. **Organizational MCP approved registry** — list of approved servers with version + hash
206
+ 2. **MCP server provenance verification** (npm provenance attestation check on install)
207
+ 3. **AI API traffic logging** — all AI API calls logged with process identity
208
+ 4. **Behavioral baseline** — alert on AI API calls from unexpected processes
209
+ 5. **Prompt injection classifier** in front of any LLM that processes external content
210
+ 6. **Phishing simulation updated** — use AI-generated content in phishing tests, retire template-based tests
211
+
212
+ ---
213
+
214
+ ### Tier 3 — Overkill
215
+
216
+ 1. **Sandboxed MCP servers** — each MCP server runs in a network-isolated process with no filesystem access beyond its declared scope. Enforced at OS level (seccomp + network namespace), not just by config.
217
+ 2. **AI agent action audit trail** — every tool call logged with: who initiated the AI session, what prompt triggered the tool call, what the tool did, what was returned. Immutable log.
218
+ 3. **Per-invocation authorization** — each AI agent session is issued a scoped capability token. The token expires. The AI cannot take actions beyond the token's scope regardless of what instructions it receives.
219
+ 4. **Adversarial testing continuous** — automated red teaming of AI surfaces in CI: does the prompt injection classifier catch new injection patterns? Does the MCP allowlist block new tool exposure?
220
+ 5. **AI traffic TLS inspection** — full prompt+response content captured and monitored for AI-as-C2 patterns (SesameOp indicators) and AI-generated malware queries (PROMPTFLUX indicators)
221
+
222
+ ---
223
+
224
+ ## Domain: Cryptography / PQC
225
+
226
+ ### Tier 1 — MVP
227
+
228
+ 1. **Inventory all asymmetric cryptography** in production systems (TLS certs, JWT signing, code signing, API auth)
229
+ 2. **Upgrade OpenSSL to 3.5+** in all new deployments (not legacy — just new)
230
+ 3. **Enable TLS 1.3 minimum** everywhere (already quantum-safe symmetric if using AES-256; the KEM is what needs upgrading)
231
+ 4. **Identify HNDL-exposed data** — what data captured today, if decrypted in 10 years, causes harm?
232
+ 5. **Pin a migration start date** — document it. "We will begin PQC migration for HNDL-exposed systems by [date]."
233
+
234
+ **Tier 1 is done when:** You know what you have, you know what's exposed, and you have a start date for migration.
235
+
236
+ ---
237
+
238
+ ### Tier 2 — Practical
239
+
240
+ 1. **Enable X25519+ML-KEM-768 hybrid in TLS** for all systems handling HNDL-exposed data
241
+ ```
242
+ # OpenSSL 3.5+ server config
243
+ Curves = X25519MLKEM768:X25519:P-384
244
+ ```
245
+ 2. **ML-DSA-65 for new code signing** (keep ECDSA as hybrid verification fallback)
246
+ 3. **SLH-DSA-SHAKE-256f for audit chain** checkpoints (tamper-evident logs)
247
+ 4. **Certificate refresh plan** — replace P-256 leaf certs with hybrid certs on next renewal cycle
248
+ 5. **Document PQC migration in vendor questionnaires** — note OpenSSL version, PQC TLS support, migration plan
249
+
250
+ ---
251
+
252
+ ### Tier 3 — Overkill
253
+
254
+ 1. **Full PQC-only key exchange** for new systems (no classical fallback) — accept the small compatibility risk for maximum quantum safety
255
+ 2. **ML-KEM-1024 + P-384 hybrid** for all keys with > 20-year sensitivity lifetime
256
+ 3. **HSM firmware update** to PQC-capable firmware for all key material
257
+ 4. **Certificate Transparency + signed audit logs** with SLH-DSA checkpoints — tamper-evident, quantum-safe, offline-verifiable
258
+ 5. **Crypto agility layer** — envelope headers on all encrypted blobs (like blamejs's 4-byte algorithm header) so future algorithm migration doesn't require re-encryption
259
+ 6. **HNDL monitoring** — detect and alert on unusual traffic patterns that suggest bulk traffic capture by adversaries
260
+
261
+ ---
262
+
263
+ ## Domain: GRC / Compliance
264
+
265
+ ### Tier 1 — MVP
266
+
267
+ 1. **Map your compliance framework(s)** — which frameworks apply?
268
+ 2. **Run the compliance theater check** (compliance-theater skill) — identify which controls are theater
269
+ 3. **Document the theater findings** with the specific evidence gaps
270
+ 4. **Generate policy exceptions** for architectural gaps (policy-exception-gen skill) — document what you can't do and why, with compensating controls
271
+ 5. **Update one control** — pick the highest-RWEP theater finding and fix it
272
+
273
+ **Tier 1 is done when:** You know which of your controls are theater, you've documented the gaps, and you've started closing the highest-priority one.
274
+
275
+ ---
276
+
277
+ ### Tier 2 — Practical
278
+
279
+ 1. **Framework gap analysis** (framework-gap-analysis skill) for all in-scope frameworks
280
+ 2. **Compliance theater score tracked quarterly** — is it going up or down?
281
+ 3. **Global jurisdiction mapping** (global-grc skill) if operating in multiple jurisdictions
282
+ 4. **Policy exception catalog** — all architectural exceptions documented, reviewed annually, compensating controls verified
283
+ 5. **Threat model currency score tracked quarterly** — target > 80%
284
+
285
+ ---
286
+
287
+ ### Tier 3 — Overkill
288
+
289
+ 1. **Continuous compliance monitoring** — controls are machine-verified in real time, not point-in-time audited
290
+ 2. **Automated theater detection** — weekly automated check: has any control degraded from Tier 2 practice to theater?
291
+ 3. **Framework lag tracking** — formal process for monitoring framework updates and assessing whether gaps have been closed
292
+ 4. **Forward control coverage** — for every documented universal gap, a proposed internal control that exceeds current framework requirements. Documented, reviewed by risk committee, formally adopted or explicitly risk-accepted.
293
+ 5. **Zero-day rapid assessment** — within 24h of a major CVE: RWEP score calculated, theater impact assessed, framework gap analysis run, executive briefing ready
294
+
295
+ ---
296
+
297
+ ## Analysis Procedure
298
+
299
+ When a user invokes this skill, ask:
300
+
301
+ ### Step 1: Identify domain and current state
302
+
303
+ What area? (kernel patching, AI, crypto, GRC, etc.)
304
+
305
+ What do they have today? (nothing / ad-hoc / Tier 1 equivalent / Tier 2 equivalent)
306
+
307
+ ### Step 2: Identify constraints
308
+
309
+ - **Time:** "we need something this week" → Tier 1 only
310
+ - **Team size:** "one security engineer" → Tier 1 + prioritized Tier 2
311
+ - **Compliance requirement:** specific frameworks required → include compliance notes per tier
312
+ - **Risk appetite:** "we handle PHI" → push toward Tier 2/3 for relevant domains
313
+ - **Budget:** explicit constraints → note what each tier costs in tool/time
314
+
315
+ ### Step 3: Produce tiered roadmap
316
+
317
+ For each applicable domain:
318
+ - What does Tier 1 look like for this specific environment? (not generic — specific commands, versions, timelines)
319
+ - What does Tier 2 add? (what operational capability does it require?)
320
+ - What does Tier 3 add? (what does it assume about attacker persistence and capability?)
321
+
322
+ ### Step 4: Sequence recommendation
323
+
324
+ Sequence matters. Recommended default:
325
+
326
+ ```
327
+ Week 1: Tier 1 — Kernel (RWEP 90+ exposure is immediate)
328
+ Week 1: Tier 1 — MCP/AI (zero-interaction RCE exposure)
329
+ Month 1: Tier 1 — Crypto inventory + PQC migration plan
330
+ Month 1: Tier 1 — GRC theater mapping
331
+ Quarter 1: Tier 2 — Kernel (fleet management, SLA tracking)
332
+ Quarter 1: Tier 2 — AI (organizational registry, behavioral baseline)
333
+ Quarter 2: Tier 2 — Crypto (hybrid TLS, ML-DSA for signing)
334
+ Quarter 2: Tier 2 — GRC (gap analysis, exception catalog)
335
+ Year 1+: Tier 3 — by domain, starting with highest-sensitivity data
336
+ ```
337
+
338
+ ---
339
+
340
+ ## Output Format
341
+
342
+ ```
343
+ ## Security Maturity Roadmap
344
+
345
+ **Date:** YYYY-MM-DD
346
+ **Domains in scope:** [list]
347
+ **Current state:** [assessment]
348
+ **Constraint:** [time / team / compliance / budget]
349
+
350
+ ### Priority Sequence
351
+ [Week 1 / Month 1 / Quarter 1 / Year 1 items]
352
+
353
+ ### Domain: [name]
354
+
355
+ #### Tier 1 — MVP (Ship this week)
356
+ [Specific commands, configurations, verification steps]
357
+ **Done when:** [concrete completion criteria]
358
+ **Cost:** [hours, no new tools needed / minimal tooling]
359
+
360
+ #### Tier 2 — Practical (Quarter 1)
361
+ [Scalable, monitored, sustainable]
362
+ **Adds:** [what Tier 1 misses that Tier 2 provides]
363
+ **Cost:** [operational overhead to sustain]
364
+
365
+ #### Tier 3 — Overkill (Year 1+)
366
+ [Defense-in-depth, assumes compromise at lower tiers]
367
+ **Adds:** [blast radius reduction, detection at depth]
368
+ **Cost:** [significant operational complexity — only if the threat model warrants it]
369
+
370
+ ### What to Skip (and Why)
371
+ [If any Tier 3 items are inappropriate for this environment: say so explicitly]
372
+ ```
373
+
374
+ ---
375
+
376
+ ## The Anti-Pattern: Tier 3 Security Theater
377
+
378
+ Tier 3 controls without Tier 1 and Tier 2 in place is its own form of theater.
379
+
380
+ Common examples:
381
+ - SIEMs that alert on everything and are tuned by no one
382
+ - HSMs for key storage with weak key generation practices
383
+ - ZTA architecture with default-allow policies
384
+ - PQC cryptography with no key rotation
385
+
386
+ **Before reaching for Tier 3:** verify Tier 1 is complete and Tier 2 is operational. The most sophisticated defense is useless if the basic controls have gaps.
387
+
388
+ This is the same principle as blamejs's "no-MVP" rule applied to security: better to ship a complete Tier 1 than a partial Tier 3.
389
+
390
+ ---
391
+
392
+ ## Threat Context
393
+
394
+ The 2026 threat baseline forces an MVP that would have looked like a Practical tier in 2022. The cardinal observed change: attacker capability now compresses the time from disclosure to reliable exploitation to hours for an entire class of vulnerabilities, and AI-mediated attack surfaces (prompt injection, MCP supply chain, AI-API C2) sit outside the perimeter and identity controls every framework relies on. The implications by tier:
395
+
396
+ - **MVP for any org touching AI APIs or AI coding agents** must include: SDK-level prompt and response logging that captures full request/response bodies (without it, the SC-7 boundary gap means AI-mediated C2 like SesameOp / AML.T0096 is invisible to the SOC); Ed25519-signed deployable artifacts (the closest practical analogue to the integrity verification that EU CRA Annex I will compel for the EU market from 2026-09-11); and KEV-class CVE monitoring with RWEP-anchored SLAs (see `lib/scoring.js`), not CVSS-anchored ones — CVE-2026-31431 is CVSS 7.8 (High, not Critical) but RWEP 90 because KEV+deterministic+AI-discovered+broad blast radius dominate the actual risk.
397
+ - **Practical** assumes MVP is in place and adds the operational instrumentation that converts point-in-time controls into continuously verified ones: fleet-wide patch visibility for KEV-class with measured live-patch SLA, organisational MCP allowlist with provenance attestation, AI-API behavioral baselines per service identity, ephemeral-aware asset inventory.
398
+ - **Overkill** assumes Practical can still be bypassed by an AI-accelerated adversary: per-invocation capability tokens for AI agents, sandboxed MCP execution, eBPF runtime detection (Tetragon/Falco), continuous adversarial testing of AI surfaces in CI, immutable infrastructure that closes the patch-debt window entirely.
399
+
400
+ The MVP tier is non-negotiable for any org with internet exposure plus AI usage. Every higher tier is a deliberate increase in defense depth, not a checkbox upgrade.
401
+
402
+ ---
403
+
404
+ ## Framework Lag Declaration
405
+
406
+ Each tier diverges from at least one widely-cited framework control because the framework control is operationally inadequate for the threats the tier addresses. The divergences are deliberate and documented per tier.
407
+
408
+ | Tier | Framework / Control | Framework prescription | Tier prescription | Why the framework is insufficient |
409
+ |---|---|---|---|---|
410
+ | MVP | NIST 800-53 SI-2 (Flaw remediation) | "Within organisationally defined time periods" — interpreted across industry as 30 days for critical | Live kernel patch within 4 hours for KEV-listed deterministic LPE (Copy Fail class) | 30 days is an exploitation window, not a security window, for CVE-2026-31431 (RWEP 90, deterministic 732-byte PoC) |
411
+ | MVP | ISO 27001:2022 A.8.8 (Technical vulnerability management) | "Appropriate timescales" — undefined | Same as above — RWEP-indexed, not calendar-indexed | "Appropriate" leaves the operationally critical SLA undefined precisely where definition matters |
412
+ | MVP | PCI DSS 4.0 6.3.3 | Critical patches within 1 month | Same divergence — RWEP >= 70 must be live-patched within hours | 1 month is multiple AI-accelerated exploit cycles |
413
+ | MVP | EU NIS2 Art. 21(2)(f) (vulnerability handling) | "Policies/procedures to assess vulnerability handling measures" | Concrete RWEP-anchored SLA published as policy | "Procedures to assess" is meta-control, not a control |
414
+ | MVP | UK Cyber Essentials | High-risk patches within 14 days | Same divergence — 14 days insufficient for KEV-class deterministic LPE | Better than NIST but still loses to AI-accelerated weaponization |
415
+ | MVP | AU ASD ISM-1623 / Essential 8 ML3 | 48h patch when exploit exists | Aligned at the framework level; tier adds live-patch capability requirement | Closest national framework alignment globally; still no live-patch mandate |
416
+ | Practical | ISO 27001:2022 A.5.9 (Inventory of information and other associated assets) | Point-in-time CMDB / asset register | Ephemeral-aware inventory snapshots (continuous, container/serverless-native) | Point-in-time CMDB misses ephemeral workloads; Practical Tier requires an inventory that reflects actual workload existence within minutes, not days |
417
+ | Practical | NIST 800-53 CM-8 (System component inventory) | Documented inventory, updated periodically | Same divergence — continuous, attestation-based inventory | CM-8 cadence is multi-day at best; AI-speed reconnaissance (36,000 probes/sec) requires continuous attack-surface awareness |
418
+ | Practical | EU DORA Art. 8 (ICT risk identification) | "On an ongoing basis" | Same — continuous, with explicit AI/MCP categories | "Ongoing" undefined; the tier defines it as < 1h staleness for production assets |
419
+ | Practical | NIST 800-53 SC-7 (Boundary Protection) | Perimeter and internal boundary protection | Add AI-API egress logging and behavioral baselining | SC-7 is perimeter-centric; AI-API egress is internal-trusted traffic that hides AML.T0096 (LLM C2) |
420
+ | Overkill | NIST 800-53 AC-6 (Least privilege) | Privilege minimisation for principals | Per-invocation capability tokens for AI agents | AC-6 controls principal permissions; AI agents need per-call scoped capabilities the framework does not contemplate |
421
+ | Overkill | ISO 27001:2022 A.8.31 (Separation of development, test, production) | Environment separation | Add: sandboxed MCP servers with seccomp+netns enforcement | A.8.31 does not contemplate developer-installed AI tool plugins as a privilege-bearing execution surface |
422
+ | Overkill | EU AI Act Art. 15 (Cybersecurity for high-risk AI) | "Appropriate level" of cybersecurity | Continuous adversarial testing of AI surfaces in CI | "Appropriate" is interpretive; the tier operationalises it |
423
+
424
+ Per AGENTS.md hard rule #5, the divergences above are surfaced against US, EU, UK, AU and ISO 27001:2022 — every tier's framework lag declaration is global by construction.
425
+
426
+ ---
427
+
428
+ ## TTP Mapping
429
+
430
+ Per-tier TTP coverage is cumulative: Practical includes MVP's coverage plus additions; Overkill includes both plus additions. Source-of-truth: `data/atlas-ttps.json` (MITRE ATLAS v5.1.0) and ATT&CK references in `data/cve-catalog.json`.
431
+
432
+ | Tier | Must cover | TTP | Source | Tier-specific control element |
433
+ |---|---|---|---|---|
434
+ | MVP | Privilege escalation | T1068 (ATT&CK) | cve-catalog.json: CVE-2026-31431 | Live-patch + auditd userfaultfd / proc/self/mem rules |
435
+ | MVP | LLM Prompt Injection | AML.T0051 | atlas-ttps.json | Don't execute AI-suggested commands without read; turn on prompt+response logging |
436
+ | MVP | ML Supply Chain Compromise (MCP) | AML.T0010 | atlas-ttps.json | MCP server inventory + version pinning + tool allowlist |
437
+ | MVP | Craft Adversarial Data — NLP | AML.T0054 | atlas-ttps.json | Same control as AML.T0051; the two are operationally adjacent |
438
+ | Practical | Exploit Public-Facing Application | T1190 (ATT&CK) | cve-catalog.json (CVE-2025-53773 attack_refs) | External attack-surface management + AI-mediated T1190 coverage |
439
+ | Practical | Develop Capabilities (AI-assisted weaponization) | AML.T0017 | atlas-ttps.json | RWEP-anchored monitoring; treat KEV+PoC as immediate live-patch trigger |
440
+ | Practical | Poison Training Data | AML.T0020 | atlas-ttps.json | Training-pipeline integrity verification for any in-house ML used in decisions |
441
+ | Practical | Acquire Public ML Artifacts (misuse) | AML.T0016 | atlas-ttps.json | Phishing detection updated for AI-generated content; behavioural signals primary |
442
+ | Overkill | LLM Integration Abuse (C2) | AML.T0096 | atlas-ttps.json | AI-traffic content inspection + SesameOp-pattern detection with behavioural baseline |
443
+ | Overkill | Backdoor ML Model | AML.T0018 | atlas-ttps.json | Model integrity verification (behavioural regression tests, model signing) |
444
+ | Overkill | Craft Adversarial Data (RAG/general) | AML.T0043 | atlas-ttps.json | Vector-store access controls + retrieval-anomaly monitoring |
445
+
446
+ The full canonical truth set is `data/atlas-ttps.json` (all `AML.T*` keys excluding `_meta`) union the `attack_refs` field of every entry in `data/cve-catalog.json`. The tiered selection above is the minimum coverage; orgs in regulated verticals (finance, health, critical infrastructure) typically push Overkill items into Practical based on threat-model output.
447
+
448
+ ---
449
+
450
+ ## Exploit Availability Matrix
451
+
452
+ Tiered to the current `data/cve-catalog.json`, using RWEP (`lib/scoring.js`) as the priority metric, not CVSS:
453
+
454
+ | Tier | Coverage requirement | CVEs in scope as of 2026-05-01 | Available exploits | Required protective state |
455
+ |---|---|---|---|---|
456
+ | MVP | RWEP >= 70 | CVE-2026-31431 (Copy Fail, RWEP 90, CVSS 7.8) | Public 732-byte deterministic PoC; KEV-listed 2026-03-15; AI-discovered; live-patch available (kpatch / canonical-livepatch / kGraft) | Live-patched within hours of KEV listing OR fully patched + rebooted OR network-isolated with documented reboot date |
457
+ | Practical | RWEP >= 40 | CVE-2026-31431 (90), CVE-2025-53773 (Copilot prompt-injection RCE, 42, CVSS 9.6) | Copy Fail as above; CVE-2025-53773 has demonstrated PoC, AI-weaponized, SaaS-patchable | All MVP coverage plus: prompt-injection classifier in front of any LLM processing external content; phishing simulation using AI-generated content; org-wide AI-coding-assistant version management |
458
+ | Overkill | All catalog entries regardless of RWEP | CVE-2026-31431 (90), CVE-2025-53773 (42), CVE-2026-43284 (Dirty Frag ESP/IPsec, 38, CVSS 7.8), CVE-2026-30615 (Windsurf MCP zero-interaction RCE, 35, CVSS 9.8), CVE-2026-43500 (Dirty Frag RxRPC, 32, CVSS 7.6) | Public PoC for all; Dirty Frag pair has no live patch (kpatch RHEL-only); Windsurf is supply-chain class; chained Dirty Frag requires kernel-version fingerprinting | All Practical coverage plus: kernel hardening (unprivileged_userns_clone=0, unprivileged_userfaultfd=0, kptr_restrict=2); seccomp profiles on all containers; eBPF runtime detection; immutable infrastructure for the workloads that tolerate it; sandboxed MCP execution; per-invocation capability tokens for AI agents |
459
+
460
+ Refresh trigger: re-run `node lib/scoring.js` and rebuild this matrix whenever `data/cve-catalog.json` is updated. Per AGENTS.md hard rule #6 the zero-day learning loop also feeds back into the tier mapping when a new CVE is added.
461
+
462
+ Note on CVSS divergence: every CVE in this catalog has a CVSS in the 7.6–9.8 range — CVSS alone would conflate them and prioritise CVE-2026-30615 (9.8) over CVE-2026-31431 (7.8). RWEP correctly ranks Copy Fail (90) above Windsurf (35) because KEV listing, deterministic exploitability, AI discovery, and broad blast radius dominate. The MVP tier protects against the right thing first.
463
+
464
+ ---