Skip to Content
👋 欢迎来到 HowToUseMoltbot 快速入门
网关Security 安全

安全

锁定网关。文件权限、网络暴露、配对与加固。

快速检查:moltbot security audit

另见:形式化验证(安全模型)。定期运行(尤其在修改配置或暴露网络面后):

moltbot security audit moltbot security audit --deep moltbot security audit --fix # 旧版安装中命令可能为 clawdbot ...

它会标记常见隐患(网关认证暴露、浏览器控制暴露、提升白名单、文件系统权限)。--fix 会应用安全护栏:将常见频道的 groupPolicy="open" 收紧为 groupPolicy="allowlist"(及每账号变体);将 logging.redactSensitive="off" 改回 "tools";收紧本地权限(~/.moltbot → 700,配置文件 → 600,以及 credentials/*.jsonagents/*/agent/auth-profiles.jsonagents/*/sessions/sessions.json 等常见状态文件)。

在机器上运行带 shell 权限的 AI agent 风险较高。以下是如何避免被入侵。Moltbot 既是产品也是实验:你把前沿模型行为接到真实消息面与真实工具上。没有「绝对安全」的配置。 目标是有意识地控制:谁可以和你的机器人对话、机器人被允许在哪里行动、机器人能接触什么。先用最小可用权限,再随信心逐步放宽。

审计检查内容(概要)

  • 入站访问(私信策略、群组策略、白名单):陌生人能否触发机器人?
  • 工具影响范围(提升工具 + 开放房间):提示注入是否会变成 shell/文件/网络操作?
  • 网络暴露(网关绑定/认证、Tailscale Serve/Funnel)。
  • 浏览器控制暴露(远程节点、中继端口、远程 CDP 端点)。
  • 本地磁盘卫生(权限、符号链接、配置包含、「同步文件夹」路径)。
  • 插件(扩展无显式白名单)。
  • 模型卫生(配置模型看起来过时时警告;非硬性拦截)。

运行 --deep 时,Moltbot 还会尽力对网关进行实时探测。

凭证存储一览

审计访问或决定备份时可参考:

  • WhatsApp~/.moltbot/credentials/whatsapp/<accountId>/creds.json
  • Telegram bot token:配置/环境变量或 channels.telegram.tokenFile
  • Discord bot token:配置/环境变量(token 文件尚未支持)
  • Slack tokens:配置/环境变量(channels.slack.*
  • 配对白名单~/.moltbot/credentials/<channel>-allowFrom.json
  • 模型认证配置~/.moltbot/agents/<agentId>/agent/auth-profiles.json
  • 旧版 OAuth 导入~/.moltbot/credentials/oauth.json

安全审计清单

审计输出结果时,按以下优先级处理:

  1. 任何「open」+ 工具启用:先锁定私信/群组(配对/白名单),再收紧工具策略/沙箱。
  2. 公网暴露(LAN 绑定、Funnel、缺少认证):立即修复。
  3. 浏览器控制远程暴露:视为操作员访问(仅 tailnet、明确配对节点、避免公网暴露)。
  4. 权限:确保 state/config/credentials/auth 非组/全局可读。
  5. 插件/扩展:只加载你明确信任的。
  6. 模型选择:对带工具的机器人优先使用现代、指令加固的模型。

控制 UI over HTTP

控制 UI 需要安全上下文(HTTPS 或 localhost)才能生成设备身份。若启用 gateway.controlUi.allowInsecureAuth,UI 会回退到仅 token 认证并在省略设备身份时跳过设备配对。这是安全降级——优先使用 HTTPS(Tailscale Serve)或在 127.0.0.1 上打开 UI。仅应急场景下,gateway.controlUi.dangerouslyDisableDeviceAuth 会完全关闭设备身份检查。这是严重安全降级;除非正在调试且能快速回滚,否则保持关闭。moltbot security audit 会在启用该设置时警告。

反向代理配置

若网关在反向代理(nginx、Caddy、Traefik 等)后运行,应配置 gateway.trustedProxies 以便正确识别客户端 IP。当网关从不在 trustedProxies 中的地址检测到代理头(X-Forwarded-ForX-Real-IP)时,不会将连接视为本地客户端。若网关认证关闭,这些连接会被拒绝。这可以防止通过代理的连接被误认为来自 localhost 而获得自动信任的认证绕过。

gateway: trustedProxies: - "127.0.0.1" # 若代理在 localhost 上运行 auth: mode: password password: ${CLAWDBOT_GATEWAY_PASSWORD}

配置 trustedProxies 后,网关会使用 X-Forwarded-For 头判断真实客户端 IP 以做本地客户端检测。确保代理覆盖(而非追加)入站 X-Forwarded-For 头以防伪造。

本地会话日志在磁盘上

Moltbot 将会话记录存于 ~/.moltbot/agents/<agentId>/sessions/*.jsonl。这是会话连续性与(可选)会话记忆索引所需,但也意味着任何有文件系统访问权限的进程/用户都能读取这些日志。将磁盘访问视为信任边界,并收紧 ~/.moltbot 的权限(见下方审计节)。若需 agent 间更强隔离,请在独立 OS 用户或独立主机下运行。

节点执行(system.run)

若已配对 macOS 节点,网关可在该节点上调用 system.run。这是 Mac 上的远程代码执行:需节点配对(批准 + token);在 Mac 上通过 设置 → Exec approvals(安全 + 询问 + 白名单)控制。若不希望远程执行,将安全设为 deny 并移除该 Mac 的节点配对。

动态 skills(watcher / 远程节点)

Moltbot 可在会话中刷新 skills 列表:Skills watcher:对 SKILL.md 的修改可在下一轮 agent 时更新 skills 快照。远程节点:连接 macOS 节点可使仅 macOS 的 skills 可用(基于 bin 探测)。将 skill 目录视为受信任代码并限制谁可修改。

威胁模型

你的 AI 助手可以:执行任意 shell 命令、读写文件、访问网络服务、向任何人发消息(若你给了 WhatsApp 访问)。给你发消息的人可以:试图诱使 AI 做坏事、社会工程获取你的数据、探测基础设施细节。

核心概念:先访问控制,再智能

多数问题不是复杂利用,而是「有人给机器人发消息,机器人照做了」。Moltbot 的立场:身份优先:决定谁可以和机器人对话(私信配对/白名单/显式「open」)。作用域其次:决定机器人被允许在哪里行动(群组白名单 + @ 提及门控、工具、沙箱、设备权限)。模型最后:假设模型可被操纵;设计使操纵的影响范围有限。

命令授权模型

斜杠命令与指令仅对已授权发件人生效。授权来自频道白名单/配对及 commands.useAccessGroups(见 配置斜杠命令)。若频道白名单为空或包含 "*",该频道下命令实质开放。/exec 仅对已授权操作员是会话级便利;不会写配置或改其他会话。

插件/扩展

插件与网关同进程运行。将其视为受信任代码:只从信任来源安装;优先使用显式 plugins.allow 白名单;启用前检查插件配置;插件变更后重启网关。若从 npm 安装(moltbot plugins install <npm-spec>),视为运行非受信任代码:安装路径为 ~/.moltbot/extensions/<pluginId>/(或 $CLAWDBOT_STATE_DIR/extensions/<pluginId>/);Moltbot 会 npm pack 然后在该目录运行 npm install --omit=dev(npm 生命周期脚本可能在安装时执行代码);优先使用固定精确版本(@scope/pkg@1.2.3),启用前检查解压后的磁盘代码。详见 插件

私信访问模型(pairing / allowlist / open / disabled)

当前所有支持私信的频道都支持在处理消息之前门控入站私信的 DM 策略(dmPolicy*.dm.policy):pairing(默认):未知发件人收到短线配对码,批准前机器人忽略其消息。配对码 1 小时后过期;重复私信不会重发码直到新建请求。待处理请求默认每频道上限 3allowlist:未知发件人直接拒绝(无配对握手)。open:允许任何人私信(公开)。要求频道白名单包含 "*"(显式选择加入)。disabled:完全忽略入站私信。通过 CLI 批准:moltbot pairing list <channel>moltbot pairing approve <channel> <code>。详情与磁盘文件见 配对

配置加固示例、沙箱、浏览器控制风险、每 agent 访问配置、事件响应、秘密扫描、信任层级、安全漏洞报告

更多章节(网络暴露、mDNS、网关 WebSocket 认证、Tailscale、磁盘机密、日志脱敏、提示注入、安全基线、示例配置、安全规则、事件响应步骤等)请参阅 英文安全文档 获取完整内容。报告安全问题:请发送至 security@clawd.bot,修复前勿公开披露,我们会致谢(除非你选择匿名)。

最后更新于: