Security Audit Enhanced

👤 wisdomsword 📦 v1.0.0 ⭐ 4.3 ⬇️ 375 下载
🔒 IT运维与安全 免费

📖 技能介绍


name: security-audit-enhanced description: Enhanced security audit framework with automated scanning, cross-platform support, security scoring, and baseline comparison. Audits AI agent configurations, credentials, network exposure, and system hardening. version: 1.0.0 metadata: openclaw: requires: bins: - python3 - jq primaryEnv: SECURITY_AUDIT_CONFIG emoji: "\U0001F510" homepage: https://github.com/lobsterai/security-audit-enhanced


Security Audit Enhanced

Advanced security audit framework for AI agents and system configurations. Combines knowledge-based guidance with automated scanning scripts.

Key Improvements Over Original

Feature Original Enhanced
Automation Knowledge only Scripts + Knowledge
JSON Parsing grep (unreliable) jq (proper)
Platform Linux only macOS + Linux
Scoring None 0-100 scale
Baseline None Track changes
Reports Text only JSON/HTML/Markdown

Quick Start

Run Full Audit

python3 ~/.security-audit/scripts/audit.py --full

Quick Check (Critical Only)

python3 ~/.security-audit/scripts/audit.py --critical

Generate JSON Report

python3 ~/.security-audit/scripts/audit.py --json --output report.json

Compare with Baseline

python3 ~/.security-audit/scripts/audit.py --baseline ~/.security-audit/baseline.json

Security Scoring

The audit produces a 0-100 security score:

Score Rating Status
90-100 Excellent Minimal risk
70-89 Good Minor issues
50-69 Fair Needs attention
30-49 Poor Significant risk
0-29 Critical Immediate action required

The 13 Security Domains

1. Gateway Exposure 🔴 Critical

Risk: Unauthenticated network access to agent gateway.

Check:

jq '.gateway.bind, .gateway.auth_token' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - bind: 127.0.0.1 or lan (not 0.0.0.0) - auth_token: Set via env or config

Fix:

export CLAWDBOT_GATEWAY_TOKEN="$(openssl rand -hex 32)"
# Or in config:
jq '.gateway.bind = "127.0.0.1"' ~/.clawdbot/clawdbot.json

2. DM Policy Configuration 🟠 High

Risk: Any user can DM the bot and execute commands.

Check:

jq '.channels | to_entries[] | select(.value.dmPolicy) | {channel: .key, policy: .value.dmPolicy}' ~/.clawdbot/clawdbot.json

Secure baseline: - dmPolicy: allowlist or pairing (not open)


3. Group Access Control 🟠 High

Risk: Anyone in groups can trigger bot commands.

Check:

jq '.channels | to_entries[] | select(.value.groupPolicy) | {channel: .key, policy: .value.groupPolicy}' ~/.clawdbot/clawdbot.json

Secure baseline: - groupPolicy: allowlist with explicit group IDs


4. Credentials Security 🔴 Critical

Risk: Plaintext credentials with loose permissions.

Check:

# Check credential files exist and permissions
ls -la ~/.clawdbot/credentials/ 2>/dev/null
# Check config permissions
stat -f "%Lp" ~/.clawdbot/clawdbot.json 2>/dev/null || stat -c "%a" ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - Directory permissions: 700 - File permissions: 600

Fix:

chmod 700 ~/.clawdbot
chmod 600 ~/.clawdbot/clawdbot.json
chmod 600 ~/.clawdbot/credentials/*.json 2>/dev/null

5. Browser Control Exposure 🟠 High

Risk: Remote browser control without authentication.

Check:

jq '.browser.remoteControlUrl, .browser.remoteControlToken' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - remoteControlToken: Must be set if remote control enabled - Use HTTPS for remote control URL


6. Network Binding 🟠 High

Risk: Gateway exposed to public internet.

Check:

jq '.gateway.bind, .gateway.mode, .gateway.tailscale' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - mode: local for development - bind: 127.0.0.1 (localhost only) - tailscale.mode: off unless intentionally used


7. Tool Access & Sandboxing 🟡 Medium

Risk: Excessive tool permissions increase blast radius.

Check:

jq '.restrict_tools, .mcp_tools, .workspaceAccess, .sandbox' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - restrict_tools: true - workspaceAccess: ro or none - sandbox: all for untrusted content


8. File Permissions 🟡 Medium

Risk: Other users can read sensitive configs.

Check:

# Check directory permission
stat -f "%Lp" ~/.clawdbot 2>/dev/null || stat -c "%a" ~/.clawdbot 2>/dev/null
# Check all JSON files
find ~/.clawdbot -name "*.json" -exec stat -f "%Lp %N" {} \; 2>/dev/null || find ~/.clawdbot -name "*.json" -exec stat -c "%a %n" {} \; 2>/dev/null

Secure baseline: - ~/.clawdbot/: 700 - All .json files: 600


9. Plugin Trust 🟡 Medium

Risk: Untrusted plugins can execute arbitrary code.

Check:

jq '.plugins' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - Use explicit allowlist for plugins


10. Logging & Redaction 🟡 Medium

Risk: Sensitive data leaks in logs.

Check:

jq '.logging.redactSensitive' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - redactSensitive: tools or all


11. Prompt Injection Protection 🟡 Medium

Risk: Untrusted content injects malicious prompts.

Check:

jq '.wrap_untrusted_content, .untrusted_content_wrapper, .mentionGate' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: - wrap_untrusted_content: true - mentionGate: true


12. Dangerous Command Blocking 🟡 Medium

Risk: Destructive commands can be executed.

Check:

jq '.blocked_commands' ~/.clawdbot/clawdbot.json 2>/dev/null

Secure baseline: Include patterns:

{
  "blocked_commands": [
    "rm -rf",
    "rm -rf /",
    "dd if=",
    "mkfs",
    ":(){ :|:& };:",
    "curl | bash",
    "wget | bash",
    "git push --force",
    "chmod 777",
    "> /dev/sda"
  ]
}

13. Secret Scanning 🟡 Medium

Risk: Committed secrets in codebase.

Check:

which detect-secrets 2>/dev/null && detect-secrets --version
ls -la .secrets.baseline 2>/dev/null

Secure baseline: - detect-secrets installed - .secrets.baseline exists and is current


Automated Scripts

audit.py

Main audit script with scoring and reporting.

# Full audit with all checks
python3 scripts/audit.py --full

# Quick critical checks only
python3 scripts/audit.py --critical

# JSON output for CI/CD
python3 scripts/audit.py --json

# Compare with previous baseline
python3 scripts/audit.py --baseline baseline.json --diff

# Apply auto-fixes (safe only)
python3 scripts/audit.py --fix

check_permissions.py

Standalone permission checker.

python3 scripts/check_permissions.py --path ~/.clawdbot --fix

generate_report.py

Generate formatted reports.

# HTML report
python3 scripts/generate_report.py --format html --output report.html

# Markdown report
python3 scripts/generate_report.py --format markdown --output SECURITY.md

CI/CD Integration

GitHub Actions

name: Security Audit
on: [push, pull_request]
jobs:
  audit:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Run Security Audit
        run: |
          pip install jq
          python3 scripts/audit.py --json --output audit-report.json
      - name: Upload Report
        uses: actions/upload-artifact@v4
        with:
          name: security-audit
          path: audit-report.json

Pre-commit Hook

#!/bin/bash
# .git/hooks/pre-commit
python3 scripts/audit.py --critical || {
  echo "Security audit failed. Fix issues before committing."
  exit 1
}

Baseline Management

Create Baseline

python3 scripts/audit.py --save-baseline baseline.json

Compare with Baseline

python3 scripts/audit.py --baseline baseline.json

Update Baseline After Fixes

python3 scripts/audit.py --save-baseline baseline.json --force

Report Formats

JSON Output

{
  "timestamp": "2026-02-21T14:00:00Z",
  "score": 85,
  "rating": "Good",
  "summary": {
    "critical": 0,
    "high": 1,
    "medium": 2,
    "passed": 10
  },
  "findings": [
    {
      "domain": "dm-policy",
      "severity": "high",
      "finding": "DM policy is 'open'",
      "recommendation": "Set dmPolicy to 'allowlist'"
    }
  ]
}

HTML Report

Generates styled HTML with: - Score gauge visualization - Severity breakdown chart - Detailed findings table - Remediation steps

Extending the Framework

Add new checks by:

  1. Create a new domain in audit.py:
def check_new_domain(config):
    issues = []
    # Your check logic
    if vulnerable:
        issues.append({
            'domain': 'new-domain',
            'severity': 'medium',
            'finding': 'Description',
            'recommendation': 'How to fix'
        })
    return issues
  1. Add domain to checklist in SKILL.md

  2. Run tests to validate

References

7w4.net小葱技能。

  • OWASP API Security: https://owasp.org/www-project-api-security/
  • Clawdbot Security Docs: https://docs.clawd.bot/gateway/security
  • Original Framework: https://github.com/TheSethRose/Clawdbot-Security-Check

Remember: Security is not a one-time check. Run audits regularly, track baselines, and respond to changes promptly.

🤖 AI 评测

这个安全审计 Skill 质量较好,文档详细全面,自动化程度高,提供了直观的评分系统和多种报告格式。优点是覆盖了主要的安全检查领域,跨平台支持好,能自动发现并修复一些权限问题。不足是功能相对专一,主要针对特定的 AI agent 系统使用,适用范围有限,普通用户可能难以直接上手。

📊 多维度评分

适应性4.4
规范性4.1
有效性4.5
可靠性4.3
可信度4.3

📁 包含文件 (5 个)

📄 SKILL.md 9.5 KB
📄 _meta.json 142 B
📄 scripts/audit.py 25.6 KB
📄 scripts/check_permissions.py 3 KB
📄 scripts/generate_report.py 8.8 KB