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

胡帅 等: 产业研发视角下的开源软件供应链攻击问题研究                                                     2791


                 入  DevOps 方法论的软件开发模式, 强调开发、运维与安全团队在软件生命周期各阶段                        (包括规划、编码、测试、
                 部署及运维) 中保持紧密协作, 以确保安全性成为整个流程的核心约束                     [163–166] . 作为开发、安全与运维高度融合的
                 理念, DevSecOps 正逐渐成为产业界防护开源软件供应链攻击的关键策略, 其本质在于打破传统开发流程中安全
                 与业务隔离的格局, 通过从开发起点即深度嵌入安全控制, 并在流水线全周期中持续监控和校验, 实现安全与敏捷
                 交付的协同优化. 例如, Kumar 等人       [165] 提出的基于云开源软件自动化开发安全运维            (automated DevSecOps using
                 open-source software over cloud, ADOC) 概念模型通过自动化机制实现了    DevSecOps 的持续安全性与敏捷性, 而
                 Haverinen  等人  [167] 的 Cyberismo 方案采用开放信息模型与“安全即代码”范式, 实现了 DevSecOps 流程中的网络安
                 全合规自动化管理. 这类方法不仅提升软件交付效率, 也显著增强在复杂供应链环境中对威胁传播阶段的响应能
                 力, 从而为产业界提供系统化的全生命周期安全保障, 同时兼顾敏捷研发与持续交付的业务需求.
                    ● 安全需求工程. 在快速迭代的敏捷研发环境中, 尽管小步快跑的节奏加速了产品从需求到市场的周期, 但安
                 全实践与敏捷实践之间存在的潜在不一致性不容忽视                   [168] . 特别是在客户未明确提出安全需求时, 研发团队往往容
                 易忽视系统的整体安全性, 进而在设计阶段埋下隐患. 因此, 产业界已普遍认识到, 在研发早期阶段加强安全需求
                 工程的培训与实践至关重要, 通过“安全左移”策略将安全性前置, 已逐渐成为行业共识                         [169] .
                    为系统性地应对这一挑战, 产业界逐渐重视安全需求工程                   (security requirements engineering, SRE) 及其配套的
                 安全策略. 基于 SRE, 可开展安全需求提取与分析           (security requirements elicitation and analysis, SREA) 等核心工作  [2,169,170] .
                 在具体执行过程中, 可以借助 STORE 框架识别软件供应链中的攻击点、信任点、推测点与依赖点, 并在此基础
                 上开展安全风险评估、安全需求建模与验证, 最终将抽象的安全需求转化为可操作的需求文档                               [170,171] .
                    ● 持续集成阶段     (CI) 防护. 在 DevSecOps 持续集成阶段, 构建与测试环节的安全防护至关重要. 在构建阶段,
                 产业界要求对软件包进行完整性和来源校验, 确保未被篡改或植入恶意代码, 例如通过数字签名验证保证软件包
                 来源的可靠性     [165] . 为应对开源组件  (OSS) 潜在的供应链风险, 软件组成分析工具可扫描项目中使用的依赖库, 检
                 测已知漏洞和许可证合规性问题, 从而降低供应链攻击可能性. 同时, 通过建立                       SBOM, 能够精确掌握细粒度依赖
                 关系, 并将扫描分析融入自动化 CI 流程, 提高软件依赖的可视化、可追溯性与合规性                        [120,172] . 针对二进制依赖的安
                 全威胁, 产业界重点关注恶意二进制插入和代码混淆问题. Barr-Smith                等人  [173] 提出基于版本差异检测的方法识别
                 供应链中恶意二进制文件, 而         Greco  等人  [174] 与  Jiang  等人  [175] 则通过可解释人工智能  (XAI) 和函数级嵌入技术提
                 升恶意代码检测的准确性. 此外, 为防御恶意源码攻击, 可重复构建                   (reproducible build) 方法确保从源代码到最终
                 发布的二进制包可独立验证, 任何未经授权的修改均可被发现                    [176] . 在容器镜像构建过程中, 通过    SBOM  对镜像内
                 部软件包进行物料分析, 并结合多阶段安全检查与动态行为分析, 可防止已知漏洞镜像被发布或重用, 从而提升容
                 器安全性   [177] .
                    在测试阶段, 动态应用安全测试          (dynamic application security testing, DAST) 与渗透测试工具用于模拟真实攻
                 击场景, 发现运行时安全漏洞. 使用工具如 Burp Suite, 可对         Web  应用、API 与网络接口进行漏洞扫描. Rangnau        等
                 人  [178] 通过案例研究展示了在    CI/CD  流水线中集成 DAST    工具的实践方法, 从而在快速迭代的开发周期中有效应
                 对安全挑战. 此外, 自动化测试和持续监控机制可与构建阶段的                    SCA、SBOM 和可重复构建策略结合, 实现从源
                 码到生产环境的端到端安全保障.
                    总体而言, DevSecOps 持续集成阶段防护机制通过构建、依赖管理、二进制检测、容器安全、动态安全测试
                 等多维手段形成闭环, 既保证了软件在流水线各环节的完整性与安全性, 也为产业界提供了一套可量化、可追溯
                 且可持续的防护策略, 显著降低了供应链攻击在               CI/CD  流程中的传播风险     [165,172–178] .
                    ● CD  防护. 在  CD  阶段, 软件从开发测试环境过渡至生产运行环境, 其安全性直接关系到系统的完整性与可
                 信度. 由于部署高度依赖自动化脚本、配置文件、容器镜像及其他构建产物, 一旦流水线被篡改, 可能绕过前序安
                 全检测, 将恶意代码、后门逻辑或配置污染注入正式系统. Bass 等人                  [179] 指出, 通过将复杂、不可信的部署流水线
                 拆解为多个小型、权限受限、功能独立的可信单元, 并严格限制网络访问与资源范围, 可显著降低攻击面并提升
                 可验证性, 从而增强系统对渗透行为的可观测性与控制能力.
   101   102   103   104   105   106   107   108   109   110   111