快速跳转

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

复制 URL

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

SDLC 的阶段包括:

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

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

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

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

软件开发过程中有一个常见问题,即有关安全的活动往往会推迟到测试阶段执行,这一阶段位于 SDLC 流程的中后期,此时多数重要设计和实施已经完成。测试阶段的安全检查可能比较表面,仅限于漏洞扫描和渗透测试,可能无法发现更为复杂的安全问题。而此阶段在 SDLC 流程中出现较晚,因此发现的问题通常会导致生产延迟。由于又要再开发和再测试,这些问题解决起来耗时更长,也更耗成本。

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

SDLC 阶段

安全活动

计划

  • 评估风险和安全威胁情况

  • 评估安全事件的潜在影响,例如可能给企业带来的声誉风险

要求

  • 将安全要求作为定义功能要求的一部分

  • 理解并纳入合规和监管要求

设计

  • 参与威胁建模工作

  • 将安全考量作为完整架构计划的一部分

  • 评估设计阶段所做选择(如平台和 UI)的安全影响

开发

  • 对开发人员进行安全编码实践培训

  • 在开发流程中加入安全测试工具

  • 评估软件依赖项并降低潜在安全风险

记录

  • 记录安全控制和流程

  • 汇集信息以供审计、合规检查及安全审查

测试

  • 实施代码审查流程

  • 执行安全测试,如静态分析和交互式应用安全测试。

部署

  • 对部署环境进行安全评估

  • 检查安全相关的配置

维护

  • 实施监控来检测威胁

  • 落实补救措施,及时应对漏洞和入侵行为

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

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

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

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

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

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

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

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

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

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

继续阅读

文章

什么是 DevSecOps?

如果您想要充分发挥出 DevOps 的敏捷性和响应力,则必须在应用的整个生命周期内兼顾 IT 安全性。

文章

云安全有何不同之处

一些重大安全问题同时影响着传统 IT 和云系统。了解它们的不同之处。

文章

什么是 SOAR?

SOAR 指的是安全团队所使用的 3 大软件功能:案例和工作流管理、任务自动化,以及集中式管理访问、查询和共享威胁情报。

详细了解 DevOps

产品

在红帽专家的指导下参与高强度、富有针对性的驻留培训。帮助您的团队借助敏捷开发方法和开源工具,快速、高效解决当前业务难题。

红帽的战略顾问将从大局出发,以战略性视角审视企业发展,分析您当前面临的业务挑战,并提供全面、低成本、高效益的解决方案,帮助您轻松应对各项挑战。

相关资源