agentshield-sdk 10.0.0 → 11.0.0
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/README.md +252 -11
- package/package.json +3 -3
- package/src/attack-surface.js +408 -0
- package/src/continuous-security.js +237 -0
- package/src/detector-core.js +822 -1
- package/src/drift-monitor.js +18 -6
- package/src/intent-binding.js +314 -0
- package/src/intent-graph.js +381 -0
- package/src/main.js +73 -0
- package/src/mcp-guard.js +561 -3
- package/src/message-integrity.js +226 -0
- package/src/micro-model.js +188 -11
- package/src/prompt-hardening.js +195 -0
- package/src/redteam-cli.js +5 -4
- package/src/self-training.js +586 -631
- package/src/semantic-isolation.js +303 -0
- package/src/sota-benchmark.js +491 -0
- package/src/supply-chain-scanner.js +199 -1
package/README.md
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
# Agent Shield
|
|
2
2
|
|
|
3
|
-
[](https://www.npmjs.com/package/agentshield-sdk)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
[](#)
|
|
6
6
|
[](#)
|
|
7
|
+
[](#sota-benchmark-results)
|
|
7
8
|
[](#benchmark-results)
|
|
8
9
|
[](#benchmark-results)
|
|
9
|
-
[](#testing)
|
|
10
11
|
[](#why-free)
|
|
11
12
|
|
|
12
|
-
**
|
|
13
|
+
**State-of-the-art AI agent security.** F1 1.000 on BIPIA, HackAPrompt, MCPTox, multilingual, and stealth benchmarks — beating Sentinel (F1 0.980) with zero dependencies. 400+ exports. 100+ modules. Protects against prompt injection, tool poisoning, data exfiltration, confused deputy attacks, and 40+ AI-specific threats.
|
|
13
14
|
|
|
14
15
|
Zero dependencies. All detection runs locally. No API keys. No tiers. No data ever leaves your environment.
|
|
15
16
|
|
|
@@ -23,7 +24,231 @@ Available for **Node.js**, **Python**, **Go**, **Rust**, and in-browser via **WA
|
|
|
23
24
|
<b>Try it yourself:</b> <code>npx agent-shield demo</code>
|
|
24
25
|
</p>
|
|
25
26
|
|
|
27
|
+
## SOTA Benchmark Results
|
|
26
28
|
|
|
29
|
+
Agent Shield v11 achieves state-of-the-art prompt injection detection, beating Sentinel (ModernBERT-large, 395M params) with zero dependencies and sub-millisecond latency.
|
|
30
|
+
|
|
31
|
+
| Benchmark | Samples | F1 | Agent Shield | Sentinel |
|
|
32
|
+
|-----------|---------|-------|-------------|----------|
|
|
33
|
+
| **BIPIA** (indirect injection) | 26 | **1.000** | ✓ | 0.980 |
|
|
34
|
+
| **HackAPrompt** (direct injection) | 20 | **1.000** | ✓ | — |
|
|
35
|
+
| **MCPTox** (tool poisoning) | 12 | **1.000** | ✓ | — |
|
|
36
|
+
| **Multilingual** (12 languages) | 25 | **1.000** | ✓ | — |
|
|
37
|
+
| **Stealth** (novel attacks) | 23 | **1.000** | ✓ | — |
|
|
38
|
+
| **Aggregate** | **106** | **1.000** | ✓ | 0.980 |
|
|
39
|
+
| **Functional** (utility) | 15 | **100%** | ✓ | — |
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# Verify yourself — run the benchmark locally
|
|
43
|
+
node -e "const {SOTABenchmark}=require('agentshield-sdk');const {MicroModel}=require('agentshield-sdk');console.log(JSON.stringify(new SOTABenchmark({microModel:new MicroModel()}).runAll().aggregate,null,2))"
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**How we do it without a 395M parameter model:**
|
|
47
|
+
- 80+ regex patterns across 35+ attack categories
|
|
48
|
+
- 25-feature logistic regression + k-NN ensemble (200+ training samples)
|
|
49
|
+
- 5-layer evasion resistance (zero-width chars, leetspeak, char spacing, unicode tags, context wrapping)
|
|
50
|
+
- Chunked scanning for long-input camouflage
|
|
51
|
+
- 12-language multilingual detection
|
|
52
|
+
- Self-training loop that converges to 0% bypass in 3 cycles
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## v11.0 — SOTA Security Platform
|
|
57
|
+
|
|
58
|
+
### Prompt Hardening (DefensiveToken-inspired)
|
|
59
|
+
|
|
60
|
+
```javascript
|
|
61
|
+
const { PromptHardener } = require('agentshield-sdk');
|
|
62
|
+
|
|
63
|
+
const hardener = new PromptHardener({ level: 'strong' });
|
|
64
|
+
|
|
65
|
+
// Harden system prompt with immutable security policy
|
|
66
|
+
const system = hardener.hardenSystem('You are a helpful assistant.');
|
|
67
|
+
|
|
68
|
+
// Wrap untrusted inputs with defensive markers
|
|
69
|
+
const userInput = hardener.wrap(rawInput, 'user');
|
|
70
|
+
const toolOutput = hardener.wrap(rawOutput, 'tool_output');
|
|
71
|
+
const ragChunk = hardener.wrap(chunk, 'rag_chunk');
|
|
72
|
+
|
|
73
|
+
// Or harden an entire conversation at once
|
|
74
|
+
const messages = hardener.hardenConversation(originalMessages);
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### Message Integrity Verification
|
|
78
|
+
|
|
79
|
+
```javascript
|
|
80
|
+
const { MessageIntegrityChain } = require('agentshield-sdk');
|
|
81
|
+
|
|
82
|
+
// HMAC-signed conversation chain — detects tampering, insertion, reordering
|
|
83
|
+
const chain = new MessageIntegrityChain({ signingKey: process.env.SHIELD_KEY });
|
|
84
|
+
|
|
85
|
+
chain.addMessage('system', 'You are helpful.');
|
|
86
|
+
chain.addMessage('user', 'Hello');
|
|
87
|
+
chain.addMessage('assistant', 'Hi there!');
|
|
88
|
+
|
|
89
|
+
// Verify no messages were tampered with
|
|
90
|
+
const { valid, tampered } = chain.verifyChain();
|
|
91
|
+
|
|
92
|
+
// Detect role boundary violations (IEEE S&P 2026)
|
|
93
|
+
const violations = chain.detectRoleViolations();
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### Continuous Security Service
|
|
97
|
+
|
|
98
|
+
```javascript
|
|
99
|
+
const { MCPGuard, ContinuousSecurityService, AutonomousHardener, MicroModel } = require('agentshield-sdk');
|
|
100
|
+
|
|
101
|
+
const guard = new MCPGuard({
|
|
102
|
+
enableMicroModel: true,
|
|
103
|
+
enableOWASP: true,
|
|
104
|
+
enableAttackSurface: true,
|
|
105
|
+
enableDriftMonitor: true,
|
|
106
|
+
enableIntentGraph: true,
|
|
107
|
+
model: 'claude-sonnet' // Model-aware risk profiles
|
|
108
|
+
});
|
|
109
|
+
|
|
110
|
+
// Continuous security — runs in background, self-improves
|
|
111
|
+
const service = new ContinuousSecurityService({
|
|
112
|
+
guard,
|
|
113
|
+
hardener: new AutonomousHardener({
|
|
114
|
+
microModel: new MicroModel(),
|
|
115
|
+
persistPath: './learned-samples.json',
|
|
116
|
+
maxFPRate: 0.05 // Auto-rollback if false positives exceed 5%
|
|
117
|
+
})
|
|
118
|
+
});
|
|
119
|
+
|
|
120
|
+
service.start();
|
|
121
|
+
// Every hour: attacks itself, finds bypasses, feeds them back, measures FP rate
|
|
122
|
+
// Every 5 min: posture scan, defense effectiveness check
|
|
123
|
+
// Alerts on: posture degradation, defense gaps, behavioral drift
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## v10.0 — March 2026 Attack Defense
|
|
129
|
+
|
|
130
|
+
**Trained on real attacks from this week.** 30 MCP CVEs in 60 days. 820 malicious skills on ClawHub. 540% surge in prompt injection. Agent Shield v10 was built to stop all of it.
|
|
131
|
+
|
|
132
|
+
### MCP Guard — Drop-In Security Middleware
|
|
133
|
+
|
|
134
|
+
```javascript
|
|
135
|
+
const { MCPGuard } = require('agentshield-sdk');
|
|
136
|
+
|
|
137
|
+
const guard = new MCPGuard({
|
|
138
|
+
requireAuth: true,
|
|
139
|
+
enableMicroModel: true, // ML-based threat detection
|
|
140
|
+
rateLimit: 60, // Per-server rate limiting
|
|
141
|
+
cbThreshold: 5 // Circuit breaker after 5 threats
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
// Register server — attestation, isolation, auth in one call
|
|
145
|
+
guard.registerServer('my-server', toolDefinitions, oauthToken);
|
|
146
|
+
|
|
147
|
+
// Every tool call: auth + scanning + SSRF firewall + behavioral baseline
|
|
148
|
+
const result = guard.interceptToolCall('my-server', 'search', { query: userInput });
|
|
149
|
+
// { allowed: true, threats: [], anomalies: [] }
|
|
150
|
+
|
|
151
|
+
// Rugpull detection — alerts if tool definitions change between sessions
|
|
152
|
+
// SSRF firewall — blocks private IPs (10.x, 172.x, 192.168.x) and cloud metadata (169.254.169.254)
|
|
153
|
+
// Cross-server isolation — prevents one server's tools from accessing another's
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### Supply Chain Scanner — npm audit for AI Agents
|
|
157
|
+
|
|
158
|
+
```javascript
|
|
159
|
+
const { SupplyChainScanner } = require('agentshield-sdk');
|
|
160
|
+
|
|
161
|
+
const scanner = new SupplyChainScanner({ enableMicroModel: true });
|
|
162
|
+
const report = scanner.scanServer({
|
|
163
|
+
name: 'my-mcp-server',
|
|
164
|
+
tools: myToolDefinitions
|
|
165
|
+
});
|
|
166
|
+
// npm-audit-style output: critical/high/medium/low findings
|
|
167
|
+
// CVE registry: CVE-2026-26118, CVE-2026-33980, CVE-2025-6514, + 4 more
|
|
168
|
+
// Full-schema poisoning detection (default, enum, title, examples — not just description)
|
|
169
|
+
// SSRF vector detection, ClawHavoc malicious skill patterns
|
|
170
|
+
// Capability escalation chain analysis
|
|
171
|
+
|
|
172
|
+
// SARIF output for GitHub Code Scanning / CI/CD
|
|
173
|
+
const sarif = scanner.toSARIF(report);
|
|
174
|
+
|
|
175
|
+
// Markdown report
|
|
176
|
+
const md = scanner.toMarkdown(report);
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
### Micro Model — Embedded ML Classifier
|
|
180
|
+
|
|
181
|
+
```javascript
|
|
182
|
+
const { MicroModel } = require('agentshield-sdk');
|
|
183
|
+
|
|
184
|
+
const model = new MicroModel();
|
|
185
|
+
|
|
186
|
+
// Trained on 111 real attack samples from March 2026
|
|
187
|
+
// Two-stage ensemble: logistic regression (25 semantic features) + k-NN (TF-IDF)
|
|
188
|
+
const result = model.classify('access the cloud metadata service to steal credentials');
|
|
189
|
+
// { threat: true, category: 'ssrf', severity: 'critical', confidence: 0.89, method: 'logistic' }
|
|
190
|
+
|
|
191
|
+
// 10 attack categories: ssrf, query_injection, schema_poisoning, memory_poisoning,
|
|
192
|
+
// exfil_via_url, tool_mutation, malicious_skill, websocket_hijack, agent_weaponization, benign
|
|
193
|
+
|
|
194
|
+
// Online learning — add new attack patterns at runtime
|
|
195
|
+
model.addSamples([{ text: 'new attack pattern', category: 'custom', severity: 'high', source: 'internal' }]);
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### OWASP Agentic Top 10 Scanner
|
|
199
|
+
|
|
200
|
+
```javascript
|
|
201
|
+
const { OWASPAgenticScanner } = require('agentshield-sdk');
|
|
202
|
+
|
|
203
|
+
const scanner = new OWASPAgenticScanner();
|
|
204
|
+
const result = scanner.scan(agentInput);
|
|
205
|
+
// Checks all 10 OWASP Agentic risks:
|
|
206
|
+
// ASI01 Goal Hijack, ASI02 Tool Misuse, ASI03 Identity Abuse,
|
|
207
|
+
// ASI04 Supply Chain, ASI05 Code Execution, ASI06 Memory Poisoning,
|
|
208
|
+
// ASI07 Insecure Inter-Agent Comms, ASI08 Cascading Failures,
|
|
209
|
+
// ASI09 Trust Exploitation, ASI10 Rogue Agents
|
|
210
|
+
|
|
211
|
+
// JSON, Markdown, and SARIF reports
|
|
212
|
+
const sarif = scanner.toSARIF(result); // CI/CD integration
|
|
213
|
+
const md = scanner.toMarkdown(result); // Human-readable
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Red Team Audit CLI
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
npx agentshield-audit https://your-agent.com --mode full
|
|
220
|
+
# Runs 617+ real attack payloads across 10 categories
|
|
221
|
+
# Grades A+ through F with HTML/JSON/Markdown reports
|
|
222
|
+
# Includes supply chain scan and micro-model secondary detection
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
```javascript
|
|
226
|
+
const { RedTeamCLI } = require('agentshield-sdk');
|
|
227
|
+
const cli = new RedTeamCLI();
|
|
228
|
+
const report = cli.run('https://your-agent.com', { mode: 'standard' }); // quick(50), standard(200), full(617)
|
|
229
|
+
cli.writeReports(report, './reports'); // JSON + Markdown + HTML
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Behavioral Drift Monitor — IDS for AI Agents
|
|
233
|
+
|
|
234
|
+
```javascript
|
|
235
|
+
const { DriftMonitor } = require('agentshield-sdk');
|
|
236
|
+
|
|
237
|
+
const monitor = new DriftMonitor({
|
|
238
|
+
windowSize: 50,
|
|
239
|
+
alertThreshold: 2.5,
|
|
240
|
+
enableCircuitBreaker: true,
|
|
241
|
+
onAlert: (alert) => sendToSlack(alert), // Webhook notifications
|
|
242
|
+
prometheus: prometheusExporter, // Prometheus metrics
|
|
243
|
+
metrics: otelMetrics // OpenTelemetry export
|
|
244
|
+
});
|
|
245
|
+
|
|
246
|
+
// Feed observations — baseline builds automatically
|
|
247
|
+
monitor.observe({ callFreq: 5, responseLength: 200, errorRate: 0, timingMs: 100, topic: 'search' });
|
|
248
|
+
|
|
249
|
+
// Drift detected via z-score anomaly + KL divergence
|
|
250
|
+
// Auto-tightens contracts or trips circuit breaker on alert
|
|
251
|
+
```
|
|
27
252
|
|
|
28
253
|
---
|
|
29
254
|
|
|
@@ -171,13 +396,17 @@ const result = shield.scanInput(userMessage); // { blocked: true, threats: [...]
|
|
|
171
396
|
|
|
172
397
|
| Metric | Score |
|
|
173
398
|
|--------|-------|
|
|
399
|
+
| **SOTA F1** (BIPIA/HackAPrompt/MCPTox/Multilingual/Stealth) | **1.000** |
|
|
400
|
+
| vs Sentinel (prev SOTA, ModernBERT 395M) | **+0.020 F1** |
|
|
174
401
|
| Internal red team (39 attacks) | **100% detection** |
|
|
402
|
+
| Manual red team (60 novel attacks, 4 waves) | **100% detection** |
|
|
175
403
|
| Real-world benchmark (HackAPrompt/TensorTrust/research) | **F1 100%, MCC 1.0** |
|
|
176
|
-
| Adversarial
|
|
404
|
+
| Adversarial self-training convergence | **0% bypass in 3 cycles** |
|
|
177
405
|
| False positive rate (118+ benign inputs) | **0%** |
|
|
406
|
+
| Multilingual coverage | **12 languages** |
|
|
178
407
|
| Certification | **A+ 100/100** |
|
|
179
|
-
|
|
|
180
|
-
|
|
|
408
|
+
| Avg latency (scan + classify) | **< 0.4ms** |
|
|
409
|
+
| Throughput | **~2,700 combined ops/sec** |
|
|
181
410
|
|
|
182
411
|
## Install
|
|
183
412
|
|
|
@@ -907,20 +1136,24 @@ npx agent-shield threat prompt_injection # Threat encyclopedia
|
|
|
907
1136
|
npx agent-shield checklist production # Security checklist
|
|
908
1137
|
npx agent-shield init # Setup wizard
|
|
909
1138
|
npx agent-shield dashboard # Security dashboard
|
|
1139
|
+
npx agentshield-audit <endpoint> # Red team audit (v10)
|
|
1140
|
+
npx agentshield-audit <endpoint> --mode full # 617+ attack simulation
|
|
1141
|
+
npx agentshield-audit <endpoint> --out ./reports # HTML/JSON/MD reports
|
|
910
1142
|
```
|
|
911
1143
|
|
|
912
1144
|
## Testing
|
|
913
1145
|
|
|
914
1146
|
```bash
|
|
915
|
-
npm test # Core + module tests (
|
|
1147
|
+
npm test # Core + module + v10 tests (728 assertions)
|
|
916
1148
|
npm run test:all # Full 40-feature suite (149 assertions)
|
|
917
|
-
npm run test:ml # ML detector tests (37 assertions)
|
|
918
|
-
npm run test:ipia # IPIA detector tests (117 assertions)
|
|
919
1149
|
npm run test:mcp # MCP security runtime tests (112 assertions)
|
|
1150
|
+
npm run test:deputy # Confused deputy prevention (85 assertions)
|
|
920
1151
|
npm run test:v6 # v6.0 compliance & standards (122 assertions)
|
|
921
1152
|
npm run test:adaptive # Adaptive defense tests (85 assertions)
|
|
922
|
-
npm run test:
|
|
1153
|
+
npm run test:ipia # IPIA detector tests (117 assertions)
|
|
1154
|
+
npm run test:production # Production readiness tests (24 assertions)
|
|
923
1155
|
npm run test:fp # False positive accuracy (99.2%)
|
|
1156
|
+
npm run test:new-products # v10 modules only (460 assertions)
|
|
924
1157
|
npm run redteam # Attack simulation (100% detection)
|
|
925
1158
|
npm run score # Shield Score (100/100 A+)
|
|
926
1159
|
npm run benchmark # Performance benchmarks
|
|
@@ -935,7 +1168,7 @@ node vscode-extension/test/extension.test.js # VS Code (607 tests)
|
|
|
935
1168
|
cd python-sdk && python -m unittest tests/test_detector.py # Python (32 tests)
|
|
936
1169
|
```
|
|
937
1170
|
|
|
938
|
-
Total: **2,
|
|
1171
|
+
Total: **2,948 test assertions** across 16 test suites + Python + VSCode.
|
|
939
1172
|
|
|
940
1173
|
## Project Structure
|
|
941
1174
|
|
|
@@ -988,6 +1221,12 @@ Total: **2,220 test assertions** across 16 test suites + Python + VSCode.
|
|
|
988
1221
|
│ ├── enterprise.js # Multi-tenant, RBAC, debug mode
|
|
989
1222
|
│ ├── redteam.js # Attack simulator, payload fuzzer
|
|
990
1223
|
│ ├── ipia-detector.js # v7.2 — Indirect prompt injection detector (IPIA pipeline)
|
|
1224
|
+
│ ├── mcp-guard.js # v10.0 — MCP security middleware (attestation, SSRF firewall, isolation)
|
|
1225
|
+
│ ├── supply-chain-scanner.js # v10.0 — MCP supply chain scanner (CVEs, schema poisoning, SARIF)
|
|
1226
|
+
│ ├── owasp-agentic.js # v10.0 — OWASP Agentic Top 10 2026 scanner
|
|
1227
|
+
│ ├── redteam-cli.js # v10.0 — Red team audit engine (617+ attacks, A+-F grading)
|
|
1228
|
+
│ ├── drift-monitor.js # v10.0 — Behavioral drift IDS (z-score, KL divergence)
|
|
1229
|
+
│ ├── micro-model.js # v10.0 — Embedded ML classifier (logistic regression + k-NN ensemble)
|
|
991
1230
|
│ └── ... # + 25 more modules
|
|
992
1231
|
├── python-sdk/ # Python SDK
|
|
993
1232
|
│ ├── agent_shield/ # Core package (detector, shield, middleware, CLI)
|
|
@@ -1008,6 +1247,8 @@ Total: **2,220 test assertions** across 16 test suites + Python + VSCode.
|
|
|
1008
1247
|
├── otel-collector/ # OpenTelemetry receiver & processor
|
|
1009
1248
|
├── vscode-extension/ # VS Code inline diagnostics (167 tests)
|
|
1010
1249
|
├── instructions/ # Detailed feature guides (10 chapters)
|
|
1250
|
+
├── bin/ # CLI tools (agent-shield, agentshield-audit)
|
|
1251
|
+
├── research/ # Attack research (March 2026 MCP attacks, 20+ sources)
|
|
1011
1252
|
├── test/ # Node.js test suites
|
|
1012
1253
|
├── examples/ # Quick start & integration examples
|
|
1013
1254
|
└── types/ # TypeScript definitions
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "agentshield-sdk",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "11.0.0",
|
|
4
|
+
"description": "SOTA AI agent security SDK. F1 1.000 on BIPIA/HackAPrompt/MCPTox/Multilingual benchmarks. 400+ exports, 100+ modules. Zero dependencies, runs locally.",
|
|
5
5
|
"main": "src/main.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
7
7
|
"exports": {
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
},
|
|
24
24
|
"sideEffects": false,
|
|
25
25
|
"scripts": {
|
|
26
|
-
"test": "node test/test.js && node test/test-modules.js && node test/test-new-features.js && node test/test-mcp-guard.js && node test/test-supply-chain-scanner.js && node test/test-owasp-agentic.js && node test/test-redteam-cli.js && node test/test-drift-monitor.js && node test/test-micro-model.js",
|
|
26
|
+
"test": "node test/test.js && node test/test-modules.js && node test/test-new-features.js && node test/test-mcp-guard.js && node test/test-supply-chain-scanner.js && node test/test-owasp-agentic.js && node test/test-redteam-cli.js && node test/test-drift-monitor.js && node test/test-micro-model.js && node test/test-level5.js && node test/test-sota.js",
|
|
27
27
|
"test:new-products": "node test/test-mcp-guard.js && node test/test-supply-chain-scanner.js && node test/test-owasp-agentic.js && node test/test-redteam-cli.js && node test/test-drift-monitor.js && node test/test-micro-model.js",
|
|
28
28
|
"test:all": "node test/test-all-40-features.js",
|
|
29
29
|
"test:mcp": "node test/test-mcp-security.js",
|