@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,282 @@
1
+ {
2
+ "_meta": {
3
+ "schema_version": "1.0.0",
4
+ "atlas_version": "5.1.0",
5
+ "atlas_release_date": "2025-11-01",
6
+ "last_updated": "2026-05-01",
7
+ "source": "https://atlas.mitre.org",
8
+ "note": "AI-relevant ATLAS v5.1.0 TTPs with framework_gap field. framework_gap: no framework has a control that addresses this TTP.",
9
+ "tlp": "CLEAR",
10
+ "source_confidence": {
11
+ "scheme": "Admiralty (A-F + 1-6)",
12
+ "default": "A1",
13
+ "note": "B = usually reliable; 2 = probably true. Per-entry overrides via entry-level source_confidence field. Public-record catalogs (NVD, ATLAS, CWE, RFC, framework publishers) get A1 (completely reliable, confirmed). Project-curated catalogs (zeroday-lessons, exploit-availability) default to B2 with source citations."
14
+ },
15
+ "freshness_policy": {
16
+ "default_review_cadence_days": 90,
17
+ "stale_after_days": 180,
18
+ "rebuild_after_days": 365,
19
+ "note": "Per-entry last_verified governs decay. Skills depending on this catalog must check entry freshness before high-stakes use."
20
+ }
21
+ },
22
+ "AML.T0043": {
23
+ "id": "AML.T0043",
24
+ "name": "Craft Adversarial Data",
25
+ "tactic": "ML Attack Staging",
26
+ "description": "Adversary crafts input data designed to cause a target ML model to produce incorrect outputs. Includes perturbation-based adversarial examples that are visually identical to originals but trigger misclassification.",
27
+ "subtechniques": [
28
+ "AML.T0043.000 — White-Box Attack (adversary has model access)",
29
+ "AML.T0043.001 — Black-Box Attack (transfer-based, query-based)",
30
+ "AML.T0043.002 — Physical Attack (adversarial patch, stop sign perturbation)"
31
+ ],
32
+ "real_world_instances": [
33
+ "Deepfake bypass of facial recognition",
34
+ "Adversarial audio bypassing voice authentication"
35
+ ],
36
+ "framework_gap": true,
37
+ "framework_gap_detail": "No control in NIST 800-53, ISO 27001, SOC 2, or PCI requires adversarial robustness testing for ML models. SI-3 (malicious code protection) does not contemplate adversarial inputs.",
38
+ "controls_that_partially_help": [
39
+ "NIST-800-53-SI-3",
40
+ "NIST-AI-RMF-MEASURE-2.5"
41
+ ],
42
+ "controls_that_dont_help": [
43
+ "NIST-800-53-AC-2",
44
+ "ISO-27001-2022-A.8.28"
45
+ ],
46
+ "detection": "Model output confidence monitoring; behavioral anomaly on repeated low-confidence outputs from same source",
47
+ "exceptd_skills": [
48
+ "ai-attack-surface",
49
+ "rag-pipeline-security"
50
+ ]
51
+ },
52
+ "AML.T0010": {
53
+ "id": "AML.T0010",
54
+ "name": "ML Supply Chain Compromise",
55
+ "tactic": "Initial Access",
56
+ "description": "Adversary compromises the ML supply chain — pretrained models, datasets, training infrastructure, or AI tool plugins — to inject backdoors or malicious behavior before the model reaches the target organization.",
57
+ "subtechniques": [
58
+ "AML.T0010.000 — GPU Firmware Compromise",
59
+ "AML.T0010.001 — ML Framework Compromise (PyTorch, TensorFlow)",
60
+ "AML.T0010.002 — Model Repository Compromise (HuggingFace typosquatting)",
61
+ "AML.T0010.003 — MCP Server Supply Chain (developer AI tool plugin)"
62
+ ],
63
+ "real_world_instances": [
64
+ "CVE-2026-30615 — Windsurf MCP zero-interaction RCE via supply chain"
65
+ ],
66
+ "framework_gap": true,
67
+ "framework_gap_detail": "NIST SA-12 covers traditional software supply chain. It does not contemplate: pretrained model provenance, HuggingFace model integrity, MCP server signing requirements, or developer-installed AI tool plugins. No framework requires model supply chain SLSA attestation.",
68
+ "controls_that_partially_help": [
69
+ "NIST-800-53-SA-12",
70
+ "ISO-27001-2022-A.8.30",
71
+ "SOC2-CC9"
72
+ ],
73
+ "controls_that_dont_help": [
74
+ "NIST-800-53-CM-7"
75
+ ],
76
+ "detection": "Hash verification of downloaded models; provenance attestation checking; anomaly on newly installed MCP server processes",
77
+ "exceptd_skills": [
78
+ "mcp-agent-trust",
79
+ "ai-attack-surface"
80
+ ]
81
+ },
82
+ "AML.T0016": {
83
+ "id": "AML.T0016",
84
+ "name": "Obtain Capabilities: Develop Capabilities",
85
+ "tactic": "Resource Development",
86
+ "description": "Adversary develops custom AI capabilities — fine-tuned models, adversarial attack toolkits, automated prompt injection frameworks — to conduct AI-specific attacks at scale.",
87
+ "subtechniques": [
88
+ "AML.T0016.000 — Develop AI Attack Toolkit",
89
+ "AML.T0016.001 — Fine-tune Model for Offensive Use",
90
+ "AML.T0016.002 — Automated Prompt Injection Framework"
91
+ ],
92
+ "real_world_instances": [
93
+ "PROMPTFLUX — LLM-querying malware for real-time evasion code generation"
94
+ ],
95
+ "framework_gap": true,
96
+ "framework_gap_detail": "No framework has a control for adversary development of AI attack capabilities. Threat intelligence programs (PM-16) do not have AI-specific threat actor capability tracking. No framework requires monitoring of offensive AI research for TTP evolution.",
97
+ "controls_that_partially_help": [
98
+ "NIST-800-53-PM-16"
99
+ ],
100
+ "controls_that_dont_help": [],
101
+ "detection": "Threat intelligence feeds tracking offensive AI research; monitoring for AI-generated exploit code in underground forums",
102
+ "exceptd_skills": [
103
+ "ai-attack-surface",
104
+ "ai-c2-detection",
105
+ "mcp-agent-trust"
106
+ ]
107
+ },
108
+ "AML.T0017": {
109
+ "id": "AML.T0017",
110
+ "name": "Discover ML Model Ontology",
111
+ "tactic": "Discovery",
112
+ "description": "Adversary queries an ML system to learn its output classes, decision logic, and behavior — enabling more effective evasion, prompt injection, or targeted adversarial example generation. For LLMs: systematic probing to learn system prompt content, output filters, or safety guardrails.",
113
+ "subtechniques": [
114
+ "AML.T0017.000 — Probe Model Capabilities",
115
+ "AML.T0017.001 — Extract System Prompt",
116
+ "AML.T0017.002 — Map Output Filters and Guardrails"
117
+ ],
118
+ "real_world_instances": [
119
+ "PROMPTSTEAL — systematic LLM querying for system prompt extraction and knowledge base fingerprinting"
120
+ ],
121
+ "framework_gap": true,
122
+ "framework_gap_detail": "No framework requires rate limiting on AI API queries from a discovery perspective. AI API query logging (SI-4) is not required by any framework. Behavioral anomaly detection for AI API probe patterns is absent from all control sets.",
123
+ "controls_that_partially_help": [
124
+ "NIST-800-53-SI-4",
125
+ "NIST-800-53-AC-17"
126
+ ],
127
+ "controls_that_dont_help": [
128
+ "ISO-27001-2022-A.8.28"
129
+ ],
130
+ "detection": "AI API query rate monitoring; semantic similarity clustering of queries (probe pattern detection); alert on high query volume from single identity",
131
+ "exceptd_skills": [
132
+ "ai-c2-detection",
133
+ "ai-attack-surface"
134
+ ]
135
+ },
136
+ "AML.T0018": {
137
+ "id": "AML.T0018",
138
+ "name": "Backdoor ML Model",
139
+ "tactic": "Persistence",
140
+ "description": "Adversary inserts a backdoor into an ML model during training or fine-tuning. The backdoor is dormant until a trigger input is presented, at which point the model produces attacker-controlled outputs. The clean accuracy remains high, making detection difficult.",
141
+ "subtechniques": [
142
+ "AML.T0018.000 — Poison Training Data (data poisoning)",
143
+ "AML.T0018.001 — Trojan Model (direct weight manipulation)",
144
+ "AML.T0018.002 — Federated Learning Poisoning"
145
+ ],
146
+ "real_world_instances": [
147
+ "HuggingFace model repository — researcher demonstrations of trojaned models that pass standard eval"
148
+ ],
149
+ "framework_gap": true,
150
+ "framework_gap_detail": "No framework requires model integrity verification after training or fine-tuning. Change management controls (CM-3) do not address model weight changes. No framework requires behavioral regression testing after model updates. Training pipeline integrity (SLSA equivalent) is absent.",
151
+ "controls_that_partially_help": [
152
+ "NIST-800-53-CM-3",
153
+ "NIST-800-53-SA-12"
154
+ ],
155
+ "controls_that_dont_help": [
156
+ "ISO-27001-2022-A.8.8"
157
+ ],
158
+ "detection": "Behavioral test suite with known-clean inputs; model output distribution monitoring; cryptographic hash of model weights at training completion",
159
+ "exceptd_skills": [
160
+ "ai-attack-surface",
161
+ "rag-pipeline-security",
162
+ "skill-update-loop"
163
+ ]
164
+ },
165
+ "AML.T0020": {
166
+ "id": "AML.T0020",
167
+ "name": "Poison Training Data",
168
+ "tactic": "ML Attack Staging",
169
+ "description": "Adversary injects malicious examples into training data to degrade model performance, introduce backdoors, or bias outputs toward attacker-controlled behaviors. For RAG systems: adversary injects malicious content into the knowledge base.",
170
+ "subtechniques": [
171
+ "AML.T0020.000 — Inject Training Data at Scale",
172
+ "AML.T0020.001 — Craft Targeted Poisoned Samples",
173
+ "AML.T0020.002 — RAG Knowledge Base Poisoning (inject into retrieval corpus)"
174
+ ],
175
+ "real_world_instances": [
176
+ "RAG pipeline attacks — injecting poisoned documents that redirect retrieval and cause model to output attacker content"
177
+ ],
178
+ "framework_gap": true,
179
+ "framework_gap_detail": "Data integrity controls (SI-12, SI-7) are designed for traditional data. No framework requires integrity monitoring of training datasets, vector store contents, or RAG knowledge bases. Embedding space anomaly detection is not a recognized control.",
180
+ "controls_that_partially_help": [
181
+ "NIST-800-53-SI-7",
182
+ "NIST-800-53-SI-12"
183
+ ],
184
+ "controls_that_dont_help": [
185
+ "ISO-27001-2022-A.8.28"
186
+ ],
187
+ "detection": "Vector store content integrity monitoring; embedding distribution shift detection; hash-based integrity verification of knowledge base documents",
188
+ "exceptd_skills": [
189
+ "rag-pipeline-security",
190
+ "ai-attack-surface"
191
+ ]
192
+ },
193
+ "AML.T0051": {
194
+ "id": "AML.T0051",
195
+ "name": "LLM Prompt Injection",
196
+ "tactic": "Execution",
197
+ "description": "Adversary injects instructions into an LLM's input that override, supplement, or contradict the original system prompt, causing the model to execute attacker-controlled instructions within the application's authorization context.",
198
+ "subtechniques": [
199
+ "AML.T0051.000 — Direct Prompt Injection (user-facing input)",
200
+ "AML.T0051.001 — Indirect Prompt Injection (injected via retrieved content, documents, web pages)",
201
+ "AML.T0051.002 — Jailbreak (override safety guardrails)"
202
+ ],
203
+ "real_world_instances": [
204
+ "CVE-2025-53773 — GitHub Copilot prompt injection RCE via PR description",
205
+ "Multiple production AI assistant prompt injection incidents 2025-2026"
206
+ ],
207
+ "framework_gap": true,
208
+ "framework_gap_detail": "No framework has a control for prompt injection as an access control failure vector. The attack uses the AI service account's authorized permissions — from AC-2's perspective, the access is authorized. MITRE ATLAS v5.1.0 documents the technique; no framework has implemented controls. OWASP LLM Top 10 documents the class; it is not incorporated in any compliance framework.",
209
+ "controls_that_partially_help": [
210
+ "NIST-800-53-AC-2",
211
+ "ISO-27001-2022-A.8.28"
212
+ ],
213
+ "controls_that_dont_help": [
214
+ "NIST-800-53-SI-3",
215
+ "SOC2-CC6"
216
+ ],
217
+ "detection": "AI action audit trail — log every tool call with triggering prompt content; alert on AI actions that diverge from user-stated intent; adversarial instruction classifier on external content before model ingestion",
218
+ "exceptd_skills": [
219
+ "ai-attack-surface",
220
+ "mcp-agent-trust",
221
+ "rag-pipeline-security"
222
+ ]
223
+ },
224
+ "AML.T0054": {
225
+ "id": "AML.T0054",
226
+ "name": "LLM Jailbreak",
227
+ "tactic": "Defense Evasion",
228
+ "description": "Adversary uses prompt manipulation techniques to bypass an LLM's safety guardrails, causing the model to produce content or take actions it would normally refuse. Distinguished from prompt injection by the goal: jailbreaks evade safety filters rather than execute injected code.",
229
+ "subtechniques": [
230
+ "AML.T0054.000 — Role-play Jailbreak (DAN, persona attacks)",
231
+ "AML.T0054.001 — Obfuscation (base64, leetspeak, encoding tricks)",
232
+ "AML.T0054.002 — Many-Shot Jailbreak (long context pattern establishment)"
233
+ ],
234
+ "real_world_instances": [
235
+ "Production AI assistant jailbreaks enabling policy bypass; AI coding assistant jailbreaks producing malware code"
236
+ ],
237
+ "framework_gap": true,
238
+ "framework_gap_detail": "No framework requires safety guardrail testing for production AI systems. Red teaming for LLM jailbreaks is not a compliance requirement in any major framework. NIST AI RMF recommends but does not require adversarial testing. ISO 42001 (AI management) is not yet widely adopted.",
239
+ "controls_that_partially_help": [
240
+ "NIST-AI-RMF-GOVERN-1.7"
241
+ ],
242
+ "controls_that_dont_help": [
243
+ "NIST-800-53-SI-3",
244
+ "ISO-27001-2022-A.8.28"
245
+ ],
246
+ "detection": "Content policy violation logging; output safety scoring; alert on repeated refusal-bypass attempts from same user",
247
+ "exceptd_skills": [
248
+ "ai-attack-surface",
249
+ "mcp-agent-trust"
250
+ ]
251
+ },
252
+ "AML.T0096": {
253
+ "id": "AML.T0096",
254
+ "name": "AI API as Covert C2 Channel",
255
+ "tactic": "Command and Control",
256
+ "description": "Adversary uses legitimate AI API calls as a covert command-and-control channel. Malware encodes commands in AI API requests and receives instructions via model responses. Traffic is indistinguishable from legitimate AI usage — same endpoints, same TLS, same bearer auth patterns.",
257
+ "subtechniques": [
258
+ "AML.T0096.000 — Steganographic encoding in AI prompts",
259
+ "AML.T0096.001 — LLM response as instruction decoder",
260
+ "AML.T0096.002 — Multi-agent covert relay"
261
+ ],
262
+ "real_world_instances": [
263
+ "SesameOp — first documented AI API C2 campaign, 2025. Malware beacons to OpenAI API for encoded instructions.",
264
+ "PROMPTFLUX — LLM C2 for real-time evasion code generation: malware queries public LLM APIs for novel AV evasion code on each execution."
265
+ ],
266
+ "framework_gap": true,
267
+ "framework_gap_detail": "Network egress controls (SC-7) do not flag AI API traffic — it is categorically allowed in most organizations. No framework requires monitoring of AI API traffic content. SIEM signatures for AI API C2 patterns do not exist in any standard detection ruleset. SI-3 (malware protection) does not contemplate LLM-querying malware. No framework has a control for AI API query anomaly detection by process identity.",
268
+ "controls_that_partially_help": [
269
+ "NIST-800-53-SI-4",
270
+ "NIST-800-53-SC-7"
271
+ ],
272
+ "controls_that_dont_help": [
273
+ "NIST-800-53-SI-3",
274
+ "ISO-27001-2022-A.8.16"
275
+ ],
276
+ "detection": "Process-level AI API query monitoring; alert on AI API calls from unexpected process identities; query volume anomaly; payload entropy analysis for steganographic encoding",
277
+ "exceptd_skills": [
278
+ "ai-c2-detection",
279
+ "ai-attack-surface"
280
+ ]
281
+ }
282
+ }