玄甲 (xuanjia-supply-chain-security) · 代码供应链安全审计
一、定位
玄甲 是代码依赖供应链安全审计 skill。它把"依赖安全"从散落的检查清单,收敛为一套
可复现、可分级、可交付 的审计工作流,重点解决三类高频风险:
- 依赖漏洞:直接/传递依赖中的已知 CVE、GHSA,按可达性与影响面分级,不报"稻草人"漏洞。
- 许可证合规:依赖的 License 冲突(GPL/AGPL 传染性、商业闭源不可用),防止上架/交付踩坑。
- 密钥与敏感信息:源码与依赖中硬编码的密钥、Token、私钥、内网地址。
面向强合规行业(金融/保险等保 2.0、信创、供应链安全审查),产出可直接归档的审计证据。
二、何时使用
用户提到以下任一场景时触发:
- 供应链安全 / 依赖审计 / 依赖漏洞扫描 / SBOM / 软件物料清单
- 许可证合规 / License 冲突 / GPL 传染 / 开源合规
- Secret 扫描 / 密钥泄露 / 硬编码密码 / Token 暴露
- 第三方组件安全 / 依赖 CVE / 高危漏洞修复
- 等保测评 / 信创适配 / 供应链安全审查 / 交付前安全检查
三、前置信息(缺失时先问)
| 输入 | 说明 | 缺失时 |
|---|---|---|
| 项目路径 | 待审计代码仓库根目录 | 问一个阻塞性问题 |
| 技术栈 | 包管理器(npm/pnpm/yarn/maven/gradle/pip/go mod/cargo) | 自动探测,探测失败再问 |
| 审计口径 | 仅漏洞 / 漏洞+许可证 / 全量(含 secret) | 默认全量 |
| 行业合规基线 | 等保/信创/某行业标准(可选) | 默认通用 OWASP Top 10 + 供应链 |
四、工作流(agent 执行)
步骤 1 盘点依赖树 : 识别包管理器,生成完整依赖树(含传递依赖)。
npm ls --all / pnpm why / mvn dependency:tree / pip freeze / go mod graph
产出 deps.txt(直接依赖 + 传递依赖 + 版本)。
步骤 2 生成 SBOM : 用标准格式生成软件物料清单,优先 CycloneDX / SPDX。
可借助 syft / cyclonedx-cli / trivy,缺工具时降级为手工清单。
产出 sbom.json(或 sbom.xml)。
步骤 3 漏洞扫描 : 逐依赖查 CVE/GHSA(NVD、GitHub Advisory、OSV),
标注 CVSS 评分、是否可达(reachable)、是否有已修复版本。
产出 vulns.json:{dep, version, cve, cvss, fixed_in, reachable, note}。
步骤 4 许可证审计 : 解析每个依赖的 License,标记冲突与传染性(GPL/AGPL/SSPL)。
产出 licenses.json:{dep, license, risk, reason}。
步骤 5 Secret 扫描: 对源码与锁文件跑 secret 检测(gitleaks / trufflehog / 正则兜底),
排除测试 fixture 误报,产出 secrets.json。
步骤 6 分级与修复 : 按「可达性 × CVSS × 业务暴露面」打 高危/中危/低危,
给出每个高危项的修复动作(升级版本 / 换依赖 / 加缓解措施)。
步骤 7 输出报告 : 生成 Markdown 审计报告 + CSV 索引,见下方"输出格式"。
五、风险分级规则(必守)
| 等级 | 判据 | 处置 |
|---|---|---|
| 高危 | CVSS≥9.0 且可达,或含密钥泄露、GPL 传染入闭源交付 | 立即升级/替换/阻断发布 |
| 中危 | CVSS 7.0–8.9,或不可达但广泛使用 | 排期修复,记录缓解措施 |
| 低危 | CVSS<7.0,或仅提示性许可证风险 | 纳入观察,归档 |
- 禁止报"稻草人"漏洞:只在依赖真实处于依赖树、且(尽力)判断可达时才升级为中高危。
- 禁止凭版本号臆断:CVE 是否修复须查官方 Advisory 的
fixed_in版本,缺证据标unknown。
六、质量门控(Quality Bar)
- 每个高危项必须给出「升级到哪一版」或「替换成哪个依赖」的具体动作,不写"建议修复"空话。
- 许可证结论必须区分「传染性 GPL/AGPL」「弱 Copyleft」「宽松许可」,并落到"能否闭源交付"。
- Secret 命中须人工复核,剔除 test/fixture/mock 误报后再归档。
- 报告须含审计时间戳、扫描工具与版本、审计口径,保证可复现。
七、输出格式
Markdown 报告结构固定如下:
# 供应链安全审计报告
审计对象 / 审计时间 / 审计口径 / 工具与版本
## 依赖总览(直接 N 项,传递 M 项,高危 X 项)
## 高危漏洞(表格:组件/版本/CVE/CVSS/可达性/修复版本/动作)
## 许可证冲突(表格:组件/License/风险/处置)
## 密钥与敏感信息(表格:位置/类型/处置,已剔除误报)
## 修复优先级清单(按 高危→中危→低危 排序)
## 附:SBOM 与证据索引
八、目录
references/owasp-supply-chain.md— OWASP 供应链安全风险清单(SCA/依赖混淆/恶意包)references/china-compliance.md— 等保 2.0 / 信创 / 供应链安全审查要点references/license-guide.md— 常见开源 License 风险分级速查表
九、免责声明
本 skill 输出的审计结果基于公开漏洞库与静态扫描,不构成安全认证或合规背书。
涉及合规判定,以持证安全机构 / 法务意见为准。