ESET 發現第一個 UEFI rootkit 惡意程式 LoJax,感染後連重灌系統也沒轍

作者 | 發布日期 2018 年 10 月 01 日 7:45 | 分類 資訊安全 , 軟體、系統 follow us in feedly

電腦系統底層 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 世代)以前的電腦並不多,但政府機關依舊有為數不少的舊電腦。

(本文由 T客邦 授權轉載;首圖來源:pixabay