概述
去年10月份,一名恶意软件开发者在地下论坛上出售一款名称为黑莲花BlackLotus的新型UEFI BootKit恶意软件,该UEFI BootKit植入系统固件当中,在系统启动序列的初始阶段加载执行,因此可以有效的逃避操作系统中的安全软件,甚至能够在启用了UEFI安全启动的最新Windows11系统上运行。
这款UEFI BootKit恶意软件售价为5000美元,具有集成的安全启动绕过功能,具有内置的Ring0/Kernel保护以防止被删除,并将以恢复或安全模式启动,同时该恶意软件还具备反虚拟机、反调试和代码混淆等功能,可以有效的阻止安全分析人员对其进行恶意代码逆向分析。
近日,国外某安全厂商对该UEFI BootKit样本进行了相关研究,基于RootKit驻留技术一直被应用在一些APT攻击组织针对特定目标进行持久化驻留,这种底层的持久化驻留比较难发现,可以达到长期驻留持续监控目标的目的,深信服蓝军APT 研究团队一直在关注全球攻击者使用的各种新型的攻击手段、攻击武器与全球最新的攻击事件,此前发布过多篇与RootKit相关的技术分享文章,现针对这款新型UEFI BootKit恶意软件进行了相关分析。
分析
1.BlackLotus UEFI BootKit安装程序各种反调试技术,包含NtSetInformationThread、BeingDebugged、NtGlobalFlag、NtQueryInformationProcess、NtQuerySystemInformation、RtlAddVectoredExceptionHandler(Int3Int2D)等技术,如下所示:
2.各种反虚拟机技术,包含从进程、注册表、硬件驱动信息、内存等查找与虚拟机相关的特征进行反虚拟机(VMWARE、QEMU、VBOX等)操作,如下所示:
相关的注册表项,如下:
\Registry\Machine\SOFTWARE\Microsoft\Virtual Machine\Guest\Parameters
\Registry\Machine\SYSTEM\ControlSet001\Services\vioscsi
\Registry\Machine\SYSTEM\ControlSet001\Services\VirtIO-FS Service
\Registry\Machine\SYSTEM\ControlSet001\Services\VirtioSerial
\Registry\Machine\SYSTEM\ControlSet001\Services\BALLOON
\Registry\Machine\SYSTEM\ControlSet001\Services\BalloonService
\Registry\Machine\SYSTEM\ControlSet001\Services\netkvm
\Registry\Machine\SOFTWARE\VMware, Inc.\VMware Tools
\Registry\Machine\HARDWARE\DEVICEMAP\Scsi\Scsi Port 0\Scsi Bus 0\Target Id 0\Logical Unit Id 0
\Registry\Machine\SYSTEM\ControlSet001\Control\SystemInformation
\Registry\Machine\HARDWARE\Description\System
3.内存中解密出多个UEFI BootKit文件,并部署到ESP,解密算法采用AES算法,CBC256模式,如下所示:
使用的相关解密密钥,如下:
ixdlYf9TqA9VH5oLoD3ltBeGjKRhM8pu
By3h2zWrQxPF9ijYLqMl8ojenCInrWZG
6jxkPUHKRK5rgdg0PkhLhuS844uMYgrm
解密出bootmgfw.efi,如下所示:
解密出grubx64.efi,如下所示:
解密出bootload.efi,如下所示:
解密出hvloader.efi,如下所示:
解密出bootmgr.efi,如下所示:
解密出BCD,如下所示:
UEIF BootKit样本利用了CVE-2022-21894漏洞破坏安全启动,然后加载UEFI BootKit到ESP,解密出漏洞利用程序模块,mcupdate_AuthenticAMD模块,如下所示:
mcupdate_GenuineIntel模块,如下所示:
4.禁用管理程序保护的代码完整性(HVCI),如下所示:
5.然后重启系统,如下所示:
到此黑莲花BlackLotus UEFI BootKit的安装程序己经分析完毕,下面来看看重启之后相关恶意操作。
6.系统启动之后bootmgr.efi加载执行BCD,并加载安装hvloader.efi,如下所示:
hvloader.efi加载执行CVE-2022-21894漏洞利用模块,如下所示:
7.漏洞利用模块通过将自己的MOK写入MokList,仅限引导服务的NVRAM变量来设置持久性,具体流程,如下所示:
MokInstaller加载程序,如下所示:
EFI数据包含sbat区块数据,如下所示:
MokInstaller用合法签名的shim替换了bootmgfw.efi,bootmgfw.efi其实就是一个UEFI BootKit驱动程序,如下所示:
执行shim时,它会读取MokList NVRAM 变量,并使用攻击者先前存储在其中的证书来验证第二阶段引导加载程序grubx64.efi
8.利用相关工具提取了系统ESP的bootmgfw.efi,如下所示:
与上面解密出来的bootmgfw.efi数据一致,如下所示:
黑莲花BlackLotus UEFI BootKit的整体启动流程算是分析完了,完成了上面的持久化操作之后,黑莲花BlackLotus UEFI BootKit会在每次系统启动时执行,部署相应的驱动程序和应用程序模块,进行相关的恶意操作,有兴趣可以自行研究。
检测
针对Windows平台UEFI BootKit恶意软件的检测,因为它要优先于安全厂商的安全产品的启动,会导致安全产品无法对UEFI BootKit类型的恶意软件的相关恶意操作进行有效拦截,同时一些UEFI BootKit的样本还被写入到了固件当中,使安全产品更难检测,针对UEFI BootKit类型的恶意样本攻击活动的检测,更多的还是要依赖专业的安全分析人员结合相关的安全工具或安全产品现场进行人工分析取证,可以通过提取ESP分区磁盘中包含的相关EFI模块,查看相关的EFI模块是否包含恶意的代码或检查ESP分区中是否包含恶意的EFI模块,同时UEFI BootKit会对系统相关进程进行patch,也可以使用一些系统底层工具对相关系统进程进行检测,看是否存在异常操作等。
如果要清除感染UEFI BootKit类型恶意软件的系统,也是一项复杂的工作,可能需要替换到ESP分区中的相关EFI模块,修复UEFI固件,同时还需要清理一些残留在系统中恶意文件和恶意操作等,这个要分析UEFI BootKit类型的恶意软件具体做了哪些操作,才能进行对应的清理工作,不过只要是修改系统底层的相关操作,都存在一定的风险,做修复的时候一定做好相应的备份,以防重要的系统数据丢失。
总结
Rootkit技术一直被作为针对特定目标进行持久化驻留的重要攻击技巧之一。针对RootKit的检测存在很大的挑战,使用RootKit技术是实现高隐藏、高持久化的重要手段之一,安全一直就是一个持续对抗升级的过程,基于RootKit的技术对抗也从来没有停止过,不管是在Windows平台,还是在Linux平台,基于RootKit技术后门木马等恶意软件攻击武器,攻击组织一直都在持续更新,RootKit类型的恶意软件Windows平台向UEFI BootKit转向,Linux平台向eBPF RootKit转向等,随着地下论坛MAAS(恶意软件即服务)、CAAS(网络犯罪即服务)的流行,APT组织攻击的成本越来越低,例如这款UEFI BootKit的恶意软件己经在地下论坛进行销售和运营,未来APT攻击组织都有可能通过这些渠道去购买各种新型的攻击武器和服务,这种基于系统底层的APT攻击活动可能会增多,这种类型的恶意软件攻击武器也会越来越多,并不断更新,不管是Windows平台,还是Linux平台,对抗永远会一直升级,攻击组织会使用更多的攻击手法逃避安全厂商安全产品的检测和安全分析人员的分析取证。
深信服蓝军APT研究团队专注全球高级威胁事件的跟踪与分析,拥有一套完善的自动化分析溯源系统以及外部威胁监控系统,能够快速精准的对 APT 组织使用的攻击样本进行自动化分析和关联,同时积累并完善了几十个 APT 以及网络犯罪威胁组织的详细画像,并成功帮助客户应急响应处置过多个 APT 及网络犯罪威胁组织攻击事件,未来随着安全对抗的不断升级,威胁组织会研究和使用更多新型的 TTP,深信服蓝军APT研究团队会持续监控,并对全球发现的新型安全事件进行深入分析与研究。
参考链接
https://mp.weixin.qq.com/s/Cd3ND83fkU1Q9874UbCesA
https://mp.weixin.qq.com/s/1BKIkDyug5GnyBJ2iv__Fw
https://www.bleepingcomputer.com/news/security/malware-dev-claims-to-sell-new-blacklotus-windows-uefi-bootkit/
https://www.welivesecurity.com/2023/03/01/blacklotus-uefi-bootkit-myth-confirmed/
https://github.com/tianocore/edk2
https://edk2-docs.gitbook.io/understanding-the-uefi-secure-boot-chain/additional_secure_boot_chain_implementations/machine_owner_key_mok
原文始发于微信公众号(深信服千里目安全技术中心):【高级威胁追踪】黑莲花BlackLotus UEFI BootKit分析与检测