软件开发生命周期中的安全防护

复制 URL

软件开发生命周期(SDLC)是用于开发、部署和维护软件的框架。该框架将软件开发流程的任务或活动定义成了六到八个阶段,目的是关注流程来提高软件质量。将这些步骤正规化,是为了在监测进展和成本的同时能进行衡量和分析,以便做出改进。 

SDLC 的阶段包括:

  • 计划:定义软件的范围和目标
  • 要求:定义软件应具备的功能
  • 设计:定义关键参数,如架构、平台及用户界面
  • 构建:创建并实施软件
  • 记录:生成帮助用户及相关方理解如何应用及操作软件的信息
  • 测试:验证软件是否符合需求
  • 部署:保证目标用户可以使用软件
  • 维护:解决软件中发现的错误或漏洞

乍一看,SDLC 和应用生命周期管理(ALM)似乎非常相似,因为它们都涉及软件开发与管理流程。可以将 SDLC 视为 ALM 的一部分,它重点关注开发阶段。ALM 通常用于从更宏观的视角管理软件组合,而 SDLC 的适用范围仅限于单个应用。  

人们常常会有这样的误解:SDLC 与某种特定的软件开发方法绑定在一起。虽然 SDLC 的完整八个阶段按顺序依次执行,似乎与瀑布式软件开发流程一致,但务必要认识到,瀑布、敏捷DevOps、精益、迭代和螺旋属于 SDLC 方法。不同的 SDLC 方法在阶段命名、包含哪些阶段以及执行顺序上可能有所不同。有些计划和需求分析等活动可能会归到同一个阶段。尽管存在这些差异,但 SDLC 仍提供了可用于理解和分析必要软件开发活动的框架。

瀑布式方法是按照线性顺序来开发,而敏捷开发和 DevOps 等 SDLC 方法强调软件开发过程中迭代的本质。

进一步了解 DevOps

红帽高级开发人员套件的附加安全防护功能

软件开发过程中有一个常见问题,即有关安全防护的活动往往会推迟到测试阶段执行,这一阶段位于 SDLC 流程的中后期,此时多数重要设计和实施已经完成。测试阶段的安全检查可能比较表面,仅限于漏洞扫描和渗透测试,可能无法发现更为复杂的安全问题。 

“左移”和“右移”这两个新兴术语旨在强调需要在整个 SDLC 中注重安全防护。通过采用左移和右移原则,团队能够尽早修复安全漏洞,节省昂贵的返工费用,并更有可能避免生产延误。

要实施有效的安全流程,团队需要采取“左移”策略——即从项目启动开始,便将安全考量纳入 SDLC 的每个阶段,并贯穿整个项目始终。要采用安全的软件开发生命周期(SSDLC),需要在 SDLC 的每个阶段增加相应的安全步骤。具体包括:

SDLC 阶段

安全活动

计划
  • 评估风险和安全威胁情况
  • 评估安全事件的潜在影响,例如可能给企业带来的声誉风险
要求
  • 将安全要求作为定义功能要求的一部分
  • 理解并纳入合规和监管要求
设计
  • 参与威胁建模工作
  • 将安全考量作为完整架构计划的一部分
  • 评估设计阶段所做选择(如平台和 UI)的安全影响
开发
  • 对开发人员进行安全编码实践培训
  • 在开发流程中加入安全测试工具
  • 评估软件依赖项并降低潜在安全风险
记录
  • 记录安全控制和流程
  • 汇集信息以供审计、合规检查及安全审查
测试
  • 实施代码审查流程
  • 执行安全测试,如静态分析和交互式应用安全测试。
部署
  • 对部署环境进行安全评估
  • 检查安全相关的配置
维护
  • 实施监控来检测威胁
  • 落实补救措施,及时应对漏洞和入侵行为

为做好准备应对日益增加的安全威胁,企业组织需要一套持续更新的安全实践和流程。作为 SSDLC 的一部分,需要在整个开发和部署流程中尽早实施安全闸门和控制措施。为实现快速迭代,企业组织纷纷转向 DevOps 流程以及自动化的持续集成与持续部署(CI/CD)管道。为避免出现障碍,安全防护也需要成为持续且自动化的流程。除了设计、构建、运营和维护之外,开发团队还需要负责应用的安全防护。 

DevSecOps 是一套涵盖人员、流程和技术的实践,旨在提高软件开发的速度和效率,同时提供更好的安全性、改进的一致性、可重复性和协作。DevSecOps 的关键是开发、运维和安全团队要共同负责。DevSecOps 的目标包括:

  • 提高安全性并最大限度地降低风险:在应用开发和基础架构生命周期的早期阶段消除更多安全漏洞,从而减少潜在的生产问题。
  • 提升 DevOps 发布周期的效率和速度:通过消除传统的安全实践和工具,提升 DevOps 发布周期的效率和速度。通过自动化、工具链标准化以及实施基础架构即代码、安全即代码和合规即代码,保障可重复性和一致性,从而改进开发过程。
  • 降低风险,提高可见性:在应用开发和基础架构生命周期的早期阶段实施安全防护措施,降低出现人为错误的几率,并提高安全性、合规性、可预测性和可重复性,同时减少审计问题。

逐步推进 DevSecOps 成熟模型的四个阶段,有助于确保整个 CI/CD 管道执行过程中的安全性,并根据业务和/或全球情况的变化做出调整。开放式 Web 应用安全项目®(OWASP)是一个非营利性基金会,致力于推动社区主导的开源软件项目,以提升软件安全性和 IT 安全意识。OWASP 免费提供各种项目、工具和文档,可用于优化您的安全开发生命周期。

软件供应链安全防护结合了风险管理和网络安全方面的最佳实践,有助于保护软件供应链免受潜在漏洞的影响。软件供应链涵盖了从应用开发到 CI/CD 管道和部署的整个过程,涉及 SDLC 中与代码接触的所有对象和所有人。 

对于您的企业组织、客户以及依赖开源贡献的任何机构,软件供应链安全防护都十分重要。没有谁希望遭到入侵,也没有谁愿意为中招的其他企业组织负责。因此,防患于未然,为软件供应链实施保护就是关键。 

下方我们为您罗列了一些安全团队应考虑的安全防护最佳实践:

  • 为供应链中的资源(如开发人员工具、源代码存储库和其他软件系统)提供最小权限访问,启用多重身份验证,以及使用强密码。
  • 加强您所有联网的设备和敏感数据的安全防护。
  • 从一级供应商开始,了解您的供应商以及有业务往来的对象。对他们开展风险评估,以便评估每个供应商的网络安全态势和有关漏洞的公共策略。

探索全球软件供应链安全防护趋势页面当前以 English 显示(暂无 zh 选项)

红帽提供可信赖的开源软件,可以帮助企业与机构跨基础架构、应用堆栈和生命周期实施分层安全防护方法,从而提高本地部署、云中或边缘站点的安全性。红帽技术在开发过程中十分注重保障软件供应链的安全。 

红帽企业 Linux® 是我们产品组合的基础,旨在通过不可变的镜像、自动化配置、可信供应链和运行时保护,将“左移”合规性融入到您的企业组织中。凭借这一以安全为中心的基础,各企业组织可以将精力集中在构建、管理和控制混合环境、实施自动化策略,以及通过 DevSecOps 实践在软件开发生命周期(SDLC)中融入安全防护机制。

红帽及其安全合作伙伴生态系统提供了一套全面的 DevSecOps 方法,可帮助企业组织在不牺牲安全性的前提下持续创新。红帽拥有深厚的专业知识和能力,可提供强大的产品组合,在开放混合云中构建、部署和运行安全至上的应用,为处于 DevSecOps 之旅中任何阶段的企业组织提供帮助。

为什么选择红帽来实现 DevSecOps?

产品

红帽高级开发人员套件

这套开发解决方案可帮助平台工程师构建高效平台,全面提升开发团队的生产效率和应用安全。

所有红帽产品试用

我们的免费试用服务可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业组织。

扩展阅读

什么是边缘安全防护?

边缘安全防护指一套工具与实践的组合,用于保护远程位置的边缘基础架构与工作负载,而这些远程位置往往缺少现场技术人员支持。

什么是基于角色的访问权限控制(RBAC)?

基于角色的访问权限控制,是一种根据用户在团队或大型企业组织内的角色,管理用户对系统、网络或资源访问权限的方法。

什么是漏洞管理?

漏洞管理是 IT 安全领域的一项实践,涉及识别、评估和修复设备、网络及应用中的安全缺陷。

安全防护 相关资源

相关文章