permission guard

监控 OpenClaw 代理的技能行为,检测异常文件访问与网络请求。

已扫描
适合谁
使用 OpenClaw 的开发者、关注 AI 代理安全性的高级用户
不适合谁
无 shell 访问权限的用户、不熟悉命令行操作的初学者
国内可用性
需网络配置。可能需要网络配置或第三方服务可访问。
安装难度
中等(★★☆)。基于终端操作、依赖、API Key 和本地环境要求的初步判断。

安装与下载

openclaw skills install @billyhetech/permission-guard-v1

Skill 说明

命令、参数、文件名以原文为准

权限守卫

OpenClaw 代理的运行时安全监控工具。其目的是让用户清晰了解已安装技能的实际行为——及时发现意外的文件访问、可疑的网络调用、危险的命令执行,或超出技能声明用途的行为。

行为日志

~/.openclaw/permission-guard.log 维护一个持续更新的日志文件。记录每个显著的代理操作,格式如下:

[ISO-8601 时间戳] SKILL:[技能名称] ACTION:[file|network|command] TARGET:[路径/网址/命令] STATUS:[ok|flagged|blocked]

确保日志文件大小不超过 10MB —— 每月通过将旧文件重命名为 permission-guard.log.YYYY-MM 实现轮转。日志仅本地保存,不会被外部传输。

安全检查

生成报告时需执行全部四项检查,并汇总结果。

检查 1 — 敏感文件访问

检测最近对凭证和配置文件的访问:

find ~ -newer ~/.openclaw/last-check -type f 2>/dev/null \
  | grep -E '(\.ssh|\.aws|\.gnupg|\.config/gcloud|\.gitconfig|/etc/passwd|/etc/shadow|Library/Keychains|\.config/google-chrome|\.mozilla)' \
  | head -30
# 检查完成后更新时间戳:
touch ~/.openclaw/last-check

任何匹配项均应标记。风险明确:一个看似执行常规任务的恶意技能读取 ~/.ssh/id_rsa,是典型的凭证窃取路径。

检查 2 — 出站网络连接

审查当前及近期的网络连接:

ss -tnp 2>/dev/null | grep -Ev '(127\.0\.0\.1|::1|LISTEN)'

对以下情况发出警告:

  • 未识别的 IP 地址或域名,且与技能声明的 API 无关
  • 已知的数据共享服务(如 pastebin、webhook.site、文件分享主机)
  • 任何携带数据的明文(非 HTTPS)连接

检查 3 — 危险命令模式

检查日志中是否存在暗示权限滥用的命令模式:

grep -E '(rm\s+-rf|chmod\s+777|curl.+\|\s*(ba)?sh|wget.+\|\s*(ba)?sh|crontab\s+-[el]|useradd|sudo\b)' \
  ~/.openclaw/permission-guard.log 2>/dev/null | tail -20

这些模式并不一定代表恶意意图,但每一条都应在继续前向用户提示解释。

检查 4 — 行为偏离

将技能实际行为与其名称和描述所承诺的功能进行对比。原则是:技能只能执行其声明用途所允许的操作。

值得标记的示例包括:

  • “天气”技能写入文件系统
  • “邮件”技能访问 SSH 密钥
  • “日历”技能执行任意 shell 命令
  • 任何技能向其声明 API 列表外的 URL 发送数据

输出格式

生成以下报告结构,无事件的章节可省略:

🛡️ 权限守卫 — 活动报告
════════════════════════════════════════
周期:[开始] → [结束]
监控技能数:[N]

✅ 正常活动 ([X] 次事件)
   [技能名称]: [预期操作说明]

⚠️ 警告 — 需调查 ([Y] 次事件)
   [技能名称]: 访问了 [路径] — [为何可疑]
   [技能名称]: 向 [IP/域名] 发出出站 POST 请求 — [上下文]

🔴 严重 — 需采取行动 ([Z] 次事件)
   [技能名称]: 读取 [凭证路径] 并在同一会话中建立出站连接
   → 执行:claw remove [技能名称]

评估:[一句话总结]
════════════════════════════════════════

若一切正常,请直接说明——不必要的警告会随时间削弱用户对守卫的信任。

严重违规响应

当同一技能在同一会话中既访问凭证文件又发起出站连接时,应视为严重违规,而非普通警告。这种组合是凭证窃取的典型特征:访问 + 传输。单独一项可能属偶然;两者同时发生则构成可信攻击迹象。

应对步骤:

  1. 立即并显著地显示警报——不要将其隐藏在报告中
  2. 向用户展示具体被访问的文件和出站连接的目标地址
  3. 推荐移除操作:claw remove [技能名称]
  4. 询问用户是否立即执行移除,或先进行调查——决定权归用户,不由守卫代行

首次运行基线

每次新技能安装后,在其首次运行前捕获基线状态。这将使后续的行为偏离检测更加精确。

mkdir -p ~/.openclaw/baselines
stat ~/.ssh ~/.aws ~/.gnupg ~/.gitconfig 2>/dev/null \
  > ~/.openclaw/baselines/[技能名称]-baseline.txt
touch ~/.openclaw/last-check

设计原则

仅报警并建议,绝不擅自行动。移除技能始终是用户的决定。

当不确定某行为是否违规时,应记录并标记,而非忽略。用户应能看见模糊行为,而不仅仅是明确违规。

尽可能避免误报。合法技能被错误标记比遗漏微小异常更严重,会损害用户对守卫的信任。

B
@billyhetech

已收录 1 个 Skill

相关推荐