openclaw-shield ยท git:20260513.45fcfae ยท 2026-05-13 ยท sha256 41a19bb71737341b

openclaw-shield git:20260513.45fcfaeA

Immutable. This exact content is served forever at /api/v1/blob/41a19bb71737341b.

---
name: openclaw-shield
description: Security audit engine for OpenClaw configurations. Detects vulnerabilities, misconfigurations, secret leaks, and over-privileged agents. Use when the user asks about security, hardening, config review, or audit of their OpenClaw setup.
metadata: {"openclaw":{"emoji":"๐Ÿ›ก๏ธ","homepage":"https://github.com/autonomous-intelligence/openclaw-shield"}}
---

# OpenClaw Shield โ€” Security Audit

Audit any OpenClaw config for security vulnerabilities, misconfigurations, and best-practice violations. Produces a structured JSON report with risk scores, findings, and remediation steps.

## When to Use

- User asks to check/audit/review their OpenClaw security
- User wants to harden their config before deploying
- User is setting up a new OpenClaw instance
- User asks about secret leakage or API key exposure in their config
- Before publishing or sharing any config file

## Quick Audit (live config)

```bash
node scripts/shield-audit.sh
```

Or directly:

```bash
node SKILL_DIR/bin/shield.js audit ~/.openclaw/openclaw.json --summary
```

## What It Checks (11 categories)

1. **Gateway Auth** โ€” missing/weak auth, insecure UI settings
2. **Network Exposure** โ€” bind address, Tailscale funnel, wildcard proxies
3. **Channel Security** โ€” wildcard allowFrom, missing allowlists
4. **DM Policy** โ€” open DM policy without pairing
5. **Subagent Permissions** โ€” wildcard allowAgents, circular delegation chains, self-delegation
6. **Tool Permissions** โ€” over-privileged agents with tools.profile: "full"
7. **Secret Leakage** โ€” API keys, tokens, private keys in plaintext config
8. **Sandbox/Execution** โ€” missing workspace isolation, no execution policies
9. **Plugin Config** โ€” enabled plugins without channel config
10. **Heartbeat Exposure** โ€” sensitive data in heartbeat prompts
11. **Remote Config** โ€” unencrypted WebSocket, exposed remote URLs/tokens

## Usage

### Audit a config file
```bash
node SKILL_DIR/bin/shield.js audit <config.json>
node SKILL_DIR/bin/shield.js audit <config.json> --summary   # human-readable
```

### Audit from stdin
```bash
cat config.json | node SKILL_DIR/bin/shield.js audit --stdin
```

### Sanitize a config (strip secrets)
```bash
node SKILL_DIR/bin/shield.js sanitize <config.json>
```

### Programmatic use
```javascript
const { auditConfig } = require('SKILL_DIR/src/audit');
const config = require('./openclaw.json');
const report = auditConfig(config);
console.log(report.risk_level);      // "CRITICAL" | "HIGH" | "MEDIUM" | "LOW"
console.log(report.overall_score);   // 0-100
console.log(report.vulnerabilities); // detailed findings
```

## Output

Returns JSON with: `risk_level`, `overall_score` (0-100), `vulnerabilities[]`, `vulnerability_count`, `best_practices_compliance`, `action_recommended`, `safe_to_deploy`, `audit_timestamp`.

## Workflow for Agent

1. Load the user's config: `cat ~/.openclaw/openclaw.json`
2. Run: `node SKILL_DIR/bin/shield.js audit ~/.openclaw/openclaw.json --summary`
3. Present findings to user with prioritized recommendations
4. Offer to sanitize before sharing: `node SKILL_DIR/bin/shield.js sanitize <file>`