Page 91 - 《软件学报》2026年第7期
P. 91

2776                                                       软件学报  2026  年第  37  卷第  7  期


                    在开源共建威胁产生阶段, 攻击者通常以开源组件的源代码与构建流程为主要攻击对象, 依托开源生态开放
                 性、参与门槛低、信任机制弱等结构性特征, 采用多种手段发起攻击, 包括但不限于伪造身份参与项目贡献、劫
                 持维护者账号、污染上游依赖等方式, 以实现在源头层面对软件进行“供应链投毒”. 其中, 社会工程攻击是典型路
                 径之一, 攻击者通过长期伪装为普通开发者, 逐步获取代码提交权限, 最终在关键构建流程中植入恶意逻辑, 形成
                 隐蔽的源码污染与构建污染双重风险. 此类攻击具备高度隐蔽性和策略性, 难以通过传统的代码审查或静态分析
                 检测. 以  XZ Utils 投毒事件  [73] 为例, 攻击者在多年参与项目后成功控制构建脚本, 将恶意代码嵌入预编译目标中.
                 该逻辑在特定系统环境下可劫持           OpenSSH 的认证流程, 实现在无需授权的前提下远程执行指令. 该事件揭示出开
                 源组件引入过程中存在的身份信任失衡、贡献流程透明性不足以及审查机制脆弱等系统性问题, 展现了源码污染
                 型攻击在开源供应链中“低频触发、高危害、强隐蔽”的典型特征, 成为近年来最具代表性的开源供应链投毒案例
                 之一.
                    在产业闭源研发攻击演化传播阶段, 软件供应链面临的传播风险不仅来源于开发者无意引入的脆弱组件, 也
                 包括攻击者主动投放的恶意依赖. 主要的攻击对象是                 CI/CD  流水线, 攻击者通过篡改流水线产物, 构建脚本注入
                 和签名伪造等方式实现软件供应链攻击. 2021 年, 代码覆盖率分析工具平台                  Codecov 爆发供应链攻击事件, 成为      CI/CD
                 环境安全薄弱点被利用的典型案例. 攻击者在未经授权的情况下入侵了                       Codecov  的 Docker 镜像构建流程, 并篡改
                 了其  BashUploader 脚本——这是众多开发团队在         CI 流程中广泛使用的自动上传工具. 篡改后的脚本将环境变量
                 (包括访问令牌、API 密钥、部署凭证等) 偷偷回传至攻击者控制的远程服务器, 持续隐蔽运行数月之久. 这些事
                 件反映出当前依赖管理体系在命名机制、信任验证、版本控制与生态管理等方面的脆弱性, 表明企业亟需建立覆
                 盖依赖溯源、SBOM      生成、包签名校验、漏洞检测与行为分析在内的全流程安全防护机制, 以有效阻断供应链威
                 胁在 CI/CD 体系中的持续传播与放大.
                    在成品使用发作阶段, 攻击者的主要目标是激活此前在上游组件中预埋的恶意逻辑, 实现在终端系统中的数
                 据窃取、远程控制或持久化后门植入等攻击行为. 该阶段的攻击通常具备高度隐蔽性与条件触发性, 依赖于运行
                 环境的特定配置、权限状态、执行时机等上下文信息作为触发门槛, 常通过多阶段加载、动态解包、远程指令联
                 动与反调试检测等手段规避安全检测. 由于大多数下游环境缺乏对安装脚本、部署流程与运行行为的强审计和隔
                 离控制, 攻击逻辑往往能在目标系统中悄然完成执行链条. 以                   LNMP  一键部署安装包事件为例        [75] , 攻击者在安装
                 脚本中嵌入伪装为图片文件的压缩包, 借助多层 shell 脚本构造合法执行路径, 并在检测到特定                         Linux  系统版本和
                 非调试环境后, 动态下载远控脚本, 建立           C2  通道, 实现对目标服务器的持续控制. 该类攻击凸显出企业在终端部
                 署过程中存在脚本信任模型薄弱、行为检测缺失与环境隔离不足等问题, 必须通过最小权限执行、运行时行为监
                 控、脚本源验证与部署白名单等机制构建覆盖终端环节的供应链防护能力, 以有效阻断威胁在实际环境中的触发
                 与扩散.
                    总之, 在以流程合规保障软件研发安全的隐性共识制约下, 研发范式与工具的每一次效能跃迁的“自我强化”,
                 虽然在表面上缩短了研发周期, 加快了需求到市场的交付时间. 这个背后既有管理方法的变革, 更是自动化流水线
                 工具, 云平台使用所带来的红利. 但是, 开源软件的大量使用, 为产业软件带来更多的安全隐患. 虽然开源社区有大
                 量开发者极力发现漏洞并发布更新. 但实际上, 每一次的漏洞修复对于代码庞大, 项目众多的产业组织来说都要付
                 出极大的代价. 此外开源社区的修复, 并不能完全清除产业传播过程中的污染组件, 截至 2025 年                         8  月, 事发  1  年后
                 Docker Hub 中仍含有数十个    XZ  后门的  Linux  镜像  [76] , 稍有不慎在问题修复过程中还会引入新的漏洞. 因此, 攻击
                 者可以长期渗透开发者或伪装成合法贡献, 以“自我强化”相同的路径规避安全检测、注入恶意逻辑                                [77,78] . 通过污
                 染广泛依赖的第三方组件         (含恶意包/有漏洞包) 或劫持核心         CI/CD  工具与服务, 污染自动化构建流水线; 受污染的
                 产物在后续的工具链驱动的再分发过程中, 将感染指数级扩散至下游产业用户                          [79,80] . 可以看到效能跃迁都天然伴
                 随攻击手段合规和破坏性放大的副作用.
                    本文以产业研发视角提出“自我强化”与“自我反噬”并生的软件供应链安全内生矛盾, 攻击者正是利用了这一
                 内生矛盾促成复杂的软件供应链攻击. 产业研发视角下开源软件供应链安全的内生矛盾具备以下特点.
                    ● 矛盾触发的全流程覆盖性. 攻击者将目标扩展至研发全生命周期的核心资产, 流程的赋能者同时可能是恶
   86   87   88   89   90   91   92   93   94   95   96