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

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


                 数据保护、工具集成及架构适应性等关键方面                 (详见表  2). 实践中, 现代软件对第三方组件的深度依赖导致依赖
                 关系高度复杂化, 漏洞修复过程极易引入新漏洞                (ATFCT-01), 尤其在缺乏自动化兼容性验证体系时, 此类连锁风
                 险难以根除. 频繁的代码部署与基础设施更迭动态扩展了系统攻击面                       (ATFCT-02), 显著增加了攻击者可利用的初
                 始渗透点. 开发过程中跨服务数据流的细粒度追踪不足                  (ATFCT-03) 带来隐私泄露与滥用风险, 传统工具对此类
                 动态交互监管能力有限. 传统安全工具与现代 DevOps 流水线兼容性不足                    (ATFCT-04), 难以适应快速迭代与自动
                 化构建流程, 常导致检测延迟或误报频发, 削弱防护时效性. 现有工具对现代架构                         (如微服务、无服务器) 的完整
                 数据流监控支持有限       (ATFCT-05), 其分散的数据路径使传统检测技术失效. 云原生环境下容器与微服务的动态性
                 及短生命周期特性加剧了漏洞管理难度              (ATFCT-06), 尤其在  CI/CD  场景中, 组件频繁重建与销毁导致安全策略失
                 效, 易遗留未修补漏洞或引入恶意镜像. 分布式系统与云原生架构的快速发展大幅提升了整体安全管理复杂度
                 (ATFCT-07), 其高度分布、灵活部署及动态依赖的特性对安全工具的实时性、可扩展性及跨平台兼容性构成严
                 峻挑战, 致使统一配置管理及策略同步异常困难.
                    总之, 虽然研发管理过程和研发工具已经持续进化, 研发效能已经大幅提升. 但在市场价值交付优先的驱动
                 下, 以及面对产业软件不断迭代下待解决的技术栈时, 研发团队往往面临巨大的版本交付压力. 在此背景下, 每一
                 次的发版都是在时间、功能、安全性等问题之间的妥协. 功能测试与安全测试一般重点围绕新功能开展, 而原有
                 功能通过回归测试完成, 只要达到企业设定的安全质量阈值就可以发布. 此外, 系统上线后的容器动态伸缩与扩缩
                 容使得传统的研发阶段的“动”和交付运维阶段的“稳”在当下变得界限模糊, 测试团队无法完全模拟系统上线后的
                 动态行为, 造成了诸多的测试逃逸. 虽然流程合规无可厚非, 但在当下软件供应链攻击频发的背景下, 产业界并没
                 有在安全管理方面形成与时代相匹配的新共识和新手段, 研发组织不得不在有限时间内、既定安全流程和平台上
                 进行有限的测试来自证系统安全, 形成了以流程合规保障软件研发安全的研发管理隐性共识. 造成了当下安全治
                 理失效, 软件供应链攻击频发的窘境.
                  3.3   产业研发视角下开源软件供应链安全内生矛盾
                    图  2  上半部分刻画了当前产业软件研发的主流范式: 以               DevOps 为核心的高度自动化、集成化的研发模式.
                 该模式以实现开发       (Dev) 与运维  (Ops) 的深度融合为宗旨, 有机整合敏捷开发理念             (如冲刺迭代、产品备忘录与
                 回顾) 与  CI/CD  工程实践, 构建了覆盖编码、构建、测试、部署及运维的全生命周期闭环.
                    产业实践以敏捷迭代机制          (“规划-开发-交付-迭代”) 驱动用户需求导向的快速响应与持续优化. 高度自动化
                 的  CI/CD  流水线构成此体系的技术基石: 在开发阶段, 持续集成平台实现编码、构建并运行构建验证测试                             (build
                 verification test, BVT) 活动的高效联动; 在交付阶段, 持续交付流程       (涵盖预发环境部署、系统验证测试            (system
                 verification test, SVT)、生产环境部署及冒烟测试) 保障构建产物的可靠交付与快速反馈. 同时, DevOps、云原生、
                 微服务、 基础设施即代码         (infrastructure as code, IaC) 等范式把“构建-测试-部署-监控”的闭环压缩到分钟级, 开发
                 者通过自动化流水线、共享仓库、自动化配置, 获得了“一次编写、全球分发”“一键回滚、秒级扩容”的研发超能力.
                    然而, 研发体系与平台的高度的自动化、开放性将“攻击载荷的构建-投递-持久化-扩散”的研发攻击链路压缩
                 到同等量级, 一次成功的账户接管即可通过              CI/CD  令牌横向移动, 在数分钟内把恶意代码注入数千个               Pod  中. 依
                 赖管理的自动化让恶意包一旦进入镜像中, 就被镜像仓库的全球                      CDN  迅速复制. IaC  模板被篡改后, 所有新创建
                 的基础设施天生带后门. 最终在生产环境中隐蔽触发, 形成典型的软件供应链攻击路径. 图                           2  下半部分系统建模了
                 此类攻击在    DevOps 流程中的威胁渗透、扩散与执行过程, 抽象为开源共建威胁产生、产业闭源研发攻击演化传
                 播、成品使用攻击发作这         3  个阶段, 贯穿开源生态、产业生态至用户生态. 由此可见, 在现代产业软件研发范式
                 下, 软件供应链安全已超越传统的组件漏洞范畴, 演变为贯穿整个研发运维协作流程的系统性风险.
                    因此, 在产业研发范式下, 软件供应链的多层异构架构                 (涵盖开源共建生态、产业闭源           CI/CD  流水线及成品
                 下游终端用户) 天然滋生出海量攻击向量. 攻击者可依托上游依赖污染                     (如恶意代码注入)、中游流程劫持           (如构建
                 环境篡改) 或下游交付链渗透         (如签名滥用) 等多重路径实施入侵, 导致开源软件供应链攻击在实际场景中呈现出
                 显著的路径多样性与深度隐蔽性. 本文系统性地梳理并分析了近年来行业中具有代表性的供应链安全事件, 结合
   84   85   86   87   88   89   90   91   92   93   94