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