openclaw-security-audit

OpenClaw 安全巡检工具,一键执行系统安全扫描并生成通俗易懂的报告。 使用场景:用户说"安全巡检"、"安全检查"、"安全审计"、"巡检"、"security audit"、"检查安全"、"系统安全"等。 触发条件:任何与 OpenClaw 安全检测、审计、巡检相关的请求。 运行依赖: 必需:Node.js v18+、openclaw CLI(用于定时任务管理) 脚本调用的系统命令(缺失时对应检查项会 SKIP,不影响其他项): macOS:find、lsof、netstat、ps、last、lastb、grep、awk、cat、sudo Linux:find、ss、lsof、ps、journalctl、last、lastb、grep、awk、cat、sudo Windows:wmic、netstat、tasklist、findstr 默认行为:本地离线模式,不产生任何网络请求。 ⚠️ --push 高风险提示:启用后会向远端发送设备标识(MAC 地址、主机名、持久化 agent_id)和本机完整 Skill 清单,且 agent_id 会在本机永久保存并每次复用。--push 只能在用户单次手动运行时使用;cron 定时任务中严禁包含 --push,以防止设备信息被长期自动上报。 数据上报端点(仅 --push 模式,由本技能作者运营的 Changeway 云端威胁情报服务): https://auth.ctct.cn:10020/changeway-open/api/pushAuditData https://auth.ctct.cn:10020/changeway-open/api/skills/assessment 数据边界说明:脚本对每项检查生成两个字段——detail(完整命令输出,仅本地落盘,绝不上传)和 brief(人工编写的结果摘要,--push 模式下上传)。上传的 data[] 通过 `JSON_DATA.map(({ item, brief }) => ({ item, brief }))` 构造(脚本第 995 行),明确排除 detail 字段;包含 detail 的完整 outputObj 仅写入本地磁盘(脚本第 984 行)。 签名机制:请求头 X-SIGN 为 SHA-256(mac + hostname + timestamp + nonce) 的十六进制摘要,无独立密钥,仅用于服务端防重放校验。 本地写入:扫描报告保存至 ~/.openclaw/security-reports/(含 report-YYYY-MM-DD.txt 和 report.json),Skill 哈希基线保存至 ~/.openclaw/skill-hashes/,设备 ID 保存至 ~/.openclaw/.agent-id,首次运行标记文件 ~/.openclaw/.audit-first-run。

Safety Notice

This listing is from the official public ClawHub registry. Review SKILL.md and referenced scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "openclaw-security-audit" with this command: npx skills add ylardablez/openclaw-security-watchdog

OpenClaw 安全巡检

第一步:检查运行环境

执行命令 node --version,确认返回了版本号(如 v18.x.x 或更高)。

  • 如果命令成功返回版本号 → 继续第二步
  • 如果报错"command not found" → 告诉用户:"安全巡检需要 Node.js 环境,请先安装 Node.js(推荐 v18 以上),安装后再来找我。",然后停止,不要继续后续步骤

第二步:首次使用引导

检查文件 ~/.openclaw/.audit-first-run 是否存在。

如果文件已存在 → 跳过本步,直接进入第三步。

如果文件不存在(说明是首次使用),向用户发送以下消息,然后等待用户回复:

你好!这是首次使用安全巡检功能。

除了现在手动执行,你还可以设置每天自动巡检,系统会在固定时间运行扫描并生成本地报告,可选通过消息平台通知你结果。

请选择:
1. 设置每天自动巡检(推荐,省心)
2. 先跑一次看看,以后再说

根据用户回复执行:

  • 用户选 1(或回复"设置"、"自动"、"定时"等含义)→ 先创建标记文件 ~/.openclaw/.audit-first-run(内容写 setup-done),然后必须读取 references/cron-setup.md 文件,严格按照其中的步骤帮用户配置定时任务。配置完成后再继续第三步。
  • 用户选 2(或回复"先跑一次"、"以后再说"、"跳过"等含义)→ 创建标记文件 ~/.openclaw/.audit-first-run(内容写 skipped),然后继续第三步。

关于定时任务的硬性要求

  • 必须使用 openclaw cron add 命令
  • 禁止使用系统 crontab(crontab -e 等)
  • 原因:系统 crontab 无法正确初始化 OpenClaw 环境,会导致执行失败
  • cron 命令中严禁添加 --push 参数:定时任务只以本地离线模式运行,绝不自动向远端上报设备标识

第三步:询问检测模式

向用户发送以下消息,然后等待用户回复:

请选择检测模式:

1. 仅本地扫描(默认) — 不联网、不发送任何数据,适合离线或隐私敏感环境

⚠️ 以下选项涉及向第三方服务器发送隐私敏感的设备标识,请仔细阅读后再选择:

2. 完整检测 — 联网查询恶意插件并同步安全评分
   将向 Changeway 威胁情报服务(https://auth.ctct.cn:10020)上报:
   · MAC 地址 + 主机名(用于请求签名)
   · 持久化 agent_id(首次生成后永久保存在本机,每次复用)
   · 本机已安装的完整 Skill 清单(slug/author/version/ownerId)
   · 每项检查的名称和结果摘要

   ⚠️ 注意:此选项仅限本次手动运行。如已配置定时任务,cron 命令中不会也不应包含 --push。
   如选择此项,请回复"2 已了解"以确认知情同意。

根据用户回复执行:

  • 用户回复 "1" 或任何"本地"、"离线"含义 → 记录选择:本地模式,继续第四步
  • 用户回复 "2 已了解"(必须包含"已了解"或"我已知晓"等确认短语)→ 记录选择:完整检测,继续第四步
  • 用户只回复 "2" 但没有确认短语 → 不执行,回复:"完整检测模式会持续向第三方发送设备标识,请回复「2 已了解」确认知情后再继续。"

第四步:执行安全扫描

根据用户在第三步的选择,执行对应的命令:

  • 用户选 1(仅本地)→ 执行命令:node <SKILL_DIR>/scripts/openclaw-hybrid-audit-changeway.js
  • 用户选 2(完整检测)→ 执行命令:node <SKILL_DIR>/scripts/openclaw-hybrid-audit-changeway.js --push

其中 <SKILL_DIR> 是本 skill 的安装目录(即本 SKILL.md 所在的目录)。

输出要求(严格遵守):

脚本执行完毕后,不要把脚本的完整控制台输出发给用户。脚本输出内容很长、包含大量技术细节,直接展示会让用户困惑。

你需要从脚本输出中只提取以下信息,然后按下面的格式发给用户:

  1. 从输出末尾找到 PASS X FAIL X SKIP X 这一行,提取 PASS、FAIL、SKIP 的数量
  2. 仅在完整检测模式(--push)下,从输出末尾找到 系统安全得分: XX / 100 这一行,提取得分;本地模式无此行,得分显示为"—"
  3. 从输出末尾找到 详细审计报告已保存至: ... 这一行,提取报告文件路径

然后只向用户发送以下内容(不要多写,不要少写):

检测统计: PASS X FAIL X SKIP X
系统安全得分: XX / 100(本地模式下显示为"—")

详细审计报告已保存至: <报告文件路径>

需要我帮你解读这份报告吗?回复"是"我会逐项分析每个检查结果,告诉你哪些没问题、哪些需要注意。

然后停下来等用户回复,不要自动开始分析。

第五步:解读报告(用户要求时才执行)

当用户回复"是"、"要"、"分析"、"解读"、"看看"等肯定含义时,执行本步。

5.1 读取报告文件

读取文件 ~/.openclaw/security-reports/report-YYYY-MM-DD.txt,其中 YYYY-MM-DD 是今天的日期。

如果文件不存在,告诉用户:"没有找到今天的报告文件,可能扫描还没完成,请稍后再试。"

5.2 按以下格式逐项输出分析

输出规则(非常重要,必须全部遵守):

  • 按报告中 [1/14][2/14]... 的顺序,逐项输出分析
  • 每项独立一段,不要合并、不要按通过/失败分类
  • 每项用一段话说清楚(2-4 句,不超过 100 字),要让不懂技术的人也能看明白
  • 图标含义:✅ = 安全没问题;⚠️ = 有点小问题建议处理;🚨 = 严重问题必须处理
  • PASS 的项简短确认即可,FAIL 和 SKIP 的项要说明是什么问题怎么解决
  • 不要输出哈希值、原始日志、进程列表等技术细节,只输出结论和建议

5.3 解读模板(严格按此格式输出)

以下是完整的输出模板。你必须按照这个格式来写,内容根据实际报告调整:

## 🔒 安全巡检报告解读

> 扫描时间:YYYY-MM-DD HH:MM
> 安全评分:XX / 100

---

### 1. 核心运行环境健康度
(根据报告中 [1/14] 的 PASS/FAIL 状态来写)

### 2. 系统敏感目录防篡改监控
(根据报告中 [2/14] 的内容来写)

### 3. 网关进程内存凭证隔离检查
(根据报告中 [3/14] 的内容来写)

... 依次写到第 14 项 ...

---

### 总结

用 2-3 句话概括整体安全状况,列出最需要关注的 1-2 个问题(如果有)。

5.4 解读案例(供你参考,实际输出时根据真实报告内容来写)

以下是基于一份真实报告的解读示范,展示每种状态该怎么写:

## 🔒 安全巡检报告解读

> 扫描时间:2026-03-15 17:04
> 安全评分:79 / 100

---

### 1. 核心运行环境健康度
✅ 环境扫描通过。有 3 条配置建议(如反向代理信任设置、credentials 目录权限),不影响安全但建议后续优化。

### 2. 系统敏感目录防篡改监控
✅ 过去 24 小时有 21 个文件变更,主要是 OpenClaw 的会话记录和日志等正常运行产生的文件,未发现异常篡改。

### 3. 网关进程内存凭证隔离检查
⏭️ 跳过。macOS 系统限制(SIP 保护机制),无法扫描其他进程的环境变量,这是正常的,不用担心。

### 4. 核心配置防篡改与权限基线
⚠️ 首次运行,还没有建立文件指纹基线,所以无法判断配置是否被篡改。好消息是:核心文件(openclaw.json、paired.json、sshd_config)的访问权限都设置正确。建议后续手动生成基线文件以开启防篡改监控。

### 5. 组件与插件供应链完整性
⚠️ 检测到 Skill/MCP 组件文件与上次基线不一致。如果你最近安装或更新了插件(如 wechat-macro-daily-report),这属于正常变更。如果没有主动操作过,建议检查是否有未经授权的组件变更。

### 6. 远程访问与爆破攻击监控
✅ 安全。过去 24 小时没有发现任何 SSH 登录失败记录,说明没有人在尝试暴力破解你的远程登录。

### 7. 网络暴露面与异常进程排查
✅ 检测到 8 个对外监听端口,均为已知应用(Cursor 编辑器、Surge 代理、clouddesk 远程桌面等),无可疑的陌生服务。CPU 占用正常。

### 8. 自动化任务与后门驻留排查
✅ 已拉取定时任务列表,目前有 1 个定时任务(微信宏观群日报),是你自己设置的正常任务,未发现可疑的后门任务。

### 9. 高危命令与越权行为审计
⏭️ 跳过。今天的 OpenClaw 运行日志文件不存在,可能是今天还没有执行过需要记录的操作。不用担心,下次有日志时会自动检查。

### 10. 异常外联与数据外泄监控
⏭️ 跳过。同上,今天的日志文件不存在,无法扫描网络请求记录。

### 11. 系统凭证与敏感文件访问审计
⏭️ 跳过。同上,今天的日志文件不存在,无法扫描文件访问行为。

### 12. 硬编码密钥与助记词防泄漏扫描
✅ 安全。扫描了工作区的所有文件,没有发现明文写死的私钥或助记词。

### 13. 特权提权(Sudo)操作对账审计
✅ 安全。今天系统没有执行过 sudo 特权命令,Agent 的记忆记录也没有相关内容,两边对账一致,不存在偷偷提权的情况。

### 14. 生态组件恶意威胁情报扫描
✅ 安全。已列出本机安装的 54 个 Skill 组件,全部在安全名单中。(如果使用了完整检测模式且命中威胁情报,这里会显示具体的恶意组件和处置建议。)

---

### 总结

整体安全状况良好。主要有两个可以改进的地方:
1. **建立配置文件指纹基线** — 这样以后可以自动检测核心配置是否被篡改
2. **确认插件变更** — 组件文件有变化,如果是你自己安装/更新的就没问题

其他检查项全部通过,没有发现安全威胁。

5.5 关于图标使用

在解读报告时使用以下图标(只有这 4 个,不要使用其他图标):

图标含义对应报告状态
安全,没问题[PASS]
⚠️有小问题,建议处理[FAIL] 但不严重
🚨严重问题,必须处理[FAIL] 且有安全风险
⏭️跳过了,不用担心[SKIP]

判断 FAIL 是 ⚠️ 还是 🚨 的标准

  • 如果报告里提到"篡改"、"恶意"、"爆破"、"危险"、"高危" → 用 🚨
  • 如果报告里提到"首次运行"、"缺失基线"、"权限过宽"、"未知请求" → 用 ⚠️

定时任务配置

当用户后续要求"设置定时巡检"、"修改定时任务"、"自动巡检"时:

  1. 读取 references/cron-setup.md 文件
  2. 在执行任何配置命令前,向用户确认以下信息并等待明确同意:
    • 定时任务将在后台持续运行,每次执行会在本地生成报告
    • 必须使用 openclaw cron add 而非系统 crontab,因为 openclaw cron 管理独立的调度会话和超时,这意味着定时任务依赖 OpenClaw 自身的运行环境
    • 如果配置了 --announce/--channel/--to 参数,每次巡检结果还会通过 OpenClaw 消息通道(如 Telegram)发送通知到指定 chat ID,这是一条额外的外部消息路径
    • 如果在 --message 中添加了 --push,定时任务也会定期向 https://auth.ctct.cn:10020 上报审计摘要和 Skill 清单
    • 询问用户:"确认要设置定时巡检吗?(是/否)",收到"是"后再继续
  3. 严格按照 cron-setup.md 中的步骤执行
  4. 必须使用 openclaw cron add 命令,禁止使用系统 crontab

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Security

Aws Security

List of open source tools for AWS security: defensive, offensive, auditing, DFIR, etc. my arsenal of aws security tools, shell, auditing, aws-infrastructure,...

Registry SourceRecently Updated
Security

Nginx Config

Nginx配置生成。服务器配置、反向代理、SSL、缓存、安全加固、性能优化。Nginx config generator with reverse proxy, SSL, caching, security, optimization. Nginx、服务器、运维。

Registry SourceRecently Updated
1770Profile unavailable
Security

Watadot Aws Iam

IAM security patterns by Watadot Studio. Manage users, roles, and policy verification.

Registry SourceRecently Updated
80Profile unavailable
Security

Adversarial Robustness Toolbox

Adversarial Robustness Toolbox (ART) - Python Library for Machine Learning Security - Evasion, Poiso adversarial robustness toolbox, python, adversarial-atta...

Registry SourceRecently Updated
1150Profile unavailable