ESET 發現第一個 UEFI rootkit 惡意程式 LoJax,感染後連重灌系統也沒轍
R.F. 發表於 2018年9月28日 09:00 2018-09-28
電腦系統底層 UEFI 已被多次證實能夠透過特殊手法,寫入惡意程式感染系統,但發現實際案例卻還是第一次。ESET 近日發現 LoJax UEFI rootkit 惡意程式,目前正瞄準巴爾幹半島、中歐、東歐進行攻擊,一旦感染僅有重新燒錄 UEFI 才可解除。
rootkit 一詞由 root 和 kit 2 者結合而來,由名稱即可認知其所代表的意義,為一系列軟體集合用來存取一般軟體無法存取的區域,諸如核心記憶體、系統管理模式記憶體等。由於 rootkit 活動區域無法由一般軟體存取之,需要透過特別的掃描辨識程式才可以找到它的存在。
UEFI 具備漏洞可讓惡意程式侵入已不是新聞,在白帽駭客相關聚會早有實作入侵手段,但在實驗室以外發現卻還是第一次。ESET 公布它們發現到的第一支 UEFI rootkit 惡意程式,由於這支程式採用 LoJack for Laptops 的代理程式,ESET 將其命名為 LoJax。
LoJack for Laptops 前身為 CompuTrace,主要是用來追蹤被小偷劫走的電腦,而燒錄在電腦韌體裡的小程式。由於位在電腦開機必須的韌體之內,小偷沒有辦法透過一般替換硬碟儲存裝置的手段輕鬆移除,電腦開機後便會將此電腦所在區域相關資料回傳。不過此實作概念亦被有心人士利用,瞄準的就是韌體感染不易察覺並移除的特性。
LoJax 主要利用 RWEverything 內建核心驅動程式 RwDrv.sys 讀取 UEFI 相關設定,驅動程式經過合法的簽署手續,因此不會引起作業系統的注意。LoJax 接著利用 3 個不同的工具達成目標,首先掃描低階系統設定,以便根據設定擬定入侵策略,依據不同平台選擇不同的方式跳過非法韌體寫入防護機制;接著把 UEFI 韌體檔案讀取出來,最後 1 個工具插入惡意 UEFI 模組至韌體當中並寫回。
一旦 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 有近一步動作,不過這個程式包含下載與安裝其它程式模組的機制,因此在未來依舊可以執行其它惡意行為。
ESET 同時提出解決方案,第一個為開啟 UEFI Secure Boot 機制,強迫開機載入的每個模組均需要合法的簽名,第二個就是更新至最新的 UEFI 版本。此外 LoJax 也不影響 Intel 5 系列 PCH 晶片組之後的產品(註:BIOSWE 和 BIOSBLE 需正確設定成 0 和 1),原因為第一張圖導入的 SMM BIOS Write Protect Disable 功能。目前在消費市場當中,使用 Intel 5 系列晶片組(處理器 Core i 世代)以前的電腦並不多,但在政府機關依舊存在為數不少的舊電腦。
https://www.techbang.com/posts/61493-eset-discovers-the-first-uefi-rookit-malware-lojax-and-the-infected-post-heavy-irrigation-system