左移安全:通过敏捷和DevSecOps优化软件交付
现代企业以技术为驱动,以客户为中心。他们将软件视为提升业务能力的关键助力,以在市场上获得竞争优势。传统软件开发主要关注功能需求,以确保最终产品满足业务需求。高质量软件还包括非功能性要求(NFR),如安全性、可靠性、性能、可用性、可重用性和合规性。
敏捷开发方法论(如Scrum)的迭代特性允许更短的开发周期,同时确保软件交付兼具速度和质量。DevSecOps通过将安全控制措施嵌入到持续集成/持续交付(CI/CD)工作流中,帮助实现这一方法的运作。将敏捷方法论与DevSecOps工具和实践整合,使团队更有能力更快地交付业务能力,同时保持所需的质量和安全标准。
尽管在安全开发实践方面取得了进展,但在软件开发的初期阶段,安全往往仍然被置于较低的优先级 ,这导致在软件开发生命周期的后期阶段漏洞增加。DevOps 实践如测试自动化和部署流水线显著提高了产品的可靠性和可维护性,但也在维护安全性方面带来了新的挑战。应对这些挑战需要技术和流程上的双重变革。随着企业软件交付模式的不断演进,在 DevSecOps 中采用左移安全策略,对于构建具有韧性、安全且可扩展的系统至关重要。
左移安全策略鼓励团队在软件开发生命周期的早期阶段识别漏洞。这一主动策略依赖自动化的 DevSecOps 工具和持续集成流程,有助于提前发现和修复安全风险。DevSecOps 实践在 CI/CD 流水线中集成了工具,通过使用静态应用安全测试(SAST)、动态应用安全测试(DAST)和软件成分分析(SCA)在早期进行安全分析。这提高了软件的可靠性,降低了生产后返工成本,并在整个开发过程中推动了以安全为先的文化。
在敏捷项目管理中,软件交付的迭代特性以及对持续改进的关注自然与左移安全实践相契合。敏捷仪式如冲刺评审和回顾提供了持续评估非功能性需求(NFR)的机会。通过在开发流程的冲刺规划、设计和实施阶段早期融入安全需求,团队可以主动发现和解决漏洞,从而最小化产品发布到生产环境后昂贵的返工。左移安全通过将安全需求纳入用户故事、待办事项梳理和冲刺计划,支持敏捷价值观,并使安全成为开发、运维和安全角色的共同责任。
通过探索左移方法如何能加速开发过程,同时减少进入生产环境的安全和质量缺陷,可以获得许多收益。
左移安全:概述
左移安全是一种将安全实践融入软件开发生命周期早期阶段的主动方法。这种范式转变使开发团队能够在规划、设计和实施阶段发现并解决漏洞,从而提升软件可靠性,并为安全提供一种主动且可持续的方法。随着现代软件系统日益依赖微服务、开源依赖项和容器化基础设施,早期安全集成已成为大规模降低风险的关键。此外,欧盟《通用数据保护条例》(GDPR)和《支付卡行业数据安全标准》(PCI DSS)等监管框架要求在软件开发生命周期全程实施安全管控措施。通过将可验证的安全保障措施前置嵌入流程,实施左移安全策略既能保障合规性,又能培育共同责任的文化氛围。
在此范式下,所有利益相关方—包括开发人员、测试人员和运维团队—共同承担安全结果的责任。通过这种方法,安全保障了敏捷性和效率。Otto GmbH等企业成功采用微服务架构的案例印证了这一策略。他们通过实施自动化质量保证和持续部署,在不影响系统稳定性的前提下,实现了每周超过500次的生产环境部署,显著提升了敏捷性和可靠性。
随着现代软件系统日益依赖微服务、开源依赖项和容器化基础设施,早期安全集成已成为大规模降低风险的关键。
敏捷Scrum概述
敏捷Scrum框架为迭代开发提供了结构化方法论。其核心仪式包括冲刺计划、每日站会、冲刺评审和回顾会。这些仪式促进透明度和快速反馈,使团队能够在开发周期早期发现并解决问题。传统项目管理方法通过固定需求来控制时间和成本。而Scrum则采用固定时间间隔(例如两到三周)来管控需求。在Scrum模式下,业务相关方与交付团队在项目生命周期中全程积极参与,持续为客户创造增量价值。
软件交付挑战:识别非功能性需求
软件质量既包括交付满足业务和客户需求的功能需求(FRs),也包括满足非功能需求(NFRs),如安全性、性能、可靠性和合规性。这些非功能需求是影响用户接受和使用产品的重要因素。然而,在开发初期阶段,非功能需求常被忽视,尤其在敏捷开发环境中—该环境中业务需求是优先级排序和冲刺计划的核心关注点。
在规划阶段忽视非功能性需求(NFRs)将导致软件交付生命周期后期出现安全漏洞、质量缺陷和性能问题。研究表明,在敏捷环境中成功实施非功能性需求(NFRs)受到诸多因素制约,包括文档编制规范不完善、可追溯性不足以及利益相关者沟通缺失等问题。在敏捷与DevOps驱动的流程中,非功能性需求(NFRs)需被整合到规划、验证及监控活动中。然而研究表明,尽管DevOps已被广泛采用,性能工程实践却明显滞后。一项研究指出,性能因素极少实现自动化,仍高度依赖人工操作和非正式方法。安全漏洞的延迟识别会加剧技术债务并提升运营风险13。要在敏捷性与左移安全策略之间取得平衡,必须包含自动化测试、静态代码分析和实时威胁监控。
为应对这些挑战,团队应将强化需求工程、非功能性需求(NFRs)的早期优先级排序以及持续协作作为左移范式的核心要素。这种方法鼓励将安全性和质量融入软件开发生命周期的早期阶段,确保其在整个开发过程得到落实。
敏捷方法论,特别是Scrum框架,可以整合到DevSecOps流程中,以增强协作、加速交付,并在开发生命周期早期嵌入安全与质量实践。
将敏捷Scrum仪式整合到DevSecOps中
将安全任务整合到敏捷会议中可以确保安全被视为贯穿开发生命周期的共同责任。这种方法符合将敏捷Scrum仪式与DevSecOps实践相结合,从而尽早并持续嵌入安全性的建议。企业可以实现安全保障自动化,消除人工安全关卡,提高产品质量,并缩短产品上市周期。图1说明了人员、流程和文化的各个组成部分如何与敏捷框架以及DevSecOps流程和工具相集成。
图1 敏捷与DevSecOps的左移安全框架
通过整合DevSecOps与敏捷项目方法论,在人员、流程、技术和文化四大基础维度实现转型,可助力企业更高效地应对非功能性需求。
人员转型
质量关乎文化和思维方式。为了成功应对非功能性需求(如安全性及其它与质量相关的非功能性需求),企业领导者和员工的转型至关重要。这种转变需要领导层的承诺以及在培训和发展上的投入。在大型和复杂的项目中,跨职能协作是项目成功的关键因素。开发人员、安全工程师和质量保证团队应无缝协作,以交付最终产品。这种转变有助于打破孤立,促进企业内部对安全性和质量的共同责任。此外,领导者需要创造一种环境,使个人能够对自己的角色负责,同时促进开放的沟通和信任。
研究强调将安全冲刺、用户故事、DevSecOps、自动化测试和安全编码整合到敏捷流程中的实际相关性。该研究还强调,安全不能与敏捷框架隔离,必须通过企业各级持续改进和意识提升不断发展。强大的组织创新文化对员工的创新行为有积极影响。培养创新文化对于推动组织转型非常重要。这与研究强调在敏捷软件开发中整合安全实践的需求一致。对安全实践的系统性回顾显示,敏捷团队必须在开发过程的每个阶段融入安全,并在软件开发中培养安全文化。
流程转型
流程转型包括识别当前的成熟度水平,并对流程进行标准化和优化,以在软件开发生命周期中纳入质量和安全因素。将安全性引入敏捷开发可能会增加成本并降低生产力,但如果能提升最终产品的安全性,这些权衡是值得的。爱立信公司的一项案例研究在移动资金转账系统中引入了一种增强安全性的敏捷流程,其中安全性被视为首要任务。该流程包括特定的安全工具,帮助开发团队更快速、更全面地进行风险分析。这些工具还改善了风险管理与开发任务之间的整合。在敏捷工作流中构建安全软件需要高效的流程。
尽管人们越来越意识到软件安全的必要性,但将安全融入敏捷开发仍然是一项挑战。一项考察安全工程实践在敏捷环境中的应用情况的行业调查的结果显示,虽然敏捷团队关注需求、实施和测试,但安全活动往往发生在后期,即验证阶段。研究强调,实现敏捷与安全流程的对齐既需要技术工具,也需要组织承诺。
技术转型
技术转型在提升软件交付中发挥着关键作用,通过在开发流水线的每个阶段嵌入安全性和质量来实现这一点。安全工具对于开发安全软件至关重要,但将它们整合到快节奏的DevOps工作流中带来了重大挑战。传统工具如SAST和DAST通常会产生不准确的结果,并且需要人工审查,这会减慢自动化DevOps流水线的速度。对31场探讨这些挑战并提出可行解决方案的行业网络研讨会进行主题分析发现,许多安全工具仍然无法支持快速、安全的软件交付25。需要进一步创新以在DevOps环境中平衡速度、自动化和安全性。
在DevSecOps框架中整合自动化安全措施可以确保安全被视为开发生命周期的核心组成部分,而不是事后的考虑26。利用先进的安全工具可以在不牺牲开发速度的情况下提高整体安全态势,而引入人工智能(AI)则使团队能够在部署前主动检测、响应和减轻威胁。像人工智能(AI)和机器学习(ML)这样的新兴技术正在彻底改变软件测试实践。AI驱动的测试可以自动生成测试用例,根据代码变化动态调整,并使用ML模型识别高风险区域27。这提高了回归测试的效率和测试覆盖率,并减少了手动监督的需求。AI赋能的工具能够实现持续测试和自愈功能,加快反馈循环,从而实现更快速、更可靠、更具成本效益的软件发布。
文化转型
在将安全性和质量融入软件开发生命周期时,组织文化转型是一项关键任务。这一转型的核心部分是通过将安全融入日常工作流程来培养以安全为先的文化。这包括持续培训、发布标准、指南和最佳实践,并鼓励持续使用它们。组织文化为安全意识定下基调,并有助于建立一种人人有责的安全文化28。采纳DevSecOps实践并将安全整合进DevOps流水线需要协作、自动化,以及在不牺牲敏捷性前提下优先考虑安全的思维转变。关于DevSecOps采用的集成框架的研究强调了文化转型在成功将安全嵌入开发过程中的重要性29。培养持续改进的文化能够让团队从失败中学习,并防止未来出现类似问题。在安全的环境中鼓励实验可以促进创新和韧性。文化转型对于在 DevOps 中有效整合安全实践至关重要,有助于更快速地交付安全可靠的软件30。
结论
左移安全策略必须成为开发过程的核心部分,需要在人员、流程、技术和文化方面进行转型。企业可以采取以下步骤来实现软件交付成功:
-
将安全性整合到敏捷仪式中。在冲刺计划、用户故事和待办事项梳理中添加安全任务。利用冲刺评审和回顾来反思安全实践,并评估相关的质量和安全结果。
-
将安全性嵌入 CI/CD 工作流。在开发过程的早期集成和自动化 SAST、DAST 和 SCA 扫描,以检测漏洞并防止它们进入生产环境。
-
让安全成为共同的责任。通过鼓励协作并打破各角色之间的壁垒,让开发人员、测试人员和运维团队参与安全决策。
-
提升团队技能。提供安全编码、DevSecOps 实践和合规性要求的培训和认证。赋能团队,使其在早期就具备做出安全决策的能力。
-
利用人工智能驱动的自动化测试。结合 AI 和机器学习的现代工具可以提高测试覆盖率,减少人工工作,并加快反馈循环。
-
培养以安全为先的文化。鼓励关于风险的开放交流,应推广从失败中学习并持续适应。领导者有责任树立安全意识的榜样,并将其融入日常工作。
通过将这些做法融入敏捷和DevSecOps工作流程,团队可以更早地识别风险,减少返工,并快速交付安全可靠的软件。左移安全是一种由组织文化和领导力驱动的思维方式,以确保向客户提供高质量、安全的软件。
作者简介:Kaali Dass | 博士,CISM,PMP
他是一位经验丰富的技术领导者,拥有超过25年的信息技术和项目管理经验,专注于在不同行业中交付复杂的、跨职能的全球软件项目。他目前担任First Citizens银行的技术项目经理,负责领导战略性技术转型项目。Dass在北卡罗来纳州项目管理协会(NCPMI)活跃了十多年,并曾担任多个领导职务。他还教授过项目管理课程,目前在南加州大学(美国)担任兼职副教授。Dass曾在各类活动中就项目管理、治理和数字化转型发表演讲,并为专业出版物和论坛做出贡献。他的专业领域包括技术项目管理、组合管理、战略规划、敏捷教练、网络安全、数据分析、治理以及合规管理。
.png)







