软件供应链来源攻击分析报告
2021-11-10
来源:互联网安全内参
摘要
2021年10月22日,在无锡举办的2021世界物联网博览会-物联网信息安全高峰论坛上,奇安信威胁情报中心负责人汪列军带来了闭门会议议题《针对中国的供应链来源APT攻击分析》的精彩分享。议题重点介绍了国内遭受的APT供应链攻击的多个案例,披露了多个奇安信威胁情报中心红雨滴团队独家发现的针对我国的APT供应链攻击:包括针对某顶级虚拟货币交易所、某知名在线客服系统、多个国内网络安全公司的APT供应链攻击活动,影响面巨大。而这类来源于供应链并最终造成巨大危害的安全事件其实并不少见,在本报告中,奇安信威胁情报中心对软件供应链的概念进行了梳理,分析了各环节中已有的事件实例,最后提供一些从供应链安全角度对威胁进行防护的对策和建议。
威胁情报中心负责人汪列军分享议题《针对中国的供应链来源APT攻击分析》
02
概述
2021年10月22日,国内安全厂商披露了一起针对Npm仓库ua-parser-js库的供应链攻击活动。攻击者通过劫持ua-parser-js官方账号,并且投放恶意ua-parser-js安装包,该软件包每周下载量超百万次,影响面颇广。北美时间2020年12月13日,多家欧美媒体报道美国多个重要政企机构遭受了国家级APT组织的入侵,攻击疑似由于网络安全管理软件供应商SolarWinds遭遇国家级APT团伙高度复杂的供应链攻击并植入木马后门导致。奇安信威胁情报中心第一时间通过解码部分DGA域名,推导出部分受害者计算机域,从而发现大量中招的知名企业和机构,其中不乏Intel、Cisco等在美高科技企业以及各类高校和政企单位。同时,近年来大量的使用软件捆绑进行传播的黑产活动也被揭露出来,从影响面来看这些恶意活动的力度颇为惊人,这类来源于供应链并最终造成巨大危害的安全事件其实并不少见,而我们所感知的可能只是冰山一角而已。
以最近这些事件为切入点,奇安信威胁情报中心对软件供应链来源的攻击做了大量的案例分析,得到了一些结论并提供对策建议。在本报告中,奇安信威胁情报中心首先对软件供应链的概念进行了梳理,划分了开发、交付及使用环节。然后针对每个环节,以实例列举的方式分析了相应环节中目前已经看到过的攻击向量,同时提供了每个事件的发生时间、描述、直接威胁和影响范围等信息。在这些案例分析的基础上,整合信息做可视化展示并提出一些结论。最后,基于之前章节的事实分析,奇安信威胁情报中心提出了从供应链安全角度对相应威胁进行防护的对策和建议。
03
软件供应链相关概念
01
概念和环节划分
传统的供应链概念是指商品到达消费者手中之前各相关者的连接或业务的衔接,从采购原材料开始,制成中间产品以及最终产品,最后由销售网络把产品送到消费者手中的一个整体的供应链结构。
传统商品的供应链概念也完全适用于计算机软硬件,则可以衍生出软件供应链这一概念。出于简化分析的目的,我们将软件供应链简单抽象成如下几个环节:
1
开发环节
软件开发涉及到的软硬件开发环境、开发工具、第三方库、软件开发实施等等,并且软件开发实施的具体过程还包括需求分析、设计、实现和测试等,软件产品在这一环节中形成最终用户可用的形态。
2
交付环节
用户通过在线商店、免费网络下载、购买软件安装光盘等存储介质、资源共享等方式获取到所需软件产品的过程。
3
使用环节
用户使用软件产品的整个生命周期,包括软件升级、维护等过程。
02
灰色供应链
在国内,众多的未授权的第三方下载站点、云服务、共享资源、破解盗版软件等共同组成了灰色软件供应链,这些环节的安全性问题其实也属于软件供应链攻击的范畴,但由于这些问题属于长期困扰我国信息系统安全的灰色供应链问题,具有一定的中国特色,故单独进行说明。
我们在接下来的事件分析中会有很多涉及到灰色供应链的案例,特别是软件交付环节中的“捆绑下载”等案例,以及各类破解、汉化软件被植入木马后门等,而这些案例也会被归属到我们定义的软件供应链攻击范畴中。
04
攻击场景与案例分析
前面定义了软件供应链的概念并抽象出了软件供应链的几大环节,那么显而易见的是,攻击者如果针对上述各个环节进行攻击,那么都有可能影响到最终的软件产品和整个使用场景的安全。从我们分析的多个现实攻击的案例来看,第三方库、开发工具、开发软硬件环境、到达用户的渠道、使用软硬件产品的过程等供应链相关的安全风险,并不低于针对软件应用本身、相应操作系统的安全漏洞导致的安全风险。
近年来我们观察到了大量基于软硬件供应链的攻击案例,比如针对Xshell源代码污染的攻击机理是攻击者直接修改了产品源代码并植入特洛伊木马;针对苹果公司的集成开发工具Xcode的攻击,则是通过影响编译环境间接攻击了产出的软件产品。这些攻击案例最终影响了数十万甚至上亿的软件产品用户,并可以造成比如盗取用户隐私、植入木马、盗取数字资产等危害。接下来我们将从划分出来各环节的角度,举例分析这些针对供应链攻击的重大安全事件。
01
开发环节
软件开发涉及到软硬件开发环境部署、开发工具、第三方库等的采购/原料供应、软件开发测试等等,各环节都可能被恶意攻击,在针对软件开发环境的攻击中就有开发机器被感染病毒木马、开发工具植入恶意代码、第三方库被污染等攻击方式。
而具体的软件开发更是一个复杂的过程,不单单是源码的编写,还涉及到诸如需求分析、开源/商业库使用、算法、外包开发等等复杂环节,其中的各个环节都有可能被攻击并造成严重后果。最近的Xshell后门代码植入事件就是最切实的例子,更早的事件还包括NSA联合RSA在加密算法中植入后门等,下面是我们整理的在开发环节针对开发环境以及软件开发过程进行工具污染、源代码攻击以及厂商预留后门等真实案例。
开发工具污染
针对开发工具进行攻击,影响最为广泛的莫过于XcodeGhost(Xcode非官方版本恶意代码污染事件),值得一提的是早在30多年前的1984年,UNIX创造者之一Ken Thompson在其ACM图灵奖的获奖演讲中发表了叫做Reflections on Trusting Trust(反思对信任的信任)的演讲。他分三步描述了如何构造一个非常难以被发现的编译器后门,后来被称为 the Ken Thompson Hack(KTH),这或许是已知最早的针对软件开发工具的攻击设想。而最近的XcodeGhost最多只能算是KTH的一个简化版本,没有试图隐藏自己,修改的不是编译器本身,而是Xcode附带的框架库。

