正如Apache Log4J漏洞在今年早些时候带来的影响所表明的那样,当今企业软件中最大的风险并不是由内部软件开发团队编写的不安全代码。当今软件代码库大部分的组件、库和其他开源代码存在的缺陷是不安全性这座冰山的水下部分。
事实上,DevOps团队和软件工程团队采用的许多企业软件和自定义应用程序实际上并不是由他们的开发人员编写的。如今的现代软件通常是模块化的。开发人员使用所谓的微服务架构来构建新的应用程序,其方法就像搭建乐高积木,而其架构只是使用由预制代码组成的模块构建。开发人员无需在每次需要应用程序执行通用功能时重新发明轮子,而是在他们众所周知的模块工具箱中寻找合适的模块来完成他们需要的工作。
这个工具箱就是当今不断扩展的软件供应链,有时是非正式的代码源,它来自当今在线上流传的数百万个GitHub存储库和开源项目。它由大量应用程序以及用于构建现代开发管道的底层应用程序和开发基础设施中使用的组件和库组成。
当然,这个供应链提供的程序并不是真正的模块,它们并不总是完美地结合,因此开发人员创建自定义代码将所有这些部分整合在一起。事实上,许多人经常将这些创作开发成更多的开源项目,以供其他人解决类似问题。这也是软件供应链不断增长的原因之一。
使用第三方代码构建的应用程序
现代应用程序主要由第三方代码组成。根据调研机构Forrester公司的调查,构成应用程序代码库的开源代码比例从2015年的36%上升到2020年的75%。
这是一种更快、更具可扩展性的快速开发方式,但与所有技术创新一样,除非采取适当的措施,否则它会增加网络风险。从当今的软件供应链中选择的组件很容易过时并充满漏洞,这是开发世界的一个秘密。让事情变得更加复杂的是,这些缺陷往往嵌套在一起,因为不同的项目可能对供应链中的其他项目具有依赖性。网络攻击者有时故意在开源软件中植入漏洞。
软件供应链带来的漏洞就像企业软件中在网络安全方面隐藏的地雷,尤其是当企业没有采取任何措施来管理其开发人员如何使用软件供应链时。许多企业甚至几乎不跟踪(更不用说审查或管理)进入或生成其开发人员提交的代码的组件、库和开发人员工具的种类。根据Linux基金会发布的一项研究报告,不到一半的企业使用软件材料清单(SBOM)来准确跟踪从软件供应链进入其应用程序的内容。
创建软件物料清单 (SBOM)是供应链安全的基础,同时也是开源治理和保护基础设施的基础,因为基础设施是与整个软件开发生命周(SDLC)中的应用程序相关的代码元素。以下是有助于实现这一目标的重点强调软件组合分析(SCA)的工具列表,这些工具专门专注于开发创建软件物料清单 (SBOM)、提高对软件内容的可见性,以及修复作为软件构建块的组件中的缺陷。
7个顶级供应链安全工具
(1)Contrast Security
Contrast Security以其交互式应用程序安全测试(IAST)技术而闻名,该技术通过运行在应用程序服务器上的代理检测应用程序中的漏洞,ContrastSecurity提供软件组合分析(SCA))功能,作为其开放平台完整测试计划的一部分,该平台还进行动态应用程序安全测试(DAST)、静态应用程序安全测试(SAST),AWS Lambda基础设施的运行时应用程序扫描保护(RASP)和无服务器安全检查。
该工具不仅可以生成软件物料清单 (SBOM),还可以通过可视化应用程序架构、代码树和消息流信息来对构成应用程序的各种成分的缺陷实现场景化,以帮助进行威胁建模补救。开源治理嵌入在现代开发工作流程和工具中,Contrast Security的主要业务是弥合开发人员和安全团队之间的鸿沟,使其成为DevSecOps市场的主要参与者。
(2)Shiftleft
ShiftLeft在这个选项领域相对较新,旨在适应具有前瞻性思维的DevOps团队的开发工作流程。其核心价值在于将软件组合分析(SCA)和静态应用程序安全测试(SAST)整合到一个扫描行为中,当开发人员提出拉取请求时完成该扫描。该技术使用该公司称为代码属性图(CPG)的技术来绘制自定义代码、开源库、SDK和API之间的依赖关系和数据流,不仅可以找出整个应用程序的缺陷,还包括其开源组件,但也是逻辑应用程序的弱点。供应链缺陷通过使用插入到软件物料清单 (SBOM)中的“可达性”指数对攻击的敏感性进行优先级排序,该指数根据组件在应用程序中的使用方式将其置于组件可攻击性的场景中。
(3)Snyk
Snyk是一套云原生、以开发人员为中心的工具,专为DevSecOps和云原生开发商店而构建。它以其SCA和容器安全扫描功能而闻名,它还提供SAST和API漏洞测试。2022年2月,Snyk公司收购了云安全态势管理商Fugue公司。正如Gartner公司解释的那样,它在代码安全、容器安全和应用程序安全等基础设施中提供的产品组合代表了“应用程序和基础设施层越来越模糊”这一事实。它通常是在开发人员方面购买的,但对于寻求转向开发人员运行的安全测试和修复的民主化模型的首席安全官和安全人员来说值得尝试。
(4)Sonatype Nexus
作为软件组合分析(SCA)市场上运行时间最长的产品之一,Sonatype早在该术语进入安全会议和网络研讨会之前就将自己称为“软件供应链安全”公司。Sonatype Nexus平台的核心是其创建详细的软件物料清单 (SBOM)和策略管理的能力。Forrester公司分析师表示,“策略是Sonatype的优势领域,它具有符合一系列标准的开箱即用策略和允许用户创建策略,并将策略分配给某些类型的应用程序的策略引擎。”而策略不仅可以应用于代码中的内容,还可以用于管理周围基础设施的安全性和配置,作为用于开发和部署应用程序的代码和容器。
Sonatype Nexus还提供存储库管理,为所有组件、二进制文件和构建工件提供单一事实来源。Nexus的组件历史可视化和Sonatype的客户服务也被分析师称为其最大优势。Sonatype公司去年还在一次收购中收购了MuseDev,帮助它建立了Sonatype Lift功能,在代码审查期间提供对开发人员友好的代码质量分析。
(5)Synopsys Black Duck
Synopsys公司的Black Duck SCA工具执行四种类型的分析(依赖性、代码打印、二进制和片段),以跟踪和管理组织软件中使用的组件。Synopsis公司最近改进了Black Duck的软件物料清单 (SBOM)创建功能,以包括BLANK。除了创建材料清单之外,该工具还执行自动化策略管理。Black Duck是Synopsys提供的更广泛的AppSec工具组合的一部分,Gartner公司在其应用安全测试魔力象限中将其命名为领导者。它用于提供SCA以及DAST、SAST、渗透测试、模糊测试和一系列其他测试功能的开放平台模型是一个关键的价值主张。Gartner公司表示,它使Synopsys非常适合使用多种开发风格和编程技术进行复杂、多团队开发的企业。
(6)Veracode
作为传统应用安全测试市场的长期强者,Veracode公司成熟的SaaS产品长期主导静态应用程序安全测试(SAST)和动态应用程序安全测试(DAST)领域,Veracode公司在过去几年一直在软件组合分析(SCA)上投入巨资。在2018年收购SourceClear之后,其本土软件组合分析(SCA)功能与其通过SourceClear提供的功能之间存在一些分歧,但Veracode软件组合分析现在是通过该平台提供的单一产品。Forrester公司分析师解释说,“Veracode的路线图侧重于在开发人员环境中统一静态应用程序安全测试(SAST)和软件组合分析(SCA)功能,并增强容器和基础设施即代码(IaC)安全功能。”他们指出,Veracode的亮点是它的补救报告和依赖关系图。他们指出,最大的摩擦点是难以将其集成到开发人员的工作流程中。
(7)WhiteSource Software
WhiteSource Software的软件组合分析(SCA)上工具的一大亮点是对开发人员友好的组件安全问题进行修复,其中包括警报和修复过期和恶意组件。Forrester分析师写道,“WhiteSource的思想领导力专注于补救和优先排序。”他们认为这家供应商是软件组合分析(SCA)领域的领导者。他们说,“WhiteSource提供与众不同的功能,包括一个浏览器插件,以帮助避免有问题的组件,并从开发人员队列中删除无法访问的漏洞,以改善开发人员体验。但它落后的一点是缺乏开箱即用的政策。”WhiteSource公司今年早些时候推出了静态应用程序安全测试(SAST)解决方案。