Dont Hack Me
不要黑我
适用于Clawdbot/Moltbot的安全自检技能。
读取~/.clawdbot/clawdbot.json并检查涵盖最常见配置错误的7个项目。输出一个简单的通过/失败/警告报告。
如何运行
说出以下任意一句:
- "运行安全检查"
- "检查我的安全设置"
- "审计我的clawdbot配置"
- "我安全吗?"
检查清单 — 逐步说明
当此技能被触发时,请严格遵循以下步骤:步骤0 — 读取配置
使用
读取工具打开~/.clawdbot/clawdbot.json。
解析JSON内容。如果文件不存在或不可读,
则报告错误并停止。同时运行一个shell命令来获取文件权限:
Also run a shell command to get the file permissions:
stat -f '%Lp' ~/.clawdbot/clawdbot.json
(在Linux系统上:stat -c '%a' ~/.clawdbot/clawdbot.json)
步骤1 — 网关绑定
路径:
- gateway.bind
预期值: - "loopback"
或"localhost"或"127.0.0.1"或"::1"通过 - 如果值为上述之一或该键不存在(默认值为"loopback"
)失败 - 如果值为"0.0.0.0"
、"::"或任何非回环地址严重性: - Severity:严重 — 非回环绑定会将您的代理暴露于网络
步骤 2 — 网关认证模式
- 路径:
gateway.auth.mode - 期望值:
"token"或"password" - 通过如果值为
"token"或"password",或该键值不存在(默认值为"token") - 失败如果值为
"off"或"none" - 严重性:严重 — 若无认证,任何能访问网关的人都能控制您的代理
步骤 3 — 令牌强度
- 路径:
gateway.auth.token - 预期:32 个或更多字符
- 通过如果令牌长度 >= 32 个字符
- 警告如果令牌长度为 16–31 个字符
- 失败如果令牌长度 < 16 个字符或为空
- 跳过如果认证模式为
"password"(密码由用户自选,不判断长度) - 严重性:高 — 短令牌易受暴力破解攻击
步骤 4 — DM 策略(按频道)
- 路径:
channels.<名称>.dmPolicy针对每个频道 - 预期:
"pairing"— 或者如果为"open",则必须有一个非空的允许来源数组 - 通过如果
dmPolicy是"配对",或者如果allowFrom至少有一个条目 - 失败如果
dmPolicy是"开放"并且allowFrom缺失或为空 - 跳过如果未配置任何通道
- 严重性:高 — 开放的DM策略允许任何人向您的代理发送命令
步骤5 — 群组策略(每个通道)
- 路径:
channels.<名称>.groupPolicy针对每个通道 - 预期:
"允许列表" - 通过如果
groupPolicy是"允许列表"或缺失(默认值为"允许列表") - 失败如果
groupPolicy是"开放"或"任意" - 跳过如果未配置任何通道
- 严重性:高 — 非允许列表的群组策略允许任何群组触发您的代理
步骤6 — 文件权限
- 检查:文件模式位于
~/.clawdbot/clawdbot.json - 预期:
600或400(仅所有者可读/写) - 通过如果权限是
600或400 - 警告如果权限是
644或640(组/其他用户可读) - 失败如果权限是
777、755、666,或任何全局可写权限 - 严重程度:中等 — 宽松的权限允许系统上的其他用户读取您的令牌
步骤7 — 明文密钥扫描
- 检查:扫描JSON中所有键名为
password、secret、apiKey、api_key、privateKey、private_key(不区分大小写)且包含非空字符串值的字段 - 通过如果未找到此类键
- 警告如果存在此类键——提醒用户考虑使用环境变量或密钥管理器
- 注意:
token用于网关认证的字段属于预期情况,不应被标记 - 严重性:中等——配置文件中的明文密钥可能通过备份、日志或版本控制系统泄露
输出格式
完成所有检查后,请严格按照以下格式输出报告:
🔒 Security Check Report
1. Gateway Bind <ICON> <STATUS> — <detail>
2. Gateway Auth <ICON> <STATUS> — <detail>
3. Token Strength <ICON> <STATUS> — <detail>
4. DM Policy <ICON> <STATUS> — <detail>
5. Group Policy <ICON> <STATUS> — <detail>
6. File Permissions <ICON> <STATUS> — <detail>
7. Secrets Scan <ICON> <STATUS> — <detail>
Score: X/7 PASS, Y WARN, Z FAIL
其中:
<图标>是以下之一:✅ (通过),⚠️ (警告),❌ (失败),⏭️ (跳过)<状态>是以下之一:通过、警告、失败、跳过<详情>是一个简短的说明(例如:"回环地址"、"令牌模式"、"48个字符"、"权限600")
自动修复流程
如果任何项目为"失败"或"警告",请执行以下操作:
- 首先显示报告(如上所述)。
- 列出每个可修复项目,并附上将要更改内容的简短描述。
- 询问用户:"需要我修复这些问题吗?(是 / 否 / 选择)"
- 是— 自动修复所有FAIL和WARN项目。
- 否— 停止,不做任何操作。
- 选择— 让用户选择要修复的项目。
- 应用修复(参见下方的修复方案)。
- 应用后,重新读取配置并再次运行完整检查以确认所有项目均为PASS。
- 如果配置已更改,提醒用户:"运行
clawdbot gateway restart以应用新设置。"
修复方案
对每个项目使用这些确切的修复方法。使用编辑/写入工具编辑~/.clawdbot/clawdbot.json。
#1 网关绑定 — FAIL
将gateway.bind设置为"loopback"。
{ "gateway": { "bind": "loopback" } }
#2 网关认证 — 失败
将gateway.auth.mode设置为"token"。如果尚不存在令牌,也请生成一个:
{ "gateway": { "auth": { "mode": "token", "token": "<GENERATED>" } } }
使用以下命令生成令牌:
openssl rand -hex 24
这将生成一个48个字符的十六进制字符串(192位熵)。
#3 令牌强度 — 失败 / 警告
用一个新的高强度令牌替换现有令牌:
openssl rand -hex 24
将输出写入gateway.auth.token。
#4 直接消息策略 — 失败
为每个受影响的频道将dmPolicy设置为"pairing":
{ "channels": { "<name>": { "dmPolicy": "pairing" } } }
#5 群组策略 — 失败
将groupPolicy设置为"allowlist"对于每个受影响的频道:
{ "channels": { "<name>": { "groupPolicy": "allowlist" } } }
#6 文件权限 — 失败 / 警告
运行:
chmod 600 ~/.clawdbot/clawdbot.json
#7 密钥扫描 — 警告
此项无法安全地自动修复。相反,列出每个被标记的密钥并 提醒用户:
- 将值移至环境变量
- 或使用密钥管理器
- 在配置中将其引用为
"$环境变量名称"如果平台支持的话
自动修复的重要规则
- 务必先进行备份。在进行任何更改之前,复制原始文件:
cp ~/.clawdbot/clawdbot.json ~/.clawdbot/clawdbot.json.bak - 合并,不要覆盖。读取完整的 JSON,仅修改特定的 键,写回完整的 JSON。切勿丢失现有设置。
- 保留格式。使用 2 空格缩进写入 JSON。
- 一次性写入操作。收集所有 JSON 修复,在单次写入中 应用它们,以避免部分状态。
- 令牌替换需要重启。如果网关令牌已更改, 用户必须用新令牌更新所有已配对的客户端。 警告:“您的网关令牌已更改。所有已配对的设备都需要新令牌才能重新连接。”
此技能不检查的内容
- 沙盒配置(大多数设置不需要)
- 网络隔离 / Docker(macOS 原生设置不使用)
- MCP 工具权限(对于基本审计来说过于复杂)
- 您的操作系统防火墙是否已配置
- 您的代理代码是否存在漏洞
如需更全面的审计,请参阅社区工具,例如clawdbot-security-check。
参考
基于社区整理的“Clawdbot/Moltbot 十大安全漏洞”列表。 涵盖了适用于典型 macOS 原生部署的 10 项中的 7 项。
小安 Ann Agent — Taiwan 台灣 为所有 AI 智能体打造技能与本地 MCP 服务,无处不在。 為所有 AI Agent 打造技能與在地 MCP 服務,不限平台。


微信扫一扫,打赏作者吧~