@blamejs/exceptd-skills 0.13.1 → 0.13.3
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/CHANGELOG.md +73 -0
- package/bin/exceptd.js +140 -7
- package/data/_indexes/_meta.json +28 -28
- package/data/_indexes/activity-feed.json +3 -3
- package/data/_indexes/catalog-summaries.json +3 -3
- package/data/_indexes/chains.json +1897 -88
- package/data/_indexes/frequency.json +20 -0
- package/data/_indexes/section-offsets.json +574 -574
- package/data/_indexes/token-budget.json +97 -97
- package/data/atlas-ttps.json +2 -0
- package/data/attack-techniques.json +24 -3
- package/data/cve-catalog.json +96 -29
- package/data/cwe-catalog.json +20 -3
- package/data/framework-control-gaps.json +700 -1
- package/data/zeroday-lessons.json +889 -0
- package/lib/lint-skills.js +54 -1
- package/lib/source-advisories.js +26 -0
- package/manifest.json +62 -62
- package/orchestrator/index.js +155 -3
- package/package.json +1 -1
- package/sbom.cdx.json +50 -39
- package/scripts/check-test-count.js +146 -0
- package/scripts/predeploy.js +16 -0
- package/skills/age-gates-child-safety/skill.md +1 -0
- package/skills/ai-risk-management/skill.md +1 -0
- package/skills/api-security/skill.md +14 -4
- package/skills/cloud-iam-incident/skill.md +1 -1
- package/skills/defensive-countermeasure-mapping/skill.md +1 -0
- package/skills/email-security-anti-phishing/skill.md +15 -4
- package/skills/fuzz-testing-strategy/skill.md +1 -0
- package/skills/mlops-security/skill.md +1 -0
- package/skills/ot-ics-security/skill.md +1 -0
- package/skills/researcher/skill.md +1 -0
- package/skills/sector-energy/skill.md +1 -0
- package/skills/sector-federal-government/skill.md +1 -0
- package/skills/sector-telecom/skill.md +1 -0
- package/skills/skill-update-loop/skill.md +1 -0
- package/skills/threat-model-currency/skill.md +1 -0
- package/skills/threat-modeling-methodology/skill.md +1 -0
- package/skills/webapp-security/skill.md +1 -0
- package/skills/zeroday-gap-learn/skill.md +1 -0
package/scripts/predeploy.js
CHANGED
|
@@ -177,6 +177,22 @@ const GATES = [
|
|
|
177
177
|
args: [path.join(ROOT, "lib", "validate-playbooks.js")],
|
|
178
178
|
ciJobName: "Validate playbooks",
|
|
179
179
|
},
|
|
180
|
+
{
|
|
181
|
+
// v0.13.2: refuse silent test-set shrinkage. Static-counts `test(`
|
|
182
|
+
// declarations across tests/*.test.js and compares to the pinned
|
|
183
|
+
// baseline in tests/.test-count-baseline.json. Catches the class
|
|
184
|
+
// of regression where a test file gets accidentally deleted, a
|
|
185
|
+
// skip-all lands without review, or a misnamed file slips through
|
|
186
|
+
// the glob. The baseline is operator-refreshed on releases that
|
|
187
|
+
// intentionally add many new tests; --update-baseline rewrites it.
|
|
188
|
+
name: "Test-count baseline (no silent shrinkage)",
|
|
189
|
+
command: process.execPath,
|
|
190
|
+
args: [path.join(ROOT, "scripts", "check-test-count.js")],
|
|
191
|
+
// Folds under the existing Data integrity CI job rather than a
|
|
192
|
+
// dedicated job — the check is fast (~70ms) static analysis and
|
|
193
|
+
// shares the integrity-tier framing with manifest-snapshot etc.
|
|
194
|
+
ciJobName: "Data integrity (catalog + manifest snapshot)",
|
|
195
|
+
},
|
|
180
196
|
];
|
|
181
197
|
|
|
182
198
|
function runGate(gate) {
|
|
@@ -59,6 +59,7 @@ forward_watch:
|
|
|
59
59
|
- France SREN (Securing and Regulating the Digital Space) Act 2024 — ARCOM age-verification referential for adult content services; double-anonymity model under deployment
|
|
60
60
|
- US state adult-site age-verification laws — 19+ states by mid-2026 (TX HB 18 upheld by SCOTUS June 2025 in Free Speech Coalition v. Paxton); track ongoing challenges in remaining states
|
|
61
61
|
last_threat_review: "2026-05-11"
|
|
62
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief age-gates-child-safety` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
62
63
|
---
|
|
63
64
|
|
|
64
65
|
# Age Gates and Child Online Safety (mid-2026)
|
|
@@ -45,6 +45,7 @@ cwe_refs:
|
|
|
45
45
|
d3fend_refs:
|
|
46
46
|
- D3-IOPR
|
|
47
47
|
last_threat_review: "2026-05-15"
|
|
48
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief ai-risk-management` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
48
49
|
---
|
|
49
50
|
|
|
50
51
|
# AI Risk Management (Governance Layer)
|
|
@@ -17,7 +17,13 @@ triggers:
|
|
|
17
17
|
- ai api security
|
|
18
18
|
- mcp transport
|
|
19
19
|
- openapi security
|
|
20
|
-
data_deps:
|
|
20
|
+
data_deps:
|
|
21
|
+
- atlas-ttps.json
|
|
22
|
+
- attack-techniques.json
|
|
23
|
+
- cwe-catalog.json
|
|
24
|
+
- d3fend-catalog.json
|
|
25
|
+
- framework-control-gaps.json
|
|
26
|
+
- rfc-references.json
|
|
21
27
|
atlas_refs:
|
|
22
28
|
- AML.T0096
|
|
23
29
|
- AML.T0017
|
|
@@ -61,7 +67,7 @@ forward_watch:
|
|
|
61
67
|
- NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; track for active-exploitation confirmation and patch advisory affecting API gateway / reverse-proxy deployments
|
|
62
68
|
- Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM 3-bug SSRF + Code Injection chain by k3vg3n; LLM-proxy API surface; track upstream patch and CVE assignments
|
|
63
69
|
- Pwn2Own Berlin 2026 (disclosed 2026-05-14, embargo ends 2026-08-12) — LiteLLM full SSRF + Code Injection by Out Of Bounds (Byung Young Yi); duplicate-class with the k3vg3n entry; track unified patch advisory
|
|
64
|
-
last_threat_review: "2026-05-
|
|
70
|
+
last_threat_review: "2026-05-18"
|
|
65
71
|
---
|
|
66
72
|
|
|
67
73
|
# API Security Assessment
|
|
@@ -130,7 +136,7 @@ APIs are now the integration substrate of every non-trivial system. The mid-2026
|
|
|
130
136
|
| AML.T0096 | AI Service Exploitation (AI-API as covert C2) | LLM API used as a covert command-and-control / exfil channel — prompt content carries instructions; response carries staged data | CWE-77, CWE-200 | Missing in NIST/ISO; hand-off to `ai-c2-detection` |
|
|
131
137
|
| AML.T0017 | Discover ML Model Ontology (inference-API probing for system-prompt, guardrail, model-family signal) | High-volume queries against a hosted model used to reconstruct behaviour, guardrail surface, or training-data signal | CWE-200 | Missing — detected only by per-identity rate-and-shape monitoring at egress |
|
|
132
138
|
|
|
133
|
-
CWE root-causes referenced as a set (per `cwe_refs` in frontmatter): CWE-287 (Improper Authentication), CWE-862 (Missing Authorization — BFLA root cause), CWE-863 (Incorrect Authorization — BOLA root cause), CWE-918 (SSRF — API7), CWE-200 (Information Exposure — BOPLA contributor), CWE-352 (CSRF — cookie-auth APIs + WebSocket CSWSH), CWE-22 (Path Traversal — API parameter sinks), CWE-77 (Command Injection — API parameter to shell), CWE-1188 (Insecure Default Initialization — default-open API state).
|
|
139
|
+
CWE root-causes referenced as a set (per `cwe_refs` in frontmatter, all resolved against `data/cwe-catalog.json`): CWE-287 (Improper Authentication), CWE-862 (Missing Authorization — BFLA root cause), CWE-863 (Incorrect Authorization — BOLA root cause), CWE-918 (SSRF — API7), CWE-200 (Information Exposure — BOPLA contributor), CWE-352 (CSRF — cookie-auth APIs + WebSocket CSWSH), CWE-22 (Path Traversal — API parameter sinks), CWE-77 (Command Injection — API parameter to shell), CWE-1188 (Insecure Default Initialization — default-open API state). ATT&CK Enterprise techniques (T1190, T1078, T1567) resolve against `data/attack-techniques.json`; the AML.T0096 (AI service exploitation) and AML.T0017 (model-ontology discovery) entries resolve against `data/atlas-ttps.json`. Cross-reference every BOLA / BFLA finding against the `CWE-863` / `CWE-862` entries in `data/cwe-catalog.json` for the canonical weakness description used in operator briefings.
|
|
134
140
|
|
|
135
141
|
---
|
|
136
142
|
|
|
@@ -158,6 +164,8 @@ CWE root-causes referenced as a set (per `cwe_refs` in frontmatter): CWE-287 (Im
|
|
|
158
164
|
|
|
159
165
|
The procedure threads three foundational design principles. They are not optional.
|
|
160
166
|
|
|
167
|
+
Wire-level RFC mappings cited below resolve against `data/rfc-references.json` (RFC-7519 JWT, RFC-8725 JWT BCP, RFC-6749 OAuth 2.0, RFC-9700 OAuth Security BCP, RFC-9421 HTTP Message Signatures, RFC-8446 TLS 1.3, RFC-9114 HTTP/3); framework-gap IDs cited throughout (OWASP-ASVS-v5.0-V14, NIST-800-53-AC-2, NIST-800-218-SSDF, ISO-27001-2022-A.8.28, NIS2-Art21-incident-handling, UK-CAF-B2, AU-Essential-8-App-Hardening) resolve against `data/framework-control-gaps.json`.
|
|
168
|
+
|
|
161
169
|
**Defense in depth** — the API request lifecycle is layered. No single control is trusted to fail closed.
|
|
162
170
|
|
|
163
171
|
1. **API gateway (perimeter)** — terminates TLS (RFC 8446 baseline; HTTP/3 over QUIC per RFC 9114 for public global APIs), enforces auth, enforces rate limits per route + per identity + per cost-unit, applies threat-detection rules, captures the canonical log record. Gateways with bypass paths (a "direct backend" route that skips the gateway) are gateway-in-name-only.
|
|
@@ -198,7 +206,7 @@ The procedure threads three foundational design principles. They are not optiona
|
|
|
198
206
|
7. **GraphQL query-complexity limits.** Depth limit, breadth (alias) limit, complexity-cost calculator with budget per query, persisted-query allowlist for production clients. **Introspection disabled in production.**
|
|
199
207
|
8. **gRPC reflection disabled in production.** mTLS for service-to-service; per-method authorisation (BFLA in gRPC terms is per-method); deadline propagation enforced; max-message-size bounded.
|
|
200
208
|
9. **WebSocket origin validation at upgrade + CSRF / sender-constrained token thereafter.** Per-message authorisation if the channel multiplexes operations across resources; rate-limit per connection AND per identity (one identity cannot fan out across many connections to bypass).
|
|
201
|
-
10. **MCP transport audit (hand-off to `mcp-agent-trust`) and AI-API egress map (hand-off to `ai-c2-detection`).** Document every MCP server and every AI-API destination. Per-destination quota with explicit USD cap; per-identity rate-and-shape baseline; D3-NTA egress monitoring fed to SIEM. AI-API keys treated as the most sensitive credential class — rotation cadence ≤ 30 days, automated key-leak scanning on commits.
|
|
209
|
+
10. **MCP transport audit (hand-off to `mcp-agent-trust`) and AI-API egress map (hand-off to `ai-c2-detection`).** Document every MCP server and every AI-API destination. Per-destination quota with explicit USD cap; per-identity rate-and-shape baseline; D3-NTA egress monitoring fed to SIEM. AI-API keys treated as the most sensitive credential class — rotation cadence ≤ 30 days, automated key-leak scanning on commits. The egress map cross-references the AML.T0096 / AML.T0017 catalog entries in `data/atlas-ttps.json` so that egress-baseline rules can be authored against the canonical TTP IDs rather than ad-hoc local names.
|
|
202
210
|
|
|
203
211
|
---
|
|
204
212
|
|
|
@@ -281,6 +289,8 @@ Each D3FEND technique below maps an offensive API-security finding to a defensiv
|
|
|
281
289
|
| D3-MFA | Multi-Factor Authentication (auth hardening at the API gateway) | Identity layer — phishing-resistant FIDO2 / WebAuthn passkeys for human-fronted APIs; service identities for machine-to-machine | Per-principal MFA enrolment; passkey-only for privileged routes | Every interactive authentication challenge is AiTM-resistant; TOTP / SMS insufficient for privileged API surfaces | Applies — AI-assisted phishing kits compress time-to-weaponise; passkey-mandatory for any human accessing AI-API management consoles (key rotation, budget setting) |
|
|
282
290
|
| D3-CBAN | Certificate-Based Authentication | Service-to-service and high-value gateway boundaries — mTLS per RFC 8446 with appropriate cipher choice | Per-service workload identity (SPIFFE/SPIRE-class); no shared service certificate | Workload identity verified at every hop; certificate revocation honoured (OCSP stapling / short-lived certificates per ACME) | Applies to MCP transport — mTLS at the gateway-to-MCP-server boundary; AI-API consumption via signed-and-attested workload identity where the AI provider supports it |
|
|
283
291
|
|
|
292
|
+
D3FEND technique IDs above resolve against `data/d3fend-catalog.json`; framework-gap rationales for each layer cross-walk to the matching entries in `data/framework-control-gaps.json` (notably `OWASP-ASVS-v5.0-V14`, `NIST-800-53-AC-2`, `NIST-800-218-SSDF`, `ISO-27001-2022-A.8.28`, `NIS2-Art21-incident-handling`, `UK-CAF-B2`, and `AU-Essential-8-App-Hardening`) so the defensive layer chosen for any finding can be cross-cited to both the offensive ATT&CK / ATLAS technique (`data/attack-techniques.json`, `data/atlas-ttps.json`) and the missing framework control in one operator pass.
|
|
293
|
+
|
|
284
294
|
---
|
|
285
295
|
|
|
286
296
|
## Hand-Off / Related Skills
|
|
@@ -88,7 +88,7 @@ Cloud-IAM compromise has been the dominant cloud-breach root cause across all th
|
|
|
88
88
|
|
|
89
89
|
2. **2024-2025 AWS-key-in-public-repo crypto-mining campaigns.** Scraper bots monitoring the GitHub firehose monetise within ~5 minutes of public exposure. Typical spend pattern: 50-500 USD/hour of GPU instances in an unused region (where the victim has no resources to alert on regional anomalies). Common compromise window: 30 minutes to 4 hours before the victim notices. Even after revocation, the attacker often establishes long-lived persistence by creating their own IAM user with AdministratorAccess inside the compromised account before the original key is revoked.
|
|
90
90
|
|
|
91
|
-
3. **2026 Azure managed-identity token replay (
|
|
91
|
+
3. **2026 Azure managed-identity token replay (design-class issue, not a single CVE).** Attackers with limited code-execution on an Azure VM (often via SSRF in a hosted web application) steal the managed-identity token from the IMDS endpoint at 169.254.169.254. The token is valid for its TTL (default 24h on most managed-identity scopes) and can be replayed from the attacker's infrastructure. Azure Continuous Access Evaluation is the long-term mitigation; rollout is incomplete in most large estates.
|
|
92
92
|
|
|
93
93
|
4. **Scattered Spider AWS-MFA-bypass via help-desk social engineering.** Continuous 2023-2026 pattern. Voice-cloned or socially-engineered help-desk agent resets MFA on a privileged user, attacker logs in, escalates via either (a) creating their own IAM user with AdministratorAccess for persistence, (b) directly assuming a privileged role into a production account, or (c) modifying the federated IdP trust policy to grant ongoing access. Help-desk OOB-callback policy + voice-channel deepfake-resistant verification is the operational mitigation; coverage is fragmentary.
|
|
94
94
|
|
|
@@ -48,6 +48,7 @@ d3fend_refs:
|
|
|
48
48
|
- D3-RPA
|
|
49
49
|
- D3-SCP
|
|
50
50
|
last_threat_review: "2026-05-11"
|
|
51
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief defensive-countermeasure-mapping` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
51
52
|
---
|
|
52
53
|
|
|
53
54
|
# Defensive Countermeasure Mapping — D3FEND as the Blue-Team Counterpart to ATT&CK / ATLAS
|
|
@@ -20,7 +20,13 @@ triggers:
|
|
|
20
20
|
- deepfake phishing
|
|
21
21
|
- ai phishing
|
|
22
22
|
- secure email gateway
|
|
23
|
-
data_deps:
|
|
23
|
+
data_deps:
|
|
24
|
+
- atlas-ttps.json
|
|
25
|
+
- attack-techniques.json
|
|
26
|
+
- d3fend-catalog.json
|
|
27
|
+
- dlp-controls.json
|
|
28
|
+
- framework-control-gaps.json
|
|
29
|
+
- rfc-references.json
|
|
24
30
|
atlas_refs: []
|
|
25
31
|
attack_refs:
|
|
26
32
|
- T1566
|
|
@@ -47,7 +53,8 @@ d3fend_refs:
|
|
|
47
53
|
- D3-CSPP
|
|
48
54
|
- D3-IOPR
|
|
49
55
|
- D3-MFA
|
|
50
|
-
last_threat_review: "2026-05-
|
|
56
|
+
last_threat_review: "2026-05-18"
|
|
57
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief email-security-anti-phishing` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
51
58
|
---
|
|
52
59
|
|
|
53
60
|
# Email Security and Anti-Phishing Assessment
|
|
@@ -88,7 +95,7 @@ Phishing remained the #1 initial-access vector through 2025 (Verizon DBIR 2025)
|
|
|
88
95
|
| IN CERT-In | Phishing guidance and 6-hour incident reporting rule | Reporting requirement is firm; control specifications lag. |
|
|
89
96
|
| NYDFS | 23 NYCRR 500.14 (training and monitoring) | Annual phishing-aware training required; does not specify FIDO2, DMARC `p=reject`, or deepfake-aware procedures. |
|
|
90
97
|
|
|
91
|
-
Per AGENTS.md Rule #5, this analysis spans EU + UK + AU + JP + IL + SG + IN + NYDFS alongside NIST and ISO.
|
|
98
|
+
Per AGENTS.md Rule #5, this analysis spans EU + UK + AU + JP + IL + SG + IN + NYDFS alongside NIST and ISO. Each framework-gap ID in `framework_gaps` (`NIST-800-53-SI-3`, `ISO-27001-2022-A.8.16`, `SOC2-CC7-anomaly-detection`, `NIS2-Art21-incident-handling`, `UK-CAF-C1`, `AU-Essential-8-App-Hardening`) resolves against `data/framework-control-gaps.json` — operators producing a per-control evidence pack should pull the canonical lag rationale from that catalog rather than transcribing the table above.
|
|
92
99
|
|
|
93
100
|
---
|
|
94
101
|
|
|
@@ -102,7 +109,7 @@ Per AGENTS.md Rule #5, this analysis spans EU + UK + AU + JP + IL + SG + IN + NY
|
|
|
102
109
|
| T1566.003 | Spearphishing via Service | LinkedIn DMs, Teams chat, Slack DMs, SMS, WhatsApp — all email-adjacent channels that DMARC/DKIM/SPF do not protect. Voice-cloned vishing and deepfake video calls land here too. |
|
|
103
110
|
| T1078 | Valid Accounts | Post-phish credential use. The success metric for the program is "no T1078 follow-on," because every successful T1566 that reaches `p=reject` and FIDO2 still has to traverse credential use. |
|
|
104
111
|
|
|
105
|
-
Note: `atlas_refs` is intentionally empty — these are ATT&CK Enterprise TTPs against human/email channels, not ATLAS AI-system TTPs. The AI-augmentation angle is handled via cross-reference to `ai-attack-surface`.
|
|
112
|
+
Note: `atlas_refs` is intentionally empty — these are ATT&CK Enterprise TTPs against human/email channels, not ATLAS AI-system TTPs. The AI-augmentation angle is handled via cross-reference to `ai-attack-surface`. The ATT&CK technique IDs above (`T1566`, `T1566.001`, `T1566.002`, `T1566.003`, `T1078`) resolve against `data/attack-techniques.json`; when an investigation crosses into AI-mediated phishing (LLM-generated lures, deepfake video confirmation, voice cloning), cross-reference `data/atlas-ttps.json` for `AML.T0051` (LLM Prompt Injection — relevant when phishing payloads target the LLM-as-classifier instead of the human), `AML.T0024` (Exfiltration via Cyber Means — applicable where compromised mailbox sessions egress data via the message channel itself), and `AML.T0016` (Develop Capabilities — adversary use of public LLM APIs to author hyperpersonalized lures).
|
|
106
113
|
|
|
107
114
|
---
|
|
108
115
|
|
|
@@ -137,6 +144,8 @@ The procedure threads three foundational principles per AGENTS.md:
|
|
|
137
144
|
|
|
138
145
|
**Cloud-email canonical, on-prem exception** (Rule #9): default scoping assumes Microsoft 365 Exchange Online or Google Workspace Gmail. On-prem Exchange (legacy, regulated enclave, air-gapped) gets an explicit exception path noting which controls (cloud-native sandbox detonation, Microsoft Defender XDR signals, Google Workspace Security Sandbox) have on-prem equivalents and which require compensating controls.
|
|
139
146
|
|
|
147
|
+
Email-authentication RFCs cited throughout the procedure (`RFC-7489` DMARC, `RFC-6376` DKIM, `RFC-7208` SPF, `RFC-8616` BIMI/AuthIndicators DNS encoding, `RFC-8461` MTA-STS, `RFC-8617` ARC, `RFC-8460` TLSRPT) resolve against `data/rfc-references.json`. The DLP exfil-channel mappings invoked by the gateway-and-egress sub-procedures (`DLP-CHAN-EMAIL-OUT` for outbound message exfil, `DLP-CHAN-LLM-PROMPT` for LLM-prompt-as-egress when users paste mailbox content into AI assistants, `DLP-ENFORCE-BLOCK` for hard-block enforcement on confirmed PHI/PCI patterns) resolve against `data/dlp-controls.json` — these are the canonical IDs to cite when handing off to `dlp-gap-analysis`.
|
|
148
|
+
|
|
140
149
|
**Ten-step assessment:**
|
|
141
150
|
|
|
142
151
|
1. **Email authentication posture audit.** For each owned sending domain: pull SPF record, count DNS lookups (≤10), check for `+all` or `?all` (fail open), and check for SPF-flattening or macro-misuse. Pull DKIM selectors and verify key length ≥2048-bit, current rotation cadence. Pull DMARC record and capture policy (`p=`), subdomain policy (`sp=`), `pct=`, `rua=`/`ruf=` aggregate-report destinations, and alignment modes. Pull BIMI record and check VMC/CMC presence. Pull ARC seal status from inbound flow samples. Pull MTA-STS policy and TLSRPT destination.
|
|
@@ -191,6 +200,8 @@ Per AGENTS.md, this skill ships on 2026-05-11 and includes the optional 8th sect
|
|
|
191
200
|
| D3-IOPR (Inbound Operation Restriction) | Restrict inbound operations the message can perform — URL rewriting, click-time re-evaluation, macro neutralization, container-format unpacking, sandbox detonation | Pre-delivery and at click-time | Per-user click policy (privileged users on stricter detonation tier) | No payload is allowed to act on the user's behalf without the gateway's verification | LLM-generated email detection sits here at the gateway-classification layer |
|
|
192
201
|
| D3-MFA (Multi-factor Authentication) | Phishing-resistant authenticator class — FIDO2 / WebAuthn synced passkeys with proper relying-party verification | User authentication layer | Mandatory at 100% for privileged role classes; recovery flow hardened against helpdesk-vishing | Every authentication is verified by possession of the bound authenticator; session tokens are not transferable across origin | Canonical defense — passkeys remove the credential-disclosure win condition that AI-augmented phishing optimizes for |
|
|
193
202
|
|
|
203
|
+
The D3FEND technique IDs above (`D3-NTA`, `D3-CSPP`, `D3-IOPR`, `D3-MFA`) resolve against `data/d3fend-catalog.json`. Operators producing a defence-in-depth map for an email-security finding should chain: offensive technique (`T1566.*` from `data/attack-techniques.json`, plus AI-augmentation context from `data/atlas-ttps.json`) → missing control (entry in `data/framework-control-gaps.json`) → defensive technique (entry in `data/d3fend-catalog.json`) → DLP enforcement channel (`DLP-CHAN-EMAIL-OUT` / `DLP-CHAN-LLM-PROMPT` from `data/dlp-controls.json`) → wire-level RFC anchor (entry in `data/rfc-references.json`). This is the cross-walk pattern the seven-phase playbook expects when packaging anti-phishing evidence for an auditor or jurisdiction notification.
|
|
204
|
+
|
|
194
205
|
---
|
|
195
206
|
|
|
196
207
|
## Hand-Off / Related Skills
|
|
@@ -45,6 +45,7 @@ d3fend_refs:
|
|
|
45
45
|
- D3-IOPR
|
|
46
46
|
- D3-PSEP
|
|
47
47
|
last_threat_review: "2026-05-11"
|
|
48
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief fuzz-testing-strategy` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
48
49
|
---
|
|
49
50
|
|
|
50
51
|
# Fuzz Testing Strategy
|
|
@@ -62,6 +62,7 @@ forward_watch:
|
|
|
62
62
|
- EU AI Act high-risk technical-file implementing acts (2026-2027) — operational requirements for Article 10 / 13 / 15 documentation may pin ML-BOM or model-signing
|
|
63
63
|
- MITRE ATLAS v5.4.0 (released February 2026) shipped the AML.T0010 sub-technique expansion this forecast tracked plus new techniques ("Publish Poisoned AI Agent Tool", "Escape to Host"); inventory now 16 tactics, 84 techniques, 56 sub-techniques. Forward watch: subsequent ATLAS minor and major releases — track next-cadence updates to agentic-AI TTPs and MLOps-pipeline-specific techniques
|
|
64
64
|
last_threat_review: "2026-05-15"
|
|
65
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief mlops-security` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
65
66
|
---
|
|
66
67
|
|
|
67
68
|
# MLOps Pipeline Security Assessment
|
|
@@ -44,6 +44,7 @@ cwe_refs:
|
|
|
44
44
|
- CWE-1037
|
|
45
45
|
d3fend_refs: []
|
|
46
46
|
last_threat_review: "2026-05-11"
|
|
47
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief ot-ics-security` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
# OT / ICS Security (mid-2026)
|
|
@@ -25,6 +25,7 @@ atlas_refs: []
|
|
|
25
25
|
attack_refs: []
|
|
26
26
|
framework_gaps: []
|
|
27
27
|
last_threat_review: "2026-05-11"
|
|
28
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief researcher` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
28
29
|
---
|
|
29
30
|
|
|
30
31
|
# Researcher — Threat Intel Triage and Dispatch
|
|
@@ -57,6 +57,7 @@ forward_watch:
|
|
|
57
57
|
- MadIoT-class research on consumer-IoT-driven grid frequency manipulation moving from proof-of-concept to attributed campaigns
|
|
58
58
|
- ICS-CERT advisory feed (https://www.cisa.gov/news-events/cybersecurity-advisories/ics-advisories) for vendor CVEs in Siemens, Rockwell, Schneider Electric, ABB, GE Vernova, Hitachi Energy, AVEVA / OSIsoft PI
|
|
59
59
|
last_threat_review: "2026-05-11"
|
|
60
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief sector-energy` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
60
61
|
---
|
|
61
62
|
|
|
62
63
|
# Sector — Energy (Electric Power, Oil & Gas, Water/Wastewater, Renewables) — mid-2026
|
|
@@ -61,6 +61,7 @@ forward_watch:
|
|
|
61
61
|
- EU Cybersecurity Certification Scheme on Common Criteria (EUCC) operational — first certificates issued 2024; high-assurance level for government use cases ramping
|
|
62
62
|
- Australia PSPF 2024 revision and ISM quarterly updates — track for Essential Eight Maturity Level requirements for federal entities
|
|
63
63
|
last_threat_review: "2026-05-11"
|
|
64
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief sector-federal-government` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
64
65
|
---
|
|
65
66
|
|
|
66
67
|
# Federal Government and Defense Contractor Cybersecurity
|
|
@@ -67,6 +67,7 @@ forward_watch:
|
|
|
67
67
|
- "3GPP TS 33.501 updates (5G security architecture rebaseline)"
|
|
68
68
|
- "O-RAN SFG / WG11 security specifications"
|
|
69
69
|
last_threat_review: 2026-05-15
|
|
70
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief sector-telecom` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
70
71
|
---
|
|
71
72
|
|
|
72
73
|
## Threat Context (mid-2026)
|
|
@@ -34,6 +34,7 @@ forward_watch:
|
|
|
34
34
|
- Framework publication updates (NIST SP updates, ISO amendments, NIS2 implementing acts)
|
|
35
35
|
- IETF RFC publications and draft status changes (datatracker.ietf.org, rfc-editor.org); run `npm run validate-rfcs` quarterly
|
|
36
36
|
last_threat_review: "2026-05-15"
|
|
37
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief skill-update-loop` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
37
38
|
---
|
|
38
39
|
|
|
39
40
|
# Skill Update Loop
|
|
@@ -23,6 +23,7 @@ forward_watch:
|
|
|
23
23
|
- New MCP or agent protocol security disclosures
|
|
24
24
|
- Emerging malware families using AI for evasion
|
|
25
25
|
last_threat_review: "2026-05-15"
|
|
26
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief threat-model-currency` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
26
27
|
---
|
|
27
28
|
|
|
28
29
|
# Threat Model Currency Assessment
|
|
@@ -44,6 +44,7 @@ forward_watch:
|
|
|
44
44
|
- LINDDUN-GO and LINDDUN-PRO updates incorporating LLM privacy threats
|
|
45
45
|
- PASTA v2 updates incorporating AI/ML application threats
|
|
46
46
|
last_threat_review: "2026-05-11"
|
|
47
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief threat-modeling-methodology` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
47
48
|
---
|
|
48
49
|
|
|
49
50
|
# Threat Modeling Methodology
|
|
@@ -66,6 +66,7 @@ d3fend_refs:
|
|
|
66
66
|
forward_watch:
|
|
67
67
|
- NGINX Rift CVE-2026-42945 (disclosed 2026-05-13, source depthfirst) — KEV-watch predicted CISA KEV listing by 2026-05-29; AI-assisted discovery angle; track for active-exploitation confirmation and patch advisory affecting front-door web app deployments
|
|
68
68
|
last_threat_review: "2026-05-11"
|
|
69
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief webapp-security` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
69
70
|
---
|
|
70
71
|
|
|
71
72
|
# Web Application Security Assessment
|
|
@@ -24,6 +24,7 @@ forward_watch:
|
|
|
24
24
|
- Framework updates that close previously open gaps
|
|
25
25
|
- Vendor advisories for MCP/AI tool supply chain CVEs
|
|
26
26
|
last_threat_review: "2026-05-15"
|
|
27
|
+
discovery_mode: "standalone" # v0.13.2: operator-reached via `exceptd brief zeroday-gap-learn` or `exceptd ask`; not chained into any playbook's direct.skill_chain by design
|
|
27
28
|
---
|
|
28
29
|
|
|
29
30
|
# Zero-Day Learning Loop
|