@blamejs/exceptd-skills 0.12.6 → 0.12.8

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 (65) hide show
  1. package/AGENTS.md +14 -0
  2. package/CHANGELOG.md +97 -0
  3. package/bin/exceptd.js +189 -52
  4. package/data/_indexes/_meta.json +37 -37
  5. package/data/_indexes/activity-feed.json +26 -26
  6. package/data/_indexes/catalog-summaries.json +8 -8
  7. package/data/_indexes/chains.json +238 -0
  8. package/data/_indexes/frequency.json +63 -5
  9. package/data/_indexes/jurisdiction-map.json +13 -3
  10. package/data/_indexes/section-offsets.json +881 -845
  11. package/data/_indexes/summary-cards.json +2 -2
  12. package/data/_indexes/token-budget.json +145 -125
  13. package/data/atlas-ttps.json +189 -1
  14. package/data/cwe-catalog.json +290 -1
  15. package/data/d3fend-catalog.json +163 -1
  16. package/data/framework-control-gaps.json +243 -0
  17. package/data/playbooks/containers.json +23 -5
  18. package/data/playbooks/cred-stores.json +9 -9
  19. package/data/playbooks/crypto.json +8 -8
  20. package/data/playbooks/hardening.json +46 -10
  21. package/data/playbooks/library-author.json +16 -20
  22. package/data/playbooks/mcp.json +64 -1
  23. package/data/playbooks/runtime.json +7 -7
  24. package/data/playbooks/sbom.json +11 -11
  25. package/data/playbooks/secrets.json +4 -4
  26. package/data/rfc-references.json +144 -0
  27. package/lib/refresh-external.js +25 -5
  28. package/lib/schemas/skill-frontmatter.schema.json +2 -2
  29. package/manifest-snapshot.json +1 -1
  30. package/manifest.json +67 -67
  31. package/package.json +2 -1
  32. package/sbom.cdx.json +6 -6
  33. package/scripts/check-sbom-currency.js +87 -0
  34. package/scripts/check-test-coverage.README.md +148 -0
  35. package/scripts/check-test-coverage.js +455 -0
  36. package/scripts/hooks/pre-commit.sh +19 -0
  37. package/scripts/predeploy.js +16 -30
  38. package/skills/age-gates-child-safety/skill.md +3 -0
  39. package/skills/ai-attack-surface/skill.md +4 -1
  40. package/skills/ai-c2-detection/skill.md +6 -1
  41. package/skills/ai-risk-management/skill.md +3 -0
  42. package/skills/api-security/skill.md +3 -0
  43. package/skills/attack-surface-pentest/skill.md +3 -0
  44. package/skills/cloud-security/skill.md +3 -0
  45. package/skills/container-runtime-security/skill.md +3 -0
  46. package/skills/coordinated-vuln-disclosure/skill.md +8 -1
  47. package/skills/defensive-countermeasure-mapping/skill.md +1 -1
  48. package/skills/dlp-gap-analysis/skill.md +3 -0
  49. package/skills/email-security-anti-phishing/skill.md +9 -1
  50. package/skills/identity-assurance/skill.md +6 -1
  51. package/skills/incident-response-playbook/skill.md +8 -2
  52. package/skills/kernel-lpe-triage/skill.md +24 -4
  53. package/skills/mcp-agent-trust/skill.md +4 -1
  54. package/skills/mlops-security/skill.md +3 -0
  55. package/skills/ot-ics-security/skill.md +3 -0
  56. package/skills/rag-pipeline-security/skill.md +3 -0
  57. package/skills/sector-energy/skill.md +3 -0
  58. package/skills/sector-federal-government/skill.md +3 -0
  59. package/skills/sector-financial/skill.md +3 -0
  60. package/skills/sector-healthcare/skill.md +3 -0
  61. package/skills/security-maturity-tiers/skill.md +19 -1
  62. package/skills/skill-update-loop/skill.md +32 -0
  63. package/skills/supply-chain-integrity/skill.md +3 -0
  64. package/skills/threat-modeling-methodology/skill.md +3 -0
  65. package/skills/webapp-security/skill.md +3 -0
@@ -39,6 +39,9 @@ framework_gaps:
39
39
  - ISO-27001-2022-A.8.30
40
40
  - NIST-800-53-AC-2
41
41
  - SOC2-CC6-logical-access
42
+ - NIS2-Art21-incident-handling
43
+ - UK-CAF-B2
44
+ - AU-Essential-8-MFA
42
45
  rfc_refs: []
43
46
  cwe_refs:
44
47
  - CWE-200
@@ -39,6 +39,9 @@ framework_gaps:
39
39
  - OWASP-LLM-Top-10-2025-LLM01
40
40
  - OWASP-LLM-Top-10-2025-LLM02
41
41
  - SOC2-CC6-logical-access
42
+ - EU-AI-Act-Art-15
43
+ - UK-CAF-A1
44
+ - AU-Essential-8-App-Hardening
42
45
  cwe_refs:
43
46
  - CWE-1039
44
47
  - CWE-1426
@@ -46,7 +49,7 @@ cwe_refs:
46
49
  d3fend_refs:
47
50
  - D3-IOPR
48
51
  - D3-NTA
49
- last_threat_review: "2026-05-01"
52
+ last_threat_review: "2026-05-13"
50
53
  ---
51
54
 
52
55
  # AI Attack Surface Assessment
@@ -28,6 +28,11 @@ framework_gaps:
28
28
  - NIST-800-53-SC-7
29
29
  - ISO-27001-2022-A.8.16
30
30
  - SOC2-CC7-anomaly-detection
31
+ - NIS2-Art21-incident-handling
32
+ - UK-CAF-C1
33
+ - AU-Essential-8-App-Hardening
34
+ cwe_refs:
35
+ - CWE-918
31
36
  rfc_refs:
32
37
  - RFC-8446
33
38
  - RFC-9180
@@ -43,7 +48,7 @@ d3fend_refs:
43
48
  - D3-NI
44
49
  - D3-NTA
45
50
  - D3-NTPM
46
- last_threat_review: "2026-05-01"
51
+ last_threat_review: "2026-05-13"
47
52
  ---
48
53
 
49
54
  # AI C2 Detection
@@ -33,6 +33,9 @@ framework_gaps:
33
33
  - ISO-IEC-23894-2023-clause-7
34
34
  - NIST-AI-RMF-MEASURE-2.5
35
35
  - OWASP-LLM-Top-10-2025-LLM01
36
+ - EU-AI-Act-Art-15
37
+ - UK-CAF-A1
38
+ - AU-Essential-8-App-Hardening
36
39
  rfc_refs: []
37
40
  cwe_refs:
38
41
  - CWE-1426
@@ -36,6 +36,9 @@ framework_gaps:
36
36
  - NIST-800-218-SSDF
37
37
  - ISO-27001-2022-A.8.28
38
38
  - NIST-800-53-AC-2
39
+ - NIS2-Art21-incident-handling
40
+ - UK-CAF-B2
41
+ - AU-Essential-8-App-Hardening
39
42
  rfc_refs:
40
43
  - RFC-8446
41
44
  - RFC-9114
@@ -34,6 +34,9 @@ framework_gaps:
34
34
  - OWASP-Pen-Testing-Guide-v5
35
35
  - PTES-Pre-engagement
36
36
  - NIS2-Art21-patch-management
37
+ - ISO-27001-2022-A.8.8
38
+ - UK-CAF-A1
39
+ - AU-Essential-8-App-Hardening
37
40
  rfc_refs: []
38
41
  cwe_refs:
39
42
  - CWE-1395
@@ -38,6 +38,9 @@ framework_gaps:
38
38
  - ISO-27001-2022-A.8.30
39
39
  - SOC2-CC9-vendor-management
40
40
  - FedRAMP-Rev5-Moderate
41
+ - NIS2-Art21-incident-handling
42
+ - UK-CAF-B2
43
+ - AU-Essential-8-MFA
41
44
  rfc_refs:
42
45
  - RFC-8446
43
46
  - RFC-9180
@@ -38,6 +38,9 @@ framework_gaps:
38
38
  - NIST-800-53-CM-7
39
39
  - ISO-27001-2022-A.8.28
40
40
  - SLSA-v1.0-Build-L3
41
+ - NIS2-Art21-incident-handling
42
+ - UK-CAF-B2
43
+ - AU-Essential-8-App-Hardening
41
44
  rfc_refs:
42
45
  - RFC-8446
43
46
  - RFC-8032
@@ -29,7 +29,14 @@ framework_gaps:
29
29
  - NIST-800-218-SSDF
30
30
  - ISO-27001-2022-A.8.8
31
31
  - SOC2-CC9-vendor-management
32
- rfc_refs: []
32
+ - NIS2-Art21-incident-handling
33
+ - UK-CAF-D1
34
+ - AU-Essential-8-Patch
35
+ rfc_refs:
36
+ - ISO-29147
37
+ - ISO-30111
38
+ - RFC-9116
39
+ - CSAF-2.0
33
40
  cwe_refs:
34
41
  - CWE-1357
35
42
  d3fend_refs: []
@@ -208,7 +208,7 @@ Zero-trust-compliant defense maps to controls that verify per request. Implicit-
208
208
  Example: "CVE — Linux kernel LPE. Canonical: CVE-2026-31431 (Copy Fail)."
209
209
 
210
210
  ## Offensive technique set (input to D3FEND query)
211
- - <AML.Txxxx / Txxxx / CWE-xxx list, with one-line descriptions>
211
+ - <AML.T0001-or-similar / T0001-or-similar / CWE-<id> list, with one-line descriptions>
212
212
 
213
213
  ## Defensive-coverage map
214
214
  | D3FEND ID | Name | Tactic (DiD layer) | Privilege scope | ZT posture | Deployed? | AI-pipeline applicable? | Framework controls partially mapped | Live-tunable? |
@@ -41,6 +41,9 @@ framework_gaps:
41
41
  - HIPAA-Security-Rule-164.312(a)(1)
42
42
  - SOC2-CC7-anomaly-detection
43
43
  - NIST-800-53-SC-28
44
+ - NIS2-Art21-incident-handling
45
+ - UK-CAF-C1
46
+ - AU-Essential-8-App-Hardening
44
47
  rfc_refs:
45
48
  - RFC-8446
46
49
  - RFC-9458
@@ -39,7 +39,15 @@ framework_gaps:
39
39
  - NIST-800-53-SI-3
40
40
  - ISO-27001-2022-A.8.16
41
41
  - SOC2-CC7-anomaly-detection
42
- rfc_refs: []
42
+ - NIS2-Art21-incident-handling
43
+ - UK-CAF-C1
44
+ - AU-Essential-8-App-Hardening
45
+ rfc_refs:
46
+ - RFC-7489
47
+ - RFC-6376
48
+ - RFC-7208
49
+ - RFC-8616
50
+ - RFC-8461
43
51
  cwe_refs: []
44
52
  d3fend_refs:
45
53
  - D3-NTA
@@ -38,6 +38,9 @@ framework_gaps:
38
38
  - ISO-27001-2022-A.8.30
39
39
  - SOC2-CC6-logical-access
40
40
  - PSD2-RTS-SCA
41
+ - NIS2-Art21-incident-handling
42
+ - UK-CAF-B2
43
+ - AU-Essential-8-MFA
41
44
  rfc_refs:
42
45
  - RFC-7519
43
46
  - RFC-8725
@@ -52,7 +55,9 @@ cwe_refs:
52
55
  - CWE-798
53
56
  - CWE-862
54
57
  - CWE-863
55
- d3fend_refs: []
58
+ d3fend_refs:
59
+ - D3-MFA
60
+ - D3-CSPP
56
61
  last_threat_review: "2026-05-11"
57
62
  ---
58
63
 
@@ -37,7 +37,13 @@ framework_gaps:
37
37
  - NIST-800-53-AC-2
38
38
  - ISO-27001-2022-A.8.16
39
39
  - SOC2-CC7-anomaly-detection
40
- rfc_refs: []
40
+ - NIS2-Art21-incident-handling
41
+ - UK-CAF-D1
42
+ - AU-Essential-8-Backup
43
+ rfc_refs:
44
+ - RFC-6545
45
+ - RFC-6546
46
+ - RFC-7970
41
47
  cwe_refs: []
42
48
  d3fend_refs:
43
49
  - D3-RPA
@@ -120,7 +126,7 @@ This skill is response-shaped — the TTPs below name the incident classes the p
120
126
  |---|---|---|---|---|
121
127
  | **T1486** | Data Encrypted for Impact | Ransomware | Identification: EDR file-encryption telemetry, share-mass-write pattern. Containment: network-segment isolation, identity revocation. Eradication: backup-validation-before-restore. Recovery: validated-restore + service-level verification. Lessons: feed to `zeroday-gap-learn` if initial access was a known CVE. | Detection coverage strong; identity-rotation maturity weak. NYDFS 24h ransom-payment clock and OFAC sanctions screening intersect at decision-to-pay. |
122
128
  | **T1041** | Exfiltration Over C2 Channel | Data exfiltration via established C2 | Identification: DLP egress, anomalous outbound bandwidth, beaconing patterns. Containment: egress filtering, certificate-pinned proxy. Eradication: C2 artifact removal. Recovery: identity + secrets rotation. Lessons: detection-engineering gap analysis. | EDR coverage variable; encrypted exfiltration to legitimate services (Box, OneDrive, S3) often missed by signature-based DLP. |
123
- | **T1567** | Exfiltration Over Web Service | Exfiltration via legitimate web/SaaS services including AI-API | Identification: web-egress to anomalous services or anomalous-volume to legitimate services; for AI-API channel pair with `ai-c2-detection`. Containment: egress block of identified channel, AI-API key revocation, MCP-server scope reduction. Eradication: identify exfiltrated dataset, follow data-incident sub-playbook. Recovery: re-key + re-issue access. | AI-API exfiltration (sub-technique T1567.xxx pattern; ATLAS overlap with AML.T0017) typically blends with legitimate traffic — see `ai-c2-detection` for content-layer detection. |
129
+ | **T1567** | Exfiltration Over Web Service | Exfiltration via legitimate web/SaaS services including AI-API | Identification: web-egress to anomalous services or anomalous-volume to legitimate services; for AI-API channel pair with `ai-c2-detection`. Containment: egress block of identified channel, AI-API key revocation, MCP-server scope reduction. Eradication: identify exfiltrated dataset, follow data-incident sub-playbook. Recovery: re-key + re-issue access. | AI-API exfiltration (sub-technique T1567.<sub-technique-id> pattern; ATLAS overlap with AML.T0017) typically blends with legitimate traffic — see `ai-c2-detection` for content-layer detection. |
124
130
  | **T1078** | Valid Accounts | Identity compromise as initial access | Identification: anomalous-sign-in UEBA, impossible-travel, MFA-fatigue patterns. Containment: account disable + session revocation + re-authentication for affected blast radius. Eradication: credential rotation, token revocation, OAuth-grant audit, AI-agent service-account rotation. Recovery: re-issue under zero-trust posture. Lessons: identity-control gap analysis. | Dominant initial-access vector mid-2026; coverage strong for human accounts, weak for AI-agent / service-account / OAuth-app identities. |
125
131
  | **AML.T0096** | LLM API as C2 | AI-API as command-and-control channel (SesameOp pattern) | Identification: see `ai-c2-detection` skill — content-layer detection at the AI API egress boundary, prompt-and-response correlation, anomalous AI-API usage shape. Containment: AI-API egress block or proxy-mediated allowlist. Eradication: identify the agent or workload abusing the channel. Recovery: re-issue AI-API keys under scoped least-privilege. | Detection coverage near-absent in legacy SOC stacks; the AI traffic shape is novel and signatures do not exist for most enterprise SIEMs. |
126
132
  | **AML.T0017** | ML Model Exfiltration | Model weights, training data, or system-prompt extraction | Identification: anomalous inference-API usage patterns (high-volume queries, structured probing, membership-inference signatures, repeated training-data extraction prompts). Containment: rate-limit + API-key revocation + IP block. Eradication: identify attacker access surface; assess data sensitivity. Recovery: re-key, consider model-rotation if proprietary weights are at risk; for training-data exfiltration consider differential-privacy retraining. | No standardized detection signatures; org must build custom telemetry over AI inference APIs. |
@@ -26,6 +26,8 @@ framework_gaps:
26
26
  - NIS2-Art21-patch-management
27
27
  - NIST-800-53-SC-8
28
28
  - CIS-Controls-v8-Control7
29
+ - UK-CAF-D1
30
+ - AU-Essential-8-Patch
29
31
  rfc_refs:
30
32
  - RFC-4301
31
33
  - RFC-4303
@@ -41,7 +43,7 @@ d3fend_refs:
41
43
  - D3-EAL
42
44
  - D3-PHRA
43
45
  - D3-PSEP
44
- last_threat_review: "2026-05-01"
46
+ last_threat_review: "2026-05-13"
45
47
  ---
46
48
 
47
49
  # Kernel LPE Triage
@@ -134,6 +136,24 @@ Note: ATLAS refs are intentionally empty in frontmatter — these are Linux kern
134
136
 
135
137
  ---
136
138
 
139
+ ## Compliance Theater Check
140
+
141
+ Run this check for any org claiming patch-management compliance for kernel LPE class CVEs:
142
+
143
+ > "Your patch-management control (NIST SI-2 / ISO 27001:2022 A.8.8 / PCI-DSS v4 6.3.3 / NIS2 Art. 21(2)(g) / UK-CAF B4 / AU-ISM-1493) documents a 30-day remediation window for Critical/High CVEs. CVE-2026-31431 (Copy Fail) is CISA KEV listed with a public deterministic exploit requiring no privileges and KEV listing dated 2026-03-15. What is the actual time, on this fleet, between KEV listing and confirmed patch-or-mitigate for the affected kernel versions? If that interval exceeds 72 hours without live-patching as a deployed capability for the affected hosts, the patch-management control is theater for the KEV-class kernel-LPE threat surface."
144
+
145
+ **Theater fingerprints (any of these reduces the control to paper compliance):**
146
+
147
+ - Patch SLA is measured against advisory-publication date, not KEV-listing date — KEV listings are the operational signal that exploitation is happening now, and the SLA must trigger from there.
148
+ - The fleet inventory cannot answer "which hosts run the affected kernel version" within minutes — without live inventory, the SLA cannot be measured.
149
+ - Live-patching is described as "available" but no kernel was live-patched in the last 30 days — capability without operation is theater.
150
+ - The compensating-controls plan for hosts that cannot be rebooted within SLA is undocumented or relies on controls the CVE PoC bypasses (e.g. AppArmor profiles where the exploit runs as the legitimate user).
151
+ - "Patch management" includes only OS vendor patches, not third-party kernel modules or out-of-tree drivers — Dirty Frag RxRPC class lives in the network subsystem and is often patched on an asymmetric cadence.
152
+
153
+ **Real requirement:** patch SLA anchored to KEV listing date, fleet inventory live enough to answer "affected hosts" in under 5 minutes, live-patching deployed and exercised in the prior 30 days, written compensating-controls plan that survives the PoC test, third-party kernel modules in scope.
154
+
155
+ ---
156
+
137
157
  ## Analysis Procedure
138
158
 
139
159
  When a user invokes this skill, perform this assessment in order:
@@ -156,10 +176,10 @@ Ask for or assess:
156
176
  Exposed if: kernel >= 4.14 AND kernel < [patched version for distribution]
157
177
  Patched versions:
158
178
  RHEL 8/9: kernel-4.18.0-553.xx.el8 / kernel-5.14.0-427.xx.el9
159
- Ubuntu 22.04: linux-image-5.15.0-xxx (check USN-7xxx)
160
- Ubuntu 24.04: linux-image-6.8.0-xxx (check USN-7xxx)
179
+ Ubuntu 22.04: linux-image-5.15.0-<patch-revision> (check USN-7<advisory-number>)
180
+ Ubuntu 24.04: linux-image-6.8.0-xxx (check USN-7<advisory-number>)
161
181
  Debian 12: 6.1.xxx (check DSA-5xxx)
162
- Amazon Linux 2: kernel 5.10.xxx (check ALAS-2026-xxx)
182
+ Amazon Linux 2: kernel 5.10.xxx (check ALAS-2026-<advisory-number>)
163
183
  SUSE 15: kernel 5.14.xxx (check SUSE-SU-2026:xxx)
164
184
  ```
165
185
 
@@ -33,6 +33,9 @@ framework_gaps:
33
33
  - OWASP-LLM-Top-10-2025-LLM06
34
34
  - SOC2-CC9-vendor-management
35
35
  - SWIFT-CSCF-v2026-1.1
36
+ - EU-AI-Act-Art-15
37
+ - UK-CAF-A1
38
+ - AU-Essential-8-App-Hardening
36
39
  rfc_refs:
37
40
  - RFC-6749
38
41
  - RFC-7519
@@ -56,7 +59,7 @@ d3fend_refs:
56
59
  - D3-EAL
57
60
  - D3-EHB
58
61
  - D3-MFA
59
- last_threat_review: "2026-05-01"
62
+ last_threat_review: "2026-05-13"
60
63
  ---
61
64
 
62
65
  # MCP Agent Trust Assessment
@@ -41,6 +41,9 @@ framework_gaps:
41
41
  - ISO-IEC-42001-2023-clause-6.1.2
42
42
  - NIST-AI-RMF-MEASURE-2.5
43
43
  - OWASP-LLM-Top-10-2025-LLM08
44
+ - EU-AI-Act-Art-15
45
+ - UK-CAF-A1
46
+ - AU-Essential-8-App-Hardening
44
47
  rfc_refs:
45
48
  - RFC-8032
46
49
  cwe_refs:
@@ -36,6 +36,9 @@ framework_gaps:
36
36
  - IEC-62443-3-3
37
37
  - NERC-CIP-007-6-R4
38
38
  - NIS2-Art21-patch-management
39
+ - ISO-27001-2022-A.8.8
40
+ - UK-CAF-B2
41
+ - AU-Essential-8-App-Hardening
39
42
  rfc_refs: []
40
43
  cwe_refs:
41
44
  - CWE-287
@@ -25,6 +25,9 @@ framework_gaps:
25
25
  - NIST-800-53-SI-12
26
26
  - NIST-AI-RMF-MEASURE-2.5
27
27
  - OWASP-LLM-Top-10-2025-LLM08
28
+ - EU-AI-Act-Art-15
29
+ - UK-CAF-A1
30
+ - AU-Essential-8-App-Hardening
28
31
  cwe_refs:
29
32
  - CWE-1395
30
33
  - CWE-1426
@@ -36,6 +36,9 @@ framework_gaps:
36
36
  - NIST-800-82r3
37
37
  - IEC-62443-3-3
38
38
  - NIS2-Art21-patch-management
39
+ - ISO-27001-2022-A.8.8
40
+ - UK-CAF-D1
41
+ - AU-Essential-8-Backup
39
42
  rfc_refs: []
40
43
  cwe_refs:
41
44
  - CWE-287
@@ -36,6 +36,9 @@ framework_gaps:
36
36
  - CMMC-2.0-Level-2
37
37
  - NIST-800-218-SSDF
38
38
  - SLSA-v1.0-Build-L3
39
+ - NIS2-Art21-incident-handling
40
+ - UK-CAF-A1
41
+ - AU-Essential-8-App-Hardening
39
42
  rfc_refs:
40
43
  - RFC-8032
41
44
  - RFC-8446
@@ -41,6 +41,9 @@ framework_gaps:
41
41
  - SWIFT-CSCF-v2026-1.1
42
42
  - NIST-800-53-AC-2
43
43
  - SOC2-CC6-logical-access
44
+ - NIS2-Art21-incident-handling
45
+ - UK-CAF-A1
46
+ - AU-Essential-8-MFA
44
47
  rfc_refs:
45
48
  - RFC-8446
46
49
  - RFC-7519
@@ -37,6 +37,9 @@ framework_gaps:
37
37
  - HITRUST-CSF-v11.4-09.l
38
38
  - ISO-27001-2022-A.8.30
39
39
  - NIST-800-53-AC-2
40
+ - NIS2-Art21-incident-handling
41
+ - UK-CAF-D1
42
+ - AU-Essential-8-Backup
40
43
  rfc_refs:
41
44
  - RFC-7519
42
45
  - RFC-9421
@@ -73,7 +73,7 @@ It outputs Tier 1 (MVP), Tier 2 (Practical), Tier 3 (Overkill) for that domain
73
73
  uname -r
74
74
  # Cross-reference against patched versions for your distro
75
75
  # RHEL: kernel >= 4.18.0-553.xx = patched
76
- # Ubuntu 22.04: linux-image-5.15.0-xxx (check latest USN)
76
+ # Ubuntu 22.04: linux-image-5.15.0-<patch-revision> (check latest USN)
77
77
  ```
78
78
 
79
79
  2. **Deploy live kernel patches on exposed systems** (same day)
@@ -373,6 +373,24 @@ Year 1+: Tier 3 — by domain, starting with highest-sensitivity data
373
373
 
374
374
  ---
375
375
 
376
+ ## Compliance Theater Check
377
+
378
+ Apply this check to every maturity-tier engagement before recommending a roadmap:
379
+
380
+ > "Your security program currently sits at Tier <N> by self-assessment for domain <D>. The compliance framework you cite (e.g. NIST CSF 2.0 / ISO 27001:2022 / NIS2 Art. 21 / UK-CAF / AU Essential 8) classifies your posture as <attested-tier>. If the threats now in scope for this domain (specific CVE / TTP from `data/cve-catalog.json` and `data/atlas-ttps.json`) include a class where the framework control is structurally insufficient (Hard Rule #2 framework-lag), then your attested tier and your operational tier diverge by exactly that gap. Which of the controls you would cite for your attested tier would survive a primary-source IoC test against the highest-RWEP CVE in scope?"
381
+
382
+ **Theater fingerprints for tier conflation:**
383
+
384
+ - The org has Tier 3 controls in one domain (e.g. SIEM with hundreds of alerts) but Tier 1 gaps in an adjacent domain (e.g. no kernel-LPE patch SLA on the SIEM host). The Tier 3 alert never fires because the underlying integrity is missing.
385
+ - "Mature" is asserted on the basis of tool ownership, not behavior — HSMs purchased, never operationally rotated; ZTA architecture documented, default-allow policies in force; PQC algorithms in code, no key-rotation playbook.
386
+ - The maturity model used is the org's own framework-attestation tier, not the lived operational tier — the audit report says Tier 3, the on-call says "what's that runbook again."
387
+ - Tier-3 controls audited annually, Tier-1 controls (patching, MFA on privileged identities, secrets in git) never re-audited because they "passed once."
388
+ - The roadmap promotes the org from Tier 1 to Tier 3 in a single budget cycle, skipping the Tier 2 operational work that converts point-in-time controls into continuous ones.
389
+
390
+ **Real requirement:** maturity assessed per domain, not org-wide; the assessed tier matches operational behavior (not the audit attestation); promotion happens domain-by-domain with explicit Tier-2 instrumentation between Tier-1 controls and Tier-3 sophistication; the same CVE-anchored primary-source IoC test (Hard Rule #14) applies at every tier — if a Tier-3 control cannot defend against the published PoC of the highest-RWEP CVE in scope, the tier classification is theater.
391
+
392
+ ---
393
+
376
394
  ## The Anti-Pattern: Tier 3 Security Theater
377
395
 
378
396
  Tier 3 controls without Tier 1 and Tier 2 in place is its own form of theater.
@@ -41,6 +41,38 @@ This meta-skill manages the evolution of all other exceptd skills. It is the loo
41
41
 
42
42
  ---
43
43
 
44
+ ## Threat Context
45
+
46
+ The threat context this skill defends against is not a specific adversary technique — it is the **drift attack against the platform's own currency**: an exceptd installation whose skills, catalogs, framework references, and ATLAS pins age silently between releases until the operator-facing analysis is calibrated to a threat model that no longer exists.
47
+
48
+ Real-world manifestations in mid-2026:
49
+
50
+ - ATLAS v5.1.0 (November 2025) added TTPs that bind to operational reality (AML.T0096 AI-API C2, AML.T0048 erode-integrity-via-drift). A skill pinned to ATLAS v4 cannot route these. **AML.T0010** family was expanded to cover MCP supply-chain compromise mid-cycle.
51
+ - CVE-2026-31431 (Copy Fail) joined CISA KEV in 2026-03-15. Any skill whose `last_threat_review` predates that date and whose body recommends "patch on 30-day SLA" is recommending against a threat model that KEV escalated to days, not weeks.
52
+ - NIST SP 800-63B updated PBKDF2 iteration guidance to ≥ 600,000 in 2022; many compliance attestations still cite the 2017 numbers. A skill that does not track that lag perpetuates the theater.
53
+ - IETF RFC 9116 (security.txt) and the CSAF 2.0 transition both have hard cutover signals that change how `coordinated-vuln-disclosure` should advise.
54
+
55
+ The decay is silent — no alert fires, no signature breaks, no test fails. Skill currency is only verifiable by running this update loop on a published cadence. Without it, **every other skill ships with a hidden expiration date.**
56
+
57
+ ---
58
+
59
+ ## TTP Mapping
60
+
61
+ This skill defends against drift; the TTPs that EXPLOIT a drifted skill are:
62
+
63
+ | Tactic | TTP | What drift enables |
64
+ |---|---|---|
65
+ | Defense Evasion | T1562.001 (Disable or Modify Tools) | Stale skill recommends only the controls the current adversary class already evades |
66
+ | Resource Development | AML.T0016 (Develop Capabilities) | Attacker capability outpaces the catalog the skill cites |
67
+ | Initial Access | AML.T0010 (Supply Chain Compromise) | New attack class (e.g. MCP plugin compromise) isn't yet a skill |
68
+ | Defense Evasion | T1027 (Obfuscated Files or Information) | Detection rules in a skill are for an older obfuscation generation |
69
+ | Impact | AML.T0048 (Erode ML Model Integrity) | Drift in the threat-context section means the operator's mental model is wrong by months |
70
+ | Discovery | T1518 (Software Discovery) | The catalog the skill scans doesn't recognize the adversary's current tool inventory |
71
+
72
+ The update loop does not detect these TTPs — it prevents the skill set from being *vulnerable* to them by structural staleness.
73
+
74
+ ---
75
+
44
76
  ## Why Skills Decay
45
77
 
46
78
  Security skills have a half-life. The specific decay mechanisms are:
@@ -42,6 +42,9 @@ framework_gaps:
42
42
  - SWIFT-CSCF-v2026-1.1
43
43
  - FedRAMP-Rev5-Moderate
44
44
  - CMMC-2.0-Level-2
45
+ - NIS2-Art21-incident-handling
46
+ - UK-CAF-A1
47
+ - AU-Essential-8-App-Hardening
45
48
  rfc_refs:
46
49
  - RFC-8032
47
50
  forward_watch:
@@ -29,6 +29,9 @@ framework_gaps:
29
29
  - ISO-IEC-23894-2023-clause-7
30
30
  - ISO-IEC-42001-2023-clause-6.1.2
31
31
  - NIST-800-218-SSDF
32
+ - NIS2-Art21-incident-handling
33
+ - UK-CAF-A1
34
+ - AU-Essential-8-App-Hardening
32
35
  rfc_refs: []
33
36
  cwe_refs: []
34
37
  d3fend_refs: []
@@ -36,6 +36,9 @@ framework_gaps:
36
36
  - OWASP-LLM-Top-10-2025-LLM01
37
37
  - NIST-800-218-SSDF
38
38
  - ISO-27001-2022-A.8.28
39
+ - NIS2-Art21-incident-handling
40
+ - UK-CAF-B2
41
+ - AU-Essential-8-App-Hardening
39
42
  rfc_refs:
40
43
  - RFC-8446
41
44
  - RFC-9114