這裡有隻神奇寶貝,是會攻擊 Linux 系統的月精靈!

以神奇寶貝月精靈為名的 Umbreon Rootkit , 攻擊 x86 和 ARM 處理器的 Linux 系統

趨勢科技前瞻威脅研究 (FTR) 團隊最近取得了一個新的 Rootkit家族樣本。此 Rootkit 家族的名字叫做「Umbreon」(與第 197 號神奇寶貝「月精靈」同名),會攻擊 Intel 和 ARM 處理器的 Linux 系統,因此一些內嵌式裝置也可能遭殃。(註:此 Rootkit 還真符合這隻神奇寶貝的特性,因為月精靈喜歡躲在黑漆漆的夜裡,所以與 Rootkit 的特性吻合。)

我們已針對這個 Rootkit 進行了詳細分析,並且將樣本提供給業界來協助資安界攔截此威脅。

編按: Rootkit是一種技術,用途在修改系統核心以便隱藏特定的檔案或是處理程序,甚至是登錄值.也因此常常會被病毒拿來利用作為躲避追查的手法之一

Umbreon 的發展始於 2015 年初,但其作者至少從 2013 年起即活躍於網路犯罪地下網路。根據一些駭客在地下論壇和 IRC 頻道上的說法,Umbreon 非常難以偵測。我們的研究已找出該 Rootkit 的運作方式以及它如何躲藏在 Linux 系統當中。

Umbreon 是經由駭客手動安裝到受害裝置或伺服器上。安裝之後,駭客即可經由該程式來遙控受害裝置。

何謂 Ring 3 Rootkit?

Rootkit 是一種難以偵測及發現的持續性威脅。它的功用就是要讓自己 (與其他惡意程式) 能夠躲過系統管理員、資安分析師、使用者、掃瞄引擎、鑑識分析以及系統工具的偵測。此外,它也可用來開啟一道後門,或者透過幕後操縱 (C&C) 伺服器讓駭客從遠端暗中遙控及監控受害機器。

這類程式有幾種執行模式,分別具備不同的存取權限:

  • 使用者模式 (Ring 3)
  • 核心模式 (Ring 0)
  • 虛擬化監管程式 (Hypervisor) 模式 (Ring -1)
  • 系統管理模式 (SMM) (Ring -2)

此外,一些研究也發展出一種在主機板或其他裝置的某些晶片上執行的 Rookit,這類 Rootkit 的執行模式為 Ring -3。在越底層執行的 Rootkit 就越難偵測及處理,但這並不表示 Ring 3 的 Rootkit 就很容易清除。

Ring 3 (也就是在使用者模式執行的) Rootkit 雖不會在系統上安裝一些系統核心物件,但卻會攔截 (hook) 系統的核心函式庫,這些函式庫是一般程式呼叫系統重要功能的介面,例如:讀/寫檔案、產生執行程序、傳送網路封包。因此,就算是在使用者模式下執行,這類 Rootkit 也可能有辦法監控甚至改變作業系統的運作。

在 Linux 系統上,當某個程式呼叫 printf() 這個函式時,該函式會再呼叫同一函式庫內一連串的其他函式,如:_IO_printf() vprintf()。而這些函式最終會呼叫 write() 這個系統呼叫 (syscall)。一個 Ring 0 的 Rootkit 會直接在核心模式下攔截這個系統呼叫 (但這需要在系統當中插入核心物件/模組),反觀一個 Ring 3 的 Rootkit 只需攔截使用者模式下的某些中間函式,不需撰寫核心模式下的原生程式碼 (因為這有相當的難度)。

跨平台功能

Umbreon 可在三個不同平台上執行:x86、x86-64 和 ARM (Raspberry Pi)。這套 Rootkit 的可攜性非常高,因為它並未用到任何綁定平台的程式碼:這套 Rootkit 除了一些輔助工具是以 Python 和 Bash 等腳本語言撰寫之外,純粹是以 C 語言撰寫。

趨勢科技判斷作者應該是刻意這麼做,好讓 Umbreon輕鬆支援前述三種平台。

後門認證機制

Umbreon 在安裝過程當中會在 Linux 系統上建立一個使用者帳號讓駭客經由後門進出受害的系統。這個後門帳號可經由 Linux 支援的任何認證機制 (如 SSH) 來存取,只需透過一個外掛的認證模組 (PAM) 即可。

該使用者帳號的群組識別碼 GID (group ID) 很特別,因此可讓 Rootkit 判斷試圖經由它進入系統的是不是駭客本人。由於 Umbreon 已攔截了 libc 函式庫內的函式,因此系統管理員無法在 /etc/passwd 檔案中看到這個使用者帳號。下圖顯示透過 SSH 來存取此後門帳號時會看到的畫面:

圖 1:SSH 登入畫面。 繼續閱讀