
隱匿在Linux系統中的新型惡意軟體:
Auto-color
2024 年底,Palo Alto Networks 的研究人員發現了一種名為 Auto-color 的新型 Linux 惡意軟體。一旦安裝,Auto-color 就會授予攻擊者對受感染系統的遠端存取權限,並透過操縱系統程式庫來阻止卸載。該惡意軟體以大學和政府辦公室為目標,每次部署都使用不同的檔案名稱和動態產生成的設定。它連接到命令伺服器以接收指令並可以建立反向 shel後門 。提供檔案雜湊及 IP 位址等洩漏指標來幫助識別受感染的系統。

執行摘要
2024 年 11 月初至 12 月期間,Palo Alto Networks 的研究人員發現了一種名為 Auto-color 的新型 Linux 惡意軟體。一旦安裝,Auto-color 就會授予Threat actor對受感染機器的完全遠端存取權限,並且如果沒有專門的軟體很難刪除。該惡意軟體主要針對北美和亞洲的大學和政府辦公室。
安裝與規避
每次惡意軟體部署在不同的目標上時,它都會使用不同且一般的檔案名稱。該檔案由受害者在其 Linux 機器上明確執行(run explicitly )。
- 惡意軟體啟動:一旦執行,惡意軟體會檢查檔案名稱是否為「Auto-color」。如果沒有,它就會開始安裝植入規避函式庫(Evasive library implant)。
- 權限檢查:如果使用者缺乏 root 權限,惡意軟體將繼續運作而不會植入函式庫。
- 函式庫安裝:使用 root 權限,Auto-color 會安裝植入一個名為 libcext.so.2 的惡意函式庫,以模仿合法的 C 工具函式庫 libcext.so.0。它使用 dladdr() 函式和來自 C 標準函式庫(libc)的符號(具體來說是 strerr())來定位基礎函式庫(base library)目錄路徑。如果符號不存在,則預設為 /lib。
- 檔案操作:可執行檔將自身複製並重新命名為 /var/log/cross/auto-color,並安裝函式庫從記憶體植入到基礎庫路徑(base library path)。該惡意軟體將惡意函式庫檔案名稱寫入/etc/ld.preload,確保在載入可執行檔時首先載入該檔案名,從而允許其覆蓋核心函式庫(override core library)。
- 刪除:在 root 權限下兩種情況下都會刪除原始可執行檔,Auto-color二進位檔案會保留在 /var/log/cross/auto-color
惡意庫植入分析
惡意函式庫植入libcext.so.2注重逃避和持久性:
- 隱藏惡意軟體和遠端目標之間的網路活動。
- 透過保護 /etc/ld.preload 免遭修改或刪除來防止解除安裝。
隱藏網路活動
此函式庫Hook libc 中使用的函數,主要是 open() 函數系列。它監視 /proc/net/tcp ,其中包含有關主動網路(Active Network)連接的資訊。當存取 /proc/net/tcp 時,惡意軟體會解析其內容,檢查共享記憶體資料結構中的特定本機連接埠或遠端 IP 位址。如果找到,它會從 /tmp/cross/<user_id>/tcp處的特殊檔案中排除該進入點(Entry),從而隱藏網路連線。然後,open() 函數傳回已修改檔案的檔案描述符(File descriptor)。該技術與 Symbiote 惡意軟體家族所使用的技術類似。
目標 C2 Payload訊息
該惡意軟體使用以下兩種方法之一解密Global target payload以尋找遠端攻擊者伺服器:
- 1.讀取特定檔案,/tmp/cross/config-err-XXXXXXXX(非 root)
或 /var/log/cross/config-err-XXXXXXXX(root),其中 XXXXXXXX 是動態產生的十六進位值。 - 2.如果上述檔案不存在,則從 .data 部分取得Payload資料。如果Threat actor希望遠端目標有所不同,則需要他們為每個目標預先編譯每個惡意軟體樣本。
此目標Payload中的加密是一個Custom stream cipher。格式包括加密區塊的大小、密文和金鑰。密鑰透過 bitwise XOR 或和減法運算對密文的每個位元組進行解密。解密每個位元組後,將產生一個新密鑰來對下一個位元組進行操作。
核心 C2 協定和 API 結構
該惡意軟體使用隨機的 16 位元組值檢查來啟動與遠端伺服器的Handshake。Handshake後,它進入主循環,等待指令。每個訊息均由Message header和Payload組成。Message header包括:
- 用於解密其餘元資料和Payload的 4 位元組金鑰。
- 指示具體操作的Command ID。
- 錯誤代碼值(0 表示成功)。
- Payload大小。
金鑰是動態產生的,加密依賴於針對特定訊息的金鑰的保密性,而不是將金鑰保密在程式內。惡意軟體解密並解析Header和Payload內容,然後根據Command ID執行功能。Payload使用二進位格式,並且參數從Network byte order轉換為Host byte order。執行後,惡意軟體會傳回一個僅包含Header的Message,其中包含Command和錯誤代碼。然後循環再次開始,等待進一步的指令。
惡意軟體 C2 API 功能
該 API 包括幾類功能:
- 常規選項和終止開關:發送主機資訊並包含一個終止開關以自行解除安裝。
- 反向 Shell:建立反向 Shell,用於與受害機器直接互動。
- 檔案動作與操作:在本機建立、修改檔案和執行程式。
- 網路代理:受感染的機器可作為遠端目標和給定 IP 位址之間的連接的代理。
- 全域Payload操作:傳送和操作全域設定資料。
結論
Auto-color 是一種最近發現的 Linux 惡意軟體,它採用各種方法來逃避偵測並控制受感染的系統。 Auto-color 由 Palo Alto Networks 的研究人員於 2024 年 11 月至 12 月期間發現,其目標是北美和亞洲的大學和政府辦公室。Auto-color的重點包括:
- 逃避技術:Auto-color 使用看似無害的檔案名,隱藏其命令和控制 (C2) 連接,並部署專有加密演算法。安裝後它會自行重命名,以便進一步融入其中。
- 安裝與持久性:惡意軟體安裝植入惡意函式庫 libcext.so.2 ,模仿合法的 C 工具函式庫。它修改 /etc/ld.preload 以確保首先載入惡意函式庫,從而允許它覆寫核心函數。
- 網路活動隱藏:Auto-color hook透過監視和操縱 /proc/net/tcp 檔案來隱藏網路活動,類似於 Symbiote 惡意軟體家族使用的技術。
- 自訂加密:惡意軟體使用Custom stream cipher來加密其目標Payload,其中包含有關遠端攻擊者伺服器的資訊。
- C2 通訊:Auto-color 與遠端伺服器建立 C2 通道,等待指令執行各種功能,包括建立反向 shell、操作檔案和充當網路代理。
- 妥協指標 (IoC):該研究提供了惡意檔案的 SHA256 雜湊值,並列出了與 Auto-color 相關的惡意 C2 IP 位址。