关于 pentest-supply-chain
用于评估依赖、CI/CD 流水线和构建产物中供应链风险的安全测试技能,提供授权审查流程及相关扫描分析工具。
主要功能
- 01依赖与软件包风险审查
- 02公共仓库依赖混淆检查
- 03CI/CD 流水线安全审查
- 04产物与锁文件完整性检查
- 05安装钩子与仿冒包分析
- 06生成 SBOM 并关联 CVE
适用场景
- 01发布前审计依赖
- 02检查 CI/CD 工作流中的注入与机密泄露
- 03核查软件包和容器产物完整性
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jd-opensource/ joysafeter --skill pentest-supply-chain安装后在 Claude Code 中输入/pentest-supply-chain确认已加载。
附带文件references/tools.mdreferences/workflows.md
详细介绍
渗透测试供应链
目的
供应链攻击(SolarWinds、Log4Shell、xz-utils)是增长最快的威胁类别。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,以及运行器逃逸等问题。
- 构建产物完整性:验证容器/软件包签名,检查是否存在未签名的产物,测试镜像标签是否可变。
- 锁定文件完整性:检测锁定文件注入(被篡改的 resolved URL),验证锁定文件与清单的一致性。
- 安装脚本滥用:识别包含可执行任意代码的安装钩子的软件包,测试可能遭遇拼写仿冒的软件包。
- 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- 攻击模式定义和测试向量
评论
支持 Markdown