头图

软件供应链安全:基本点和四个关键最佳实践

什么是软件供应链安全?

企业软件项目越来越趋于依靠第三方和开源组件,该类组件由个人创建和维护,由于其与开发重要软件的组织无雇佣关系,所以第三方不一定使用与软件开发组织相同的安全策略。这点存在着一定的安全风险,因为个人创建的安全策略与组织创建的安全策略二者之间存在着差异或不一致性,这可能会导致出现易被忽视的脆弱区域,从而给攻击者以可乘之机。

第三方软件组件主要来源于两个方向,一是直接来自于供应商,一是来自于集中的注册表和存储库,上述供应商和存储库构成了现代软件供应链。攻击者可以通过多种方式危害软件供应链安全,包括:

  • 利用第三方组件中存在的错误或漏洞
  • 破坏第三方开发环境并注入恶意代码
  • 创建恶意的虚假组件

供应链安全旨在预防、检测和缓解该类风险以及来自于组织以外第三方组件的任何其他风险。

什么是软件供应链攻击?

根据美国国家标准与技术研究院(NIST)的定义,软件供应链攻击发生在“当网络威胁行为者渗透到软件供应商网络,并在供应商将软件交付至客户之前通过恶意代码破坏该软件时。然后,被攻击的软件会破坏供应商的客户数据或系统。新交付的软件可能从一开始就受到损害,或者可能通过补丁或修补程序等其他方式导致受损。在这些情况下,危害发生在补丁或修补程序进入客户网络之前。这些类型的攻击会影响受损软件的所有用户,并可能对关键基础设施和私营部门软件客户产生广泛影响。”

通常,攻击者通过发现供应链中的薄弱环节,利用该薄弱环节向供应链上游移动。他们利用信任关系来破坏使用被攻击者组件、产品或服务的企业。这可以让攻击者通过一次攻击就能破坏大量运行良好的企业系统。

软件供应链攻击实施者将关注点从企业的内部防御系统转移至其供应商的防御系统。如果防御良好的企业与安全防护薄弱的供应商合作,攻击者就会瞄准该供应商并展开攻击。一旦攻击者破坏了供应商网络或开发程序,他们就可以利用这个切入点渗透至客户的系统。

MSP攻击

是指一种专门针对托管服务提供商(MSP)的特定类型的供应链攻击。企业通常会使用MSP外包技术,并将该技术应用于网络和系统管理中。攻击者通过破坏MSP可立即访问企业所有客户的公司网络。这种类型的攻击发生率近年来呈现愈演愈烈之势,并被用于策划勒索软件攻击、销售点入侵和企业电子邮件泄露诈骗。据2021年的一份报告结果显示,对单个MSP或托管安全服务提供商(MSSP)的网络攻击就可能会给数以百计的企业造成高达800亿美元的经济损失。

在供应链攻击过程中如何植入恶意软件?

虽然MSP攻击利用特权访问,但其他供应链攻击会破坏供应商的系统并植入恶意软件,然后攻击供应商的客户进行。这是灾难性的SolarWinds攻击中使用的方法。攻击者在看似无害的软件更新中植入恶意软件,由SolarWinds签名并分发给其客户软件。很多全球重要企业均遭到了这种攻击,包括思科、SAP、英特尔、德勤、英伟达、富士通和乐天。

后续攻击

通常情况下,供应链攻击只是攻击者计划的第一步。在最初的供应链攻击之后,攻击者通常会尝试横向移动和特权升级,以求加深其对网络的控制并获得对更敏感系统的访问权限。在这之后或与此同时,攻击者可能会窃取敏感数据、破坏操作系统或敲诈企业,与勒索软件攻击使用的手段如出一辙。

为什么传统网络安全措施不足以保障软件供应链安全?

供应链攻击针对一个或多个供应商展开攻击,可能需要几个月成功。在很多情况下,这些攻击会长时间未被发现。与高级持续性威胁(APT)攻击一样,供应链攻击通常具有针对性和高度复杂性。

即使拥有出色的传统网络安全防御系统,企业供应链也可能很容易遭到攻击。虽然某些解决方案(例如软件组合分析(SCA)软件)会评估第三方软件的风险,但很多解决方案却根本不具备此项功能。相反,大多数传统网络安全防护方法均已默认了产品或服务的安全性。企业可能拥有最先进的防火墙和端点安全技术,但这些技术本身或企业基础设施的任何其他部分均可能遭到供应链攻击并受其影响。

欧盟网络安全局(ENISA)的一份报告显示,在约66%的供应链攻击报告中,攻击者会使用供应商代码来攻击供应商的客户并对其造成危害。这表明企业应该重点关注并确保第三方软件和代码在使用之前不会被篡改。

另一个重要发现是,在对供应链攻击进行分析后的结果显示,有超过一半的供应商要么不知道自己被攻击,要么没有上报攻击情况。但89%的暴露于供应链攻击危险之下的客户企业最终均已意识到了该点,这表明供应商与其企业客户之间的安全事件报告存在成熟度差距。

保护软件供应链的四个最佳实践

以下最佳实践可以帮助您的企业为下一次供应链攻击做好准备。

1.快速修复漏洞
虽然一些供应链攻击方法利用了未知(零日)漏洞,但还是有很多攻击利用了已知漏洞。基于此点,企业应创建软件材料清单(SBOM),识别存在已知漏洞的组件,并应用相关更新或补丁。快速识别和修复第三方组件中的漏洞是预防供应链攻击的主要策略。

2.保持深度供应链可见性
企业需要了解其软件组合中使用的组件,并且充分认识和了解组件、系统和源代码之间的关系。当发现漏洞时,开发人员需要知道易受攻击的组件在多个软件项目中的使用位置,以便能够进行快速修复或删除。目前已有多种工具可以自动检测和帮助管理漏洞。

3.标记问题组件
开发人员需要不断寻找可能包含漏洞的新软件组件。因此,建议企业将供应链安全性左移,以确保开发人员拥有专业知识、工具并能提供支持,以避免在软件开发生命周期的早期选择易受攻击或不安全的组件。

一旦发现问题组件,就应该对之进行标记,从而确保所有开发团队都清楚该问题组件。标记的组件或漏洞扫描失败的组件可能会“破坏构建”,持续集成(CI)/持续交付(CD)管道应自动阻止将其部署到生产环境中。

4.持续监控组件
即使一个组件已经被确定为安全组件,也不意味着它会保持安全。新的漏洞会不断出现,组件使用寿命也可能已快要耗尽,或者其开源贡献者可能会放弃组件并对其停止支持。在所有这些情况下,您必须能够检测到组件风险状态的变化,确定风险严重程度的优先级,并在必要时关闭组件。

WhiteSource软件供应链安全

WhiteSource生产了保护您软件供应链的两种最佳产品WhiteSource SCA和WhiteSource Diffend。

据Forrester Research分析师称,WhiteSource SCA是一种先进的SCA产品,自2019年问世以来一直是市场领导品牌之一。WhiteSource SCA被世界各地的企业广泛使用,世界十大软件企业中有六家企业就使用该产品,这其中也包括微软。

WhiteSource SCA可以告诉您应用程序中包含的第三方软件组件,以及这些组件中是否存在易受攻击的漏洞。相较于其他产品,WhiteSource SCA的特别之处在于:

  • 准确性。WhiteSource的专利算法能够将真正的问题与噪音区分开来,使您的效率提高70%至85%。
  • 便于使用。WhiteSource能为开发者提供其正常开发环境中开源漏洞的实时信息,因此开发者无需在应用程序之间切换或等待结果。
  • 自动修复。WhiteSource不仅可以识别易受攻击的开源组件,还可以自动生成带有修复建议的拉取请求。

此外,WhiteSource SCA允许您为每个软件项目轻松创建一个SBOM。每个SBOM标识开放源代码库均包括直接的和可传递的依赖项,并提供一个修复路径,以确保更新不会破坏构建。

WhiteSource Diffend是一种专门的供应链安全解决方案,它与程序包管理器(目前为JavaScript和Ruby)集成,阻止恶意包通过安装来攻击您的代码库。Diffend可保护您免受误植域名、恶意接管、ATO攻击、makefile污染、比特币挖掘、意外注入、僵尸网络代码注入、环境和凭据窃取、病毒、程序包篡改、程序包CVE、JavaScript CVE、Ruby CVE、品牌劫持和依赖混淆.

自2020年初公开发布以来,WhiteSource Diffend已在Rubygems注册表中检测到350多个已知恶意程序包,并且自2021年底以来已在NPM上检测到1,400多个恶意程序包。如欲了解更多 WhiteSource 相关消息,或亲身体验 WhiteSource,请联系 WhiteSource授权合作伙伴——龙智 免费试用。

作者简介:

亚当·默里(Adam Murray)

亚当·默里是WhiteSource的内容作家。在搬到特拉维夫之前,已在伦敦和纽约开始了他的企业传播和公关职业生涯。在过去十年中,亚当·默里一直与Amdocs、Gilat Satellite Systems、Allot Communications 和Sisense等科技公司精诚合作。亚当·默里拥有英国文学博士学位。亚当·默里热爱家庭生活,工作之余喜欢陪伴妻儿并对足球队托特纳姆热刺队(Tottenham Hotspur)情有独钟。

分享DevSecOps解决方案最新动态,帮助您学习与使用Atlassian, Perforce, Whitesource, Cloudbees及龙智...

1 声望
1 粉丝
0 条评论
推荐阅读
版本控制 | 如何利用虚幻引擎进行虚拟制作,为电影制作带来更多可能
现在,具有创新意识的电影制片公司已经在使用像虚幻引擎(Unreal Engine)这样的3D引擎,并结合虚拟制作技术,创造出当今最前沿的媒体内容。这项技术正在彻底颠覆电影和媒体领域。

龙智DevSecOps

封面图
Answer.dev 走进华师大课堂:Answer 项目开发流程详解
前不久,Answer.dev 开发团队受到华东师范大学 CS4ALL 研究中心邀请,为在读硕士的同学们进行了一次分享,以 Answer.dev 项目开发过程为例,与同学们探讨了项目研发管理、开发流程、DevOps 等相关话题。以下为 An...

AnswerDev2阅读 610

WGCLOUD的指令下发和自定义监控项有什么区别
WGCLOUD监控系统有两个功能模块:指令下发和自定义监控项话说,WGCLOUD确实一款非常优秀的运维监控软件,轻量且性能好言归正传,那么它们两个有什么区别呢1、指令下发指令下发可以执行任何指令或者脚本,由agent...

一往情深1阅读 588

【敏捷研发系列】前端DevOps流水线实践
软件开发从传统的瀑布流方式到敏捷开发,将软件交付过程中开发和测试形成快速的迭代交付,但在软件交付客户之前或者使用过程中,还包括集成、部署、运维等环节需要进一步优化交付效率。因此Devops的产生将敏捷的...

京东云开发者1阅读 779

封面图
制作容器镜像的最佳实践
这篇文章主要是我日常工作中的制作镜像的实践, 同时结合我学习到的关于镜像制作的相关文章总结出来的. 包括通用的容器最佳实践, java, nginx, python 容器最佳实践. 最佳实践的目的一方面保证镜像是可复用的, 提...

东风微鸣云原生2阅读 549

git cherry-pick 同步修改到另一个分支
我们在开发中有时会遇到,需要将另一个分支部分修改同步到当前分支。如下图,想把 devA 分支中 commit E 和 F,同步到下面绿色的 devB 分支中。

大数据王小皮阅读 1.8k

分支管理工具: 特性分支 VS 特性开关
来源:DevOps.com作者:Pete Hodgson译者:小江英文原文链接:[链接]软件开发团队的代码分支管理策略会对其发布高质量软件的速度产生重大影响,这篇文章我们将探讨在同一代码库中实现多个并行开发工作流的几种不...

FeatureProbe阅读 1.4k

封面图

分享DevSecOps解决方案最新动态,帮助您学习与使用Atlassian, Perforce, Whitesource, Cloudbees及龙智...

1 声望
1 粉丝
宣传栏