用途:针对软件供应链开展安全测试,应对依赖混淆、CI/CD 流水线攻击、锁文件完整性与构建产物验证等风险。资料称供应链攻击是增长最快的威胁类别,Shannon 明确排除“存在漏洞的第三方库”,MITRE ATT&CK T1195 在现有技能中无覆盖。
前置条件:需具备含供应链测试范围的书面授权、用于依赖与 CI/CD 分析的仓库访问权、确认私有注册表使用情况的注册表认知,以及白盒场景下的构建系统访问权。环境需准备 Snyk CLI、npm audit / pip-audit、Trivy、socket.dev。
核心工作流:依赖审计(检查 package.json/requirements.txt/go.mod 中的已知漏洞版本、无人维护包、可疑依赖);依赖混淆(检查内部包名能否在 npm、PyPI 等公共注册表被抢注,测试命名空间抢注);CI/CD 流水线安全(审查 GitHub Actions/GitLab CI 中经 PR 标题/分支名注入、日志泄露密钥、未固定版本的 action、runner 逃逸);构建产物完整性(验证容器/包签名、检查未签名产物、测试镜像标签可变性);锁文件完整性(检测锁文件注入如被篡改的 resolved URL,校验锁文件与清单一致性);安装脚本滥用(识别带 install 钩子执行任意代码的包,测试仿冒包候选);SBOM 生成(生成软件物料清单并用 CVE 关联映射传递依赖风险)。
工具分类:依赖扫描用 Snyk、npm audit、pip-audit 检测已知 CVE;容器扫描用 Trivy、Grype 分析镜像漏洞;依赖风险用 socket.dev、Semgrep 做行为风险分析;CI/CD 审查用自定义脚本、actionlint 审计流水线;SBOM 用 syft、cyclonedx-cli 生成物料清单。
参考文件:references/tools.md 提供工具函数签名与参数,references/workflows.md 提供攻击模式定义与测试向量。
限制:未提供具体定价、平台支持范围与效果数据;使用前须获得书面授权,且需要仓库、注册表和构建系统相应访问权限。