freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

软件供应链安全:您的攻击面远超想象!
2022-11-08 14:17:57
所属地 安徽省

1667888085_6369f3d5b4efab81f14e0.png!small?1667888087160

软件供应链攻击3年飙升742%

引人注目的软件供应链攻击正在上升。欧盟网络安全机构ENISA报告称,自2020年初以来,有组织的软件供应链攻击数量增加了4倍。Gartner认为,这一趋势将持续下去。在《软件工程领导者如何降低软件供应链安全风险》报告中,Gartner预测,到2025年,45%的组织将经历对其软件供应链的攻击。

近日,Sonatype《软件供应链年度报告》针对公开和专有数据分析结果显示,今年到目前为止,已经发现了8.8万个恶意开放源码包,比2019年同期数字增长了742%,表明企业攻击面正在快速增长。

同时,恶意活动的激增证明了这些团队越来越多地使用开源包来加快上市时间。Sonatype估计,今年开源请求将超过三万亿。开源消费的巨大规模和软件依赖项带来的额外复杂性可能意味着威胁和漏洞会被开发人员忽略。

报告指出,现在,Java应用程序平均包含148个依赖项——比去年多20个。Sonatype估计,由于Java项目平均每年更新10次,开发人员每年必须跟踪他们所使用的每个应用程序的近1500个依赖项更改。

然而,对这些开发环境的可见性缺失正在进一步加剧威胁:在过去的一年里,每7个影响开源项目的漏洞中,就有6个是由反式依赖引起的。

为了更好地应对这种威胁,我们有必要深入地了解软件供应链攻击的相关内容。

什么是软件供应链攻击?

当恶意行为者渗透到软件供应商的网络中,并在供应商将软件发送给客户之前破坏软件时,就可能发生软件供应链攻击。恶意行为者一般会选择利用众所周知的、广泛存在的开源漏洞,例如Log4Shell。然后,被入侵的软件会危及客户数据或IT系统。

软件供应链攻击急速增长的部分原因在于,更快的业务节奏导致了更快速的软件发布周期。随着组织加快软件开发周期以保持竞争力,开发人员根本没有时间去发现和修复漏洞,这些安全漏洞便会由此进入应用程序。

软件供应链攻击为何具有如此大的破坏性?

此类攻击尤为有害,因为即便是很小的更改也会产生广泛的破坏性影响。软件供应链攻击只需要一个被破坏的应用程序或一段代码就可以影响整个供应链。攻击通常针对应用程序源代码中的弱点,进而危及受信任的应用程序或软件系统。

这是因为供应链中的参与者比以往任何时候都更加相互关联。例如,公司A可能依赖供应商B,B可以访问A的企业资源规划(ERP)或其他系统。如果B遭遇入侵,很容易影响到A公司。

无数数据证实了这样一个事实:开源软件会使DevSecOps团队难以识别漏洞。

事实上,根据Dynatrace的研究显示,61%的受访者表示,使用第三方或开源代码会使识别和解决应用程序漏洞变得更加困难。

在供应链中,开源显然是一个弱点。根据2022年的一项调查显示,在64%经历过软件供应链攻击的组织中,大约70%都并未使用适当的开源政策。

此外,软件开发的速度也加剧了公司的补救难度。据Dynatrace的研究指出,51%的受访者表示,现代软件交付的速度使得漏洞在修复后更容易重新进入生产环境。

软件开发生命周期(SDLC)中的攻击向量

由于攻击载体的丰富,SDLC是一个具有吸引力的目标。恶意行为者发现,基于大量的切入点——试想一下,组织中有多少已被破坏或泄露的开发人员帐户、存储库或错误配置的工具——可以更容易地访问SDLC。此外,成功利用其中一个向量就可以提供对生产运行时环境及其数据的访问。大多数组织在这些用例的软件供应链覆盖方面存在显著差距,而传统的AppSec工具(如SAST或WAF)都侧重于其他问题。

1667888128_6369f4005be55219a049d.png!small?1667888129478

【现代软件交付管道攻击向量】

SDLC中的攻击向量包括DevOps工具和基础设施、开发人员帐户、不安全的编码实践、代码泄漏等等。

DevOps工具和基础设施

如今,攻击者已经将他们的注意力从生产应用程序转移到攻击构成软件交付管道的DevOps工具和基础设施。这些工具——源代码控制管理系统(scm)、构建工具、部署工具、基础设施即代码(IaC)、注册中心等等——成为目标的原因有几个。

首先,攻击者可以试图入侵的切入点数量很多,很难覆盖所有切入点;其次,DevOps工具通常由工程团队购买,缺乏安全可见性和控制;最后,与保护生产环境或检测源代码中的安全漏洞不同,没有广泛的解决方案来集中保护和管理GitHub、Jenkins、JFrog、Kubernetes以及其他组成软件供应链的工具。

代码篡改

代码篡改发生在修改源代码或注入恶意代码时,例如将应用程序武器化以对抗其用户。代码篡改可以发生在CI /CD管道中的任何点上,防止它需要组织监视SDLC的所有阶段。此外,像“一切即代码”(everything as code)和GitOps这样的趋势,现在将其他东西存储为可以篡改的代码,包括安全策略、基础架构模板、构建规则等等。这进一步扩展了代码篡改的潜在攻击面,使攻击者能够破坏更多SDLC。

不安全的编码实践

除了软件漏洞,编码也会带来无数的风险。不遵循安全编码最佳实践会暴露有价值的资源,并使攻击者能够访问组织系统。这包括使用硬编码的秘密、错误配置基础设施即代码(IaC)、缺乏标准化命名约定,或者在代码注释中存储秘密以外的敏感信息。当API密钥、加密密钥、令牌或密码暴露时,硬编码的秘密就会变得危险。IaC模板中的错误配置有跨许多云环境复制的风险,并可能向公众公开应用程序组件或数据。不遵循标准化命名约定可能是开发人员帐户受损的早期迹象。

代码泄漏

代码泄漏——私有源代码被公开,要么是由于开发人员将代码复制到错误的repo而意外暴露,要么是恶意行为者故意暴露——对任何组织都是严重的风险。代码不仅本身是一种非常有价值的资产,而且代码泄漏可能会暴露秘密,并扩大攻击面,使未经授权的用户能够访问内部系统或数据。

软件供应链安全框架

为了应对越来越多的软件供应链攻击,并帮助减少这些攻击向量,一些组织开发了专门解决软件供应链安全问题的新框架。这包括NIST的安全软件开发框架(SSDF)和谷歌的软件工件供应链级别(SLSA):

NIST SSDF——为了响应行政命令14028《改善国家的网络安全》,NIST开发了一个框架,确定了四个最佳实践领域,以促进安全软件开发实践。这包括让组织做好准备、保护软件、生产安全良好的软件,以及对安全漏洞做出响应。每个类别都被记录下来,以帮助组织定义安全开发实践。

谷歌SLSA——与OpenSSF合作设计的谷歌SLSA是一个端到端框架,旨在确保供应链安全,特别是对开放源码软件。SLSA的目标是确保整个供应链中软件工件的完整性,以便组织能够更好地了解他们所使用的任何软件的安全态势。

软件供应链安全最佳实践

当着眼全局时,人们很快就会意识到SDLC对任何不注意这些差距的组织来说都是一个巨大的风险。组织需要保护组成其管道的工具,以降低风险并防止未来的破坏,但是当SDLC的每个阶段都存在如此多的潜在攻击向量时,组织如何做到这一点呢?如何将这些新的软件供应链安全框架付诸实践?

左移右移协同作用

当组织为未来潜在的软件供应链攻击做好准备时,他们必须监视整个软件开发生命周期的漏洞点。组织需要通过“左移”来识别自身的软件开发中是否存在风险,这是软件开发过程早期的安全测试和软件组成分析。但他们也会不可避免地面临一些漏洞进入实际应用程序的风险,因此,他们还需要“右移”,以探索生产应用程序中的运行时漏洞。例如,臭名昭著的Log4Shell针对的就是此类漏洞。

自动化DevSecOps和现代化可观察性

最终,组织将受益于通过可观察性方法将更大的自动化引入到DevSecOps过程中。

现代化可观察性使组织能够识别运行时应用程序漏洞,并对其进行优先级排序。现代化可观察性提高了AIOps(即用于IT运营的AI)的传统监控能力。它提供上下文数据分析,确定关于安全问题来源的精确答案。对于类似log4shell的事件,识别根本原因并确定问题的严重性是关键。此外,现代化的可观察性可以为DevSecOps团队在识别、确定优先级和补救安全漏洞方面节省大量时间和人力。

因此,强烈建议DevSecOps团队使用这种精确的、基于人工智能的方法来解决运行时漏洞。

借助自动化工具

采用一种自动识别并帮助纠正这些痛点的安全工具,可以减少或消除攻击向量。这些工具必须能够解决以下用例:

可见性和治理——在所有团队、DevOps工具和基础设施中获得可见性并实施一致的治理和安全策略,比如最小特权、强化身份验证和实现分支保护规则;

IaC安全性——扫描IaC模板,以确保它们在部署之前没有错误配置问题,因为错误会在许多云环境中被放大;

硬编码秘密检测——检测和纠正跨多个位置的任何现有硬编码秘密,并使用开发人员工作流集成来防止新的硬编码秘密被引入;

源代码泄漏——识别可疑行为以防止泄漏,并检测专有代码泄漏,以便快速遏制任何泄漏;

防止代码篡改——在管道和开发过程中建立保障措施,以确保应用程序中只使用经过授权的代码和组件。

将合作伙伴的安全视为自己的安全

随着软件开发周期的加快,组织需要使用自动化DevSecOps和现代化的可观察性来识别软件中的漏洞——无论是在开发中还是在生产中。此外,组织需要认识到,他们的脆弱性现在已经远远超出了自身的范畴,涉及到他们与第三方和代码的关系。组织应该认识到,他们的代码应该与合作伙伴的代码实践一样安全。通过提供对整个堆栈的风险洞察,现代化的可观察性可以帮助组织将洞察力扩展到合作伙伴生态系统中的漏洞。

参考链接:

https://www.infosecurity-magazine.com/news/software-supply-chain-attacks-soar/

https://www.dynatrace.com/news/blog/why-software-supply-chain-attacks-are-increasing/

https://cycode.com/blog/software-supply-chain-security-your-attack-surface-is-bigger-than-you-think/

# 软件供应链攻击
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录