概述
软件开发生命周期(SDLC)是用于开发、部署和维护软件的框架。该框架将软件开发流程的任务或活动定义成了六到八个阶段,目的是关注流程来提高软件质量。将这些步骤正规化,是为了在监测进展和成本的同时能进行衡量和分析,以便做出改进。
SDLC 的阶段包括:
- 计划:定义软件的范围和目标
- 要求:定义软件应具备的功能
- 设计:定义关键参数,如架构、平台及用户界面
- 构建:创建并实施软件
- 记录:生成帮助用户及相关方理解如何应用及操作软件的信息
- 测试:验证软件是否符合需求
- 部署:保证目标用户可以使用软件
- 维护:解决软件中发现的错误或漏洞
乍一看,SDLC 和应用生命周期管理(ALM)似乎非常相似,因为它们都涉及软件开发与管理流程。可以将 SDLC 视为 ALM 的一部分,它重点关注开发阶段。ALM 通常用于从更宏观的视角管理软件组合,而 SDLC 的适用范围仅限于单个应用。
红帽高级开发人员套件的附加安全防护功能
为什么安全防护在 SDLC 中如此重要?
软件开发过程中有一个常见问题,即有关安全防护的活动往往会推迟到测试阶段执行,这一阶段位于 SDLC 流程的中后期,此时多数重要设计和实施已经完成。测试阶段的安全检查可能比较表面,仅限于漏洞扫描和渗透测试,可能无法发现更为复杂的安全问题。
“左移”和“右移”这两个新兴术语旨在强调需要在整个 SDLC 中注重安全防护。通过采用左移和右移原则,团队能够尽早修复安全漏洞,节省昂贵的返工费用,并更有可能避免生产延误。
什么是安全的 SDLC(SSDLC)?
要实施有效的安全流程,团队需要采取“左移”策略——即从项目启动开始,便将安全考量纳入 SDLC 的每个阶段,并贯穿整个项目始终。要采用安全的软件开发生命周期(SSDLC),需要在 SDLC 的每个阶段增加相应的安全步骤。具体包括:
SDLC 阶段 | 安全活动 |
|---|---|
| 计划 |
|
| 要求 |
|
| 设计 |
|
| 开发 |
|
| 记录 |
|
| 测试 |
|
| 部署 |
|
| 维护 |
|
如何实施 SSDLC:DevSecOps 和自动化
为做好准备应对日益增加的安全威胁,企业组织需要一套持续更新的安全实践和流程。作为 SSDLC 的一部分,需要在整个开发和部署流程中尽早实施安全闸门和控制措施。为实现快速迭代,企业组织纷纷转向 DevOps 流程以及自动化的持续集成与持续部署(CI/CD)管道。为避免出现障碍,安全防护也需要成为持续且自动化的流程。除了设计、构建、运营和维护之外,开发团队还需要负责应用的安全防护。
DevSecOps 是一套涵盖人员、流程和技术的实践,旨在提高软件开发的速度和效率,同时提供更好的安全性、改进的一致性、可重复性和协作。DevSecOps 的关键是开发、运维和安全团队要共同负责。DevSecOps 的目标包括:
- 提高安全性并最大限度地降低风险:在应用开发和基础架构生命周期的早期阶段消除更多安全漏洞,从而减少潜在的生产问题。
- 提升 DevOps 发布周期的效率和速度:通过消除传统的安全实践和工具,提升 DevOps 发布周期的效率和速度。通过自动化、工具链标准化以及实施基础架构即代码、安全即代码和合规即代码,保障可重复性和一致性,从而改进开发过程。
- 降低风险,提高可见性:在应用开发和基础架构生命周期的早期阶段实施安全防护措施,降低出现人为错误的几率,并提高安全性、合规性、可预测性和可重复性,同时减少审计问题。
逐步推进 DevSecOps 成熟模型的四个阶段,有助于确保整个 CI/CD 管道执行过程中的安全性,并根据业务和/或全球情况的变化做出调整。开放式 Web 应用安全项目®(OWASP)是一个非营利性基金会,致力于推动社区主导的开源软件项目,以提升软件安全性和 IT 安全意识。OWASP 免费提供各种项目、工具和文档,可用于优化您的安全开发生命周期。
软件供应链安全防护和 SDLC
软件供应链安全防护结合了风险管理和网络安全方面的最佳实践,有助于保护软件供应链免受潜在漏洞的影响。软件供应链涵盖了从应用开发到 CI/CD 管道和部署的整个过程,涉及 SDLC 中与代码接触的所有对象和所有人。
对于您的企业组织、客户以及依赖开源贡献的任何机构,软件供应链安全防护都十分重要。没有谁希望遭到入侵,也没有谁愿意为中招的其他企业组织负责。因此,防患于未然,为软件供应链实施保护就是关键。
下方我们为您罗列了一些安全团队应考虑的安全防护最佳实践:
- 为供应链中的资源(如开发人员工具、源代码存储库和其他软件系统)提供最小权限访问,启用多重身份验证,以及使用强密码。
- 加强您所有联网的设备和敏感数据的安全防护。
- 从一级供应商开始,了解您的供应商以及有业务往来的对象。对他们开展风险评估,以便评估每个供应商的网络安全态势和有关漏洞的公共策略。
为何选用红帽技术来实现 SDLC 的安全防护?
红帽提供可信赖的开源软件,可以帮助企业与机构跨基础架构、应用堆栈和生命周期实施分层安全防护方法,从而提高本地部署、云中或边缘站点的安全性。红帽技术在开发过程中十分注重保障软件供应链的安全。
红帽企业 Linux® 是我们产品组合的基础,旨在通过不可变的镜像、自动化配置、可信供应链和运行时保护,将“左移”合规性融入到您的企业组织中。凭借这一以安全为中心的基础,各企业组织可以将精力集中在构建、管理和控制混合环境、实施自动化策略,以及通过 DevSecOps 实践在软件开发生命周期(SDLC)中融入安全防护机制。
红帽及其安全合作伙伴生态系统提供了一套全面的 DevSecOps 方法,可帮助企业组织在不牺牲安全性的前提下持续创新。红帽拥有深厚的专业知识和能力,可提供强大的产品组合,在开放混合云中构建、部署和运行安全至上的应用,为处于 DevSecOps 之旅中任何阶段的企业组织提供帮助。
红帽高级开发人员套件
这套开发解决方案可帮助平台工程师构建高效平台,全面提升开发团队的生产效率和应用安全。