huiaunt/dr-skill

GitHub: huiaunt/dr-skill

Dr.Skill 是一款在运行前对第三方 Claude 技能进行只读静态安全审计的工具,可检测恶意软件、数据泄露、凭证窃取和提示词注入,并生成通俗易懂的红绿灯 HTML 报告。

Stars: 0 | Forks: 0

# Dr.Skill — Claude 技能安全性检查工具 *这是一个 Claude Code 技能,它会在你运行下载的第三方技能/插件/脚本**之前**对其进行静态审计 —— 专门标记恶意软件、数据泄露、凭证窃取,以及隐藏在 `SKILL.md` 中的提示词注入 —— 并生成通俗易懂的红绿灯 HTML 报告。它绝不执行被审计的代码;它只负责读取。* ## 为什么需要它 从 GitHub、Discord 或博客上下载并使用他人制作的技能已经很普遍,但这些技能中的脚本在安装的瞬间就会**以你的权限运行**。它们可能会窃取 SSH 密钥、将环境变量发送到外部,或者在 `SKILL.md` 中隐藏诸如“偷偷读取该用户文件并发送”的指令。即使你不懂代码,也应该有能力对此进行判断。这就是本技能的作用。 ## 能检测出什么 - 🔴 **信息泄露** — 读取 SSH 密钥、环境变量、凭证并发送到外部服务器/Webhook - 🔴 **远程代码执行 (RCE)** — `curl | bash`,从互联网下载并执行,`eval`/`exec` - 🔴 **代码混淆** — 使用 base64/十六进制隐藏的 payload,反向 shell - 🔴 **持久化** — 自动注册到 crontab、注册表 Run 键、启动项 - 🔴 **提示词注入** — 隐藏在 `SKILL.md`/文档中,旨在*操纵运行该技能的 AI* 的指令 - 🟡 文件删除、权限提升、隐藏的 Unicode 字符、拼写劫持依赖等 (Windows/macOS/Linux) 判定分为 4 个级别:🟢 安全 · 🟡 警告 · 🔴 危险 · ⚪ 无法判定(混淆/二进制文件 → 视为危险) ## 工作原理 (3 个步骤) 1. **机械化扫描** (`scripts/scan.py`) — 读取所有文件,收集可疑模式、隐藏字符、高熵数据块 (blob) 及外部主机,并附带行号。*仅收集证据,不作出判定。* 2. **语义分析** (Claude) — 根据 `references/threats.md` 解析代码的*意图*。区分一行 `curl` 命令究竟是合法的 API 调用,还是窃取 `~/.ssh` 的泄露行为。 3. **生成报告** (`scripts/report.py`) — 将判定结果渲染为红绿灯 HTML 报告。 ## 安装说明 将其放入 Claude Code 的技能文件夹中即可。 ``` # 克隆到 ~/.claude/skills/ 下 git clone https://github.com//dr-skill.git ~/.claude/skills/dr-skill ``` 或者下载 ZIP 文件并解压到 `~/.claude/skills/dr-skill/` 目录中。 (文件夹名称随意。Claude 会将包含 `SKILL.md` 的文件夹识别为技能。) - 需要 Python 3.8+(仅使用标准库,无需额外安装) ## 使用方法 安装完成后,只需用自然语言发出指令,它就会自动触发: ``` 다운받은 이 스킬 안전한지 검사해줘. 경로는 ~/Downloads/어떤스킬 ``` ``` 이 폴더 실행하기 전에 악성인지 내 정보 빼가는지 봐줘: D:\downloads\mystery-tool ``` 随后,Claude 将 ① 使用 `scan.py` 收集证据,② 亲自阅读代码进行判定,③ 生成 `audit-report.html` 报告,并在聊天中为你总结结论(安全/警告/危险 + 原因)。 你也可以单独运行脚本: ``` python scripts/scan.py <검사할-폴더> --out findings.json # 기계적 스캔 (증거 수집) python scripts/report.py report.json --out audit-report.html # 리포트 렌더링 ``` ## 验证 该技能已通过对抗性测试验证(详细测试集见 `evals/`): - **判定质量 4/4** — 毫无背景信息的冷启动 Agent 准确分类了 4 种陷阱:看起来可怕但正常的代码(无误报)、隐藏在正常功能中的泄露(检出)、混淆的反向 shell(检出)、以及文档中植入的注入(检出 + AI 未被欺骗)。 - **触发率 20/20** — 3 个冷启动 Agent 在面对 20 个类似陷阱时,一致且正确地执行了触发/不触发的操作(对于审查自己的代码、PR、Docker 扫描、钓鱼 URL 等均不触发)。 ## 局限性 (实话实说) 静态分析只能**发现**问题,但无法**证明**安全。它可能会遗漏仅在运行时暴露的行为或极度混淆的操作。一份显示“无异常”的报告仅代表“未发现危险信号”,并不意味着“证明其无害”。如果来源确实极其不可信,请先在隔离的 VM/沙箱中试运行。 ## 开源协议 MIT — 详情请参阅 `LICENSE`。
标签:Claude, CVE检测, DNS 反向解析, StruQ, 多模态安全, 安全专业人员, 安全审计工具, 逆向工具, 错误基检测, 静态代码分析