钟馗.skill

👤 智慧半岛 📦 v1.0.13 ⭐ 4.6 ⬇️ 123.6K 下载
🔒 IT运维与安全 免费

📖 技能介绍

钟馗.Skill

俺不跟你绕弯子。Skill 拿来,一眼看穿。

[L1-L2] 快速指令

指令 作用
审 <skill路径> 对单个 Skill 目录执行完整三层审查
快审 <skill路径> 仅执行 Layer 1 静态审计(秒级)
审依赖 <skill路径> 仅执行 Layer 3 供应链溯源
审行为 <skill路径> 仅执行 Layer 2 行为模拟

[L1-L2] 用法示例

场景 指令 说明
安装前审查 审 E:\skills\mcp-server 装之前先审,出完整报告
批量初筛 快审 E:\skills\repo\skill-a → 快审 E:\skills\repo\skill-b 多个 Skill 逐个快速过 L1
只担心依赖 审依赖 E:\skills\new-skill 跳过行为模拟,只查供应链
复查可疑项 审行为 E:\skills\flagged-skill L1 通过了但怀疑 R8/R11/R12
审自己的 Skill 审 E:\Marvis_Data\User\...\skills\custom\my-skill 发布前自审,查红线和一票否决
脚本模式 python zhongkui.py E:\skills\target --quick 脱离对话直接跑脚本,适合 CI/CD
审查前先更新 python zhongkui.py E:\skills\target --update 预览漏洞库增量,确认后注入再审查
审查前直接更新 python zhongkui.py E:\skills\target --update --apply 跳过确认,直接注入后审查
仅更新漏洞库 python zhongkui.py --update 预览增量,交互确认后注入
预览更新效果 python zhongkui.py --update --dry-run 仅拉取预览,不注入

路径提示:对话中 审 ./my-skill 等价于当前工作目录的相对路径。脚本模式必须用绝对路径。

[L2] 审查流程

Layer 1: 静态清单审计(所有 Skill 必经)

按 references/static-audit.md 的 54 项清单逐项检查 SKILL.md / scripts / deps / permissions,每命中一项扣分并标注风险类型(R1-R12)和行号。检出 R1/R3/R5/R8/R11/R12 → 自动进入 Layer 2。

Layer 2: 行为模拟评估(Layer 1 命中高危项触发)[规划中,尚未实现]

按 references/behavioral-emulation.md 的 21 个测试场景,用 ToolEmu 范式模拟工具调用链,跟踪 Agent 行为,每场景判定 PASS/WARN/FAIL。含 4.5 R8 隐蔽指令专项对抗(模糊测试 + 上下文感知分析)、4.6 R11 外部信息源投毒专项对抗、4.7 R12 智能体行为漏洞专项对抗。新增 4.4 红队对抗与持续验证(专项攻击测试集 + 自动化红队 + 外部渗透 + SLA),见 behavioral-emulation.md。

Layer 3: 供应链溯源(高风险 Skill 或首次发布者触发)[规划中,尚未实现]

更多技能请访问小葱技能站7w4.net。

按 references/supply-chain.md 的 10 个维度追溯:发布者信誉(含动态评分模型)/ CVE 依赖 / 版本变更 / 社区反馈 / SBOM 完整性 / 外部 API 安全评估 / SDK 安全准入 / 熔断与降级预案 / 外部信息源信誉 / 持久化写入审计。含依赖项运行时行为监控。

[L2] 漏洞库更新

钟馗的 patterns.json 采用两层架构:基础库(manual) + 增量库(auto)。

python zhongkui.py --update          # 拉取 NVD CVE → 预览候选签名 → 交互确认 [y/N] → 注入
python zhongkui.py --update --apply  # 跳过确认,直接注入
python zhongkui.py --update --dry-run # 仅预览,不注入
  • 基础库 137 条手工签名(source: "manual"),--update 永不触碰
  • 增量库来自 NVD API + Seebug RSS,每次 --update 先清旧增量再注入最新,保持幂等
  • 注入前自动备份 patterns.json → patterns.json.bak

[L2] 异常处理原则

审查过程中遇到非致命错误时,必须主动报告而非静默跳过。详见 references/error-handling.md。

异常类型 处理方式
文件读取失败(权限不足/不存在) 明确报告哪些文件无法读取及原因,继续审查其余文件
文件编码无法识别 尝试 UTF-8 → GBK → Latin-1 自动降级,失败则报告并跳过该文件
脚本语法错误无法解析 报告文件路径+行号+错误类型,标记 parse_error 继续
Layer 2 模拟中断(工具调用失败) 报告中断场景编号和原因,已完成的场景正常计分
Layer 3 网络请求失败 重试 1 次(间隔 3 秒),仍失败则标记 unreachable 并跳过该维度
目标路径为空目录 报告"目标目录无 Skill 文件",不做空审查

禁止行为:遇到以上异常时,禁止仅打印一行 ERROR 后静默退出。必须输出异常上下文(文件路径+失败原因)后再继续或降级。

[L2] 评分与裁定

按 references/scoring.md 公式计算总分,输出三值裁定。数据安全维度独立计入(W3=0.1),见评分与裁定文件。

裁定 条件 处理
✅ 干净 ≥ 85 分 可安全安装
⚠️-low 70-84 分 低风险可疑,附带主要风险点供判断
⚠️-high 60-69 分 高危可疑,建议拒绝+详细风险报告
🚫 恶意 < 60 分 禁止安装,上报威胁情报

[L2] 输出格式(强制)

审查完成必须输出结构化报告,禁止闲聊:

## 钟馗裁定:[✅/⚠️/🚫]

**总分**:XX / 100
**一句话**:[一句话结论]

### 扣分项
| 层级 | 检查项 | 风险类型 | 扣分 | 命中内容(行号) |
|:---|:---|:---|:---|:---|
| L1 | [项名] | [R编号] | -X | `<file>:L<N>` |

### 未触发项
[仅列出高危项(R1/R3/R5/R8/R11/R12)的 PASS 状态,其余省略]

[L2] 能力边界

钟馗审得狠,但不是万能。以下场景明确告知查不了或查不准,详情见 references/capability-boundaries.md。

# 场景 说明
1 深度行为模拟 Layer 2 基于 ToolEmu 做静态推理,非真正沙箱执行;运行时行为(内存篡改、进程注入)无法完全复现
2 供应链实时监控 Layer 3 基于声明文件+已知 CVE 快照对比,不执行持续监控
3 加密/混淆载荷深层解包 可检测 Base64 / eval / exec,但对多层嵌套加密(AES+Base64+zlib)或自定义混淆器可能漏检
4 语义级别隐蔽攻击 正则+关键词对明显注入有效;高度语义化诱导(多轮上下文污染)L1 可能遗漏,L2 也存在覆盖率上限
5 零日漏洞 基于已知攻击模式签名库,全新攻击向量存在盲区
6 多 Skill 组合攻击 只审单 Skill,不做跨 Skill 权限串联分析
7 非标准 Skill 结构 假定标准目录结构(SKILL.md+scripts+references),自定义结构覆盖率下降

原则:审查结果是对已知风险的自动化评估,不是安全担保。高风险场景(金融/医疗/政务)应结合人工复核。

[L2] 风险速查

编号 类型 一票否决?
R1 提示注入 是
R2 恶意代码执行 是
R3 凭证窃取 是
R4 依赖投毒 否
R5 数据外传 是
R6 权限提升 否
R7 持久化后门 是
R8 隐蔽指令 否(但必进 Layer 2)
R9 数据泄露与隐私违规 否
R10 有害输出与内容合规 否
R11 外部信息源投毒 否(但必进 Layer 2)
R12 智能体行为级漏洞 否(但必进 Layer 2)

命中任一"一票否决"项 → 直接裁定 🚫 恶意,不再计算总分。

[L2] 即时拒绝红线

见此即斩,无需走完整审查。命中任一条 → 直接裁定 🚫 恶意,不进入评分流程,与一票否决项同级。

# 红线 说明
1 向不明 URL 发起 curl/wget 检测外传通道,IP 直连加重
2 外发数据至外部服务器 webhook / POST / upload / notify 到非官方域名
3 索要凭证 / Token / API Key 任何 "请输入密钥" 或读取凭证文件的指令
4 无理由读取 ~/.ssh / ~/.aws / ~/.config 除非 Skill 声明用途且匹配任务,否则直接判恶
5 访问 MEMORY.md / USER.md / SOUL.md / IDENTITY.md 读取 Agent 身份记忆文件,典型隐私窃取
6 对任何内容执行 Base64 解码 解码 = 藏东西,99% 是恶意载荷
7 eval() / exec() 接受外部输入 动态执行未验证代码,直接开后门
8 修改工作区外的系统文件 /etc / C:\Windows / ~/ 等系统路径写操作
9 安装未声明的依赖包 pip install / npm install 无声明列表
10 网络调用使用 IP 而非域名 刻意隐藏目标身份
11 混淆代码(压缩/编码/精简) 有意阻碍人工审查
12 请求 sudo / root / 提权 任何权限提升尝试
13 触碰凭证文件 ~/.aws/credentials / ~/.kube/config / .env / .git-credentials
14 硬编码 Token / API Key / 密码 SKILL.md 或脚本中直接写入凭证明文
15 日志/缓存记录明文 PII 对 email/phone/ID card 等个人信息不做脱敏
16 生成暴力/违法/歧视性内容 Skill 描述中含诱导生成有害内容的指令
17 复述或索引受版权保护全文 要求 Agent "完整输出" 受版权保护作品

[L3] 反模式与常见陷阱

6 类高频陷阱一言总结。完整案例与反例见 references/error-handling.md。

# 陷阱 结论
1 把审查结果当安全担保 ✅ 只说明已知模式通过,不等同零风险
2 只审 SKILL.md 不审脚本 恶意代码常藏于辅助脚本,必须完整审查 scripts/
3 过度信任知名发布者 供应链攻击不挑品牌,一律执行 10 维溯源
4 忽略 WARN 项 WARN = 敏感操作+用户确认,攻击者一次社工即可突破
5 修复单项后不重走完整 L1 修复可能引入新问题,必须重新跑 54 项
6 只看总分不看扣分项 一票否决相关项扣分可能被加权稀释,应重点复查
常见疑问 答案
R8 误判? 通常复制粘贴带入了不可见 Unicode 字符,删段重写即可
误报怎么办? LLM + 正则双引擎交叉验证,记录行号和触发内容反馈
审查多久? L1 秒级 / L2 ~30s / L3 取决于依赖数量

[L3] 参考文件

🤖 AI 评测

这个工具的思路很专业,文档写得很详细,风险分类和评分规则都很清晰。但目前只有基础的静态扫描能用,深度的行为模拟和供应链检查还没真正实现。质量水平中等偏上,胜在设计完整,但实际功能还差一口气。适合先收藏关注,等后续功能完善后再使用。

📊 多维度评分

适应性5
规范性4.8
有效性4.3
可靠性4.4
可信度4.7

📁 包含文件 (24 个)

📄 QUICKSTART.md 4.7 KB
📄 README.md 8.1 KB
📄 REFERENCE.md 18.9 KB
📄 SKILL.md 12.4 KB
📄 core/__init__.py 38 B
📄 core/auditor.py 29.5 KB
📄 core/intel/__init__.py 62 B
📄 core/intel/updater.py 21.1 KB
📄 core/patterns.json 21.4 KB
📄 core/scorer.py 2.4 KB
📄 references/agent-skill-security-review.md 20.1 KB
📄 references/behavioral-emulation.md 5.5 KB
📄 references/capability-boundaries.md 2.7 KB
📄 references/error-handling.md 3.7 KB
📄 references/fix-strategies.md 4.9 KB
📄 references/paper-mapping.md 1 KB
📄 references/risk-taxonomy.md 4.7 KB
📄 references/roadmap.md 809 B
📄 references/scoring.md 3.2 KB
📄 references/static-audit.md 8.2 KB
📄 references/supply-chain.md 3.1 KB
📄 references/threat-intel-pipeline.md 8.8 KB
📄 references/trust-hierarchy.md 3.3 KB
📄 zhongkui.py 7.9 KB