使用Rezilion动态软件材料清单实施
软件攻击面管理
软件攻击面管理(SASM)为在组织的软件生态系统和软件开发生命周期(SDLC)中保护软件提供了一种有效的方法。Rezilion动态软件物料清单(SBOM)显示为在实际企业环境中实施SASM。
引言
网络安全包括保护有价值的资产免受恶意威胁。这可以通过以避免攻击为目标的预防性方式来实现,也可以从检测和反应性的角度来实现,以在攻击开始时对其进行处理。执行这些任务是为了降低设备、系统、服务和基础设施的网络风险,控制措施通常由IT安全团队管理。
在DevOps的上下文中,要保护的主要资产是正在编写的软件。这通常是通过向围绕软件的工具、系统、过程和基础设施添加安全控制来实现的。主要保护目标是在开发运维生命周期内创建、测试、发布和管理软件的同时,识别、验证、优先处理和修复漏洞。
为了就如何在DevOps中实现自动化和集成的安全控制提供指导,这里引入了SASM的概念。它与用于保护企业网络的类似攻击面管理(ASM)方法有一些相似之处。SASM及其使用动态SBOM来指导安全的细节被说明并显示为由Rezilion平台有效地实现。
什么是软件攻击面管理(SASM)?
数字化转型的结果是,软件成为头号攻击面。最近发生的Log4j (CVE-2021- 44228)2和SolarWinds3等事件直接证明了保护这一不断增长的攻击面的重要性。软件攻击面的爆炸式增长和攻击媒介数量的不断增加催生了对工具的需求,这些工具可以在统一的软件攻击面管理平台下管理和保护软件生态系统。
软件攻击面被定义为跨整个技术体系(如云工作负载、主机和应用程序)的整个企业软件生态系统。为了防范威胁和漏洞,需要在从开发到生产的整个SDLC中持续管理软件攻击面。这种推动全栈和全周期连续软件安全的实践被称为SASM。
SASM的目标是了解攻击面,识别、优先处理和修复漏洞,并通过自动化确保持续覆盖。软件攻击面的动态特性使其非常难以管理。软件攻击面的一个挑战是由于缺少软件边界、不断变化的功能集和不断增长的软件量而难以管理。
什么是动态SBOM?
动态SBOM是发现和理解软件攻击面的有力起点。动态SBOM由软件组件清单组成,例如环境中用于创建和管理软件的软件包、库、文件、容器和映像,从而提供对潜在漏洞的洞察。
动态SBOM还提供了上下文信息,为特定环境中已发现漏洞的潜在可利用性提供了丰富的见解,强调了一个事实,即仅仅存在漏洞并不能使其成为可利用的。这种语境化是内置的,也是作为一个独立的工件提供的,NIST称之为VEX(漏洞利用交换)。由于动态SBOM是连续的,并随着代码在DevOps生命周期中的传递而实时更新,因此这种洞察力在DevOps生命周期的所有阶段对开发人员和安全工程师都很有价值。
动态SBOM的一个关键概念是起源,它包括软件组件起源的历史记录。因此,当SBOM提供对软件组件的洞察时,起源提供对软件来自何处的洞察,包括对代码做了什么改变以及谁做了这些改变。出处提供了对软件供应链中可能出现的潜在漏洞的洞察。
动态SBOM也是可搜索的,当结合动态SBOM的连续和运行时能力时,这是一个非常有价值的特性。使用此功能,组织可以搜索是否存在特定的漏洞(如Log4j ),并确定它们是否被加载到内存中并可被利用,或者是否已被修补或必须采取补救措施。
感兴趣的最后一个概念是相互依赖,它提供了对软件组件在运行时如何通信、连接和操作的洞察。大多数软件工具通过创建地图来解决查看相互依赖性的挑战。因为地图只是图形,变量可以是软件或安全工程师感兴趣的任何东西,包括将软件组件连接到它们的关键数据源。这有助于确定漏洞优先级。
动态SBOM和SASM
将动态SBOM方法恰当地用于开发运维需要关注各种不同的生命周期活动,每一项活动都有助于降低软件攻击面风险。这些SASM活动包括以下支持功能:
- 持续集成–在集成阶段使用DSBOMs涉及开发运营计划的创建和规划阶段,关注SBOM的生成和验证、SBOM政策的应用以及与SBOM相关的管理和工作流程的决策。
- 持续部署–持续部署期间的动态SBOM使用支持关于SBOM的安全决策(例如,如何处理验证),以及参与风险评估和关于所需补丁的决策。
- 持续交付–在持续交付期间使用动态SBOM支持对错误和漏洞的持续监控,包括根据分析结果重新处理SBOM元数据的需要。
- 持续运行–持续交付期间的动态SBOM使用支持构建流程,包括使用SBOM数据来确定部署软件中可能包含的漏洞。
现代开发和产品安全团队现在认识到这些网络安全目标在构建、发布和操作过程中对软件的重要性。事实上,网络风险管理不再是典型SDLC中的一个选项,而是一项要求。为此,支持这一安全目标的商业平台应运而生——在下一节中,我们将介绍Rezilion解决方案及其如何实现SASM。
REZILION平台
由CyActive的前高管共同创立,总部位于美国和以色列,网络安全初创公司REZILION致力于帮助组织通过自动化安全来优化其开发安全流程。目标是减少人工依赖,以保护现代软件开发生命周期的开发、发布和操作方面。Rezilion使用其动态SBOM对SASM的方法概述如下。
与上面的讨论一致,Rezilion平台通过使用动态SBOM方法来驱动开发运维的SASM流程。该平台使用静态和动态挖掘器收集关于软件环境的相关数据。然后分析来自主机、容器和应用程序的运行时和内存数据的文件路径、命令行参数、哈希和内存组件的数字表示。然后,该平台使用收集的数据对软件进行逆向工程,以映射其组件、建立漏洞上下文、生成出处并创建动态SBOM。
因此,软件和安全工程团队可以深入了解运行时执行概况和代码相互依赖性,从而帮助减少漏洞积压、确定优先修复的内容以及更快地进行修复。这种能力对于处理前面提到的Log4j和网络安全管理软件产品事件的组织特别有用。
SASM 的其他功能优势包括识别软件组件、评估漏洞、分析可利用性(包括对加载到内存的内容和未加载的内容实施运行时分析)、通过聚合不同的易受攻击组件提供自动化补救、基于可接受的风险实施安全策略,以及在SDLC的不同阶段检测偏差和变化。
网络安全由Rezilion动态SBOM通过识别所有软件组件、映射发现的漏洞以提供上下文、跟踪软件中的更改以及维护持续更新来推动。正如任何软件专业人员将证明的那样,这些能力提供了基本的风险管理好处,并迅速成为任何软件过程环境中的优先事项。
如果读者希望获得更多关于使用Rezilion的动态SBOM来解决Log4Shell等漏洞的详细技术信息,建议阅读Rezilion5的这篇精彩博客。
后续步骤:行动计划
建议软件工程和安全团队制定计划,以确定如何最好地利用动态SBOMs和SASM解决方案来降低开发运维期间代码的网络风险。虽然不同环境之间的背景会有所不同,但大多数DevOps团队都会受益于下面列出的步骤,这些步骤旨在指导商业SASM平台的正确选择和实施。
步骤1:开发运维安全控制清单建议软件工程和安全团队从评估和清单开发运维安全目前的处理方式开始。重点应放在识别差距或使用手动流程实施控制的地方。
步骤2:供应商评估和审查接下来建议团队对可用的商业SASM平台进行审查,包括Rezilion。TAG网络顾问随时为您提供帮助,帮助您识别合适的供应商并比较优势和劣势。
步骤3:实现计划每个开发团队的实现计划会有所不同,但是总是推荐分阶段引入,尤其是对于更大、更复杂的组织。当然,目标是快速部署SASM,开始为软件的开发和使用提供更好的保证。