SuperAPI AI 工具集

supply-chain-risk-auditor

安全与审计

查看项目

更新于 10-16 02:21

技能介绍

用途

Supply Chain Risk Auditor 用于系统性地评估项目的所有依赖,找出具有较高被利用或被接管风险的依赖项,并生成一份风险总结报告。它适用于在安全审计前评估依赖风险、评估项目的供应链攻击面、识别缺乏维护或存在风险的依赖,以及为供应链相关的安全工作做前期范围界定。

主要能力

该技能按照一组明确的风险标准逐项评估依赖,若依赖满足其中任一风险因素,则将其标记为高风险:

  • 单一维护者或个人团队:项目主要由单个个人或少数个人维护,而非由 Linux Foundation 等组织或 Microsoft 等公司管理。若维护者是极高产且知名的贡献者,风险会降低但不会消除;若维护者匿名、GitHub 身份难以关联真实身份,风险显著更高。
  • 缺乏维护:项目长期无更新,或已明确弃用/归档;维护者可能在 README 或 issue 中说明项目不活跃、人手不足或寻求新维护者;仓库可能存在大量未回应的 bug 或安全问题 issue(功能请求类 issue 不计入)。
  • 流行度低:相比目标项目使用的其他依赖,GitHub 星标数和/或下载量相对较低。
  • 高风险功能:项目实现了天然易被利用的功能,包括 FFI、反序列化或第三方代码执行。
  • 存在历史 CVE:项目有高或严重级别的 CVE,尤其相对于其流行度和复杂度数量较多时。
  • 缺少安全联系方式:项目未在 .github/SECURITY.md、CONTRIBUTING.md、README.md 或项目网站上列出安全联系人。

使用方式

前置条件:使用前需确保 gh 工具可用,若未找到会要求用户安装。

初始设置:

  1. 在工作区创建 .supply-chain-risk-auditor 目录。
  2. 基于该技能目录中的 resources/results-template.md 创建 results.md 报告文件。
  3. 查找所有直接依赖的 git 仓库。
  4. 将 git 仓库条目规范化为 URL,若仅有 name/project 格式,则前置 GitHub URL。

依赖审计: 对初始设置中识别出的每个依赖仓库,按上述风险标准评估。对需要计数的标准(如未解决 GitHub issue 数),使用 gh 工具查询准确数据,引用的数字(星标数、issue 数等)必须准确,可用 ~ 表示近似,如“~4000 stars”。若依赖满足任一风险标准,将其加入 results.md 的高风险依赖表,并清楚注明标记原因。为简洁起见,跳过低风险依赖,只记录至少有一个风险因素的依赖。报告中不出现某依赖即表示其低风险或无风险。

审计后处理:

  1. 为高风险依赖表中的每个依赖填写 Suggested Alternative 字段,给出功能相同或相似但更流行、维护更好的替代依赖,优先选择直接后继或可直接替换的替代品,并附简短理由。
  2. 在 Counts by Risk Factor 表中记录各风险因素类别的总数,并在 Executive Summary 部分总结整体安全态势。
  3. 在 Recommendations 部分总结建议。

注意:不要添加 resources/results-template.md 之外的章节。

适用场景

  • 在安全审计前评估依赖风险。
  • 评估项目的供应链攻击面。
  • 识别缺乏维护或存在风险的依赖。
  • 为供应链相关关注点做前期范围界定。

限制

以下场景不适用:

  • 主动漏洞扫描(应使用 npm audit、pip-audit 等专用工具)。
  • 运行时依赖分析。
  • 许可证合规审计。