电脑系统底层 UEFI 已多次证实能透过特殊手法,写入恶意程式感染系统,但发现实际案例却还是第一次。ESET 近日发现 LoJax UEFI rootkit 恶意程式,目前正瞄准巴尔干半岛、中欧、东欧攻击,一旦感染,仅有重新烧录 UEFI 才可解除。
rootkit 一词由 root 和 kit 两者结合,由名称即可认知代表的意义,为一系列软件集合用来存取一般软件无法存取的区域,诸如核心内存、系统管理模式内存等。由于 rootkit 活动区域无法由一般软件存取,需要透过特别的扫描辨识程式才可以找到它。
UEFI 具备漏洞可让恶意程式侵入已不是新闻,白帽骇客相关聚会早有实作入侵手段,但实验室以外发现却还是第一次。ESET 公布发现的第一支 UEFI rootkit 恶意程式,由于这支程式采用 LoJack for Laptops 代理程式,ESET 命名为 LoJax。
LoJack for Laptops 前身为 CompuTrace,主要用来追踪被小偷劫走的电脑,而烧录在电脑固件里的小程式。由于位在电脑开机必须固件之内,小偷没有办法透过一般替换硬盘储存装置的手段轻松移除,电脑开机后便会将此电脑所在区域相关资料回传。不过此实作概念亦被有心人士利用,瞄准的就是固件感染不易察觉并移除的特性。
LoJax 主要利用 RWEverything 内建核心驱动程式 RwDrv.sys 读取 UEFI 相关设定,驱动程式经过合法签署手续,因此不会引起操作系统注意。LoJax 接着利用 3 个不同的工具达成目标,首先扫描低阶系统设定,以便根据设定拟定入侵策略,依据不同平台选择不同方式跳过非法固件写入防护机制;接着把 UEFI 固件档案读取出来,最后一个工具插入恶意 UEFI 模组至固件并写回。
▲ LoJax 固件写入决策树,需要判断 BIOSWE(BIOS Write Enable)及 BIOSBLE(BIOS Lock Enable),和 Intel 在 PCH 芯片组系列导入的(SMM_BWP)SMM BIOS Write Protect Disable。
一旦 UEFI 遭感染,恶意程式即在 Windows 早期开机阶段写入 rpcnetp.exe 和 autoche.exe,并将原始注册机码 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\BootExecute 的 autocheck autochk * 修改成 autocheck autoche *,以便开机时执行恶意程式。
autoche.exe 接着把 rpcnetp.exe 注册成 Windows 服务,虽然目前 ESET 并未发现 rpcnetp.exe 有进一步动作,不过这个程式包含下载与安装其他程式模组的机制,因此未来依旧可执行其他恶意行为。
▲ UEFI 固件被感染后,Windows 操作系统的开机步骤。
ESET 同时提出解决方案,第一个为开启 UEFI Secure Boot 机制,强迫开机载入的每个模组均需要合法签名,第二个就是更新至最新 UEFI 版本。此外 LoJax 也不影响 Intel 5 系列 PCH 芯片组之后的产品(注:BIOSWE 和 BIOSBLE 需正确设定成 0 和 1),原因为第一张图导入的 SMM BIOS Write Protect Disable 功能。目前消费市场,使用 Intel 5 系列芯片组(处理器 Core i 世代)以前的电脑并不多,但政府机关依旧有为数不少的旧电脑。
- LoJax: First UEFI rootkit found in the wild, courtesy of the Sednit group
(本文由 T客邦 授权转载;首图来源:pixabay)