@axonflow/openclaw 0.1.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/CHANGELOG.md +19 -0
- package/LICENSE +21 -0
- package/README.md +141 -0
- package/dist/audit.d.ts +23 -0
- package/dist/audit.d.ts.map +1 -0
- package/dist/audit.js +26 -0
- package/dist/audit.js.map +1 -0
- package/dist/axonflow-client.d.ts +47 -0
- package/dist/axonflow-client.d.ts.map +1 -0
- package/dist/axonflow-client.js +180 -0
- package/dist/axonflow-client.js.map +1 -0
- package/dist/config.d.ts +47 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +56 -0
- package/dist/config.js.map +1 -0
- package/dist/governance.d.ts +40 -0
- package/dist/governance.d.ts.map +1 -0
- package/dist/governance.js +64 -0
- package/dist/governance.js.map +1 -0
- package/dist/index.d.ts +78 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +94 -0
- package/dist/index.js.map +1 -0
- package/dist/llm-audit.d.ts +55 -0
- package/dist/llm-audit.d.ts.map +1 -0
- package/dist/llm-audit.js +60 -0
- package/dist/llm-audit.js.map +1 -0
- package/dist/message-guard.d.ts +25 -0
- package/dist/message-guard.d.ts.map +1 -0
- package/dist/message-guard.js +46 -0
- package/dist/message-guard.js.map +1 -0
- package/openclaw.plugin.json +96 -0
- package/package.json +93 -0
- package/policies/README.md +118 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
# Starter Policies for OpenClaw
|
|
2
|
+
|
|
3
|
+
Default policy configurations for protecting OpenClaw deployments with AxonFlow. Based on real-world security incidents and research from Microsoft, Kaspersky, Cisco, Giskard, and the OpenClaw CVE history.
|
|
4
|
+
|
|
5
|
+
## Why These Policies Matter
|
|
6
|
+
|
|
7
|
+
As of March 2026, OpenClaw has 135,000+ instances exposed on the public internet, 4 CVEs disclosed (including CVE-2026-25253 at CVSS 8.8), and the ClawHavoc supply chain attack poisoned 1,184 skills in ClawHub. Microsoft recommends: "It is not appropriate to run on a standard personal or enterprise workstation."
|
|
8
|
+
|
|
9
|
+
AxonFlow adds centralized governance at key data boundaries: tool inputs (before execution), outbound messages (before delivery), and LLM calls (audit). Tool result transcript scanning is pending async hook support in OpenClaw.
|
|
10
|
+
|
|
11
|
+
## Top 10 Risks (Ranked by Severity)
|
|
12
|
+
|
|
13
|
+
| Rank | Risk | Covered By |
|
|
14
|
+
|------|------|-----------|
|
|
15
|
+
| 1 | Arbitrary command execution (reverse shells, crypto miners, rm -rf) | `before_tool_call` — exec command blocking |
|
|
16
|
+
| 2 | Data exfiltration via web_fetch/browser to external URLs | `before_tool_call` — PII/credential detection in URLs |
|
|
17
|
+
| 3 | PII/credential leakage in outbound messages | `message_sending` — PII redaction before delivery. Tool result transcript scanning pending async hook support. |
|
|
18
|
+
| 4 | Indirect prompt injection via ingested content | `before_tool_call` — input validation. Transcript-level injection detection pending async hook support. |
|
|
19
|
+
| 5 | Outbound message exfiltration (secrets to unauthorized channels) | `message_sending` — PII/secret scanning |
|
|
20
|
+
| 6 | Malicious skill supply chain (ClawHavoc-style) | `after_tool_call` — audit trail for forensics |
|
|
21
|
+
| 7 | Memory/context poisoning (SOUL.md/MEMORY.md modification) | `before_tool_call` — block writes to agent config files |
|
|
22
|
+
| 8 | Credential exposure in outbound messages | `message_sending` — secret pattern detection before delivery. Transcript-level detection pending async hook support. |
|
|
23
|
+
| 9 | Cross-tenant context leakage | Tenant-scoped policy enforcement |
|
|
24
|
+
| 10 | Privilege escalation via workspace boundary bypass (CVE-2026-33573) | `before_tool_call` — path traversal detection |
|
|
25
|
+
|
|
26
|
+
## What's Protected Automatically
|
|
27
|
+
|
|
28
|
+
These protections require NO additional setup. AxonFlow's 76+ built-in system policies apply automatically when the plugin calls `mcp_check_input` (tool inputs) and `mcp_check_output` (outbound messages):
|
|
29
|
+
|
|
30
|
+
| Protection | System Policies |
|
|
31
|
+
|-----------|----------------|
|
|
32
|
+
| SSN detection/redaction | sys_pii_ssn |
|
|
33
|
+
| Credit card detection | sys_pii_credit_card |
|
|
34
|
+
| Email detection | sys_pii_email |
|
|
35
|
+
| Phone number detection | sys_pii_phone |
|
|
36
|
+
| Aadhaar number detection | sys_pii_aadhaar |
|
|
37
|
+
| PAN card detection | sys_pii_pan |
|
|
38
|
+
| SQL injection blocking | sys_sqli_* (37+ patterns) |
|
|
39
|
+
| Dangerous commands | sys_dangerous_* |
|
|
40
|
+
| API key detection | sys_secrets_api_key |
|
|
41
|
+
| Connection string detection | sys_secrets_connection_string |
|
|
42
|
+
| Code secrets detection | sys_code_secrets_* |
|
|
43
|
+
|
|
44
|
+
## OpenClaw-Specific Hardening
|
|
45
|
+
|
|
46
|
+
For additional protection against OpenClaw-specific attack vectors, add these policies.
|
|
47
|
+
|
|
48
|
+
### Risk 1: Dangerous Command Execution
|
|
49
|
+
|
|
50
|
+
Block reverse shells, destructive commands, and credential access in exec tool arguments. These patterns address the most common attack vectors observed in OpenClaw security incidents.
|
|
51
|
+
|
|
52
|
+
```sql
|
|
53
|
+
-- Block reverse shells and remote code execution
|
|
54
|
+
INSERT INTO static_policies (name, category, pattern, severity, action_request, action_response, description)
|
|
55
|
+
VALUES
|
|
56
|
+
('openclaw_block_reverse_shells', 'security_dangerous', '(nc\s+-e|bash\s+-i|/dev/tcp/|python\s+-c.*socket|curl\s+.*\|\s*sh|wget\s+.*\|\s*sh|base64\s+.*-d\s+.*\|\s*sh)', 'critical', 'block', 'allow', 'Block reverse shell and remote code execution patterns in exec tool'),
|
|
57
|
+
('openclaw_block_destructive_fs', 'security_dangerous', '(rm\s+-rf\s+/|rm\s+-rf\s+~|dd\s+if=|mkfs\b|>\s*/dev/sd|chmod\s+-R\s+777\s+/)', 'critical', 'block', 'allow', 'Block destructive filesystem operations'),
|
|
58
|
+
('openclaw_block_credential_access', 'security_dangerous', '(cat\s+.*\.ssh/|cat\s+.*\.aws/|cat\s+.*\.env\b|cat\s+.*\.netrc|cat\s+.*\.gnupg/|printenv\s+.*KEY|printenv\s+.*SECRET|printenv\s+.*TOKEN)', 'high', 'block', 'allow', 'Block credential file and environment variable access');
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Risk 2: Data Exfiltration via HTTP
|
|
62
|
+
|
|
63
|
+
Block requests to cloud metadata endpoints and internal networks (SSRF):
|
|
64
|
+
|
|
65
|
+
```sql
|
|
66
|
+
INSERT INTO static_policies (name, category, pattern, severity, action_request, action_response, description)
|
|
67
|
+
VALUES
|
|
68
|
+
('openclaw_block_metadata_endpoints', 'security_dangerous', '(169\.254\.169\.254|metadata\.google|metadata\.aws)', 'critical', 'block', 'allow', 'Block cloud metadata endpoint access (SSRF protection)'),
|
|
69
|
+
('openclaw_block_internal_networks', 'security_dangerous', '(localhost|127\.0\.0\.1|10\.\d+\.\d+\.\d+|172\.(1[6-9]|2\d|3[01])\.\d+\.\d+|192\.168\.)', 'high', 'block', 'allow', 'Block requests to internal/private network addresses');
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Risk 7: Agent Config File Protection
|
|
73
|
+
|
|
74
|
+
Block writes to OpenClaw's persistent context files to prevent memory poisoning attacks:
|
|
75
|
+
|
|
76
|
+
```sql
|
|
77
|
+
INSERT INTO static_policies (name, category, pattern, severity, action_request, action_response, description)
|
|
78
|
+
VALUES
|
|
79
|
+
('openclaw_protect_agent_config', 'security_dangerous', '(SOUL\.md|MEMORY\.md|IDENTITY\.md|AGENTS\.md|openclaw\.json|auth-profiles\.json)', 'high', 'block', 'allow', 'Block modification of OpenClaw agent identity and memory files');
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### Risk 10: Workspace Boundary Protection
|
|
83
|
+
|
|
84
|
+
Block path traversal attempts that could escape workspace isolation (CVE-2026-33573 pattern):
|
|
85
|
+
|
|
86
|
+
```sql
|
|
87
|
+
INSERT INTO static_policies (name, category, pattern, severity, action_request, action_response, description)
|
|
88
|
+
VALUES
|
|
89
|
+
('openclaw_block_path_traversal', 'security_dangerous', '(\.\./|/etc/passwd|/etc/shadow|/proc/self)', 'high', 'block', 'allow', 'Block path traversal and sensitive system file access');
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Recommended Plugin Configuration
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
plugins:
|
|
96
|
+
@axonflow/openclaw:
|
|
97
|
+
endpoint: http://your-axonflow:8080
|
|
98
|
+
clientId: your-client-id
|
|
99
|
+
clientSecret: your-secret
|
|
100
|
+
highRiskTools:
|
|
101
|
+
- exec
|
|
102
|
+
- process
|
|
103
|
+
- browser
|
|
104
|
+
- web_fetch
|
|
105
|
+
- message
|
|
106
|
+
onError: block # fail-closed for security-sensitive deployments
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Setting `onError: block` means if AxonFlow is unreachable, tool calls are blocked rather than allowed. This is the safer default for production. Use `onError: allow` for development where AxonFlow availability is less critical.
|
|
110
|
+
|
|
111
|
+
## References
|
|
112
|
+
|
|
113
|
+
- [Running OpenClaw safely (Microsoft Security Blog, Feb 2026)](https://www.microsoft.com/en-us/security/blog/2026/02/19/running-openclaw-safely-identity-isolation-runtime-risk/)
|
|
114
|
+
- [OpenClaw Security Challenges (DigitalOcean)](https://www.digitalocean.com/resources/articles/openclaw-security-challenges)
|
|
115
|
+
- [OpenClaw security: architecture and hardening guide (Nebius)](https://nebius.com/blog/posts/openclaw-security)
|
|
116
|
+
- [ClawHavoc Supply Chain Attack (Antiy Labs)](https://www.antiy.net/p/clawhavoc-analysis-of-large-scale-poisoning-campaign-targeting-the-openclaw-skill-market-for-ai-agents/)
|
|
117
|
+
- [Personal AI Agents Are a Security Nightmare (Cisco Blogs)](https://blogs.cisco.com/ai/personal-ai-agents-like-openclaw-are-a-security-nightmare)
|
|
118
|
+
- [OpenClaw Prompt Injection Risks (Giskard)](https://www.giskard.ai/knowledge/openclaw-security-vulnerabilities-include-data-leakage-and-prompt-injection-risks)
|