Account 登录
快速跳转

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

复制 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 大软件功能:案例和工作流管理、任务自动化,以及集中式管理访问、查询和共享威胁情报。

More about DevOps

Products

Red Hat Open Innovation Labs

An intensive, highly focused residency with Red Hat experts where you learn to use an agile methodology and open source tools to work on your enterprise’s business problems.

Red Hat Consulting

Engagements with our strategic advisers who take a big-picture view of your organization, analyze your challenges, and help you overcome them with comprehensive, cost-effective solutions.

Resources

Checklist

Enterprise automation with a DevOps methodology

Whitepaper

Streamline CI/CD pipelines with Red Hat Ansible Automation Platform

Red Hat logo LinkedInYouTubeFacebookTwitter

产品

工具

试用购买与出售

沟通

关于红帽

我们是世界领先的企业开源解决方案供应商,提供包括 Linux、云、容器和 Kubernetes。我们致力于提供经过安全强化的解决方案,从核心数据中心到网络边缘,让企业能够更轻松地跨平台和环境运营。

订阅我们的新闻稿 Red Hat Shares

立即注册

选择语言

© 2022 Red Hat, Inc. 京ICP备09066747号