对20多家供应链安全厂商进行分析,从确保源代码访问和CI/CD管道安全,到SCA、恶意依赖、容器安全、SBOM、代码出处等。

本报告重点分析了20多家软件供应链安全(SSC,Software Supply Chain)厂商目前为确保软件供应链各方面安全而采取的方法。虽然大多数厂商提供的产品大同小异,但我们发现这些厂商在解决问题的方法上存在一些差异。本报告重点围绕新兴厂商展开讨论。

纳入和排除标准

1.有30多家公司致力于确保软件供应链不同方面的安全。由于厂商数量众多,我们无法一一介绍。

2.本报告中讨论的厂商都是解决软件供应链独特问题的解决方案样本或范例。

3.我们认识到,有些厂商提供多种产品,可满足软件供应链多个类别的需求。不过,在本讨论中,我们将特别关注其产品线的一个核心功能,以说明如何确保供应链每个组成部分的安全。

4.我们更加重视2018年之后成立的新兴初创企业,因为它们为解决软件供应链挑战带来了独特而现代的方法。

5.本文讨论的许多解决方案都涉及分析源代码或围绕源代码的源代码管理 (SCM) 或 CI/CD 平台。

6.应用安全态势管理 (ASPM):值得注意的是,有些厂商在讨论中将自己归类为应用安全态势管理(ASPM)。Gartner将ASPM定义为能够将多个来源的安全数据关联起来、对所有数据进行分流并更全面地查看整个应用程序的安全风险的供应商。这能让团队深入了解整个系统的整体状态。这些产品可作为安全工具的管理和协调层。越来越多的ASPM解决方案被归类为软件供应链厂商。不过,需要注意的是,虽然ASPM提供了SSC安全功能,但它们不应被归类为完整的SSC供应商。

传统平台厂商

我们将简要讨论传统软件供应链厂商。我们认为,必须承认它们在软件供应链中发挥着关键作用,许多企业仍然依赖这些解决方案。

Veracode、Checkmarx和Synopsys都成立于2007年之前。它们是在云计算和开源工具在开发人员中广泛使用之前开发的。最初,它们的重点是服务于企业主要在内部编写代码的市场。这些厂商专门从事应用程序安全测试 (AST),并提供工具和解决方案,帮助企业识别、评估和缓解其软件应用程序中的漏洞,包括 SAST、DAST 和 IAST。近年来,许多传统厂商收购了新兴的初创公司,并调整了自己的平台,以适应云原生环境和现代SCA解决方案。

这些厂商因其良好的声誉和强大的厂商锁定机制而继续受到市场欢迎。许多大型和高度受监管的组织在其技术堆栈中都依赖于这些解决方案,这使得新兴的初创企业要想取代它们具有挑战性。这些厂商收购了初创企业,并开发了集成流行开源工具的解决方案。这些现有厂商利用其庞大的客户群来追加销售其解决方案,而在当前强调厂商整合的市场中,初创企业很难做到这一点。我们认为,在未来1-3年内,这些厂商可能会保持不小的市场份额,不应被忽视。

现代平台厂商

Snyk成立于2015年,最初通过围绕SCA的Snyk开源获得了显著的发展。通过收购Fugue,他们将自己的平台扩展到了SAST、DAST以及云安全领域。尽管Snyk最近遇到了麻烦,在2022年底裁员5%几个月后又裁员15%,而且在2023年的二级交易中其估值暴跌超过50%,但我们相信Snyk将继续成为一些大型云原生企业的平台游戏,这些企业希望在一个平台上整合多个应用安全解决方案。

现代软件供应链厂商

源代码中提到的许多供应商都在开发生命周期的早期发挥着重要作用。它们提供代码监控,防止代码篡改,检测源代码泄漏,并提醒开发人员注意触发器或警告标志。我们注意到,其中许多解决方案都与Git、GitHub、GitLab和BitBucket集成,使它们能够在开发人员的核心环境中执行这些安全操作。

GitLab和GitHub

我们不能不从数百万软件开发人员的核心组件开始讨论。GitLab和GitHub围绕着Git版本控制系统,加强协作,支持repo托管,是开源项目的枢纽。由于近年来软件供应链攻击的紧迫性,这些供应商已开始提供从源代码安全到安全使用第三方依赖性的解决方案。GitLab 为开发人员提供依赖扫描功能和SCM解决方案。GitHub 拥有高级安全功能,可对第一方代码执行SAST,对第三方代码执行SCA,并执行秘密扫描来增强安全性。GitHub主要通过收购公司来提供安全产品,2019 年主要收购了Dependabot 和Semmle。而GitLab则主要利用Semgrep、Clair、Trivy 和 Grype等开源工具来提供许多安全解决方案,不过近年来它也收购了一些小型安全初创公司。

Arnica和Jit.io

这两家供应商的产品特点相对相似,核心重点都是加强安全与开发团队之间的漏洞。不过,两家公司在技术功能上的做法却不尽相同。

Arnica采用多种方法解决SSC问题。Arnica平台通过其行为图跟踪开发人员执行的每项操作,从而能够识别源代码控制系统中的漏洞,并识别任何易受攻击的代码或对源代码库的未经授权访问。一旦被识别,Arnica会使用ChatOps(通常是Slack或Teams)实时通知代码作者、推送者或任何指定团队。例如,如果开发人员无意中推送了包含暴露机密的代码,他们就可以在其本地通信平台上收到即时通知,以及如何纠正问题的分步说明。

其次,Arnica在其平台上运行并维护所有实时代码扫描功能,这有助于客户避免部署多个单独的 SCA 或 SAST 解决方案。Arnica采用了他们所谓的“无管道”方法,这意味着他们减少了客户集成多个CI/CD工具以确保管道安全的需要。Arnica利用其内置的代码安全功能(集 SAST、SCA和IAC于一身),为客户提供全面的覆盖范围/上下文。

该平台与源代码相关的另一个值得注意的核心功能是管理开发人员的访问权限和行为分析。Arnica的自动开发人员权限功能通过异常检测和严格的分支保护策略来识别潜在的不良代码注入。Arnica的动态开发人员访问管理为所有开发人员建立行为档案,并应用最低权限访问,以最大限度地减少未经授权的用户滥用源代码,或根据历史访问模式系统地调整开发人员权限。

Jit.io是一个开放式产品安全协调平台,可集成多种安全工具,确保SDLC各个阶段的安全。其平台支持SAST、SCA、秘密检测、云扫描和DAST等流行的开源工具。Jit通过一个名为 Jit安全计划的概念来解决软件供应链问题。这种方法在确保软件供应链所有方面的安全时,都会考虑到业务目标和要求。公司提供的安全计划可指导用户实现特定的业务目标,同时确保认证准备就绪。这些计划包括 AWS 基础技术审查(FTR)、Jit MVS for AppSec 和OWASP Top 10应用程序合规性框架。Jit可以帮助工程团队从代码到云都遵守这些框架。

与Arnica等解决方案不同,Jit允许用户使用自己的SAST和SCA工具。Jit可在整个开发生命周期中协助集成和协调这些工具。Jit的另一个独特之处在于其广泛性和开放性。Jit以开放的方式与其他 SSC和ASPM供应商合作。用户可以将不同的安全工具连接到Jit平台,然后Jit平台主要在GitHub中协调和执行这些工具。用户可通过指定输入、输出和执行方法,灵活添加自己的安全工具。

软件成分分析

软件成分分析 (SCA) 工具被用于识别和扫描代码库中的所有开源软件和第三方依赖项,以确保符合许可要求,并查找存在已知安全漏洞的依赖项。

Dependabot

Dependabot(2019年被GitHub收购)是SCA领域的早期参与者之一,对开源软件仓库免费,对私有软件仓库则需要高级安全计划。Dependabot可以发布PR,轻松更新易受攻击的依赖项,支持导出SBOM,并确保许可证合规性。

Snyk

如前所述,Snyk公司在过去几年中发展迅速,其SCA产品Snyk Open Source是其最初的收入来源,他们利用该产品收购了一些拥有互补产品(如SAST、容器扫描等)的公司,以横向扩展业务。Snyk 拥有自己的漏洞数据库,与Dependabot类似,支持自动生成修复PR、许可证合规性和导出 SBOM。

※虽然它们的产品页面和文档都没有明确说明它们的分析是如何工作的,但看起来 Dependabot和 Snyk可能只是将项目列出的依赖项和版本与它们的CVE数据库进行比较。也就是说,它们可能并不利用能有效推理代码、解决方法调用等问题的成熟代码分析引擎。

这就解释了为什么Dependabot(源代码)和 Snyk(源代码)讨论过进行可达性分析,但在实践中,它们似乎并没有在产品中优先考虑这项工作,尽管让开发人员集中精力升级那些能有效降低风险的依赖关系具有明显的用户价值。

Semgrep

Semgrep Supply Chain侧重于可达性分析,以帮助用户关注重要的依赖关系,即由于应用程序的第一方代码调用依赖关系中的易受攻击函数而可能被利用的依赖关系。Semgrep Supply Chain(以及Semgrep的其他产品)每月最多可免费使用10个用户。

Semgrep Supply Chain还支持许可证合规性、SBOM导出和依赖关系搜索,使您能够根据需要在企业的每一个代码库中搜索任何版本的任何依赖关系。在出现新的、备受关注的漏洞(如 log4shell)时,这可以节省数小时或数天的人力时间,因为您需要尽快知道在哪些方面受到了影响。

Semgrep还推出了Semgrep Code(一种SAST产品),该产品通过更高级的分析和更多的安全覆盖范围扩展了其广受欢迎的开源引擎,最近又推出了Semgrep Secrets,该产品利用Semgrep的代码分析能力,在查找源代码中的秘密时超越了regex,并能自动验证检测到的秘密当前是否有效。

Endor Labs

Endor Labs同样利用程序分析对项目依赖关系中的CVE进行可达性分析,并支持导出 SBOM。

Oligo

Oligo使用eBPF提供运行时可视性,以了解应用程序所依赖的开放源码软件库以及这些库的交互和行为方式。利用运行时数据,Oligo可以告知用户哪些易受攻击的依赖库是实时的,可能会被利用。此外,Oligo还拥有一个OSS库基准行为配置文件数据库,然后将其与实时软件包行为进行比较,并在库偏离其预期活动时发出警报,因为这可能预示着一次成功的攻击。

恶意依赖供应商

在本节中,我们将讨论几家专门从事识别流行开源软件包中恶意第三方依赖关系的供应商。

Socket

Socket通过提供一个实时检测易受攻击软件包的平台来解决供应链问题。通过Socket依赖性搜索、依赖性风险评估和基于内容的能力检测分析,开发人员可以了解他们正在使用的依赖性的性质。

通过与GitHub的原生集成,Socket可直接向开发人员提供有关依赖项行为和安全风险的 PR 注释反馈。这些依赖关系概述注释可快速概括哪些依赖关系被添加或更新、依赖关系具有哪些 "功能 "或 API 使用(如访问文件系统、发出网络请求、运行shell命令等),以及新的传递依赖关系的数量。这有助于工程团队了解代码更改对其应用程序的影响,并做出明智的决策。

Socket 还介绍了利用大型语言模型 (LLM) 检测恶意依赖关系的方法。

(https://socket.dev/blog/using-gpt-at-work?utm_source=tldrsec.com&utm_medium=referral&utm_campaign=software-supply-chain-vendor-landscape)

Phylum

Phylum利用大数据和机器学习自动识别并减轻与开源软件相关的攻击和其他风险,从而解决软件供应链安全问题。他们通过持续监控主要开源生态系统(包括npm、PyPI、RubyGems、Maven、Nuget、Crates.io和Golang)中的软件包发布情况来实现这一目标。

Phylum实时检查新发布软件包的源代码、作者、元数据和其他因素。它们使用启发式、分析和机器学习来确定软件包是否表现出显示恶意软件的可疑行为。预计仅在今年,他们就将对1,500万个软件包出版物中的近10亿个文件进行分析,全面覆盖开发人员使用的流行开源解决方案。通过对这些数量庞大的软件包进行编目和分类,Phylum可以帮助企业深入了解攻击者的行为。

Phylum相信采用深层次的防御方法来保障软件供应链安全是有效的。他们认识到拥有源代码和生产基础设施访问权限的开发人员是高价值目标。因此,Phylum不仅在CI/CD过程中阻止攻击(与Github和Gitlab等主流的CI提供商集成),还专注于确保在开发过程中开发人员的安全。为此,他们开源了一个名为Birdcage的沙盒,限制网络、磁盘和环境访问。

Datadog的GuardDog

GuardDog是Datadog今年早些时候发布的一款新的开源解决方案,允许开发人员使用 Semgrep进行静态分析和软件包元数据分析,从而识别恶意Python软件包。GuardDog不仅支持扫描PyPI,还支持扫描npm软件包。GuardDog可以集成到持续集成(CI)管道中,并扫描拉取请求引入的新依赖关系。Datadog公开了他们在研究过程中发现的大量恶意软件包。

Endor Labs

虽然目前这似乎还不是公司的重点,也不是公司提供的产品,但Endor分享了一些关于使用 LLM 进行恶意软件检测原型开发的博文。

(https://www.endorlabs.com/blog/llm-assisted-malware-review-ai-and-humans-join-forces-to-combat-malware?utm_source=tldrsec.com&utm_medium=referral&utm_campaign=software-supply-chain-vendor-landscape)

CI/CD 管道安全

OX Security

OX Security的供应链安全方法侧重于软件CI/CD管道。OX引入了PBOM(管道物料清单)一词。对于每次管道构建,OX 都会生成一个名为PBOM的签名知识图谱,该图谱会创建一个动态物料清单(BOM),显示整个开发生命周期中的软件流程。从本质上讲,它是一个持续更新的地图,包含了SBOM的所有内容,以及软件经过的基础架构记录(例如,管道分支、构建、拉取请求、票据、已知问题)。OX Security ASOC单一真相源和CI/CD工作流自动化与安全态势特别有助于在整个构建和管道阶段实现所有组件的可追溯性和可视性。

OX Security联合创建了开放软件供应链攻击参考(OSC&R),这是一个开源框架,用于了解和评估软件供应链面临的威胁,包括解决这些问题的策略和技术。OX Security利用这一框架构建了自己的产品,这也是他们的解决方案能够满足整个供应链需求的原因。

OX审查代码存储库并映射流水线,以查找安全漏洞和不正确的设置。OX部署各种安全工具,如静态分析、SAST、秘密扫描、容器扫描和基础设施即代码(IaC)扫描,以在构建过程中识别风险或配置错误。然后,在分析代码扫描、保密管理、软件包和流水线后,生成一个基准应用风险分数。

Cycode

Cycode 专注于CI/CD安全,并通过其源代码控制功能对构建进行加固。Cycode采用轻量级eBPF(扩展伯克利数据包过滤器)安全解决方案,可在构建过程中检测攻击。他们可以通过扫描受攻击的管道运行程序来管理供应链漏洞,并监控构建过程中的攻击,如typoSquatting或恶意依赖。Cycode还提供源代码泄漏检测产品,可降低代码泄漏的可能性和风险。它可对可疑行为发出警报,并识别专有代码的实际泄漏,从而实现快速遏制。

Tromzo

Tromzo 通过所谓的产品安全操作平台 (PSOP) 解决供应链安全问题。这意味着他们通过提高公司软件资产库存和CI/CD管道所有方面的可见性来解决SSC问题。他们在CI/CD中提供可定制的安全策略(涵盖安全默认值、代码所有权和扫描范围),使团队能够构建安全系统。此外,Tromzo 还提供CI/CD(持续集成/持续部署)态势管理解决方案,确保构建服务器需要身份验证,限制创建公共存储库的能力,并将安全密钥设置为默认过期。该公司还通过限制有风险的开发实践来解决管道中的潜在漏洞,例如在验证前执行第三方资源或在构建中引用可能被外部更改的图像。

由于覆盖范围更接近部署阶段,他们的平台更适合ASPM买家。安全团队利用Tromzo专有的Intelligence Graph来识别关键软件资产,包括所有权和来源,并解决对业务构成最高风险的漏洞。

Cider Security(现为 Palo Alto/Prisma Cloud 的一部分

最初的Cider产品(现以Prisma Cloud出售)利用基于图形的数据库,在单一视图中提供公司 CI/CD 管道的综合清单。该产品专门扫描网络钩子或管道日志中可能被滥用的暴露凭据。由于Palo Alto的产品范围广泛,他们能够将代码库、扫描仪、协调和自动化工具中的不同信号关联起来,从而对开发人员的工作流程进行集中可见性和控制。

容器安全

Chainguard

Chainguard Images提供了一套安全第一的容器基础镜像,不含无关软件包,允许开发人员在由Sigstore签名的干净镜像基础上进行构建。在整个过程中,开发人员可以使用 Chainguard 在构建过程中生成SBOM。平台团队使用的镜像可减少扫描仪的整体噪音,旨在帮助用户提高SLSA保证水平,并通过更新镜像停止手动打补丁。它们可用于确保持续验证,确保开发中的软件包即使在部署后也不会出现漏洞。

Aqua

Aqua Security提供一套广泛的软件供应链功能,包括使用流行的行业格式生成SBOM。不过,其核心优势在于容器安全产品。它们可以扫描在虚拟机上运行的容器以及Fargate和 Azure Container Instances (ACI) 等无服务器容器。Aqua"s 提供镜像扫描,并能对镜像进行动态分析。他们的解决方案与各种容器注册表和Kubernetes平台集成。

Rapidfort

Rapidfort采用基于容器的方法来解决这一问题。他们引入了“RBOM”(真实物料清单)的概念,这是一种SBOM(软件物料清单)后容器优化技术,旨在减少噪音,从而将扫描过程中的漏洞警报降至最低。Rapidfort可自动优化容器,只包含必要的内容。开发人员可以提供细粒度配置或使用供应商提供的建议,解决方案还提供优化后分析,详细说明删除了哪些文件、软件包和漏洞。

打包与部署层

打包与部署层讨论了专注于代码出处、代码签名、SBOM 生成/管理和工件库的供应商。许多供应商都能提供软件资产、合规性和重要软件指标的可视性。

Chainguard

Chainguard Enforce按照SLSA和NIST框架提供策略管理,并利用合规性自动化工具生成 SBOM。它们进一步帮助识别和调查策略违规行为,并提供生产洞察,使用户能够看到生产环境的实时视图。通过这种方法,Chainguard可帮助开发人员实施控制和执行策略,降低恶意提交、提交、工件或依赖注入的风险。

Legit Security

Legit Security以SBOM合规性为核心,为软件供应链安全提供核心方法。它为开发人员提供应用安全态势管理(ASPM)工具,为代码到云部署的所有关键环节提供可观察性和可视性。

在源代码层,Legit与所有源代码库集成,确保访问源代码需要多因素身份验证。它通过代码审查和分支保护来保护源代码,并审核可访问源代码的第三方集成。Legit的代码到云可追溯性功能可提供参与构建源工件的源代码库的上下文。

Legit Security优先考虑公司的持续SBOM合规性。他们的SBOM支持领先的监管框架,如 CycloneDX格式的SBOM。他们的SBOM可帮助企业识别合规性差距,汇集多种SBOM来源,并提炼出不同SBOM格式之间的差异。

根据Kuppinger Cole的说法,Legit Security的构建完整性产品在市场上名列前茅。他们的解决方案可在软件构建前执行各种容器安全检查,如图像合规性、检测软件工件的漂移以及防止潜在硬编码机密的发布。Legit与所有主要的构建自动化工具集成,并为各种编程和脚本语言提供支持。

Apiiro

Apiiro采用一种名为“扩展物料清单(XBOM)”的综合方法来处理SBOM。该产品以图形数据库为基础,包含所有可查找易受攻击依赖性的SBOM核心功能。不过,它的功能远不止于此,还能为公司的应用堆栈、管道组件、基础设施即代码(IaC)、容器映像和API提供额外的可见性。Apiiro还通过重复警报、将每个风险链接到代码所有者和触发修复工作流来汇总、优先排序和修复风险。虽然Apiiro提供的产品主要针对应用程序开发和云安全,但他们也提供跨软件供应链管道的可视性、优先级和修复。这包括分析开发人员行为和使用风险图检测开源解决方案中的恶意软件包。

特别提及

1.Anchore提供基于容器和云原生软件的供应链安全解决方案。

2.ArmorCode AppSecOps平台集成并关联来自安全、CI/CD和云基础设施工具的数据,以及企业 IT 生态系统中的票单和协作解决方案。

3.Lineaje提供了一款SBOM360 产品,它带有一个CLI/SCA工具,支持SPDX和CycloneDX 格式。该工具可分析不同来源的软件,并利用Lineaje的深度学习引擎 (LDLE) 对软件组件进行分解和映射。Lineaje的优势在于为企业提供先进的SBOM数据,这对于要求严格遵守 SBOM合规性的企业来说非常有价值。

结束语

解决软件供应链问题既复杂又困难,企业需要时间才能做好。作为一个发展不到5年的行业,在企业内部全面推行也需要时间。

所有供应商的一个共同点是与 GitHub和 GitLab等源代码库和CI/CD解决方案紧密集成。它们提供的解决方案可加强对集成开发环境和源代码环境的访问控制。此外,它们还能检测软件包和库中已知的恶意依赖关系,及时向开发人员发出警报。也许是由于最近的法规,许多供应商提供了为客户生成SBOM(软件构建材料清单)的能力,而且不受格式的限制。

我们相信,能够在安全团队和工程团队之间架起无缝桥梁,最大限度减少开发人员上下文切换的供应商才是最有价值的。

软件供应链类别已经高度分散,有近30多家初创公司在解决相关问题。随着这一领域的不断发展,新的解决方案层出不穷,供应商整合的话题也经常被讨论。例如,Palo Alto networks 去年收购了Cider Security。今年,我们看到了更多的ASPM收购。Snyk收购了Enso Security,Crowdstrike最近收购了Bionic.ai。预计随着这一市场的发展和某些供应商的成熟,领先的应用安全供应商可能会考虑收购其中一些公司,以增强其更大的平台。

本文为节选,全文链接如下:

https://tldrsec.com/p/software-supply-chain-vendor-landscape

声明:本文来自安全喵喵站,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。