Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

ctct-security-patrol

OpenClaw 安全巡检工具,一键执行系统安全扫描并生成通俗易懂的报告。 使用场景:用户说"安全巡检"、"安全检查"、"安全审计"、"巡检"、"security audit"、"检查安全"、"系统安全"等。 触发条件:任何与 OpenClaw 安全检测、审计、巡检相关的请求。

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 25 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
medium confidence
Purpose & Capability
Name/description (system security audit, local reports, optional remote enrichment) align with the files and behavior: SKILL.md documents local-only and '--push' modes, the included script performs system queries and generates local reports, and the network endpoints in the doc match the described Changeway push. The skill does not request unrelated cloud credentials or unrelated system-wide access.
Instruction Scope
Instructions explicitly read/write files under ~/.openclaw, create a persistent agent_id, optionally read the local Skill list, and run the included Node.js script; all of these are within the stated audit purpose. The push mode will upload MAC address, hostname, agent_id and the local Skill list — this is sensitive data but is documented and gated behind an explicit consent flow. The SKILL.md forbids including full script output when reporting to the user, and requires cron tasks to avoid '--push'.
Install Mechanism
No external download/install spec; the skill ships the audit script in the bundle and uses only Node.js built-ins and spawnSync for local commands. No archived artifacts are fetched from untrusted URLs. This is a low-risk install mechanism; the main runtime requirement is Node.js v18+.
Credentials
The skill requests no environment variables or cloud credentials. It will read system state (host name, network interfaces/MACs, installed Skill list) and write files under ~/.openclaw (reports, agent_id). Those accesses are relevant to an audit but are privacy-sensitive. The SKILL.md mentions openclaw CLI as an optional/used tool — the registry metadata lists no required binaries, which is a small mismatch (Node.js and optional openclaw CLI are required/used at runtime).
Persistence & Privilege
The skill persists an agent_id and report files under ~/.openclaw and instructs how to add an OpenClaw cron job (openclaw cron add). always:false and normal autonomous invocation are used. Persisting an agent_id and adding cron tasks are reasonable for an audit tool, but the persistent agent_id plus the ability to upload device identifiers (if user later consents) increases privacy implications — SKILL.md documents and limits this, forbidding cron from using '--push'.
Assessment
What to consider before installing: - Functionality and privacy: The tool runs local system checks and stores reports under ~/.openclaw/. It can optionally upload MAC address, hostname, a persistent agent_id and a full local Skill list to https://auth.ctct.cn when you explicitly choose '--push'. That upload is sensitive; only enable it if you trust the Changeway endpoint and the skill author. - Consent gating: The SKILL.md requires an explicit '2 已了解' confirmation before performing '--push' and forbids scheduling '--push' in cron. Do not bypass that manual consent requirement. - Dependencies & runtime: You need Node.js v18+ to run the script. The script also calls the openclaw CLI for some checks (optional but used); if openclaw is missing those checks will be skipped. The registry metadata does not list these binaries—verify you have Node.js and (if you want full checks) openclaw CLI installed. - Persistence: The script creates ~/.openclaw/.agent-id and report files. If you prefer no persistent identifiers, avoid running '--push' and consider deleting ~/.openclaw after testing. - Safety review: The shipped script uses spawnSync with a hardcoded command whitelist (reducing injection risk) and does not download code at runtime. Still, review the script yourself or run it in a disposable/isolated environment (VM or container) first to confirm behavior and that endpoints are acceptable. - Cron and automation: The skill strongly recommends using 'openclaw cron add' and explicitly forbids adding '--push' to scheduled jobs. If you add a scheduled job, verify the cron's message/command does not include '--push' and that the session/isolation settings meet your security policy. - If unsure: Run the script in local-only mode first (no network) to inspect the generated report and ensure it behaves as you expect before consenting to any remote upload or scheduling. If you want, I can point out exact lines in the provided script that collect device identifiers and build the upload payload so you can inspect them more closely.
scripts/openclaw-hybrid-audit-changeway.js:149
Shell command execution detected (child_process).
Patterns worth reviewing
These patterns may indicate risky behavior. Check the VirusTotal and OpenClaw results above for context-aware analysis before installing.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.0.2
Download zip
latestvk97a41k3qw8ne9g37697xr3asd8308dc

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

SKILL.md

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. 仅本地扫描(默认)— 不联网、不发送任何数据
   · 所有扫描报告仅保存在本地 ~/.openclaw/security-reports/
   · 适合离线环境或隐私敏感场景
   · 无任何网络请求

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

⚠️ 注意:下面的完整检测模式会向外部服务器发送隐私敏感数据
   请仔细阅读数据上报内容后再决定

2. 完整检测(--push)— 联网查询威胁情报并同步安全评分

   📡 网络请求目标(仅在用户同意时):
   - 服务器:https://auth.ctct.cn:10020(Changeway 威胁情报服务)
   - 端点1:/changeway-open/api/pushAuditData
   - 端点2:/changeway-open/api/skills/assessment

   📊 上报的隐私敏感数据包括:
   · MAC 地址(如 a1:b2:c3:d4:e5:f6)
   · 主机名(如 MacBook-Pro.local)
   · agent_id(首次自动生成并永久保存在 ~/.openclaw/.agent-id,后续复用)
   · 本机已安装的完整 Skill 清单(包含名称、作者、版本、所有者 ID)
   · 每项安全检查的名称和结果摘要(不包含详细命令输出)

   🔐 安全措施:
   · 请求使用 SHA-256 签名验证,无单独密钥
   · MAC + 主机名 + 时间戳用于生成签名
   · 完整命令输出和敏感日志仅保存本地,不上传

   ⚠️ 重要限制:
   · 此选项仅限本次手动执行(一次性)
   · 定时巡检(cron)中绝不自动启用 --push,防止设备信息被长期自动上报
   · agent_id 是持久化的,后续手动运行如再次选择完整检测会复用同一 ID

   🎯 如同意数据上报,请回复:2 已了解

根据用户回复执行:

  • 用户回复 "1" 或任何"本地"、"离线"含义 → 记录选择:本地模式,继续第四步
  • 用户回复 "2 已了解"(必须包含"已了解"或"我已知晓"等确认短语)→ 记录选择:完整检测,继续第四步
  • 用户只回复 "2" 但没有确认短语 → 不执行,回复:"完整检测模式会向 Changeway 服务器上报 MAC 地址、主机名、agent_id 和 Skill 清单等隐私敏感数据,请回复「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/security-reports/)
    • 必须使用 openclaw cron add 而非系统 crontab(openclaw cron 管理独立的调度会话和超时,系统 crontab 无法正确初始化 OpenClaw 环境)

    隐私和网络行为

    • 默认行为:定时任务仅在本地运行,不产生任何网络请求
    • 如果启用通知 --announce/--channel/--to 参数:每次巡检结果会通过 OpenClaw 消息通道(如 Telegram、钉钉)发送通知到指定 chat ID,这是额外的外部消息路径,需要用户明确知晓
    • 严禁在定时任务中使用 --push:定时任务的命令中绝不应该包含 --push,因为 --push 会让定时任务定期向 Changeway 服务器上报设备标识和 Skill 清单,造成隐私敏感数据的长期自动上报。--push 仅限用户单次手动运行时显式指定

    用户确认

    • 询问用户:"确认要设置定时巡检吗?定时任务会每天运行扫描并保存本地报告。(是/否)",收到"是"后再继续
    • 如果用户问及通知功能,补充:"通知功能会让结果发送到你的 Telegram/钉钉等,可选配置。"
  3. 严格按照 cron-setup.md 中的步骤执行

  4. 关键安全要求

    • 必须使用 openclaw cron add 命令,禁止使用系统 crontab
    • 定时任务的命令中严禁添加 --push 参数
    • 审查用户最终的 cron 命令,确保不含 --push

Files

3 total
Select a file
Select a file to preview.

Comments

Loading comments…