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

复制 URL

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

SDLC 的阶段包括:

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

乍一看,软件开发生命周期(SDLC) 和应用生命周期管理(ALM)似乎非常相像,因为二者讨论的都是软件开发和管理的流程。我们可以把 SDLC 可以看做 ALM 的一部分,前者重点关注开发阶段。ALM 的视角更广泛,通常用于宏观地管理软件组合,而 SDLC 主要关注单独的应用。  

践行 DevSecOps,实现应用生命周期的现代化和安全保障

人们常常误以为 SDLC 涉及某种特定的软件开发方法。尽管 SDLC 的八个阶段按顺序执行时,似乎与瀑布软件开发流程一致,但我们要认识到——瀑布、敏捷DevOps、精益、迭代和螺旋模型是 SDLC 的方法,这一点很重要。SDLC 方法可能根据阶段的命名、包含的阶段或执行顺序不同而有所不同。有些计划和需求分析等活动可能会归到同一个阶段。尽管存在这些差异,但 SDLC 仍提供了可用于理解和分析必要软件开发活动的框架。

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

了解有关 DevOps 的更多信息

红帽资源

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

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

阅读 IDC 报告:降低重大风险可带来更佳业务成果

实施有效的安全流程需要团队进行“左移”,也就是说将安全问题纳入 SDLC 的每个阶段,从项目构思开始,并在整个项目周期中持续关注。要采用安全的软件开发生命周期(SSDLC),需要在 SDLC 的每个阶段添加安全步骤。其中包括:

SDLC 阶段

安全活动

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

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

DevSecOps 是一组包含人、流程及技术的实践,旨在提升软件开发的速度和效率,同时能提供更好的安全性、优化的一致性、可重复性及相互协作。DevSecOps 的关键是开发、运维和安全团队要共同负责。DevSecOps 的目标包括:

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

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

利用 IT 自动化成功实施 DevSecOps 的 5 种方法

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

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

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

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

红帽提供可信赖的开源软件,可以帮助企业与机构跨基础架构、应用堆栈和生命周期实施分层安全防护方法,从而提高本地部署、云中或边缘站点的安全性。红帽技术在开发过程中十分注重保障软件供应链的安全。有了安全稳固的根基,企业或机构就可以将重点转向构建、管理和控制混合环境,实施自动化策略并利用 DevSecOps 实践发展 SDLC 安全。

红帽及安全合作伙伴生态系统能够提供全面的 DevSecOps 方法,帮助企业与机构在保证安全的同时持续创新。凭借深厚的专业知识和能力,红帽可以提供强大的产品组合,帮助企业与机构跨开放混合云构建、部署和运行安全为主的应用,推进其 DevSecOps 进程。

了解选择红帽来实现 DevSecOps 的好处
中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

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

扩展阅读

什么是机密管理?

机密管理是一种对日常运维所需的敏感信息进行保密处理的方法。

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

基于角色的访问控制是一种管理访问权限的方法,根据用户在团队或更大部门中的角色来管理用户对系统、网络或资源的访问权限。

简单理解测试的左移与右移

要实施左移和右移,即意味着在软件开发生命周期的每个阶段实施持续测试。

安全防护 相关资源

相关文章