E安全消息,研究人员发现全球首个针对Linux系统的UEFI bootkit恶意软件—“Bootkitty”。
这标志着隐蔽且难以移除的bootkit威胁从之前主要针对Windows转变为开始针对Linux系统。
目前“Bootkitty”Linux恶意软件是一个概念验证,仅适用于某些Ubuntu版本和配置,而不是部署在实际攻击中的成熟威胁。
Bootkit是设计用来感染计算机启动过程的恶意软件,它在操作系统加载之前运行,并允许在非常低的级别上系统的控制权。它的优势在于可以规避操作系统中运行的安全工具,修改系统组件或注入恶意代码而不被发现。
01
“Bootkitty”的工作流程
2024年11月,ESET研究人员检查一个上传到VirusTotal的可疑文件(bootkit.efi),随后发现了Bootkitty。
经过分析,研究人员确认这是首个Linux UEFI引导工具,绕过内核签名验证并在系统启动过程中预加载恶意组件。
Bootkitty执行流程的一部分
来源:ESET
启动阶段,Bootkitty挂接UEFI安全身份验证协议(EFI_SECURITY2_ARCH_PROTOCOL 和 EFI_SECURITY_ARCH_PROTOCOL),绕过Secure Boot完整性验证检查,从而确保bootkit启动工具加载。
接下来,它挂接GRUB函数(如 'start_image'和'grub_verifiers_open'),操作引导加载程序对二进制文件(包括Linux内核)的完整性检查,从而关闭签名验证。
然后,Bootkitty拦截Linux内核的解压缩过程并挂接'module_sig_check'函数。这会强制它在内核模块检查期间始终返回成功,从而允许恶意软件加载恶意模块。
此外,它将第一个环境变量替换为'LD_PRELOAD=/opt/injector.so',以便在系统启动时将恶意库注入进程。
研究人员还指出,将Bootkitty上传到VT的同一用户还上传了一个名为“BCDropper”的未签名内核模块,但现有证据无法将两者直接联系在一起。
BCDropper会释放一个名为“BCObserver”的ELF文件,这是一个具有rootkit功能的内核模块,可以隐藏文件、进程并打开受感染系统上的端口。
02
研发阶段的“Bootkitty”
ESET分析,根据Bootkitty的工作流程,留下的一些痕迹,有些是有意的,有些不是,这是Bootkitty缺乏精细化的迹象。
bootkit中包含的ASCII艺术
来源:ESET
Bootkitty依赖于自签名证书,因此它不会在启用了安全启动的系统上执行,并且仅针对某些Ubuntu发行版。
此外,硬编码的偏移量和简单的字节模式匹配使其仅适用于特定的GRUB和内核版本,因此不适合广泛部署。
ESET还指出,该恶意软件包含许多未使用的功能,并且对内核版本兼容性的处理很差,通常会导致系统崩溃。
根据恶意软件的缺陷性质,以及ESET的遥测数据显示在实时系统上没有发现Bootkitty的迹象。研究人员得出结论,它处于早期开发阶段。
随着企业越来越多地采用Linux,此类恶意软件的发现表明攻击者正在开发以前仅限于Windows的Linux恶意软件。
揭秘“最近邻攻击”:俄黑客APT28武器化Wi-Fi的策略
2024.11.27
Windows Kerberos严重漏洞,数百万台服务器遭攻击
2024.11.22
供应链管理商Blue Yonder遭攻击,星巴克转“人工运营”
2024.11.28
注:本文由E安全编译报道,转载请联系授权并注明来源。