@blamejs/exceptd-skills 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +232 -0
- package/ARCHITECTURE.md +267 -0
- package/CHANGELOG.md +616 -0
- package/CONTEXT.md +203 -0
- package/LICENSE +200 -0
- package/NOTICE +82 -0
- package/README.md +307 -0
- package/SECURITY.md +73 -0
- package/agents/README.md +81 -0
- package/agents/report-generator.md +156 -0
- package/agents/skill-updater.md +102 -0
- package/agents/source-validator.md +119 -0
- package/agents/threat-researcher.md +149 -0
- package/bin/exceptd.js +183 -0
- package/data/_indexes/_meta.json +88 -0
- package/data/_indexes/activity-feed.json +362 -0
- package/data/_indexes/catalog-summaries.json +229 -0
- package/data/_indexes/chains.json +7135 -0
- package/data/_indexes/currency.json +359 -0
- package/data/_indexes/did-ladders.json +451 -0
- package/data/_indexes/frequency.json +2072 -0
- package/data/_indexes/handoff-dag.json +476 -0
- package/data/_indexes/jurisdiction-clocks.json +967 -0
- package/data/_indexes/jurisdiction-map.json +536 -0
- package/data/_indexes/recipes.json +319 -0
- package/data/_indexes/section-offsets.json +3656 -0
- package/data/_indexes/stale-content.json +14 -0
- package/data/_indexes/summary-cards.json +1736 -0
- package/data/_indexes/theater-fingerprints.json +381 -0
- package/data/_indexes/token-budget.json +2137 -0
- package/data/_indexes/trigger-table.json +1374 -0
- package/data/_indexes/xref.json +818 -0
- package/data/atlas-ttps.json +282 -0
- package/data/cve-catalog.json +496 -0
- package/data/cwe-catalog.json +1017 -0
- package/data/d3fend-catalog.json +738 -0
- package/data/dlp-controls.json +1039 -0
- package/data/exploit-availability.json +67 -0
- package/data/framework-control-gaps.json +1255 -0
- package/data/global-frameworks.json +2913 -0
- package/data/rfc-references.json +324 -0
- package/data/zeroday-lessons.json +377 -0
- package/keys/public.pem +3 -0
- package/lib/framework-gap.js +328 -0
- package/lib/job-queue.js +195 -0
- package/lib/lint-skills.js +536 -0
- package/lib/prefetch.js +372 -0
- package/lib/refresh-external.js +713 -0
- package/lib/schemas/cve-catalog.schema.json +151 -0
- package/lib/schemas/manifest.schema.json +106 -0
- package/lib/schemas/skill-frontmatter.schema.json +113 -0
- package/lib/scoring.js +149 -0
- package/lib/sign.js +197 -0
- package/lib/ttp-mapper.js +80 -0
- package/lib/validate-catalog-meta.js +198 -0
- package/lib/validate-cve-catalog.js +213 -0
- package/lib/validate-indexes.js +83 -0
- package/lib/validate-package.js +162 -0
- package/lib/validate-vendor.js +85 -0
- package/lib/verify.js +216 -0
- package/lib/worker-pool.js +84 -0
- package/manifest-snapshot.json +1833 -0
- package/manifest.json +2108 -0
- package/orchestrator/README.md +124 -0
- package/orchestrator/dispatcher.js +140 -0
- package/orchestrator/event-bus.js +146 -0
- package/orchestrator/index.js +874 -0
- package/orchestrator/pipeline.js +201 -0
- package/orchestrator/scanner.js +327 -0
- package/orchestrator/scheduler.js +137 -0
- package/package.json +113 -0
- package/sbom.cdx.json +158 -0
- package/scripts/audit-cross-skill.js +261 -0
- package/scripts/audit-perf.js +160 -0
- package/scripts/bootstrap.js +205 -0
- package/scripts/build-indexes.js +721 -0
- package/scripts/builders/activity-feed.js +79 -0
- package/scripts/builders/catalog-summaries.js +67 -0
- package/scripts/builders/currency.js +109 -0
- package/scripts/builders/cwe-chains.js +105 -0
- package/scripts/builders/did-ladders.js +149 -0
- package/scripts/builders/frequency.js +89 -0
- package/scripts/builders/jurisdiction-clocks.js +126 -0
- package/scripts/builders/recipes.js +159 -0
- package/scripts/builders/section-offsets.js +162 -0
- package/scripts/builders/stale-content.js +171 -0
- package/scripts/builders/summary-cards.js +166 -0
- package/scripts/builders/theater-fingerprints.js +198 -0
- package/scripts/builders/token-budget.js +96 -0
- package/scripts/check-manifest-snapshot.js +217 -0
- package/scripts/predeploy.js +267 -0
- package/scripts/refresh-manifest-snapshot.js +57 -0
- package/scripts/refresh-sbom.js +222 -0
- package/skills/age-gates-child-safety/skill.md +456 -0
- package/skills/ai-attack-surface/skill.md +282 -0
- package/skills/ai-c2-detection/skill.md +440 -0
- package/skills/ai-risk-management/skill.md +311 -0
- package/skills/api-security/skill.md +287 -0
- package/skills/attack-surface-pentest/skill.md +381 -0
- package/skills/cloud-security/skill.md +384 -0
- package/skills/compliance-theater/skill.md +365 -0
- package/skills/container-runtime-security/skill.md +379 -0
- package/skills/coordinated-vuln-disclosure/skill.md +473 -0
- package/skills/defensive-countermeasure-mapping/skill.md +300 -0
- package/skills/dlp-gap-analysis/skill.md +337 -0
- package/skills/email-security-anti-phishing/skill.md +206 -0
- package/skills/exploit-scoring/skill.md +331 -0
- package/skills/framework-gap-analysis/skill.md +374 -0
- package/skills/fuzz-testing-strategy/skill.md +313 -0
- package/skills/global-grc/skill.md +564 -0
- package/skills/identity-assurance/skill.md +272 -0
- package/skills/incident-response-playbook/skill.md +546 -0
- package/skills/kernel-lpe-triage/skill.md +303 -0
- package/skills/mcp-agent-trust/skill.md +326 -0
- package/skills/mlops-security/skill.md +325 -0
- package/skills/ot-ics-security/skill.md +340 -0
- package/skills/policy-exception-gen/skill.md +437 -0
- package/skills/pqc-first/skill.md +546 -0
- package/skills/rag-pipeline-security/skill.md +294 -0
- package/skills/researcher/skill.md +310 -0
- package/skills/sector-energy/skill.md +409 -0
- package/skills/sector-federal-government/skill.md +302 -0
- package/skills/sector-financial/skill.md +398 -0
- package/skills/sector-healthcare/skill.md +373 -0
- package/skills/security-maturity-tiers/skill.md +464 -0
- package/skills/skill-update-loop/skill.md +463 -0
- package/skills/supply-chain-integrity/skill.md +318 -0
- package/skills/threat-model-currency/skill.md +404 -0
- package/skills/threat-modeling-methodology/skill.md +312 -0
- package/skills/webapp-security/skill.md +281 -0
- package/skills/zeroday-gap-learn/skill.md +350 -0
- package/vendor/blamejs/LICENSE +201 -0
- package/vendor/blamejs/README.md +54 -0
- package/vendor/blamejs/_PROVENANCE.json +54 -0
- package/vendor/blamejs/retry.js +335 -0
- package/vendor/blamejs/worker-pool.js +418 -0
|
@@ -0,0 +1,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
|
+
---
|