Page 97 - 《软件学报》2026年第7期
P. 97
2782 软件学报 2026 年第 37 卷第 7 期
分支和标签引用), 导致开发者看到不一致的仓库状态, 最终将未测试代码合并到生产分支进行软件供应链攻击.
IDE 工具也是产业研发组织遭受攻击的重灾区, 例如 XcodeGhost 事件中 [60] , 攻击者发布含恶意配置的非官方
XCode 版本, 导致使用该工具构建的 iOS 应用在编译阶段自动植入后门. 由于后门应用获得合法签名并正常分发
至 App Store, 最终影响数百款应用和上亿终端用户. 此外, 现如今 AI Coding 已经深入企业研发实践中, 结合大模
型数据投毒的相关案例来看, 自动化代码生成的 IDE 插件以及智能体工具本身也可能被利用进行源码恶意篡改.
总体来看, 产业组织的源码保护机制并非固若金汤, 一旦攻击者通过代码管理平台的恶意利用获取代码提交
权限, 就可以篡改代码, 并在后续版本迭代中持续传播. 这也使其成为供应链攻击在产业 CI/CD 体系中实现注入
并向下游系统扩散的关键节点. 通过结合实证研究和生态案例可以看出, 源码提交不仅是开发与交付的重要环节,
更是整个产业软件供应链中潜在安全威胁落地与扩散的高风险点, 亟需在代码审计、依赖管理、提交策略和
CI/CD 安全防护中引入更严格的监控与验证机制.
4.2.2 构建污染
CI/CD 代码构建通过构建流程将包含漏洞或恶意逻辑的开源组件直接引入产业项目, 从而对交付物造成污
染. 除了这种直接引入的风险之外, 构建系统自身亦可能成为现代软件供应链攻击的关键载体, 这一风险被称为
CI/CD 流水线构建污染. 其核心特征在于: 攻击者无需修改源代码, 即可借助构建系统的高度自动化特性和默认信
任机制, 隐蔽地植入漏洞或恶意逻辑, 使构建产物本身成为投毒媒介, 进而实现上游渗透与下游大规模传播.
CI/CD 构建系统污染通常通过依赖解析机制、生命周期钩子脚本及构建缓存等路径形成复杂的联动攻击链, 这使
其在攻击方式和影响范围上, 与传统 CI/CD 代码构建风险显著不同.
CI/CD 流水线构建污染的典型路径, 通常始于恶意依赖包的制作与发布. 在依赖解析环节, 攻击者常利用依赖
混淆和命名仿冒等技术, 诱导构建工具拉取其控制的恶意组件, 进而引发软件供应链信任危机 [108–110] . 例如, 攻击
者可在公共仓库 (如 npm、PyPI) 注册与企业私有包同名但版本号更高的组件, 使构建系统在默认优先公共源或
高版本策略下下载并执行该恶意依赖. Birsan [111] 于 2021 年首次系统性地验证了此类攻击路径, 成功入侵多家头部
科技企业, 引发行业广泛关注. 同时, 命名仿冒攻击在实证研究中被广泛证实: 攻击者注册拼写近似的组件名 (如
requests 伪装为 request), 诱导开发者手动误拼或脚本自动拉取. 据 Ohm 等人 [112] 研究, 超过 61% 的恶意包采用此
类命名诱导策略. Truong [113] 进一步指出, npm 与 PyPI 在此类攻击中呈现出显著高敏感性.
一旦恶意依赖成功注入交付物构建流程, 攻击者可利用生命周期钩子脚本 (如 preinstall、postinstall、prepare)
在构建阶段自动执行任意命令, 实现初始入侵、凭据窃取、远程通信建立或后门模块写入等操作. 例如, 在
Codecov 构建污染事件中 [71] , 攻击者通过篡改上传脚本, 在正常构建流程下持续窃取环境变量与认证令牌, 且该行
为在数月内未被检测. 此外, 构建工具插件或脚本加载模块亦可用于注入恶意逻辑, 借助构建节点的默认信任路
径, 在未显式声明依赖的前提下完成远程控制代码的加载与执行.
构建缓存机制进一步放大了污染的隐蔽性与持久性. 部分平台在拉取缓存时缺乏完整性校验与签名验证, 使
得被篡改的构建缓存能够在后续构建中被自动还原并执行, 即便主项目已启用依赖版本锁定机制, 也难以彻底阻
断攻击链条. 在针对 GitHub Actions 构建缓存的投毒攻击中, 研究发现攻击者可以通过缓存服务的运行时令牌或
键碰撞机制, 将恶意逻辑长期残留于构建环境, 并在 CI/CD 的周期性任务中反复激活, 形成持久化的后门风险 [114–116] .
为了提升攻击隐蔽性, 攻击者常辅以多种规避机制: 在载荷隐写层面, 通过脚本伪装、 Base64 编码或图片隐写隐
藏恶意逻辑; 在触发逻辑层面, 通过构建环境识别或编译参数判断限制执行场景, 仅在特定平台或身份下激活载荷;
在信任链滥用层面, 通过将恶意组件嵌入构建工具默认插件或中间层依赖路径, 绕过签名验证与 SBOM 审计追踪.
综上所述, CI/CD 流水线构建污染已演化为现代软件供应链攻击中极具风险的环节, 其核心特点在于: 不依赖
显式源码篡改, 而是利用构建系统默认信任与自动化执行, 实现隐蔽植入与远程操控, 从而影响整个制品交付链路.
针对该类威胁, 业界亟需建立集成依赖源白名单与私有源优先策略、SBOM 强制生成与验证、构建产物签名追溯、
生命周期钩子审计及构建缓存隔离等多维度防御体系, 以保障软件供应链从源头到产物的全链条可信性与完整性.
4.2.3 CI/CD 流水线工具链攻击
在现代软件工程实践中, CI/CD 工具链作为连接源代码、依赖管理、制品构建与部署发布的核心基础设施,

