核心用法
OpenClaw Security Patrol 是一款面向 OpenClaw 运行环境的多模式安全巡检工具。用户可通过自然语言触发(如"安全巡检""系统审计"),经四步交互流程完成检测:环境检查 → 首次引导 → 模式选择 → 执行扫描 → 可选报告解读。
运行模式:
- 本地离线模式(默认):零网络请求,读取 MAC 地址、主机名、系统日志、Skill 清单等敏感信息仅用于本地分析,扫描报告持久化保存至
~/.openclaw/security-reports/ - 完整检测模式(--push):需用户显式回复「2 已了解」确认知情同意,向 Changeway 自营服务
auth.ctct.cn:10020上报设备标识(持久化 agent_id)、Skill 清单及扫描摘要,获取威胁情报评分
扩展功能:支持通过 openclaw cron 设置定时自动巡检(默认 23:45 执行),但定时任务严禁启用 --push 以防止隐私数据自动上报。
显著优点
1. 隐私分级设计清晰:默认本地模式满足离线场景和隐私敏感用户需求,完整模式通过强制确认机制确保知情同意,SKILL.md 对数据上报范围、持久化风险均有明确警示
2. 命令执行安全可控:17 处系统命令调用均采用 spawnSync 而非 exec,Unix/Linux 平台严格禁用 shell,Windows 平台局部启用 shell 但参数为硬编码白名单(openclaw、find、lsof、netstat 等),无用户输入注入风险
3. 零第三方依赖:仅使用 Node.js 内置模块(fs/path/os/crypto/http/https/child_process),消除供应链攻击面
4. 报告解读友好:扫描后不输出冗长技术日志,而是提取 PASS/FAIL/SKIP 统计和安全评分,用户确认后才逐项解读 14 类检查项,使用 ✅⚠️🚨⏭️ 图标降低理解门槛
5. 防重放机制:完整模式下请求附带时间戳+随机 nonce,SHA-256 签名校验时间窗口,降低请求重放风险
潜在缺点与局限性
1. 设备指纹化风险:agent_id 首次生成后永久保存于 ~/.openclaw/.agent-id,多次完整检测复用同一 ID,服务端可积累设备历史安全档案,形成可追溯指纹。删除 Skill 后该文件仍保留,用户需手动清除
2. 服务端信任度待验证:数据上报至 Changeway 自营服务 auth.ctct.cn:10020,非 AWS/Azure/GCP 等知名云服务商,缺乏第三方安全审计背书,用户需自行评估信任度
3. 请求签名非认证:X-SIGN 仅作请求指纹和防重放,无预共享密钥,服务端无法验证请求来源合法性,获取 MAC 和主机名的第三方理论上可伪造请求
4. Windows 平台 shell 限制:调用 openclaw/openclaw-cn 命令时因 Node.js 平台限制需启用 shell: true,虽参数硬编码无注入风险,但仍存在命令解析差异可能
5. 本地报告未加密:扫描报告保存权限为 0o600,但无额外加密机制,多用户系统存在信息泄露风险
适合的目标群体
- OpenClaw 重度用户:需要定期审计自身 Agent 运行环境安全状况
- 隐私敏感型用户:可选择纯本地模式,零网络请求完成基础安全检测
- 企业安全管理员:需监控团队设备安全基线、排查异常进程和越权行为
- 合规审计人员:需要生成可持久化的安全审计报告和变更追溯记录
使用风险
| 风险类别 | 具体描述 | 缓解措施 |
|---------|---------|---------|
| 隐私泄露 | 完整模式下 agent_id + Skill 清单形成长期设备指纹 | 优先使用本地模式;手动删除 `~/.openclaw/.agent-id` 重置标识 |
| 数据外泄 | 上报至自营服务端,存储策略不透明 | 仔细阅读 SKILL.md 隐私章节,评估信任度后再启用 --push |
| 依赖缺失 | 系统命令(lsof、ss、journalctl 等)缺失导致检查项 SKIP | 检查项独立运行,SKIP 不影响其他检测 |
| 定时任务安全 | 误配置 `--push` 导致隐私数据自动定期上报 | SKILL.md 明确禁止 cron 使用 --push,需人工审核命令 |
| 报告泄露 | 本地报告未加密,多用户系统可读 | 设置目录权限 0o700,或配合系统级加密 |
| 基础设施绑定 | 定时任务依赖 openclaw CLI 和基础设施 | 可完全跳过定时任务,改为手动执行 |