用途:该技能提供软件供应链攻击的方法论,核心思路是不直接攻击目标,而是攻击目标信任的上游依赖与构建流程。适用于目标使用 npm、PyPI、Maven、NuGet、Go modules、RubyGems 或容器镜像等包管理器,拥有私有仓库,或使用 CI/CD Pipeline 的场景。
主要能力:
- 攻击面识别:判断目标使用的包管理器与是否存在私有仓库,据此选择 Dependency Confusion 或 Typosquatting 等路径。
- Dependency Confusion:通过目标网站 JS、泄露的依赖文件、DNS 探测、错误信息等方式发现私有包名,再向公共源发布高版本同名包,等待目标 CI/CD 构建时拉取。资料给出 npm 示例,并列出 npm、pip、Maven、NuGet 的触发条件与防御差异。
- Typosquatting:生成目标包的相似名称(删字符、换相邻字符、加常见后缀),并检查公共源上哪些名称未被注册。
- CI/CD Pipeline 攻击:覆盖代码仓库(PR 注入、分支保护绕过、Webhook 劫持)、构建环境(脚本注入、环境变量窃取、缓存投毒、Runner 逃逸)、制品仓库(镜像替换、签名绕过、版本抢注)与部署环节(密钥窃取、配置注入)。资料给出 GitHub Actions 与 GitLab CI/CD 的示例。
- 恶意包载荷设计:列出 npm、pip、Maven、Go 的安装时回调方式。
使用方式:资料提供具体命令与配置片段,如从目标网站提取包名的 curl 与 grep 命令、DNS 探测的 dig 命令、生成相似包名的 Python 脚本、检查名称是否可注册的 npm view 与 PyPI JSON 接口,以及 npm publish 发布流程。深入内容指向 references/dependency-confusion.md 与 references/cicd-attack.md。
适用场景与限制:该技能面向授权红队测试与安全研究。资料明确强调法律风险极高,未授权的 Dependency Confusion 可能构成犯罪,Typosquatting 公共包会影响非目标用户;必须获得明确书面授权,回调仅收集最小信息(包名与主机名),包描述中注明安全测试,测试后立即撤下恶意包,不窃取实际数据、不部署持久化,并及时联系目标安全团队报告。
其他事实:该技能来源为 wgpsec/aboutsecurity,官方文本暂未提供。