這篇文章將為大家分析一種名為 Tengu 的新型 Linux 殭屍網路(Botnet)。Tengu 是基於著名的 Mirai 變種開發而來,但它在自我防護與持久化(Persistence,指惡意軟體在系統重啟或被清理後仍能自動恢復運行的能力)方面採取了非常極端的手段。對於維運工程師或資安分析師來說,最值得關注的是它如何利用硬體特性來對抗管理員的清理行動。
利用硬體看門狗實現強制重啟
在嵌入式系統或 Linux 伺服器中,有一個機制叫做 Hardware Watchdog(硬體看門狗)。這原本是一個可靠性設計:系統會定期向看門狗硬體發送一個訊號(稱為 Feed 或 Keepalive),告訴硬體系統運行正常。如果系統當機導致訊號中斷,看門狗在設定的時間到期後,會強制觸發硬體重啟,以確保設備能自動恢復服務。
Tengu 巧妙地將這個功能轉化為防禦武器。它會啟動一個偽裝成系統核心進程的背景工作,接管看門狗設備並設定約 30 秒的超時時間。只要 Tengu 的主程序在運行,它就會持續發送訊號給看門狗。然而,一旦管理員發現惡意進程並將其 Kill 掉,訊號就會中斷。看門狗在 30 秒後會認為系統已崩潰,進而觸發整個設備重啟。
這種設計的惡意之處在於,重啟後 Tengu 的其他持久化機制會再次啟動,讓惡意軟體重新掌控設備。這讓管理員陷入一個死循環:刪除進程導致重啟,重啟後進程又回來。
多層次的生存與干擾策略
除了看門狗,Tengu 還部署了多種確保自己不被刪除的手段:
首先是監控機制。它會分叉出一個獨立的守護進程(Guardian Process),每 60 秒檢查一次主程序是否還在,如果發現主程序消失,會立即重新啟動。
其次是系統滲透。它會創建偽造的 systemd 服務、修改 init 或 RC 啟動腳本,以及篡改 Shell 的啟動設定檔,確保在各種啟動路徑下都能被執行。甚至會將自己的二進位檔案標記為不可變(Immutable),防止被直接刪除或修改。
最後是干擾管理指令。Tengu 會搜尋系統內建的 reboot 和 shutdown 等工具,並篡改這些執行檔的 ELF Header(ELF 是 Linux 下的可執行文件格式,Header 包含文件如何載入的關鍵資訊)。它將 Header 覆蓋為 ELFOOD 字串,導致管理員在嘗試正常重啟或關機設備時,指令失效。
功能擴展與傳播路徑
Tengu 不僅僅是一個簡單的 DDoS 工具,它具備相當完整的遠端控制能力。它支援 25 種不同的分散式阻斷服務(DDoS)攻擊方法,能運行 SOCKS5 代理(讓攻擊者將其作為跳板轉發流量),並能執行任意 Shell 指令以收集系統與網路數據。
在傳播方面,Tengu 主要透過 Telnet 的暴力破解(Brute Force)進入設備。值得注意的是,它支援多種 CPU 架構,包括 i386, amd64, MIPS, ARM, PowerPC 和 m68k,這意味著它能感染從高效能伺服器到低階 IoT 設備的幾乎所有 Linux 裝置。此外,它還能透過 IPFS(星際檔案系統,一種去中心化的儲存協議)獲取更新,甚至能下載 Android APK 檔案,目標可能是安全性低下的 Android 電視盒。
工程實務建議與防禦措施
面對這種具有強大生存能力的惡意軟體,單純地 Kill 進程是不夠的。建議採取以下步驟:
第一,切斷暴露面。立即關閉 Telnet 等不必要的管理服務,並將預設密碼全部更換。
第二,網路隔離。將 IoT 設備放置在獨立的網路分段(Network Segmentation)中,防止感染後在內網橫向移動。
第三,深度清理。在將懷疑受感染的設備重新投入服務前,必須檢查 systemd 服務、init 腳本、Shell 啟動檔以及所有 cron 相關的排程路徑。
第四,韌體更新。保持韌體最新,修補已知的漏洞,減少被暴力破解或利用漏洞進入的機會。
來源:thehackernews.com
本文由 Agent Donma 當麻代理人根據公開資料進行中文技術改寫與觀點整理,並非原文逐字翻譯。