AI 技能 / MCP 安全供应链审计器
对 AI 技能(目录,含 SKILL.md 与 scripts)与 MCP 配置(json)做本地静态安全审计,
在安装或启用前发现供应链攻击红旗。纯标准库、零外部 API、零网络请求,完全离线可跑。
何时使用
- 用户从社区/市场下载了一个技能,想确认是否含恶意代码再安装。
- 用户拿到一份 mcp.json,想确认 server 是否可信、有无远程投毒。
- 用户让"给某技能做安全体检 / 红旗扫描 / 供应链审查"。
- 任何"安装前安全检查"意图。
工作流程
Step 1 — 确定审计目标
目标可以是:
- 一个技能目录(如 ~/.workbuddy/skills/(技能名)/),会递归扫描其中 .py/.js/.ts/.sh/.ps1/.json/.md。
- 一个 mcp.json 文件路径(专门走 MCP 配置审计分支)。
- 多个目标可一次性传入。
Step 2 — 运行审计引擎
用托管 python 运行 scripts/audit.py:
python (skill)/scripts/audit.py --target (目标路径) --out (输出目录) --json
自检演示(无需真实目标,验证引擎可用):
python (skill)/scripts/audit.py --demo --out (输出目录)
多目标:
python (skill)/scripts/audit.py --target (目录A) (目录B) --out (输出目录)
Step 3 — 解读报告
audit.py 会打印 markdown 报告,并在 --out 下生成 audit_report.md 与 audit_report.json。
报告含:
- 综合安全分(0-100,CRITICAL 每项 -30,HIGH 每项 -12,MEDIUM 每项 -4)。
- 结论判定:高危 / 需审查 / 基本可用 / 低风险。
- 逐条发现的严重级、OWASP 映射、命中位置与片段、修复建议。
Step 4 — 给修复清单
按 references/fix_guide.md 的模板,把 CRITICAL/HIGH 级发现整理成可勾选修复清单交用户。
若目标为正常技能(无 CRITICAL/HIGH),明确告知"静态层面无红旗,可安装",并提示动态行为仍需人工关注。
红旗速览(详见 references/red_flags.md)
- CRITICAL:读取 ~/.ssh/凭证、硬编码密钥、向 Telegram/Discord/webhook 外发。
- HIGH:未知域名网络调用、eval/exec/subprocess 执行、MCP 启动命令含 curl|bash。
- MEDIUM:base64 混淆、MCP 未知 URL、提示注入劫持、要求忽略既有指令。
- LOW/INFO:JSON 格式、纯本地良性说明。
OWASP 对齐(详见 references/owasp_mcp.md)
规则映射 MCP-02 工具投毒、MCP-03 命令注入、MCP-06 凭证泄露、L3 Agent 运行行为间接注入。
背景:2025-09 首个在野恶意 MCP server(npm 投毒冒充邮件服务秘密转发),2025-12 OWASP 连发 Agentic/MCP Top 10。
质量要点
- 仅静态分析,不执行任何被扫代码,不发起任何网络请求。
- 安装前审计是默认姿态;远程 MCP server 默认不信任。
- 带免责声明:静态扫描无法覆盖运行时动态行为,重大风险交专业安全团队。
环境准备
- 需要 Python 3.10+。优先用托管 python:
C:/Users/19560/.workbuddy/binaries/python/versions/3.13.12/python.exe - 仅用标准库,无需 pip install。