由于互联网信息技术产业的高速发展和软件开发需求的急速扩增,导致软件开发的难度与复杂程度不断加大,软件开发生命周期中的每一个环节都存在引入漏洞的可能性,导致软件供应链的安全风险无处不在,非法攻击者一旦对软件供应链中的任意环节进行攻击、篡改等,都将会引起最终软件供应链安全风险的连锁反应,产生巨大的安全危害。

软件供应链的漏洞大致分为以下几种类型进行分析:

一、软件供应链中的漏洞类型

1、合法供应商引入的漏洞

随着开发日益全球化,大规模的软件开发导致软件供应链发生了很大的变化,其中最重要的变化是如今的软件供应链中包含引入供应商这一关键环节。全球的互联网企业现如今越来越依赖成百上千的第三方供应商、承包商等外部机构的帮助来支持完成软件生产的过程。

通常一个产品的产生需要引入一个或多个第三方供应商,企业往往需要与这些供应商之间进行数据信息共享,但这些第三方供应商的安全性通常难以得到保障,使之成为软件供应链中一个薄弱的环节,给软件供应链带来前所未有的安全威胁。一个典型的通过合法供应商引入漏洞的例子是 VxWorks 所引发的安全事件。

VxWorks 是一种使用最广泛的实时操作系统,全世界范围内有超过 20 亿台设备正在使用,包括工业、电力、能源和航天航空等行业关键基础设施。多年前,网络安全公司 Armis 在 VxWorks 中发现了 11 个 0day 漏洞被称为URGENT/11,其中 6 个漏洞为严重漏洞并且可以远程执行代码,其中 5 个漏洞包含拒绝服务、信息泄露和逻辑缺陷漏洞,这些漏洞存在于 TCP/IP 网络堆栈中,允许攻击者绕过传统边界,且无需任何用户操作即可远程接管设备,包括 SCADA 设备、工业控制器、病人监护仪、MRI 机器、防火墙和打印机等关键设备。

2、篡改或伪造组件的漏洞

通过对近年来的网络攻击行为进行深入分析发现,恶意代码的传播和扩散占据很大的比例,尤其是伪造的恶意组件,其主要特征之一是披着正规厂商“合法”的外衣,使伪造恶意代码组件在传播速度与产生的恶劣影响方面有了大幅度的提升。

伪造的组件可以使所有信任被攻击厂商证书的机构都陷入被入侵的风险,攻击者可能通过此伪造的组件绕过安全检查进而进行更大范围的攻击活动。披着“合法”外衣的伪造组件,拥有极高的隐蔽性和传播性,能在用户和开发者无感知的情况下产生巨大的安全威胁。

利用伪造的组件进行软件供应链安全攻击的典型例子之一是 SolarWinds Orion 攻击事件。攻击者在成功入侵SolarWinds 后,将其官网提供的 Orion 软件安装包替换成植入后门的版本,获取正规厂商的证书并利用其对自身进行签名,使其披上“合法”的外衣,躲避官网对软件的安全检查,从而实现软件供应链攻击。

3、编码过程引入的漏洞

随着软件已成为日常生活中不可或缺的一部分,保证底层源代码的安全性和完整性至关重要。但开发人员在编写代码时,由于缺乏安全意识以及不良的编码习惯、实践和策略往往会引入一些安全漏洞。随着软件规模的持续扩大,功能越来越复杂,编码过程引入的安全漏洞也越来越多;开发人员为了赶研发进度,很有可能会忽视自己使用的框架库中存在的安全缺陷,从而制造出潜在的安全风险,同时开发人员往往会大量复用软件模块,将导致安全漏洞不断延续。

除此之外,开发人员在编码过程中为了后续的测试工作往往会留下一些具有高级权限的账号,而在后续的编码过程中故意或误将这些具有高级权限账号留下,这种情况带来的软件漏洞极有可能被攻击者利用,读取软件中重要的敏感信息

4、开源组件引入的漏洞

现代软件大多数是被“组装”出来的,而不是“开发”出来的。现在的软件开发过程类似于早期的工业生产活动,是以开源软件为基础原料,在此基础上,再结合实际的业务需求和应用场景补充添加相对独立的业务代码,最后“拼装”出一套软件系统。这种开发方式虽然在一定程度上提高了软件系统开发的效率,却并未充分考虑其使用的基础开源组件是否安全可靠,为软件系统的安全性和可控性带来了巨大的安全挑战。

随着开源技术快速形成生态,开源热度的持续升高,企业引入开源软件已成为一种趋势。Sonatype 发布的《2020 State of the Software Supply Chain》报告中提到现代应用程序中 90% 的组件都是开源的,其中 11% 的开源组件中存在已知的安全漏洞。随着开源组件使用的增加,风险面也在不断膨胀,使用含有已知安全漏洞的开源组件很有可能将安全缺陷引入到软件产品中,并随着软件的使用而扩散,进而对软件供应链产生巨大的安全威胁。

二、软件供应链中的攻击类型

近年来,随着软件系统安全性的不断加强,网络攻击者开始采用软件供应链攻击作为击破关键基础设施的的重要突破口,从而导致软件供应链的安全风险日益增加。软件供应链攻击是指利用软件供应商与最终用户之间的信任关系,在合法软件正常传播或升级过程中,利用软件供应商的各种疏忽或漏洞,对合法软件进行劫持或篡改,从而绕过传统安全产品检查而达到非法攻击的攻击类型。

对于软件供应链攻击而言,主要可分为厂商预留后门、开发工具的污染、升级劫持、捆绑下载和源代码污染五种类型。以下是根据软件供应链攻击的五种类型列举了近几年发生的典型软件供应链安全事件并进行分析。

1、预留后门

多数软件厂商在开发过程中出于为了方便后续测试或技术支持的考量,可能会预留一些具有高级权限的管理员账户,而当软件正式发布时忘记或故意留下“后门”。导致产品在发布之后被网络犯罪者所利用造成难以挽回的危害。某些厂商因为国家的需要,为国家安全部门特意预留一些暗藏的“接口”,方便国家获取用户敏感信息数据,进行监视。

案例:

棱镜门事件:2013 年 6 月,棱镜计划(PRISM)正式暴露在人们视线中,它是一项由美国国家安全局(NSA)自 2007 年开始实施的绝密电子监听计划,该计划的正式代号为“US-984XN”,直接进入美国国际网络公司的中心服务器里挖掘数据、收集情报,包括微软、雅虎、谷歌和苹果等在内的 9 家国际巨头均参与其中。其中以思科公司为代表的科技巨头利用其占有的市场优势在科技产品中隐藏“后门”,协助美国政府对世界各国实施大规模的信息监控,随时获取各国最新动态。思科公司多款主流路由器产品被爆出在 CPN 隧道通讯和加密模块存在预置式“后门”,即技术人员在源码编写过程中已经将“后门”放置在产品中,利用“后门”可以获取秘钥等核心敏感数据,几乎涵盖所有接入互联网使用的人群。

2、开发工具污染

攻击者对开发者常用的代码开发编辑器进行攻击,对开发工具进行篡改以及增加恶意模块插件。当开发者进行代码开发的时候,恶意模块将在代码中植入后门,经过被污染过的开发工具编译出的测试程序,或部署到生产业务中的程序,都将被植入恶意代码。

案例:

XcodeGhost 事件:2015 年 9 月 14 日,一例 Xcode 非官方版本恶意代码污染事件被披露,受到广泛关注,多数专业分析者称这一事件为“XcodeGhost”。Xcode 是一款由苹果公司发布的运行在操作系统 macOS X Version 上的集成开发工具,是开发 OSX 和 iOS 应用程序的最主流的工具。攻击者利用通过官方渠道难以获取 Xcode 官方版本的情况,向非官方版本的 Xcode 注入病毒 XcodeGhost。其具体方法为修改 Xcode 软件的用于加载动态库的配置文件,在其中添加了非官方的具有恶意功能的 Framework 软件开发工具包,同时利用 Xcode 开发环境中使用的Object-C 语言的扩展类功能这一特性重写系统应用启动时调用的函数,使得恶意代码能够随着应用的启动而自启动。多款知名的 APP 受到污染,受感染的 APP 被用于各种潜在的非法用途,对平台下用户隐私的安全造成了巨大的威胁。

3、升级劫持

软件产品在整个生命周期中几乎都要对自身进行更新,攻击者可以通过劫持软件更新的“渠道”,比如通过预先植入用户机器的木马病毒重定向更新下载链接、在运营商劫持下载链接、在下载过程中劫持网络流量等方式对软件升级过程进行劫持进而植入恶意代码。

案例:

NotPetya 勒索病毒事件:2017 年 6 月 27 日晚,据外媒报道,欧洲多个国家遭遇了 Petya 勒索病毒变种的 NotPetya 的袭击,数万台机器受到了感染。在这次事件中,病毒感染用户计算机系统的行为与传统的勒索病毒大体一致,但是具有独特的网络感染手段。攻击者通过劫持乌克兰专用会计软件 me-doc 的升级程序,使得用户在更新软件时感染病毒。NotPetya 事件中劫持软件更新渠道的做法使其成为一次典型的软件供应链安全事件,同时攻击者利用大型组织供应链中的薄弱环节进行攻击的做法体现了供应链攻击的思想。

4、捆绑下载

攻击者可轻易通过众多未授权的第三方下载站点、云服务、共享资源以及破解版软件等方式对软件进行植入恶意代码,不仅如此,就连正规的应用商场由于审核不严等多种因素也会将被攻击者植入过含有恶意代码的“正规”软件分发给用户,造成重大安全威胁。

案例:

WireX BotNet 事件:2017 年 8 月 17 日,WireX BotNet 作为一种典型的僵尸网络通过控制大量安卓设备发动了较大规模的 DDoS 攻击。WireX 僵尸网络中的僵尸程序病毒通过伪装成普通的安卓程序,成功避过了谷歌应用商店的检测,伪装的安卓程序通过谷歌官方渠道被用户下载安装后将安卓主机感染成为僵尸主机。据相关报道,来自 100 多个国家的设备感染了 WireX BotNet。

5、源代码污染

软件产品如果在源代码级别就被攻击者植入恶意代码将难以被发现,并且这些恶意代码将在软件厂商的合法渠道下躲避对安全产品的检测,或许会长时间潜伏于用户设备中不被察觉。

案例:

SolarWinds Orion 攻 击 事 件:2020 年 12 月 13 日, 美 国 著 名 网 络 安 全 公 司 FireEye 发 布 分 析 报 告 称, SolarWinds 旗下的 Orion 基础设施管理平台的发布环境遭到一名为 UNC2542 的 APT 黑客组织的入侵。黑客通过获取 SolarWinds 内网高级权限,创建了高权限账户,对源代码包进行了篡改,植入恶意代码添加了后门,该文件具有合法数字签名,其会通过该公司的官方网站进行分发,后门伪装成 Orion OIP 协议的流量进行通信,将其恶意行为融合到 SolarWinds 的合法行为中,可进行信息收集、读写删除文件等恶意行为。FireEye 称已 在全球多个地区检测到攻击活动,包括北美、欧洲、亚洲和中东的一些政府、咨询和技术公司。

针对软件供应链各环节的攻击在近几年都在呈上升趋势,在趋于逐渐复杂和多样化的互联网环境下,软件供应链所暴露给攻击者的攻击面和脆弱点越来越多,当这些漏洞被攻击者所利用时,将有可能造成严重的安全威胁。

资料来源:《软件供应链安全白皮书(2021)》

软件供应链的漏洞及攻击类型相关推荐

  1. 开放下载丨悬镜安全携手中国信通院发布《软件供应链安全白皮书(2021)》

    引言                                                                                <软件供应链安全白皮书(202 ...

  2. 浅谈软件供应链安全治理与应用实践

    随着容器.微服务等新技术日新月异,开源软件成为业界主流形态,软件行业快速发展.但同时,软件供应链也越来越趋于复杂化和多样化,软件供应链安全风险不断加剧,针对软件供应链薄弱环节的网络攻击随之增加,软件供 ...

  3. 供应链安全 | 北京大学软件工程国家工程研究中心 张世琨:软件供应链安全的风险和成因分析

    ■ 北京大学软件工程国家工程研究中心 张世琨 马森 高庆 孙永杰 由于软件应用范围不断扩大,软件安全已经不限于虚拟空间,直接威胁到物理空间的安全,而且,供应链中的任何问题都会导致严重的危害.降低软件安 ...

  4. 安全知识图谱 | 绘制软件供应链知识图谱,强化风险分析

    本文为安全知识图谱技术技术白皮书<践行安全知识图谱,携手迈进认知智能>精华解读系列第七篇,介绍了知识图谱相关技术如何在软件供应链安全领域应用. 01软件供应链安全的兴起与挑战 随着软件技术 ...

  5. NPM 修复两个严重漏洞但无法确认是否已遭在野利用,可触发开源软件供应链攻击...

     聚焦源代码安全,网罗国内外最新资讯! 编译:代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件的安全 ...

  6. 探讨:软件厂商Kaseya事件是不是软件供应链攻击?

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  7. 美国 CISA 和 NIST 联合发布软件供应链攻击相关风险及缓解措施

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士 专栏·供应链安全 数字化时代,软件无处不在.软件如同社会中的"虚拟人",已经成为支撑社会正常运转的最基本元素之一,软件 ...

  8. 8大软件供应链攻击事件概述

    在软件开发中所面临的新型威胁已经不仅仅与特定的公司相关,整个软件供应链的上下游都已成为攻击者的目标,因此必须保证每个环节的安全性,因为如果一个环节出现问题,一切都会受到影响. 供应链活动包括将原材料. ...

  9. 3CX Desktop App 遭受软件供应链攻击(CVE-2023-29059)

    漏洞描述 3CX Desktop App 是一款集成电话.视频会议.即时消息等多种通信方式的桌面软件,在海外有较多企业客户使用. 疑似由于3CX Desktop App通过git构建时引入了受供应链攻 ...

最新文章

  1. linux后台执行命令:amp;与nohup的用法
  2. 一步一步教你使用AgileEAS.NET基础类库进行应用开发-WinForm应用篇-实现字典的打印...
  3. 荣耀20首现身!“保密壳”却暴露双排摄像头
  4. 现代科技概论_现代科技概论课程:力与运动1
  5. java有push方法么_[Java教程]js中push和join方法使用介绍
  6. 什么是句柄,句柄有什么作用
  7. 浅谈机顶盒破解之修改开机画面 修改开机动画 修改系统app 去掉认证app
  8. 基于web的网上书城网站设计与实现(SpringBoot ,Vue,MySQL )
  9. JS在H5下实现本地历史搜索记录
  10. cesium 模型实体平移
  11. TikTok干货分享:最新基金提现步骤之W9和Paypal
  12. msysGit与TortoiseGit使用入门
  13. Facade模式的介绍
  14. mysql uid怎么获取_新浪微博API如何获取uid,并根据uid获取用户的基本信息
  15. 小白终是踏上了这条不归路----小文的mysql学习笔记(4)----常见的基本函数
  16. Kindeditor使用常见问题
  17. 均值归一化_特征归一化
  18. 记录vue的双向绑定原理及实现
  19. Race【模拟】Rating
  20. [QQ机器人]Nonebot2 入群退群检测插件

热门文章

  1. 一名资深质量工程师总结的4个工作思路
  2. HotSpot虚拟机垃圾收集优化教程-人机工程学
  3. AFLNET源码分析
  4. 789 逃脱阻碍者
  5. Java实现 LeetCode 789 逃脱阻碍者(曼哈顿距离)
  6. js textarea换行
  7. python投票程序
  8. php 固定资产源码,Assets 固定资产管理源代码!asp .net WEB(ASP,PHP,...) 274万源代码下载- www.pudn.com...
  9. filezilla定时上传_ftp定时任务上传文件,ftp怎么做到定时任务上传文件
  10. 简单dp-bone collector