@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,282 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-attack-surface
|
|
3
|
+
version: "1.0.0"
|
|
4
|
+
description: Comprehensive AI/ML attack surface assessment mapped to MITRE ATLAS v5.1.0 with explicit framework gap flags
|
|
5
|
+
triggers:
|
|
6
|
+
- ai attack surface
|
|
7
|
+
- prompt injection
|
|
8
|
+
- llm security
|
|
9
|
+
- ai security assessment
|
|
10
|
+
- model security
|
|
11
|
+
- ai threat model
|
|
12
|
+
- ai red team
|
|
13
|
+
- promptsteal
|
|
14
|
+
- promptflux
|
|
15
|
+
data_deps:
|
|
16
|
+
- cve-catalog.json
|
|
17
|
+
- atlas-ttps.json
|
|
18
|
+
- framework-control-gaps.json
|
|
19
|
+
atlas_refs:
|
|
20
|
+
- AML.T0043
|
|
21
|
+
- AML.T0051
|
|
22
|
+
- AML.T0054
|
|
23
|
+
- AML.T0020
|
|
24
|
+
- AML.T0096
|
|
25
|
+
- AML.T0016
|
|
26
|
+
- AML.T0017
|
|
27
|
+
- AML.T0018
|
|
28
|
+
attack_refs:
|
|
29
|
+
- T1566
|
|
30
|
+
- T1059
|
|
31
|
+
- T1190
|
|
32
|
+
framework_gaps:
|
|
33
|
+
- ALL-AI-PIPELINE-INTEGRITY
|
|
34
|
+
- ALL-PROMPT-INJECTION-ACCESS-CONTROL
|
|
35
|
+
- ISO-27001-2022-A.8.28
|
|
36
|
+
- ISO-IEC-23894-2023-clause-7
|
|
37
|
+
- NIST-800-53-AC-2
|
|
38
|
+
- NIST-800-53-SI-3
|
|
39
|
+
- OWASP-LLM-Top-10-2025-LLM01
|
|
40
|
+
- OWASP-LLM-Top-10-2025-LLM02
|
|
41
|
+
- SOC2-CC6-logical-access
|
|
42
|
+
cwe_refs:
|
|
43
|
+
- CWE-1039
|
|
44
|
+
- CWE-1426
|
|
45
|
+
- CWE-94
|
|
46
|
+
d3fend_refs:
|
|
47
|
+
- D3-IOPR
|
|
48
|
+
- D3-NTA
|
|
49
|
+
last_threat_review: "2026-05-01"
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
# AI Attack Surface Assessment
|
|
53
|
+
|
|
54
|
+
## Threat Context (mid-2026)
|
|
55
|
+
|
|
56
|
+
The AI attack surface is not speculative. It is actively exploited. The following are confirmed, documented threats as of mid-2026.
|
|
57
|
+
|
|
58
|
+
### 1. Prompt Injection as Enterprise RCE
|
|
59
|
+
|
|
60
|
+
**CVE-2025-53773** — Hidden prompt injection in GitHub Copilot PR descriptions enabling RCE. CVSS 9.6. The attack embeds adversarial instructions in GitHub PR descriptions. When a developer uses GitHub Copilot to review or summarize the PR, the injected instructions execute in the context of the developer's session, enabling remote code execution.
|
|
61
|
+
|
|
62
|
+
This is not a chatbot trick. This is enterprise RCE via a developer tool used by hundreds of millions of developers. The attack surface is any system that:
|
|
63
|
+
- Feeds external content (user input, web content, documents, PR descriptions, emails, calendar events) into an LLM prompt
|
|
64
|
+
- Where that LLM has tools, actions, or code execution capability
|
|
65
|
+
|
|
66
|
+
**Attack success rates against SOTA defenses:** A 2026 meta-analysis of 78 studies found adaptive prompt injection strategies succeed against state-of-the-art defenses at rates exceeding 85%. No current framework has adequate controls for this.
|
|
67
|
+
|
|
68
|
+
**ATLAS ref:** AML.T0054 (Craft Adversarial Data — NLP)
|
|
69
|
+
|
|
70
|
+
### 2. MCP Supply Chain — Architectural RCE
|
|
71
|
+
|
|
72
|
+
The Model Context Protocol (MCP) introduced an architectural vulnerability affecting every major AI coding assistant: Cursor, VS Code + GitHub Copilot, Windsurf, Claude Code, Gemini CLI.
|
|
73
|
+
|
|
74
|
+
**CVE-2026-30615** — Windsurf. Zero user interaction required. The vulnerability allows a malicious MCP server (or a compromised legitimate MCP server) to execute arbitrary code in the context of the AI assistant. 150M+ affected downloads.
|
|
75
|
+
|
|
76
|
+
This is a supply chain attack surface. Every MCP server a user installs is a potential RCE vector. Trust boundaries that exist for npm packages do not exist for MCP servers because most MCP clients do not enforce signed manifests or tool allowlists.
|
|
77
|
+
|
|
78
|
+
**ATLAS ref:** AML.T0010 (ML Supply Chain Compromise)
|
|
79
|
+
|
|
80
|
+
### 3. AI-Assisted Exploit Development
|
|
81
|
+
|
|
82
|
+
41% of 2025 zero-days were discovered by attackers using AI-assisted reverse engineering. Copy Fail (CVE-2026-31431) was discovered by an AI system in approximately one hour.
|
|
83
|
+
|
|
84
|
+
The implication: the time between a vulnerability's introduction into a codebase and its reliable exploitation has compressed from months or years to hours or days for AI-capable threat actors. Patch management SLAs designed for human-speed exploit development are structurally inadequate.
|
|
85
|
+
|
|
86
|
+
**ATLAS ref:** AML.T0017 (Develop Capabilities)
|
|
87
|
+
|
|
88
|
+
### 4. AI Credential Phishing Acceleration
|
|
89
|
+
|
|
90
|
+
Credential theft driven by AI increased 160% in 2025. 82.6% of phishing emails now contain AI-generated content undetectable by grammar/style checks. Traditional phishing detection heuristics (poor grammar, unusual phrasing, template patterns) are no longer reliable detectors.
|
|
91
|
+
|
|
92
|
+
**ATLAS ref:** AML.T0018 (Acquire Public ML Artifacts — misuse of generation capability)
|
|
93
|
+
|
|
94
|
+
### 5. AI as Covert C2 — SesameOp
|
|
95
|
+
|
|
96
|
+
Adversaries are repurposing legitimate AI agent APIs as covert command-and-control channels (ATLAS AML.T0096). The SesameOp campaign demonstrated this technique:
|
|
97
|
+
- C2 commands encoded in prompt fields
|
|
98
|
+
- Exfiltrated data returned in completion fields
|
|
99
|
+
- Traffic pattern is indistinguishable from legitimate AI API usage
|
|
100
|
+
- Evades all traditional C2 detection (DGA, beaconing, protocol anomalies)
|
|
101
|
+
|
|
102
|
+
### 6. PROMPTFLUX and PROMPTSTEAL Malware Families
|
|
103
|
+
|
|
104
|
+
Two malware families actively query LLMs during execution:
|
|
105
|
+
- **PROMPTFLUX**: Queries public LLMs for evasion guidance in real time — "generate code equivalent to [flagged signature] that doesn't match this detection pattern"
|
|
106
|
+
- **PROMPTSTEAL**: Uses LLMs to analyze captured credentials and PII, structure exfiltration, and select targets — treats the LLM as a live intelligence analyst
|
|
107
|
+
|
|
108
|
+
Traditional AV and EDR detection cannot match this because the malicious behavior is dynamically generated per-execution.
|
|
109
|
+
|
|
110
|
+
### 7. RAG Data Exfiltration
|
|
111
|
+
|
|
112
|
+
Attackers manipulating vector embeddings to force retrieval mechanisms to surface and leak proprietary data chunks. Covered separately in rag-pipeline-security skill.
|
|
113
|
+
|
|
114
|
+
### 8. Model Poisoning
|
|
115
|
+
|
|
116
|
+
Training pipeline targeting has moved beyond data injection to directly biasing model behavior. Supply chain logistics and classification systems that use ML models for decisions are at risk of subtle model poisoning that influences decisions in the attacker's favor over time.
|
|
117
|
+
|
|
118
|
+
**ATLAS ref:** AML.T0020 (Poison Training Data)
|
|
119
|
+
|
|
120
|
+
### 9. AI-Speed Reconnaissance
|
|
121
|
+
|
|
122
|
+
AI-assisted reconnaissance is observed at 36,000 probes per second per campaign. Traditional rate-based detection (100–1,000 req/s threshold alerts) does not fire at legitimate-looking distributed AI-directed probe rates until significant reconnaissance has already occurred.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Framework Lag Declaration
|
|
127
|
+
|
|
128
|
+
| Framework | Control | Why It Fails for AI Threats |
|
|
129
|
+
|---|---|---|
|
|
130
|
+
| NIST 800-53 | AC-2 (Account Management) | Controls account lifecycle for human users and service accounts. Does not address LLM agent identity, tool authorization, or prompt injection as an access control bypass. An attacker who injects a prompt that causes a model to call `delete_file()` bypasses AC-2 entirely — the API call is authorized by the model's service account, not the attacker's. |
|
|
131
|
+
| NIST 800-53 | SI-3 (Malicious Code Protection) | Designed for signature-based malware detection. PROMPTFLUX generates unique evasion code per execution by querying an LLM. SI-3 has no control surface for AI-generated dynamic malware. |
|
|
132
|
+
| NIST 800-53 | SI-10 (Information Input Validation) | Input validation for web forms and API endpoints. Does not address prompt injection, where the "input" is semantically legitimate text that contains adversarial instructions for the model. |
|
|
133
|
+
| ISO 27001:2022 | A.8.28 (Secure coding) | Secure coding practices for software development. No reference to AI/ML system security, prompt injection, or model integrity. |
|
|
134
|
+
| ISO 27001:2022 | A.8.30 (Outsourced development) | Third-party development controls. Does not address MCP server trust, unsigned manifests, or supply chain attacks on AI tool ecosystems. |
|
|
135
|
+
| SOC 2 | CC6 (Logical and Physical Access) | Access control via IAM, authentication, authorization. Prompt injection is an access control failure that routes around CC6 entirely — the authorized model account takes the action, not the attacker. Audit trails show the model's service account performed the action. |
|
|
136
|
+
| SOC 2 | CC7 (System Operations) | Anomaly detection for system operations. No guidance for AI API baseline, AI C2 detection, or PROMPTFLUX behavioral patterns. |
|
|
137
|
+
| PCI DSS 4.0 | 6.4.1 | Web application protection (WAF). WAFs operate on HTTP request/response patterns. They have no semantic understanding of prompt injection embedded in JSON `message` fields. |
|
|
138
|
+
| MITRE ATT&CK | Enterprise | Does not include prompt injection as a technique. AI-as-C2 (SesameOp) is not in ATT&CK as of mid-2026. ATLAS v5.1.0 covers these but is not part of SOC detection engineering programs that are ATT&CK-mapped. |
|
|
139
|
+
| NIST AI RMF | MEASURE 2.5 | Measure AI risks during operation. Provides a framework for thinking about AI risk but no specific controls for prompt injection, MCP supply chain, or AI-as-C2. |
|
|
140
|
+
|
|
141
|
+
---
|
|
142
|
+
|
|
143
|
+
## TTP Mapping (MITRE ATLAS v5.1.0)
|
|
144
|
+
|
|
145
|
+
| ATLAS ID | Technique | Framework Coverage | Gap Description | Exploitation Example |
|
|
146
|
+
|---|---|---|---|---|
|
|
147
|
+
| AML.T0054 | Craft Adversarial Data — NLP | Missing in all major frameworks | No control covers adversarial text injection into LLM prompts | CVE-2025-53773 (GitHub Copilot RCE) |
|
|
148
|
+
| AML.T0010 | ML Supply Chain Compromise | Partial (ISO A.8.30) | A.8.30 covers outsourced development; does not cover MCP server trust, package signing for AI tools | CVE-2026-30615 (Windsurf MCP) |
|
|
149
|
+
| AML.T0096 | LLM Integration Abuse (C2) | Missing in all major frameworks | No framework has a control for AI API traffic as C2 channel | SesameOp campaign |
|
|
150
|
+
| AML.T0020 | Poison Training Data | Partial (NIST AI RMF) | NIST AI RMF identifies the risk; no specific technical control | Supply chain logistics model poisoning |
|
|
151
|
+
| AML.T0043 | Craft Adversarial Data | Partial (SI-10) | SI-10 covers web input validation; not semantic injection in LLM prompts | RAG vector manipulation |
|
|
152
|
+
| AML.T0051 | LLM Prompt Injection | Missing in all major frameworks | Zero controls in NIST, ISO, SOC 2, PCI for prompt injection | CVE-2025-53773, indirect injection via retrieved docs |
|
|
153
|
+
| AML.T0017 | Develop Capabilities | Partial (awareness only) | No framework requires monitoring for AI-assisted exploit development against the org | Copy Fail AI discovery, 41% of 2025 0-days |
|
|
154
|
+
| AML.T0016 | Acquire Public ML Artifacts | Missing (misuse dimension) | Frameworks don't address adversary use of public AI APIs for reconnaissance/attack | PROMPTFLUX, PROMPTSTEAL, phishing generation |
|
|
155
|
+
| AML.T0018 | Backdoor ML Model | Partial (NIST AI RMF) | No technical control requirements for model integrity verification | Training pipeline poisoning |
|
|
156
|
+
|
|
157
|
+
---
|
|
158
|
+
|
|
159
|
+
## Exploit Availability Matrix
|
|
160
|
+
|
|
161
|
+
| Vulnerability | CVSS | RWEP | KEV | PoC | AI-Accelerated | Active Exploitation |
|
|
162
|
+
|---|---|---|---|---|---|---|
|
|
163
|
+
| CVE-2025-53773 (Copilot prompt injection RCE) | 9.6 | 91 | No | Yes — demonstrated | Yes (AI tooling enables) | Suspected |
|
|
164
|
+
| CVE-2026-30615 (Windsurf MCP RCE) | 9.8 | 94 | No | Partial | No | Suspected |
|
|
165
|
+
| SesameOp (AI C2 technique) | N/A | N/A | N/A | Yes (ATLAS documented) | Yes | Confirmed campaign |
|
|
166
|
+
| PROMPTFLUX family | N/A | N/A | N/A | Behavioral signatures | Yes | Active |
|
|
167
|
+
| PROMPTSTEAL family | N/A | N/A | N/A | Behavioral signatures | Yes | Active |
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## Analysis Procedure
|
|
172
|
+
|
|
173
|
+
### Step 1: Inventory the AI surface
|
|
174
|
+
|
|
175
|
+
For the target environment, identify:
|
|
176
|
+
- Which LLM APIs are in use? (OpenAI, Anthropic, Google, Azure OpenAI, local models)
|
|
177
|
+
- Which AI coding assistants are deployed? (GitHub Copilot, Cursor, Windsurf, Claude Code, Gemini CLI)
|
|
178
|
+
- Which MCP servers are installed? (list via IDE settings or `~/.cursor/mcp.json`, `~/.vscode/mcp.json`)
|
|
179
|
+
- Does any application take user input and include it in an LLM prompt without semantic sanitization?
|
|
180
|
+
- Does any application use RAG? (vector store + retrieval)
|
|
181
|
+
- Are any AI model APIs accessible from the internet?
|
|
182
|
+
- What service accounts do AI agents run under? What permissions do those accounts have?
|
|
183
|
+
|
|
184
|
+
### Step 2: Assess prompt injection exposure
|
|
185
|
+
|
|
186
|
+
For each system that feeds external content into LLM prompts:
|
|
187
|
+
|
|
188
|
+
**Injection surface score:**
|
|
189
|
+
- External content in prompts (user input, documents, emails, web content, PR descriptions): +High
|
|
190
|
+
- LLM has tool use / function calling capability: +Critical multiplier
|
|
191
|
+
- LLM can take actions on behalf of users (file ops, API calls, code execution): +Critical multiplier
|
|
192
|
+
- No semantic input sanitization: +High
|
|
193
|
+
- No output monitoring: +Medium
|
|
194
|
+
- Attack success rate against SOTA defenses: 85%+ (meta-analysis baseline)
|
|
195
|
+
|
|
196
|
+
**Current defense adequacy:**
|
|
197
|
+
- Prompt injection classifiers reduce success rate; do not eliminate it
|
|
198
|
+
- System prompt hardening reduces success rate; does not eliminate it
|
|
199
|
+
- No defense achieves <15% bypass rate against adaptive adversaries (2026 data)
|
|
200
|
+
- Defense-in-depth is the only viable strategy: minimize tool permissions + monitor outputs + rate-limit + log all prompts
|
|
201
|
+
|
|
202
|
+
### Step 3: Assess MCP trust posture
|
|
203
|
+
|
|
204
|
+
For each installed MCP server:
|
|
205
|
+
- Is the server package signed? Verify manifest signature.
|
|
206
|
+
- Is there an explicit tool allowlist? (`allowed_tools` in MCP client config)
|
|
207
|
+
- Does the MCP server require authentication? (bearer token or equivalent)
|
|
208
|
+
- What permissions does the MCP server's process run with?
|
|
209
|
+
- Are MCP server outputs sanitized before returning to the model?
|
|
210
|
+
|
|
211
|
+
**MCP risk score:**
|
|
212
|
+
- Unsigned server + no allowlist + no auth: Critical
|
|
213
|
+
- Signed server + allowlist + bearer auth: Low-Medium
|
|
214
|
+
- Any MCP server with filesystem or shell access + unsigned: Critical
|
|
215
|
+
|
|
216
|
+
### Step 4: Assess AI C2 exposure
|
|
217
|
+
|
|
218
|
+
Check for SesameOp-style C2 indicators:
|
|
219
|
+
- Are AI API calls logged with full prompt + response content?
|
|
220
|
+
- Is there a behavioral baseline for normal AI API usage per host/user/process?
|
|
221
|
+
- Do alert thresholds exist for unusual AI API call patterns?
|
|
222
|
+
- Are AI API calls correlated with other host activity (file access, lateral movement)?
|
|
223
|
+
- Is high-entropy content in prompt fields flagged?
|
|
224
|
+
|
|
225
|
+
### Step 5: Assess credential/phishing risk
|
|
226
|
+
|
|
227
|
+
For organizations with AI-generated phishing threat:
|
|
228
|
+
- Have phishing detection systems been updated for AI-generated content? (grammar checks are inadequate)
|
|
229
|
+
- Are behavioral signals (link patterns, sender reputation, context anomalies) the primary detection mechanism?
|
|
230
|
+
- Is MFA resistant to phishing (hardware key or passkey)? SMS/TOTP are vulnerable to AI-generated real-time phishing.
|
|
231
|
+
|
|
232
|
+
### Step 6: Generate framework gap report
|
|
233
|
+
|
|
234
|
+
For each identified risk, declare the framework gap:
|
|
235
|
+
- Which control nominally applies?
|
|
236
|
+
- Why it is insufficient for this specific AI attack pattern?
|
|
237
|
+
- What a real control would require?
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Output Format
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
## AI Attack Surface Assessment
|
|
245
|
+
|
|
246
|
+
**Assessment Date:** YYYY-MM-DD
|
|
247
|
+
**Scope:** [systems/applications assessed]
|
|
248
|
+
|
|
249
|
+
### Surface Inventory
|
|
250
|
+
| Component | Type | External Input | Tool Use | Risk Level |
|
|
251
|
+
|-----------|------|---------------|----------|------------|
|
|
252
|
+
| [name] | [LLM app / MCP server / coding assistant] | [Yes/No] | [Yes/No] | [Critical/High/Medium/Low] |
|
|
253
|
+
|
|
254
|
+
### Prompt Injection Exposure
|
|
255
|
+
[Per component: injection surface score, current defenses, estimated bypass rate, recommended controls]
|
|
256
|
+
|
|
257
|
+
### MCP Trust Assessment
|
|
258
|
+
[Per installed MCP server: signed/unsigned, allowlist status, auth status, risk level]
|
|
259
|
+
|
|
260
|
+
### AI C2 Indicators
|
|
261
|
+
[Logging coverage, baseline status, detection gaps]
|
|
262
|
+
|
|
263
|
+
### Credential/Phishing Risk
|
|
264
|
+
[Detection system currency, MFA phishing resistance]
|
|
265
|
+
|
|
266
|
+
### ATLAS TTP Coverage Gaps
|
|
267
|
+
[Per TTP: covered/partial/missing in deployed security tools]
|
|
268
|
+
|
|
269
|
+
### Framework Gaps
|
|
270
|
+
[Per framework in scope: specific controls that fail for AI threats, with explanation]
|
|
271
|
+
|
|
272
|
+
### Prioritized Recommendations
|
|
273
|
+
[Ordered by RWEP impact: specific, actionable, accounts for real deployment constraints]
|
|
274
|
+
```
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## Compliance Theater Check
|
|
279
|
+
|
|
280
|
+
> "Your security awareness training includes phishing detection. 82.6% of phishing emails now contain AI-generated content indistinguishable by grammar or style checks. Open your most recent phishing simulation report: what percentage of simulated phishes used AI-generated content? If zero, the simulation is testing resistance to 2021 phishing, not 2026 phishing. If your detection rule set has not been updated to reflect AI-generated content as the baseline, the control is theater for the threat it claims to address."
|
|
281
|
+
|
|
282
|
+
> "Your access control logs show no unauthorized access events involving your AI systems. Run this check: are your AI agent service account API calls logged with full request/response bodies? Are those logs monitored for behavioral anomalies? If AI API traffic is treated as trusted internal traffic with no behavioral monitoring, an attacker using AI-as-C2 (SesameOp technique) would not appear in your unauthorized access event log at all. Absence of evidence is not evidence of absence when the detection surface doesn't exist."
|