介绍
# OpenClaw Security Hardening
一个用于保护 OpenClaw 安装环境的综合安全工具包,可防范通过恶意技能文件、提示注入、数据泄露和工作区篡改进行的攻击。
## 威胁模型
本技能可防范以下威胁:
| 威胁 | 描述 | 工具 | |--------|-------------|------| | **提示注入** | 包含旨在覆盖系统提示、忽略安全规则或操控代理行为的指令的恶意技能 | `scan-skills.sh` | | **数据泄露** | 指示代理将敏感数据(凭据、记忆、配置)发送到外部端点的技能 | `audit-outbound.sh` | | **技能篡改** | 在初始审核后对已安装技能进行未经授权的修改 | `integrity-check.sh` | | **工作区暴露** | 权限错误的敏感文件、缺失 .gitignore 规则、不安全的网关配置 | `harden-workspace.sh` | | **供应链** | 安装包含隐藏恶意模式的新技能 | `install-guard.sh` |
## 快速开始
```bash # Run a full security scan of all installed skills ./scripts/scan-skills.sh
# Audit outbound data flow patterns ./scripts/audit-outbound.sh
# Initialize integrity baseline ./scripts/integrity-check.sh --init
# Harden your workspace ./scripts/harden-workspace.sh --fix
# Check a new skill before installing ./scripts/install-guard.sh /path/to/new-skill/ ```
## 工具
### 1. `scan-skills.sh` — 技能文件扫描器
扫描所有已安装的技能文件,查找恶意模式,包括提示注入、数据泄露尝试、可疑 URL、隐藏的 Unicode 字符、混淆命令和社会工程手段。
**用法:** ```bash # Scan all skill directories ./scripts/scan-skills.sh
# Scan a specific directory only ./scripts/scan-skills.sh --path /path/to/skills/
# Output as JSON for automation ./scripts/scan-skills.sh --json
# Show help ./scripts/scan-skills.sh --help ```
**它检测的内容:** - 提示注入模式(覆盖指令、新的系统提示、管理员覆盖) - 数据泄露(向外部 URL 发起 curl/wget 请求,发送文件内容) - 可疑 URL(webhooks、pastebin、requestbin、ngrok 等) - 可能隐藏指令的 Base64 编码内容 - 隐藏的 Unicode 字符(零宽空格、RTL 覆盖、同形异义字) - 对敏感文件的引用(.env、凭据、API 密钥、令牌) - 修改系统文件的指令(AGENTS.md、SOUL.md) - 混淆命令(十六进制编码、Unicode 转义) - 社会工程手段(“不要告诉用户”、“秘密地”、“不提及”)
**严重级别:** - 🔴 **严重 (CRITICAL)** — 可能是恶意的,需要立即采取行动 - 🟡 **警告 (WARNING)** — 可疑,需手动审查 - 🔵 **信息 (INFO)** — 值得注意但可能是良性的
---
### 2. `integrity-check.sh` — 技能完整性监控器
创建所有技能文件的 SHA256 哈希基线,并检测未经授权的修改。
**用法:** ```bash # Initialize baseline (first run) ./scripts/integrity-check.sh --init
# Check for changes (run periodically) ./scripts/integrity-check.sh
# Update baseline after reviewing changes ./scripts/integrity-check.sh --update
# Check specific directory ./scripts/integrity-check.sh --path /path/to/skills/
# Show help ./scripts/integrity-check.sh --help ```
**报告:** - ✅ 未更改的文件 - ⚠️ 已修改的文件(哈希不匹配) - 🆕 新文件(不在基线中) - ❌ 已删除的文件(在基线中但丢失)
**自动化:** 添加到心跳或 crontab 中每天运行: ```bash # In HEARTBEAT.md or cron 0 8 * * * /path/to/scripts/integrity-check.sh 2>&1 | grep -E '(MODIFIED|NEW|REMOVED)' ```
---
### 3. `audit-outbound.sh` — 出站数据流审计器
扫描技能文件中可能导致数据离开本机的模式。
**用法:** ```bash # Audit all skills ./scripts/audit-outbound.sh
# Audit specific directory ./scripts/audit-outbound.sh --path /path/to/skills/
# Show whitelisted domains ./scripts/audit-outbound.sh --show-whitelist
# Add domain to whitelist ./scripts/audit-outbound.sh --whitelist example.com
# Show help ./scripts/audit-outbound.sh --help ```
**检测内容:** - 嵌入在技能指令中的 HTTP/HTTPS URL - 对 curl、wget、fetch、web_fetch、browser navigate 的引用 - 发送电子邮件/消息/webhook 的指令 - 指令中的原始 IP 地址 - 非白名单外部域
---
### 4. `harden-workspace.sh` — 工作区加固器
检查并修复 OpenClaw 工作区中常见的安全配置错误。
**用法:** ```bash # Check only (report issues) ./scripts/harden-workspace.sh
# Auto-fix safe issues ./scripts/harden-workspace.sh --fix
# Show help ./scripts/harden-workspace.sh --help ```
**检查项:** - 敏感文件(MEMORY.md、USER.md、SOUL.md、凭据)的文件权限 - 针对敏感模式的 .gitignore 覆盖范围 - 网关身份验证配置 - DM(直接消息)策略设置 - 版本控制文件中的敏感内容
---
### 5. `install-guard.sh` — 预安装安全守门
在安装任何新技能之前运行,以检查恶意内容。
**用法:** ```bash # Check a skill before installing ./scripts/install-guard.sh /path/to/new-skill/
# Strict mode (fail on warnings too) ./scripts/install-guard.sh --strict /path/to/new-skill/
# Show help ./scripts/install-guard.sh --help ```
**检查项:** - scan-skills.sh 中的所有模式 - 脚本中的危险 Shell 模式(rm -rf、curl|bash、eval 等) - 可疑的 npm 依赖项(如果存在 package.json) - 退出代码 0 = 安全,1 = 可疑(用于 CI/自动化)
---
## 安全规则模板
将 `assets/security-rules-template.md` 复制到您的 `AGENTS.md` 中,以为您的代理添加运行时安全规则。这些规则指示代理拒绝提示注入尝试并保护敏感数据。
```bash cat assets/security-rules-template.md >> /path/to/AGENTS.md ```
## 推荐设置
1. **初始设置:** ```bash ./scripts/scan-skills.sh # Scan existing skills ./scripts/audit-outbound.sh # Audit outbound patterns ./scripts/integrity-check.sh --init # Create baseline ./scripts/harden-workspace.sh --fix # Fix workspace issues ```
2. **根据模板将安全规则添加到 AGENTS.md**
3. **安装新技能之前:** ```bash ./scripts/install-guard.sh /path/to/new-skill/ ```
4. **定期检查**(添加到心跳或 crontab): ```bash ./scripts/integrity-check.sh # Detect tampering ./scripts/scan-skills.sh # Re-scan for new patterns ```