restart-guard

🛡️ Gateway 安全重启与智能守护

OpenClaw 官方运维工具,安全重启 Gateway 并自动验证恢复状态,保障服务连续性。

收藏
1.5k
安装
461
版本
v2.2.0
CLS 安全性认证2026-05-17
点击查看完整报告 >

使用说明

核心用法

Restart Guard 是专为 OpenClaw Gateway 设计的安全重启工具,采用多阶段流水线确保重启过程可控可恢复。完整流程包含四个环节:首先通过 write_context.py 生成带 YAML frontmatter 的上下文文件,记录重启原因、验证命令和恢复步骤;随后 restart.py 执行预检查、配置备份、派生守护进程并触发重启;守护进程 guardian.py 在 Gateway 重启后独立运行,轮询健康状态;最后 postcheck.py 执行验证命令并输出结果报告。整个设计强调"状态可恢复、失败可感知、操作可审计"。

显著优点

该 Skill 的工程成熟度较高:仅依赖 Python 标准库,彻底规避供应链攻击风险;守护进程采用 start_new_session=True 实现真正的进程组隔离,确保监控不随父进程终止;内置 600 秒冷却锁和连续失败上限,有效防止重启风暴;多通道通知机制(OpenClaw 原生消息优先,Telegram/Discord/Slack/Webhook 兜底)保证异常必达;配置自动备份与回滚路径预留,为故障恢复提供安全边际。

潜在缺点与局限性

命令注入风险是最大隐患::guardian.pypostcheck.py 中多处使用 shell=True 执行配置/上下文中的命令,若配置文件被篡改可导致任意代码执行。此外,通知模块将 Bearer Token 暴露在 curl 命令行参数中,可能被进程监控工具捕获;Webhook URL 缺乏 SSRF 防护,存在内网探测风险。功能层面,该 Skill 强绑定 OpenClaw 生态,无法迁移至其他 Gateway 平台;验证命令的"预期输出"匹配采用简单字符串比较,复杂场景下可能误判。

适合的目标群体

主要面向 OpenClaw 平台运维人员、SRE 工程师及需要频繁调整 Gateway 配置的开发团队。特别适合以下场景:模型切换后的热重启、插件更新后的服务刷新、配置变更后的生效验证,以及对服务可用性有明确 SLA 要求的生产环境。

使用风险

除前述安全漏洞外,常规风险包括:守护进程派生失败可能导致重启状态无人监控;多通知通道同时配置时可能产生消息轰炸;健康检查命令若配置不当(如超时过短)会引发误报;锁文件 /tmp/restart-guard.lock 若因异常退出未清理,需手动介入。建议在非关键环境充分验证验证命令的可靠性后再投入生产。

安全解读

核心功能

restart-guard 是 OpenClaw 官方维护的网关重启辅助技能,专为解决 AI Agent 运行时配置变更、模型切换等场景下的安全重启需求设计。其核心流程采用五阶段闭环:上下文持久化 → 冷却锁检查 → 守护进程派生 → 网关重启触发 → 重启后健康验证,确保即使在重启失败或网络中断的情况下,也能通过独立守护进程完成状态通知和故障降级。

显著优点

1. 零上下文丢失:通过 YAML frontmatter 格式的上下文文件,同时保存机器可读的验证指令(verify 命令、resume 步骤)和人类可读的操作备注,支持重启后自动恢复对话状态。

2. 多重安全屏障:内置 600 秒默认冷却期(可配置)、连续 3 次失败熔断机制、配置文件自动备份(openclaw.json),有效防止重启风暴和配置不可逆损坏。

3. 全渠道故障通知:支持 OpenClaw 原生消息工具作为首选通道,同时可并行配置 Telegram、Discord、Slack 及自定义 Webhook,确保任何异常状态都能触达运维人员。

4. 独立守护监控:通过 start_new_session=True 创建完全脱离主进程的守护进程,即使网关进程完全崩溃,仍能执行诊断(openclaw doctor、日志追踪)并发送告警。

潜在局限

  • shell=True 使用postcheck.pyguardian.py 中存在两处 subprocess.run(..., shell=True) 调用,虽命令内容受配置文件约束,但仍建议用户避免在验证命令中引入外部不可信输入。
  • 外部网络依赖:通知功能依赖外部 IM 服务商 API,在完全离线环境需提前测试回退策略。
  • Python 版本隐性要求:官方未显式声明最低 Python 版本,建议使用 Python 3.8+ 以确保 subprocess 行为一致性。

适合人群

  • 运行 OpenClaw Gateway 的自托管用户或企业运维团队
  • 需要频繁调整网关配置(模型参数、插件热加载)的 AI 应用开发者
  • 对服务可用性有 SLA 要求、需要可审计重启记录的生产环境

常规风险

  • 配置注入风险:若将用户输入直接拼接入 verifydiagnostics 配置项,可能通过 shell 元字符(;$()|)实现命令执行,建议启用白名单过滤。
  • 路径遍历风险:所有文件操作均基于 ~/.openclaw/ 配置路径,需确保配置文件中 context_pathbackup_path 等字段未被篡改指向系统敏感目录。
  • Token 泄露风险:Telegram Bot Token、Discord Webhook 等凭证通过环境变量或 .env 文件注入,需保证文件权限 600 且不在版本控制中暴露。

安全认证要点

CLS-Certify 扫描评分 78/A 级,代码 1,311 行/9 文件,零第三方依赖(纯标准库),威胁情报来源可信(OpenClaw GitHub 组织)。主要关注点为中等风险的 shell=True 使用及低风险的文件系统广泛访问,均已通过配置边界和用户显式授权进行缓解。

restart-guard 内容

references文件夹
scripts文件夹
templates文件夹
手动下载zip · 16.6 kB
troubleshooting.mdtext/markdown
请选择文件