clawmoat 0.8.0 → 1.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/.dockerignore +9 -0
- package/CHANGELOG.md +18 -0
- package/DEMO.md +87 -0
- package/Dockerfile +5 -18
- package/README.md +232 -8
- package/THREAT_MODEL.md +129 -0
- package/agent/README.md +131 -0
- package/agent/index.js +471 -0
- package/agent/install-service.sh +94 -0
- package/agent/openclaw-hook.js +453 -0
- package/agent/provider-setup.js +649 -0
- package/agent/setup.js +274 -0
- package/assets/BADGE-USAGE.md +20 -0
- package/assets/clawmoat-badge.svg +21 -0
- package/bin/clawmoat.js +468 -111
- package/docs/affiliates/dashboard.html +124 -0
- package/docs/affiliates/index.html +236 -0
- package/docs/agent-install.html +183 -0
- package/docs/ai-agent-security-scanner.html +10 -6
- package/docs/badge/index.html +149 -0
- package/docs/badge/scanning.svg +23 -0
- package/docs/blog/386-malicious-skills.html +11 -4
- package/docs/blog/40000-exposed-openclaw-instances.html +11 -4
- package/docs/blog/agent-trust-protocol.html +5 -4
- package/docs/blog/ai-agent-earns-commissions.html +230 -0
- package/docs/blog/bugmageddon-agent-firewall.html +174 -0
- package/docs/blog/calculator-math.html +180 -0
- package/docs/blog/clawmoat-vs-llamafirewall-nemo-guardrails.html +10 -4
- package/docs/blog/host-guardian-launch.html +18 -8
- package/docs/blog/ibm-experts-agent-runtime-protection.html +15 -6
- package/docs/blog/index.html +67 -9
- package/docs/blog/langchain-security-tutorial.html +18 -8
- package/docs/blog/mcp-30-cves-security-crisis.html +11 -4
- package/docs/blog/meta-researcher-rogue-agent.html +201 -0
- package/docs/blog/microsoft-openclaw-workstation-security.html +5 -4
- package/docs/blog/nist-ai-agent-standards-clawmoat.html +16 -8
- package/docs/blog/oasis-websocket-hijack.html +11 -4
- package/docs/blog/ollama-openclaw-security.html +10 -4
- package/docs/blog/openclaw-enterprise-readiness-claw10.html +5 -4
- package/docs/blog/openclaw-security-reckoning-2026.html +11 -4
- package/docs/blog/owasp-agentic-ai-top10.html +18 -8
- package/docs/blog/securing-ai-agents.html +18 -8
- package/docs/blog/supply-chain-agents.html +18 -8
- package/docs/business/index.html +11 -16
- package/docs/business/install.html +21 -7
- package/docs/checklist.html +10 -4
- package/docs/compare/index.html +122 -0
- package/docs/compare/lakera/index.html +62 -0
- package/docs/compare/llm-guard/index.html +49 -0
- package/docs/compare/snyk-agent-scan/index.html +63 -0
- package/docs/compare.html +10 -6
- package/docs/dashboard/index.html +520 -0
- package/docs/finance/index.html +9 -6
- package/docs/guides/business-deployment.html +770 -0
- package/docs/hall-of-fame.html +11 -5
- package/docs/index.html +266 -137
- package/docs/integrations/langchain.html +14 -6
- package/docs/integrations/openai.html +14 -6
- package/docs/integrations/openclaw.html +55 -7
- package/docs/plans/2026-03-26-threat-intel-api.md +255 -0
- package/docs/plans/2026-04-14-bugmageddon-marketing-pack.md +329 -0
- package/docs/plans/2026-04-14-clawmoat-v1-bugmageddon.md +248 -0
- package/docs/plans/2026-04-14-v1-release-update.md +91 -0
- package/docs/plans/2026-04-19-supabase-audit.md +68 -0
- package/docs/plans/2026-05-12-sales-push.md +303 -0
- package/docs/playground/index.html +893 -0
- package/docs/playground.html +4 -7
- package/docs/rfcs/defense-in-depth.md +467 -0
- package/docs/scan/index.html +156 -12
- package/docs/services/case-study.html +255 -0
- package/docs/services/downloads/install-openclaw.bat +45 -0
- package/docs/services/downloads/install-openclaw.command +38 -0
- package/docs/services/downloads/install-openclaw.sh +38 -0
- package/docs/services/get-started.html +165 -0
- package/docs/services/index.html +598 -0
- package/docs/services/multi-agent-security.html +284 -0
- package/docs/services/one-pager.html +99 -0
- package/docs/services/pitch-deck.html +229 -0
- package/docs/services/roi-calculator.html +258 -0
- package/docs/sitemap.xml +62 -2
- package/docs/support/index.html +12 -1
- package/docs/templates/customer-service/HEARTBEAT.md +61 -0
- package/docs/templates/customer-service/MEMORY.md +89 -0
- package/docs/templates/customer-service/SOUL.md +41 -0
- package/docs/templates/customer-service/USER.md +56 -0
- package/docs/templates/executive/HEARTBEAT.md +86 -0
- package/docs/templates/executive/MEMORY.md +92 -0
- package/docs/templates/executive/SOUL.md +44 -0
- package/docs/templates/executive/USER.md +62 -0
- package/docs/templates/finance/HEARTBEAT.md +58 -0
- package/docs/templates/finance/MEMORY.md +87 -0
- package/docs/templates/finance/SOUL.md +38 -0
- package/docs/templates/finance/USER.md +53 -0
- package/docs/templates/index.html +115 -0
- package/docs/templates/operations/HEARTBEAT.md +63 -0
- package/docs/templates/operations/MEMORY.md +68 -0
- package/docs/templates/operations/SOUL.md +38 -0
- package/docs/templates/operations/USER.md +49 -0
- package/docs/templates/sales/HEARTBEAT.md +55 -0
- package/docs/templates/sales/MEMORY.md +89 -0
- package/docs/templates/sales/SOUL.md +34 -0
- package/docs/templates/sales/USER.md +54 -0
- package/eslint.config.js +32 -0
- package/evals/README.md +29 -0
- package/evals/cases.json +390 -0
- package/evals/results.md +68 -0
- package/evals/run.js +180 -0
- package/examples/demo-attack/demo.js +186 -0
- package/examples/python-quickstart/README.md +54 -0
- package/examples/python-quickstart/clawmoat_client.py +167 -0
- package/examples/video-demo/README.md +14 -0
- package/examples/video-demo/scene-a-normal.js +29 -0
- package/examples/video-demo/scene-b-attack-arrives.js +31 -0
- package/examples/video-demo/scene-c-hijack.js +44 -0
- package/examples/video-demo/scene-d-clawmoat.js +46 -0
- package/integrations/crewai/README.md +32 -0
- package/integrations/crewai/clawmoat_crewai/__init__.py +17 -0
- package/integrations/crewai/clawmoat_crewai/guard.py +103 -0
- package/integrations/crewai/pyproject.toml +21 -0
- package/integrations/langchain/README.md +91 -0
- package/integrations/langchain/clawmoat_langchain/__init__.py +17 -0
- package/integrations/langchain/clawmoat_langchain/callback.py +489 -0
- package/integrations/langchain/pyproject.toml +32 -0
- package/integrations/litellm/README.md +324 -0
- package/integrations/litellm/clawmoat_litellm/__init__.py +21 -0
- package/integrations/litellm/clawmoat_litellm/callback.py +329 -0
- package/integrations/litellm/clawmoat_litellm/proxy_middleware.py +224 -0
- package/integrations/litellm/pyproject.toml +74 -0
- package/integrations/openai-agents/README.md +392 -0
- package/integrations/openai-agents/clawmoat_openai_agents/__init__.py +20 -0
- package/integrations/openai-agents/clawmoat_openai_agents/guardrail.py +431 -0
- package/integrations/openai-agents/clawmoat_openai_agents/middleware.py +311 -0
- package/integrations/openai-agents/pyproject.toml +76 -0
- package/package.json +6 -5
- package/plugins/openclaw-adapter/PHASE1.md +439 -0
- package/plugins/openclaw-adapter/README.md +103 -0
- package/plugins/openclaw-adapter/SPEC.md +1644 -0
- package/plugins/openclaw-adapter/package.json +31 -0
- package/plugins/openclaw-adapter/src/index.test.ts +226 -0
- package/plugins/openclaw-adapter/src/index.ts +140 -0
- package/plugins/openclaw-adapter/tsconfig.json +14 -0
- package/server/data/threats.json +290 -0
- package/server/index.js +142 -7
- package/src/adapters/express.js +161 -0
- package/src/adapters/index.js +92 -0
- package/src/adapters/langchain.js +185 -0
- package/src/approval/index.js +456 -0
- package/src/ban-scanner.js +200 -0
- package/src/boundary-scanner.js +296 -0
- package/src/ci-scanner.js +279 -0
- package/src/code-scanner.js +245 -0
- package/src/enforce.js +166 -0
- package/src/formatters/json.js +80 -0
- package/src/formatters/sarif.js +388 -0
- package/src/guardian/alerts.js +34 -3
- package/src/guardian/index.js +41 -2
- package/src/index.js +102 -0
- package/src/integrations/agentmesh.js +501 -0
- package/src/language-detector.js +201 -0
- package/src/mcp-scanner.js +253 -0
- package/src/multimodal/index.js +579 -0
- package/src/obfuscation-scanner.js +457 -0
- package/src/policy-engine.js +402 -0
- package/src/scanners/dependency-attacks.js +128 -0
- package/src/scanners/prompt-injection.js +18 -0
- package/src/scanners/supply-chain.js +14 -0
- package/src/templates/default-config.yml +90 -0
- package/src/vuln-ops/exploitability.js +46 -0
- package/src/watch/live-monitor.js +720 -0
- package/clawmoat-0.8.0.tgz +0 -0
- package/server/index.js.patch +0 -1
package/docs/playground.html
CHANGED
|
@@ -129,16 +129,13 @@ nav .container{display:flex;align-items:center;justify-content:space-between}
|
|
|
129
129
|
|
|
130
130
|
<nav>
|
|
131
131
|
<div class="container">
|
|
132
|
-
<a href="/" class="logo"
|
|
132
|
+
<a href="/" class="logo">🏰 Claw<span>Moat</span></a>
|
|
133
133
|
<button class="menu-toggle" onclick="document.querySelector('.nav-links').classList.toggle('open')" aria-label="Menu">☰</button>
|
|
134
134
|
<div class="nav-links">
|
|
135
|
-
<a href="
|
|
136
|
-
<a href="
|
|
137
|
-
<a href="/playground.html" class="active">Playground</a>
|
|
138
|
-
<a href="/#pricing">Pricing</a>
|
|
135
|
+
<a href="/">Security</a>
|
|
136
|
+
<a href="/services/">AI Agents</a>
|
|
139
137
|
<a href="/blog/">Blog</a>
|
|
140
|
-
<a href="https://github.com/darfaz/clawmoat">GitHub
|
|
141
|
-
<a href="/#waitlist" class="btn-sm">Get Early Access</a>
|
|
138
|
+
<a href="https://github.com/darfaz/clawmoat">GitHub ↗</a>
|
|
142
139
|
</div>
|
|
143
140
|
</div>
|
|
144
141
|
</nav>
|
|
@@ -0,0 +1,467 @@
|
|
|
1
|
+
# RFC: Defense-in-Depth for AI Agents — ClawMoat × Agent-OS Collaboration
|
|
2
|
+
|
|
3
|
+
**Status:** Draft
|
|
4
|
+
**Author(s):** ClawMoat Team, Agent-OS/AgentMesh Team
|
|
5
|
+
**Date:** March 2026
|
|
6
|
+
**Version:** 1.0
|
|
7
|
+
|
|
8
|
+
## Abstract
|
|
9
|
+
|
|
10
|
+
AI agents operate with real-world tool access (shell, files, APIs, browsers) and require robust security architecture. This RFC proposes a **defense-in-depth** approach combining ClawMoat's reactive security scanning with Agent-OS's proactive governance layer. Together, they provide comprehensive protection against the OWASP Agentic Top 10 threats while maintaining agent functionality and developer experience.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 1. Problem Statement
|
|
15
|
+
|
|
16
|
+
### Current Landscape Fragmentation
|
|
17
|
+
|
|
18
|
+
The AI agent security landscape is fragmented with each framework implementing their own (or no) security model:
|
|
19
|
+
|
|
20
|
+
- **LangChain:** Basic output parsers, limited input validation
|
|
21
|
+
- **CrewAI:** Framework-level role restrictions, no runtime scanning
|
|
22
|
+
- **AutoGen:** Conversation-level safety filters, limited tool governance
|
|
23
|
+
- **OpenAI Agents SDK:** Output-focused guardrails, minimal input protection
|
|
24
|
+
- **Google Agent Development Kit:** Enterprise features, vendor lock-in
|
|
25
|
+
- **PydanticAI:** Type safety focus, limited security scanning
|
|
26
|
+
|
|
27
|
+
### Security Gaps
|
|
28
|
+
|
|
29
|
+
**Single-layer approaches fail:**
|
|
30
|
+
- Input-only filtering misses dynamic threats
|
|
31
|
+
- Output-only scanning allows malicious tool execution
|
|
32
|
+
- Framework-specific security doesn't protect cross-framework deployments
|
|
33
|
+
- Policy engines without scanning miss sophisticated attacks
|
|
34
|
+
|
|
35
|
+
**No single security layer is sufficient** — sophisticated threats require multiple coordinated defenses.
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## 2. Defense-in-Depth Architecture
|
|
40
|
+
|
|
41
|
+
### Layer 1: Perimeter (ClawMoat)
|
|
42
|
+
|
|
43
|
+
**Role:** Reactive threat detection and content scanning
|
|
44
|
+
**Scope:** Input/output analysis, prompt injection detection, data exfiltration prevention
|
|
45
|
+
|
|
46
|
+
**Components:**
|
|
47
|
+
- **Input Scanners:** Prompt injection, jailbreak attempts, excessive agency requests
|
|
48
|
+
- **Output Scanners:** PII/secrets leakage, unauthorized data sharing, policy violations
|
|
49
|
+
- **Tool Scanners:** Command validation, file access monitoring, network egress logging
|
|
50
|
+
- **Behavioral Analysis:** Insider threat patterns, anomaly detection
|
|
51
|
+
|
|
52
|
+
**Coverage:**
|
|
53
|
+
- OWASP Agentic A01: Prompt Injection
|
|
54
|
+
- OWASP Agentic A02: Insecure Output Handling
|
|
55
|
+
- OWASP Agentic A03: Training Data Poisoning (detection)
|
|
56
|
+
- OWASP Agentic A06: Excessive Agency
|
|
57
|
+
- OWASP Agentic A09: Misinformation (patterns)
|
|
58
|
+
- OWASP Agentic A10: Unbounded Consumption
|
|
59
|
+
|
|
60
|
+
### Layer 2: Governance (Agent-OS)
|
|
61
|
+
|
|
62
|
+
**Role:** Proactive policy enforcement and action interception
|
|
63
|
+
**Scope:** Permission models, approval workflows, action authorization
|
|
64
|
+
|
|
65
|
+
**Components:**
|
|
66
|
+
- **Policy Engine:** YAML-based rules, role-based permissions, conditional access
|
|
67
|
+
- **Action Interceptor:** Pre-execution validation, approval workflows, audit trails
|
|
68
|
+
- **Trust System:** 5-dimension scoring, behavior-based reputation, temporal decay
|
|
69
|
+
- **Audit Chain:** Tamper-evident Merkle tree, compliance reporting, forensics
|
|
70
|
+
|
|
71
|
+
**Coverage:**
|
|
72
|
+
- OWASP Agentic A04: Model Denial of Service (rate limiting)
|
|
73
|
+
- OWASP Agentic A05: Supply Chain Vulnerabilities (tool validation)
|
|
74
|
+
- OWASP Agentic A06: Excessive Agency (authorization)
|
|
75
|
+
- OWASP Agentic A07: System Prompt Leakage (access control)
|
|
76
|
+
- OWASP Agentic A08: Vector and Embeddings Weaknesses (data governance)
|
|
77
|
+
|
|
78
|
+
### Layer 3: Runtime (Framework)
|
|
79
|
+
|
|
80
|
+
**Role:** Framework-specific guardrails and tool-level access control
|
|
81
|
+
**Scope:** Native integrations, performance optimization, developer experience
|
|
82
|
+
|
|
83
|
+
**Components:**
|
|
84
|
+
- **LangChain:** Custom callback handlers, memory protection, chain validation
|
|
85
|
+
- **CrewAI:** Role-based tool restrictions, task validation, crew permissions
|
|
86
|
+
- **OpenAI Agents SDK:** Guardrail protocol implementation, handoff security
|
|
87
|
+
- **AutoGen:** Conversation filtering, agent isolation, group chat moderation
|
|
88
|
+
|
|
89
|
+
### Layer 4: Audit
|
|
90
|
+
|
|
91
|
+
**Role:** Comprehensive logging, alerting, and compliance reporting
|
|
92
|
+
**Scope:** Cross-layer visibility, threat intelligence, regulatory compliance
|
|
93
|
+
|
|
94
|
+
**Components:**
|
|
95
|
+
- **Unified Logging:** JSONL format, structured events, searchable metadata
|
|
96
|
+
- **Threat Intelligence:** IOCs, attack patterns, behavioral baselines
|
|
97
|
+
- **Compliance Engine:** SOX, PCI-DSS, HIPAA reporting, audit trails
|
|
98
|
+
- **Alerting:** Real-time notifications, escalation workflows, incident response
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 3. Integration Points
|
|
103
|
+
|
|
104
|
+
### 3.1 Pre-Execution Pipeline
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
User Input → ClawMoat Scan → Agent-OS Policy → Framework Guards → Tool Execution
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
**Flow:**
|
|
111
|
+
1. **ClawMoat** scans input for prompt injection, malicious content
|
|
112
|
+
2. **Agent-OS** evaluates against governance policies, role permissions
|
|
113
|
+
3. **Framework** applies native guardrails, tool restrictions
|
|
114
|
+
4. **Tool** executes with monitoring and logging
|
|
115
|
+
|
|
116
|
+
**Benefits:**
|
|
117
|
+
- Threats caught at perimeter before reaching agent
|
|
118
|
+
- Policy violations blocked before execution
|
|
119
|
+
- Multiple validation layers prevent bypass
|
|
120
|
+
|
|
121
|
+
### 3.2 Post-Execution Pipeline
|
|
122
|
+
|
|
123
|
+
```
|
|
124
|
+
Tool Output → ClawMoat Scan → Agent-OS Audit → Framework Response → User
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
**Flow:**
|
|
128
|
+
1. **Tool** generates output, ClawMoat scans for PII/secrets
|
|
129
|
+
2. **Agent-OS** records action outcome, updates trust score
|
|
130
|
+
3. **Framework** applies output formatting, response validation
|
|
131
|
+
4. **User** receives sanitized, policy-compliant response
|
|
132
|
+
|
|
133
|
+
**Benefits:**
|
|
134
|
+
- Data exfiltration prevented at multiple checkpoints
|
|
135
|
+
- Behavioral patterns recorded for anomaly detection
|
|
136
|
+
- Compliance requirements automatically enforced
|
|
137
|
+
|
|
138
|
+
### 3.3 Shared Policy Format
|
|
139
|
+
|
|
140
|
+
**Unified YAML schema** for cross-platform compatibility:
|
|
141
|
+
|
|
142
|
+
```yaml
|
|
143
|
+
# clawmoat-agentmesh-policy.yml
|
|
144
|
+
metadata:
|
|
145
|
+
version: "1.0"
|
|
146
|
+
frameworks: ["langchain", "crewai", "openai-agents"]
|
|
147
|
+
|
|
148
|
+
clawmoat:
|
|
149
|
+
scanners:
|
|
150
|
+
prompt_injection: { enabled: true, threshold: 0.8 }
|
|
151
|
+
secrets: { enabled: true, redact: true }
|
|
152
|
+
pii: { enabled: true, anonymize: ["ssn", "credit_card"] }
|
|
153
|
+
|
|
154
|
+
agentmesh:
|
|
155
|
+
permissions:
|
|
156
|
+
tools:
|
|
157
|
+
- name: "web_search"
|
|
158
|
+
allow: ["research_agent"]
|
|
159
|
+
rate_limit: { calls: 10, window: "1m" }
|
|
160
|
+
- name: "file_write"
|
|
161
|
+
allow: ["admin_agent"]
|
|
162
|
+
approval_required: true
|
|
163
|
+
trust:
|
|
164
|
+
min_score: 0.7
|
|
165
|
+
factors: ["tool_success", "policy_compliance", "user_feedback"]
|
|
166
|
+
|
|
167
|
+
frameworks:
|
|
168
|
+
langchain:
|
|
169
|
+
callbacks: ["clawmoat_scanner", "agentmesh_governor"]
|
|
170
|
+
memory_protection: true
|
|
171
|
+
crewai:
|
|
172
|
+
middleware: ["security_layer"]
|
|
173
|
+
role_inheritance: false
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### 3.4 Common Threat Taxonomy
|
|
177
|
+
|
|
178
|
+
**Mapped to OWASP Agentic Top 10** for consistent threat classification:
|
|
179
|
+
|
|
180
|
+
| OWASP ID | Threat | ClawMoat Detection | Agent-OS Mitigation | Framework Guard |
|
|
181
|
+
|----------|--------|-------------------|-------------------|-----------------|
|
|
182
|
+
| A01 | Prompt Injection | Input scanning, pattern matching | Policy validation, role checks | Conversation filtering |
|
|
183
|
+
| A02 | Insecure Output | PII/secret detection, data classification | Output approval, redaction policies | Response validation |
|
|
184
|
+
| A06 | Excessive Agency | Privilege escalation detection | Permission enforcement, approval | Tool restrictions |
|
|
185
|
+
| A09 | Misinformation | Content validation, fact-checking | Source verification, trust scoring | Output disclaimers |
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
## 4. Framework Support Matrix
|
|
190
|
+
|
|
191
|
+
### 4.1 LangChain Integration
|
|
192
|
+
|
|
193
|
+
**ClawMoat Integration:**
|
|
194
|
+
```python
|
|
195
|
+
from clawmoat.integrations.langchain import ClawMoatCallback
|
|
196
|
+
|
|
197
|
+
chain = LLMChain(
|
|
198
|
+
llm=OpenAI(),
|
|
199
|
+
callbacks=[ClawMoatCallback(
|
|
200
|
+
scan_input=True,
|
|
201
|
+
scan_output=True,
|
|
202
|
+
block_threats=True
|
|
203
|
+
)]
|
|
204
|
+
)
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
**Agent-OS Integration:**
|
|
208
|
+
```python
|
|
209
|
+
from agentmesh.integrations.langchain import AgentMeshGovernor
|
|
210
|
+
|
|
211
|
+
governor = AgentMeshGovernor(policy_path="policy.yml")
|
|
212
|
+
chain = governor.wrap(chain) # Adds policy enforcement
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### 4.2 CrewAI Integration
|
|
216
|
+
|
|
217
|
+
**Combined Middleware:**
|
|
218
|
+
```python
|
|
219
|
+
from clawmoat.integrations.crewai import ClawMoatMiddleware
|
|
220
|
+
from agentmesh.integrations.crewai import AgentMeshMiddleware
|
|
221
|
+
|
|
222
|
+
crew = Crew(
|
|
223
|
+
agents=[researcher, writer],
|
|
224
|
+
middleware=[
|
|
225
|
+
ClawMoatMiddleware(), # Threat scanning
|
|
226
|
+
AgentMeshMiddleware() # Policy enforcement
|
|
227
|
+
]
|
|
228
|
+
)
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 4.3 OpenAI Agents SDK Integration
|
|
232
|
+
|
|
233
|
+
**Guardrail Chaining:**
|
|
234
|
+
```python
|
|
235
|
+
from clawmoat.integrations.openai_agents import ClawMoatGuardrail
|
|
236
|
+
from agentmesh.integrations.openai_agents import AgentMeshGuardrail
|
|
237
|
+
|
|
238
|
+
agent = Agent(
|
|
239
|
+
input_guardrails=[
|
|
240
|
+
ClawMoatGuardrail(), # Scan before processing
|
|
241
|
+
AgentMeshGuardrail() # Enforce permissions
|
|
242
|
+
]
|
|
243
|
+
)
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
---
|
|
247
|
+
|
|
248
|
+
## 5. Reference Implementation
|
|
249
|
+
|
|
250
|
+
### 5.1 CrewAI Security Stack
|
|
251
|
+
|
|
252
|
+
**Complete defense-in-depth for CrewAI:**
|
|
253
|
+
|
|
254
|
+
```python
|
|
255
|
+
from crewai import Agent, Task, Crew
|
|
256
|
+
from clawmoat.integrations.crewai import ClawMoatMiddleware
|
|
257
|
+
from agentmesh.integrations.crewai import AgentMeshMiddleware
|
|
258
|
+
|
|
259
|
+
# Layer 1: ClawMoat scanning
|
|
260
|
+
security_scanner = ClawMoatMiddleware(
|
|
261
|
+
scan_input=True,
|
|
262
|
+
scan_output=True,
|
|
263
|
+
scan_tools=True,
|
|
264
|
+
block_on_threat=True
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
# Layer 2: Agent-OS governance
|
|
268
|
+
governance = AgentMeshMiddleware(
|
|
269
|
+
policy_path="security-policy.yml",
|
|
270
|
+
approval_required=["file_write", "network_request"],
|
|
271
|
+
trust_threshold=0.7
|
|
272
|
+
)
|
|
273
|
+
|
|
274
|
+
# Layer 3: Framework guards
|
|
275
|
+
research_agent = Agent(
|
|
276
|
+
role="Security Researcher",
|
|
277
|
+
goal="Research threats safely",
|
|
278
|
+
tools=[web_search, file_read], # Restricted toolset
|
|
279
|
+
max_rpm=10, # Rate limiting
|
|
280
|
+
memory=False # No persistent memory
|
|
281
|
+
)
|
|
282
|
+
|
|
283
|
+
# Combined protection
|
|
284
|
+
crew = Crew(
|
|
285
|
+
agents=[research_agent],
|
|
286
|
+
middleware=[security_scanner, governance],
|
|
287
|
+
verbose=True
|
|
288
|
+
)
|
|
289
|
+
|
|
290
|
+
result = crew.kickoff(task="Research AI security best practices")
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
### 5.2 Policy Configuration
|
|
294
|
+
|
|
295
|
+
**Unified security policy:**
|
|
296
|
+
|
|
297
|
+
```yaml
|
|
298
|
+
# security-policy.yml
|
|
299
|
+
metadata:
|
|
300
|
+
name: "AI Agent Security Policy"
|
|
301
|
+
version: "1.0"
|
|
302
|
+
scope: ["research", "analysis"]
|
|
303
|
+
|
|
304
|
+
clawmoat:
|
|
305
|
+
input_scanning:
|
|
306
|
+
prompt_injection: { enabled: true, threshold: 0.8, action: "block" }
|
|
307
|
+
jailbreak: { enabled: true, action: "log_and_continue" }
|
|
308
|
+
excessive_agency: { enabled: true, threshold: 0.9, action: "block" }
|
|
309
|
+
|
|
310
|
+
output_scanning:
|
|
311
|
+
pii: { enabled: true, types: ["ssn", "credit_card"], action: "redact" }
|
|
312
|
+
secrets: { enabled: true, action: "block" }
|
|
313
|
+
|
|
314
|
+
tool_monitoring:
|
|
315
|
+
file_access: { log: true, forbidden_paths: ["~/.ssh", "/etc/passwd"] }
|
|
316
|
+
network: { log: true, blocked_domains: ["malware.com"] }
|
|
317
|
+
|
|
318
|
+
agentmesh:
|
|
319
|
+
roles:
|
|
320
|
+
research_agent:
|
|
321
|
+
tools: ["web_search", "file_read"]
|
|
322
|
+
rate_limits: { web_search: "10/min", file_read: "50/min" }
|
|
323
|
+
approval: { required: false, escalate_on_block: true }
|
|
324
|
+
|
|
325
|
+
admin_agent:
|
|
326
|
+
tools: ["web_search", "file_read", "file_write", "shell_exec"]
|
|
327
|
+
rate_limits: { shell_exec: "5/hour" }
|
|
328
|
+
approval: { required: true, approvers: ["security_team"] }
|
|
329
|
+
|
|
330
|
+
trust_system:
|
|
331
|
+
enabled: true
|
|
332
|
+
min_score: 0.6
|
|
333
|
+
factors:
|
|
334
|
+
- name: "compliance"
|
|
335
|
+
weight: 0.4
|
|
336
|
+
decay: "7d"
|
|
337
|
+
- name: "tool_success"
|
|
338
|
+
weight: 0.3
|
|
339
|
+
decay: "3d"
|
|
340
|
+
- name: "user_feedback"
|
|
341
|
+
weight: 0.3
|
|
342
|
+
decay: "30d"
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 6. Benefits and Trade-offs
|
|
348
|
+
|
|
349
|
+
### 6.1 Benefits
|
|
350
|
+
|
|
351
|
+
**Security:**
|
|
352
|
+
- **Comprehensive Coverage:** Multiple detection mechanisms prevent single-point failures
|
|
353
|
+
- **Threat Intelligence Sharing:** Cross-layer visibility improves detection accuracy
|
|
354
|
+
- **Zero-Day Protection:** Behavioral analysis catches novel attack patterns
|
|
355
|
+
- **Compliance Ready:** Built-in audit trails and reporting
|
|
356
|
+
|
|
357
|
+
**Developer Experience:**
|
|
358
|
+
- **Framework Agnostic:** Works with any agent framework
|
|
359
|
+
- **Gradual Adoption:** Can implement layers incrementally
|
|
360
|
+
- **Policy as Code:** Version-controlled, reviewable security configuration
|
|
361
|
+
- **Minimal Performance Impact:** Optimized scanning and caching
|
|
362
|
+
|
|
363
|
+
**Operations:**
|
|
364
|
+
- **Unified Dashboards:** Single pane of glass for security monitoring
|
|
365
|
+
- **Automated Response:** Policy violations trigger automatic remediation
|
|
366
|
+
- **Forensics:** Complete audit trail for incident investigation
|
|
367
|
+
- **Scaling:** Distributed architecture supports large agent deployments
|
|
368
|
+
|
|
369
|
+
### 6.2 Trade-offs
|
|
370
|
+
|
|
371
|
+
**Performance:**
|
|
372
|
+
- **Latency:** Each layer adds processing overhead (~50-100ms total)
|
|
373
|
+
- **Resource Usage:** Scanning and governance require CPU/memory
|
|
374
|
+
- **Throughput:** Rate limiting may reduce peak agent performance
|
|
375
|
+
|
|
376
|
+
**Complexity:**
|
|
377
|
+
- **Configuration:** More moving parts require careful setup
|
|
378
|
+
- **Debugging:** Multi-layer failures harder to diagnose
|
|
379
|
+
- **Updates:** Changes require coordination across components
|
|
380
|
+
|
|
381
|
+
**False Positives:**
|
|
382
|
+
- **Over-blocking:** Conservative policies may impact legitimate use cases
|
|
383
|
+
- **Tuning Required:** Thresholds need adjustment for specific domains
|
|
384
|
+
- **Context Loss:** Cross-layer decisions may lack full context
|
|
385
|
+
|
|
386
|
+
### 6.3 Mitigation Strategies
|
|
387
|
+
|
|
388
|
+
**Performance:**
|
|
389
|
+
- Asynchronous scanning where possible
|
|
390
|
+
- Caching of policy decisions and threat signatures
|
|
391
|
+
- Optional bypass modes for trusted environments
|
|
392
|
+
|
|
393
|
+
**Complexity:**
|
|
394
|
+
- Unified configuration format reduces mental overhead
|
|
395
|
+
- Comprehensive documentation and examples
|
|
396
|
+
- Automated testing across integration points
|
|
397
|
+
|
|
398
|
+
**False Positives:**
|
|
399
|
+
- ML-based threshold adaptation
|
|
400
|
+
- Human-in-the-loop approval workflows
|
|
401
|
+
- Domain-specific policy templates
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## 7. Implementation Roadmap
|
|
406
|
+
|
|
407
|
+
### Phase 1: Foundation (Q2 2026)
|
|
408
|
+
- [ ] Define unified policy schema
|
|
409
|
+
- [ ] Implement ClawMoat → Agent-OS data interchange
|
|
410
|
+
- [ ] Create LangChain reference integration
|
|
411
|
+
- [ ] Basic audit logging and alerting
|
|
412
|
+
|
|
413
|
+
### Phase 2: Framework Coverage (Q3 2026)
|
|
414
|
+
- [ ] CrewAI middleware implementation
|
|
415
|
+
- [ ] OpenAI Agents SDK guardrails
|
|
416
|
+
- [ ] AutoGen conversation filtering
|
|
417
|
+
- [ ] Cross-platform policy validation
|
|
418
|
+
|
|
419
|
+
### Phase 3: Advanced Features (Q4 2026)
|
|
420
|
+
- [ ] Behavioral anomaly detection
|
|
421
|
+
- [ ] Automated threat intelligence sharing
|
|
422
|
+
- [ ] ML-driven policy optimization
|
|
423
|
+
- [ ] Enterprise compliance dashboards
|
|
424
|
+
|
|
425
|
+
### Phase 4: Ecosystem (Q1 2027)
|
|
426
|
+
- [ ] Google ADK integration
|
|
427
|
+
- [ ] PydanticAI type-safe policies
|
|
428
|
+
- [ ] Cloud-native deployment options
|
|
429
|
+
- [ ] Open source community governance
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## 8. Conclusion
|
|
434
|
+
|
|
435
|
+
AI agents require **defense-in-depth security architecture** to operate safely in production environments. The combination of ClawMoat's reactive threat detection with Agent-OS's proactive governance provides comprehensive protection against the OWASP Agentic Top 10 while maintaining developer productivity.
|
|
436
|
+
|
|
437
|
+
This RFC proposes a practical, standards-based approach that:
|
|
438
|
+
- Works across agent frameworks
|
|
439
|
+
- Provides incremental adoption path
|
|
440
|
+
- Balances security with usability
|
|
441
|
+
- Scales to enterprise deployments
|
|
442
|
+
|
|
443
|
+
**Next Steps:**
|
|
444
|
+
1. Community review and feedback on this RFC
|
|
445
|
+
2. Proof-of-concept implementation with CrewAI
|
|
446
|
+
3. Policy schema standardization with industry stakeholders
|
|
447
|
+
4. Performance benchmarking and optimization
|
|
448
|
+
|
|
449
|
+
**Contributing:**
|
|
450
|
+
This RFC is open for community input. Please provide feedback on:
|
|
451
|
+
- Integration complexity and developer experience
|
|
452
|
+
- Policy schema completeness and flexibility
|
|
453
|
+
- Performance requirements and optimization strategies
|
|
454
|
+
- Additional framework support priorities
|
|
455
|
+
|
|
456
|
+
---
|
|
457
|
+
|
|
458
|
+
**References:**
|
|
459
|
+
- [OWASP Agentic Top 10](https://owasp.org/www-project-agentic-security/)
|
|
460
|
+
- [ClawMoat Documentation](https://github.com/darfaz/clawmoat)
|
|
461
|
+
- [Agent-OS Architecture](https://github.com/imran-siddique/agentmesh)
|
|
462
|
+
- [Oasis Security Research](https://www.oasis.security/blog/openclaw-vulnerability)
|
|
463
|
+
|
|
464
|
+
**Contact:**
|
|
465
|
+
- ClawMoat Team: [security@clawmoat.com]
|
|
466
|
+
- Agent-OS Team: [governance@agent-os.dev]
|
|
467
|
+
- RFC Discussion: [GitHub Issues](https://github.com/darfaz/clawmoat/issues/20)
|