Jump to section

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

复制 URL

在整个软件开发生命周期进行测试对于满足用户期望、符合功能要求和实施安全措施至关重要。左移就意味着要尽快将安全测试纳入开发流程,以便尽早发现漏洞并修复缺陷。而右移则需要在生产阶段监控用户行为、使用情况、性能和安全指标,以验证软件的可操作性。

右移和左移都意味着通过重点实施持续测试方法,在整个 DevOps 流程和软件开发生命周期(SDLC)评估和确保新产品及功能的质量和性能。在敏捷实践中,左移和右移原则背后的思路是“小故障,快恢复”,从而尽快发现潜在问题,以防它们演变成重大问题。

要理解左移和右移,不妨先将软件开发生命周期想象成一条从左向右延伸的线。这条线的左半边由编码阶段和构建阶段组成,右半边则是生产阶段,左右两边分别代表软件的开发和监控。

过去,针对软件安全性的测试实施得比较晚,直到 SDLC 中期才会进行测试,然后软件就会进入生产阶段。但是,随着软件的生命周期向前推移,这种延迟的测试会给安全缺陷创造逃脱检测的空间。这意味着,当漏洞最终被发现时,为了隔离并修复在发现时已编译到应用中的缺陷,团队不得不要艰难地进行复杂且成本高昂的返工。

后来,许多企业组织终于意识到,如果他们能够在 SDLC 的更早阶段移除障碍,就可以降低缺陷和错误的修复成本、节省资源并打造更出色的产品。这时便诞生了“安全防护左移”的概念,自那之后,左移成为了现代软件开发至关重要的一部分。

开发人员不会宣称自己是安全专家,也并不希望成为安全专家。实际上,为了跟上发布节奏,开发人员的工作本已经十分局艰巨,如果他们还负责修复或修改其他开发人员编写的可能意外引入了严重漏洞的代码,则会更加棘手。

随着软件架构变得日益复杂、庞大和分散,有效监控和管理整个组织的安全性也变得更具挑战性。现代软件交付方法越来越倾向于在混合环境中进行持续部署,这需要一种新的安全防护方法,该方法要能够在应用开发流程中尽早提供安全防护措施,在每个阶段实现自动化安全防护,并将安全防护转变为业务推动因素。

开发人员将左移策略用作一种主动措施,在缺陷尚未经过太多阶段之前及时识别并修复,从而帮助提高应用安全性。此策略会尽早将安全防护实践和测试集成到开发流程中,而不是将它们留作事后补救措施。左移与 DevSecOps 的兴起紧密相关,后者正是强调要尽早和持续实施安全集成。 

企业组织在构建、部署和运行时阶段都可能会遇到安全事件。通过左移方法实施和自动化 DevSecOps 可以提供对开发人员友好的防护措施,能够在构建和部署阶段减少用户错误,并在运行时阶段保护工作负载。

左移测试中涉及的技术可能包括:

  • 静态应用安全测试(SAST)- 分析应用的来源、字节码或二进制代码以识别安全漏洞。
  • 动态应用安全测试(DAST)- 一种黑盒测试方法,通过对正在运行的目标执行自动化安全扫描来发现潜在的安全缺陷。
  • 威胁建模 - 该过程将思考特定系统中做出的每个决策,并推算这些决策如何即刻影响或在未来影响系统安全状况。
  • 安全架构审核 - 识别、评估并降低风险,以加强企业组织用于应对当前和新出现的威胁及风险的安全防护措施。
  • 容器镜像扫描 - 逐层分析容器镜像以检测潜在的安全威胁。
  • 代码签名 - 该方法会向计划、文件或软件更新添加数字签名,以便在安装和执行时验证真实性和完整性。 

左移的目标是在代码阶段尽早找出并修复漏洞。这不仅可以确保提高安全性,还能通过更快速、更频繁地交付更高质量的软件来增强用户体验和功能。它可在开发周期尽早检测并解决软件错误,从而提高开发效率并降低开销成本。 

随着威胁途径变得日益复杂、攻击面呈指数级持续增长,许多企业意识到,仅仅依赖于构建阶段的左移测试不足以保护他们抵御不断变化的安全威胁。

因此左移又衍生出了一种互补的方式:右移测试。要实现右移,需要在后期生产环境中持续实施测试、质量保证和性能评估实践。 

要实施右移测试,开发团队需要以检查功能、性能、故障容错和用户体验为目标,针对软件开发周期的末尾阶段执行受控实验。

针对关键控制和实时可见性的右移测试中涉及的技术可能包括:

  • SIEM - 即安全信息和事件管理。该解决方案可帮助组织检测、分析和响应威胁。
  • SOAR- 即安全编排、自动化和响应。它通过在不同的人员和工具间协调、执行和自动执行任务来减轻 IT 团队的压力。
  • 金丝雀部署 - 在向整个用户群发布新功能之前,先针对部分用户测试新功能。
  • 部署环 - 在生产环境中逐步部署和验证对您的扩展所做的更改,同时限制对您的用户造成的影响。
  • A/B 测试 - 一种测试假设的方法,该方法将创建控制组并引入场景、功能、外观等变量,然后对照预期反应来衡量不同场景中的反应。
  • 故障注入测试 - 故意将故障引入系统以进行测试。
  • API 安全防护测试- 跟踪出口流量和出站调用以理解行为并检测安全事件。Istio 是一个服务网格平台,可提供底层通信渠道,并帮助开发人员大规模管理服务通信的身份验证、授权和加密。
  • 混沌工程 -“故意进行破坏”以测试系统弹性。
  • 蓝绿部署 - 一种应用发布模式,可将用户流量从先前版本的应用逐渐转移到几乎相同的新版本中(两者均在生产环境中运行)。 

通过观察软件在实际环境中的行为,团队可以主动检测运行时的安全威胁,并确保应用按照预期运行。右移测试可建立持续、实时的用户反馈回路,并提供机会来分析可能未预料到的问题。 

如今,企业组织纷纷迁移至云原生架构,并对其应用进行了现代化改造,以便采用微服务和容器等技术,在这种情况下,同时采用左移和右移策略成了一种理想的策略。如果开发团队能够在 SDLC 的所有阶段运行端到端测试,企业组织距离持续集成和持续交付(CI/CD)的最终目标便更近了一步。

同时采用左移和右移方法的优势包括提高效率、改善产品质量、增强安全性、加快应用上市时间以及提升用户满意度。此外,企业组织还发现,根据错误检测出的时间点,修复错误的相对成本会随着时间的推移而增加。换句话说,如果不及时修复问题,那么等待的时间越长,需要花费的资金可能越多。因此,采取左移预防措施或许可以增加您的营收利润。 

保护软件供应链需要采取多层面的方法。您可以采取多项措施来提高软件供应链安全性,而每项措施都会为您的企业和客户增加另一层保护。

若要开始在您企业组织的开发生命周期中实施左移和右移原则,不妨从实施软件物料清单(SBOM)着手。它是一份包含了所有来源和依赖项的嵌套清单,包括源代码、开源和软件库、中间件以及开发框架,这些都是软件工件的组成部分。

接下来,开始实施自动化测试以收集整个软件开发和部署管道中的数据和分析内容。在 SDLC 的每个阶段持续测试是监控性能和检测根本原因的最佳方法。

最重要的一点或许是确保在部门内部和部门之间进行协作和沟通,从而确定各个团队中存在问题的区域并找到适用于您的正确工具。 

在如今技术飞速发展的格局下,越来越多的组织在其应用部署中采用容器化来实现更高的可扩展性、可移植性和效率。虽然容器化有自己的优势,但它也会给 IT 团队带来安全性挑战,必须解决这些挑战才能提高容器化应用的安全性、机密性和可访问性。随着云原生应用的使用量不断增长,改善容器和 Kubernetes 的安全态势变得至关重要。

红帽® 在每个产品的整个生命周期中都会大量投入到开源软件的维护工作中。对于我们交付的软件,我们不仅负责为其提供支持,还负责解决重大问题(如安全问题)。

借助红帽可信软件供应链,企业组织从一开始就可以将安全防护内置于软件开发生命周期。通过使用合适的安全防护软件,组织可以保护自身免受其供应链系统中的风险和漏洞的侵害。如果没有适当的防护措施,他们可能会失去用户、客户和其他利益相关者的信任。借助红帽可信软件供应链,客户可以使用久经验证的平台、值得信赖的内容以及实时安全扫描和修复来编码、构建和监控他们的软件。

红帽 OpenShift® 可实现 DevSecOps 自动化,并在开发周期的早期和整个开发过程中集成安全防护,从而支持实施左移方法。它提供一系列开箱即用的开发人员工具和 CI/CD 功能,并重点关注安全防护,可确保实现安全、高效的软件供应链。它是一个基于 Kubernetes 的全面的应用平台,可帮助企业大规模构建、部署、运行和管理创新应用,并为这些应用提供安全防护。

红帽 Kubernetes 高级集群安全防护可促成安全防护左移,并自动执行 DevSecOps 最佳实践。该平台适用于任何 Kubernetes 环境,并与 DevOps 和安全工具集成,帮助团队实施和更好地保护供应链、基础架构和工作负载。

红帽 Ansible 自动化平台可为您提供一致的企业框架,帮助您大规模构建和运维 IT 自动化,同时在整个软件开发生命周期中优先考虑安全性。它使团队能够在企业中实现安全防护与合规自动化,并使用经过认证的自动化内容协同应对威胁,同时得到全天候支持。红帽 Ansible 还提供许多安全集成,这些集成可同时得到红帽和红帽的安全技术合作伙伴的支持。

继续阅读

文章

什么是 DevSecOps?

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

文章

什么是 CI/CD?

CI/CD 可让持续自动化和持续监控贯穿于应用的整个生命周期(从集成和测试阶段,到交付和部署)。

文章

什么是 DevOps 工程师?

DevOps 工程师身怀独特的技能和专业知识,可以在组织内实现协作、创新和文化转变。  

详细了解 DevOps

产品

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

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

相关资源