ShadowHammer华硕影锤软件供应链安全事件
0x00 前言
之前分析的Xshell和CCleaner软件供应链攻击案例都是从软件开发的源头上开始投毒,本篇分享的华硕电脑供应链后门事件则有些不同,它是属于另外一种形式的典型供应链攻击,即利用软件的升级更新渠道向目标用户端进行投毒。该类型的软件供应链攻击如果经过精心部署,其攻击效果有可能同此案例一样达到一种新的高度,因为该攻击活动一直未被发现直到行动结束很久才被发现,卡巴斯基认为其在复杂性和技术上与Xshell和CCleaner事件相当甚至超过。
0x01 事件背景
2019年3月25日,卡巴斯基实验室发布报告公开了影锤(ShadowHammer)行动,披露攻击者利用华硕实时更新软件进行的供应链攻击。
华硕是全球知名的PC供应商,华硕实时更新软件(ASUS Live Update)是一种预装在大多数华硕电脑上用于自动更新某些组件(如BIOS、驱动程序、应用程序等)的实用程序。据卡巴斯基的报告估计,受此次攻击影响的全球用户可能超过100万。攻击者将恶意程序托管在华硕官方的更新服务器上,利用更新渠道下发到用户终端,并且恶意程序还经过华硕官方的合法证书进行了数字签名。
本次攻击的目标是通过计算用户的网卡MAC地址哈希来进行匹配,卡巴斯基从200多个不同的样本中提取出了共计600多个内置哈希,并使用公开信息破解了这些设备的供应商分布情况如下(截图来源于卡巴报告),从中也可一窥此次事件较强的针对性。
另外,除了华硕外,卡巴斯基还关联到了3家游戏公司的供应链攻击与影锤行动相关,并猜测此行动的幕后攻击者与之前的ShadowPad后门事件(XshellGhost)以及CCleaner后门事件(CCleanerGhost)均有关系。
0x02 样本分析
受影响的华硕官方更新服务器主要来自“liveupdate01.asus[.]com”和“liveupdate01s.asus[.]com”这2个域名,华硕用户端的更新服务程序会自动从这2个服务器下载恶意更新包进行安装,比如卡巴斯基报告提到的其中一个恶意更新包URL路径为“hxxp://liveupdate01.asus[.]com/pub/ASUS/nb/Apps_for_Win8/LiveUpdate/Liveupdate_Test_VER365.zip”,更新服务程序将其下载并解压到更新目录静默启动(恶意程序“Setup.exe”)。
事实上,此种更新劫持事件至少从2018年6月份就已经发生,之所以到2019年3月份才被发现,根据卡巴斯基的推测,部分原因归于恶意程序使用了华硕官方数字证书进行签名。如下2个恶意程序均经过合法的华硕官方证书签名,左边是早期的版本,主要在2018年8月份之前传播;右边则是攻击者由于旧证书过期更换的新版本。2个证书均是华硕官方的合法证书,被攻击者窃取盗用(目前左边显示过期是由于样本签发时没有附加时间戳,右边则是样本已被加入吊销列表)。
根据更换证书的时间恶意程序主要分成2个版本,早期第一个版本除了证书有效期不同外,恶意载荷存储的方式也相对比较简单,但实际上2种版本都是通过修补(patch)华硕官方2015年的一个更新程序来加载恶意载荷的。
早期版本是通过修补wWinmain主函数中的代码来执行恶意载荷,如下图所示左边是华硕官方更新程序被修补前的主函数代码,右边则是被修补后的代码,可以看到其直接分配具有可执行属性的内存并拷贝恶意代码执行。
拷贝的恶意代码实际上是将原始程序资源里的“SelfUpdt.EXE”替换修补成“AsusShellCode.exe”,该PE模块还保留着PDB路径“D:C++AsusShellCodeReleaseAsusShellCode.pdb”,可以看出是攻击者专门针对华硕开发的恶意程序。
恶意程序采用ShellCode的方式运行,首先初始化API地址和内置MAC地址哈希列表(本例内置24个硬编码哈希)。
然后获取本机安装的所有网络适配器MAC地址并计算其MD5值,接着将其与上述内置哈希列表依次比较,只有命中其中之一才会进行下一阶段的恶意代码。
下一阶段恶意代码是从 “hxxps://asushotfix.com/logo.jpg”(仿冒华硕补丁服务) 下载Shellcode并直接运行。由于发现此事件时链接已失效,故无法进一步获取和分析下一阶段的载荷。
再来看下第二个版本,换了新证书后,攻击者顺便也更换了恶意载荷的存储和加载方式,试图更好地隐藏自身降低被发现的可能。首先,启动函数不再直接放到明显的主函数中,而是转移到CRT库函数“___crtExitProcess”里,对该函数进行修补来执行恶意载荷,并且分配内存的调用也不直接调用导入函数“VirtualAlloc”,而是用地址加偏移的方式计算该函数地址,然后用寄存器来间接调用。
接着拷贝执行的恶意代码也不再直接以EXE格式存储于资源中,而是将其修补成加密的ShellCode载荷,在加载前解密执行。
加载后的运行过程与上一版本基本相同,个别差异是若目标MAC地址匹配失败,此版本则会在当前运行路径往上2层(“C:Program Files (x86)ASUSASUS Live Update”)写入一个配置文件idx.ini,并设置其日期为当前时间的前一周。
还有下一阶段恶意ShellCode的下载地址也更新成“hxxps://asushotfix.com/logo2.jpg”
至此,针对华硕用户的攻击样本分析止步于此,可以看出这是一个针对性极强、传播范围和时间都较广的攻击事件。虽然攻击者不像之前分享的2个供应链攻击案例一样能够访问到华硕软件的开发构建环境,从供应链最上游的源头进行投毒,但他们至少也获取到了官方的代码签名证书和软件更新服务器的控制权,两相配合下从供应链中游实施了投毒并成功扩散到目标用户完成攻击行动。
0x03 溯源分析
本次供应链攻击的发生时间大概在2018年6月份左右,卡巴斯基在报告中描述他们通过网络搜索相关事例进行调查,最后通过reddit论坛的一个用户帖子推测了发生时间为2018年6月13日左右。该帖子是用户“GreyWolfx”在reddit论坛的ASUS(华硕)专区发布,主要描述自己遭遇华硕可疑的更新弹窗,但可能由于用户不太专业导致上传的样本并非直接的恶意程序故无法进一步确认。
事实上卡巴斯基的推测还是比较准确的,以下样本即是本次事件能找到的最早传播样本(MD5:a283d5dea22e061c4ab721959e8f4a24),首次出现时间刚好是2018年6月12日,令人惊叹的是该时间距离卡巴斯基首次发现(2019年1月29日)受感染的华硕更新程序已过去了大半年。
并且本次攻击活动的第二阶段C2地址(asushotfix.com)也早在2018年11月份卡巴斯基发现之前就已关闭,因此研究人员无法获取后续样本分析,也无法识别连接该地址的受害者机器。
为了挖掘更多的信息,卡巴斯基从相关的样本中提取出600多个目标MAC地址的哈希值,并尝试破解出MAC地址(猜测使用穷举爆破的方式)。得到目标MAC地址后,可以通过公开的数据接口查询其对应的生产商信息,因为网卡MAC码是由IEEE(电子工程标准协会)统一授权分配给各厂家,前24位中包含组织识别码。比如VMWare虚拟机分配的虚拟网卡默认MAC地址为“00-50-56-C0-00-08”,也是经过该协会授权认证。
卡巴斯基统计的目标MAC地址所属生产商如下,虽然他们在报告中简单以“分布不均”总结,但其实仔细分析后不难看出攻击者的目标,主要都是使用了一些知名电子通信厂商特别是中国台湾供应商生产的网络设备。由上述样本分析可知,恶意程序获取的MAC地址是华硕电脑安装的所有网络适配器MAC地址,这也意味着这600多个目标MAC地址对应的目标设备数量可能远远大于600,因为可能存在多台电脑设备共享同一网络设备的情况,通过这些MAC地址可以针对性地筛选使用这些供应商生产设备的目标用户以便进一步渗透和监控。
再来看下关于攻击者身份的猜测,“MotherBoard”关于此事件的文章中提到,华硕系统本身也在CCleanner事件(2017年的CCleanerGhost供应链后门事件)的目标列表中,并且根据avast的报告可知确实有至少2台华硕官方设备在该事件中受影响。
卡巴斯基研究人员在SAS 2019大会(卡巴斯基安全分析峰会)上指出,华硕的影锤事件还与2017年的另一起供应链事件ShadowPad(NetSarang公司的XShellGhost)相关联,认为ShadowHammer(影锤事件)攻击者也是ShadowPad和CCleaner攻击的幕后黑手,通过CCleaner供应链攻击获得了华硕服务器的访问权限,4个(游戏公司供应链见下一章节相关案例的分析)供应链攻击事件之间的关系如下所示(截图来源于SAS 2019大会演讲视频)。
真实情况是否真如此种猜测至今已无从验证,不过从时间线的发展进度来看倒也存在一定的合理性。CCleaner后门的披露时间是2017年9月份,后续攻击者可能继续潜伏寻找目标。虽然华硕影锤行动发生在2018年6月,但是有证据显示攻击者获得华硕服务器访问权限的时间可能更早。如下是使用华硕官方证书(早期第一版)签发的Mimikatz密码盗窃工具(目前该样本未被发现吊销证书),签发时间是2018年3月17日。类似样本在影锤行动期间也有出现,所以不排除第二阶段攻击有使用该工具来窃取目标用户的凭证。
另外在挖掘过程中找到一款疑似第二阶段后门的控制端工具如下。
0x04 相关案例
本章节简单介绍下另外一起相关的针对游戏公司的供应链攻击案例,这个案例一共有3家游戏供应商被同一组织采用相同的方式植入后门,且根据卡巴斯基的报告推测攻击者有可能是通过XShellGhost供应链攻击进入了这些供应商的企业内部。此外,根据微软威胁研究员在VB2018大会上的PPT分享如下,受XShellGhost供应链影响的行业中确实也包含游戏公司并且遍及世界多个国家,虽然不清楚其具体的名单,但也不排除存在这种关联的可能性。
这3家被攻击的游戏供应商分别是一家来自韩国的“Zepetto Co”游戏开发公司、一家来自泰国的“Electronics Extreme Company Limited”游戏开发公司以及一家来自台湾的Garena游戏平台,由于这3者的植入方式和运行流程基本一致,只是C2地址不同,所以本节仅以“Zepetto Co”公司的程序样本为例进行分析。
该公司最早于7月份开始传播受污染的程序“PBConfig.exe”,早期该程序存在通过Garena游戏平台进行更新的案例,后面则更多的通过官方升级程序从官网下载到“d:pointblank_downloadpatchfilespbconfig.exe”目录进行更新。
受污染的程序“PBConfig.exe”带有合法的官方签名(目前样本证书已被吊销)。
该程序通过劫持CRT库函数“__scrt_common_main_seh”,在其调用前插入了恶意shellcode由此获得优先执行的机会,这种情况推测是攻击者篡改了程序项目编译连接时的构建配置导致(而非直接篡改程序项目的源代码,但应该是具备了程序项目访问权限)。
Shellcode执行后首先还是准备需要使用的API函数,并采用类似华硕Shellcode的方式根据哈希值获取函数地址(但实际上此技术较为普遍)。
API哈希的计算方式也与华硕Shellcode计算方法类似,只是换了一个种子数值(0x21换成0x83),卡巴斯基因此认为该地方可作为代码同源性关联参考(另外还结合了字符串拼接“IPHLPAPI.dll”的方式推测)。
接着使用RC4算法解密一个DLL模块作为payload加载运行,解密key为“165122939”(0x37异或加密)
该DLL模块加载后首先检查系统语言是否为俄罗斯或中国,攻击者可能对这2个语言国家的系统不感兴趣。
此DLL模块实质上是一个远控Payload,其核心配置信息如下,主要包含C2地址、休眠时间、活动名称和进程安全检查的列表(判断是否处于分析监控环境),其中活动名称根据其寄主模块命名,比如此案例是“PBConfig.exe”则简称PB2,而泰国厂商Electronics Extreme游戏的载体则简称warz(游戏别名The Warz)。
远控上线时搜集系统信息,包括用户名、主机名、MAC地址、系统版本、系统位数、DNS域、进程路径、磁盘信息、系统默认语言、屏幕分辨率等,发送之前使用内置密钥“*&b0i0rong2Y7un1”进行简单异或加密。
最后就是执行远程命令,主要包括4种指令(下载文件、下载执行、内存执行远程shellcode和创建远程shell)。
根据卡巴斯基的说法,他们与这些游戏公司合作进行联合调查,发现攻击者在企业网络中部署了多种工具,其中就包含了一个经过最新版VMProtect加壳的ShadowPad后门(MD5:37e100dd8b2ad8b301b130c2bca3f1ea),其运行结构如下图(截图来源于卡巴报告)。此外,在分析这些后门的多重C2地址时发现部分IP范围与CCleaner事件的ShadowPad后门C2地址存在重叠,从而侧面佐证这些事件的关联性,这里就不再赘述了。
0x05 总结
华硕影锤行动是一个经典的利用软件升级通道进行投毒的软件供应链攻击案例,该攻击类型是从供应链的中游位置作为切入点最终到达目标用户端点,因此在供应商侧的威胁感知力相对降低,增加了行动的隐蔽性。同时,攻击者还突破了证书签发服务器,成功借助华硕官方的合法签名作为恶意程序的保护伞,利用签名信任机制延长了行动被发现的时间。此外,该行动使用的目标筛选方式也比较特殊,通过提前掌握的特定供应商的网卡MAC地址进行匹配,没有针对尽可能多的用户,而是试图进入非常具体的目标。最后,如果卡巴斯基描述的4个供应链攻击案例之间的关联关系真实成立,那么此行动的跨度和影响实在可怕,攻击者为达目的可谓是层层渗透,供应链攻击也是一波连一波,所有单位或个人都防不胜防。
0x06 参考链接
1、Hackers Hijacked ASUS Software Updates to Install Backdoors on Thousands of Computers,https://www.vice.com/en/article/pan9wn/hackers-hijacked-asus-software-updates-to-install-backdoors-on-thousands-of-computers
2、Operation ShadowHammer,https://securelist.com/operation-shadowhammer/89992/
3、Operation ShadowHammer: a high-profile supply chain attack,https://securelist.com/operation-shadowhammer-a-high-profile-supply-chain-attack/90380/
4、Operation ShadowHammer: Costin Raiu and Vitaly Kamlyuk at #TheSAS2019,https://www.youtube.com/watch?v=T5wPwvLrBYU
5、Lambert-VB2018-CustomersSuppliersAdversaries.pdf,https://www.virusbulletin.com/uploads/pdf/conference_slides/2018/Lambert-VB2018-CustomersSuppliersAdversaries.pdf
6、Gaming industry still in the scope of attackers in Asia,https://www.welivesecurity.com/2019/03/11/gaming-industry-scope-attackers-asia/
7、Additional information regarding the recent CCleaner APT security incident,https://blog.avast.com/additional-information-regarding-the-recent-ccleaner-apt-security-incident
8、影锤(ShadowHammer)--利用华硕升级服务的供应链攻击预警,https://cert.360.cn/warning/detail?id=5b82338d1a28fb973a41b4b5094d71a0
9、紧急预警:华硕软件更新服务器遭到黑客攻击,超100万用户受影响!https://www.sohu.com/a/303970197_764248
10、过去二十年最危险的数字供应链攻击,https://www.aqniu.com/news-views/66606.html
11、除华硕外至少还有 6 家公司受到“影锤”行动攻击,https://linux.cn/article-10776-1.html
12、华硕供应链攻击事件技术分析,https://blog.51cto.com/u_15127538/2702628
13、华硕电脑遭遇供应链攻击(影锤),https://www.bilibili.com/read/cv2338422/
14、MAC地址供应商查询,https://www.jannet.hk/mac-address-vendor-lookup-zh-hans/
15、Here’s the List of ~600 MAC Addresses Targeted in Recent ASUS Hack,https://staticnetworks.com/heres-the-list-of-600-mac-addresses-targeted-in-recent-asus-hack/
16、目标MAC地址列表,https://skylightcyber.com/2019/03/28/unleash-the-hash-shadowhammer-mac-list/list.txt
目前没有反馈
表单载入中...