Linux Rootkit Detection:工具與技術

10 分鐘閱讀 - 2026年5月16日

hero section cover
目錄
  • Linux Rootkit Detection:伺服器安全的工具與技術
  • Linux Rootkit 的種類
  • 使用 chkrootkit 和 rkhunter 進行掃描
  • 進階偵測:行為監控與完整性檢查
  • 加固您的伺服器以防禦 Rootkit
  • 結論
分享

如何使用 chkrootkit、rkhunter、Auditd、AIDE 和伺服器上的行為監控來偵測和預防 Linux rootkits。

Linux Rootkit Detection:伺服器安全的工具與技術

Rootkit 可讓攻擊者持續、隱蔽地存取 Linux 系統。它們會操控核心作業、隱藏檔案與進程,並躲避標準的安全工具。有些攻擊者多年來都沒有被偵測到。偵測它們需要多層次的方法,因為沒有任何單一工具可以抓到所有的東西。

這篇文章涵蓋了 Linux rootkit 的主要類型、如何掃描它們,以及可偵測基本掃描程式遺漏的進階監控技術。


Linux Rootkit 的種類

Rootkit 會在不同的權限層級運作,而且越深越難發現。

使用者模式 rootkit在應用程式層級 (Ring 3) 執行。它們使用LD_PRELOAD劫持動態連結,以注入惡意函式庫,攔截標準 C 函式庫函式,例如readdirfopen,從而隱藏檔案和進程,使其無法被使用者工具發現。

核心模式 rootkit 會以Loadable Kernel Modules (LKM) 的方式載入,在 0 環運行。它們會截取系統呼叫、操作核心記憶體,並隱藏自己的存在。由於它們與特定的內核版本相連,配置錯誤的內核模組可能會導致內核恐慌,諷刺的是,這會暴露它。

基於 eBPF 的 rootkits利用延伸的 Berkeley Packet Filter 子系統,在不載入傳統模組的情況下在核心空間執行。它們附著在 syscall 鉤子、tracepoints 或 LSM 事件上。標準的 LKM 掃描程式不會看到它們。Boopkit是一個著名的概念驗證,它使用這種方法建立了一個隱蔽的 C2 通道。

以 io_uring 為基礎的 rootkits是最新的變種。它們使用io_uring異步 I/O 介面來批量操作,產生較少的可觀察 syscall 事件。RingReaper 是一種實驗性的 rootkit,它展示了這種方式如何在躲避 EDR 工具的同時,默默地取代連接等呼叫。

rootkit 類型 權限等級 掛鉤方法 偵測難度
使用者模式 環 3 (使用者) LD_PRELOAD, 函式庫騎乘 中度
核心模式 環 0 (核心) 系統呼叫表、LKM、內嵌掛勾
基於 eBPF 環 0 (核心) eBPF 程式附件 非常高
基於 io_uring 使用者/核心 異步 I/O 批次 非常高

使用 chkrootkit 和 rkhunter 進行掃描

在 Linux 伺服器上,有兩種工具構成 rootkit 檢測的基線:chkrootkit用於快速掃描,rkhunter用於深入檢查。

chkrootkit

chkrootkit是一個 shell 腳本,可檢查重要的系統二進位檔案(lspsnetstatsshdifconfig) 是否有被篡改的跡象。它還能偵測混亂的網路介面和刪除的日誌。截至 0.59 版 (2026 年 1 月),它可以識別超過 75 種 rootkits、蠕蟲和 LKM,包括 Linux BPFDoor、Syslogk 和 XZ Backdoor 等較新的威脅。

在任何可疑活動後執行它。注意ifpromisc元件發出的警告,以及有關刪除lastlogwtmp檔案的警示。

rkhunter

rkhunter更進一步。它會比較系統二進位檔的 SHA-1 哈希值與已知的良好值、監控檔案權限與隱藏檔案、檢查啟動組態,以及執行核心與網路分析。

從一開始就正確設定:

# Establish a baseline after a clean install or update
rkhunter --propupd
 
# Update rootkit definitions
rkhunter --update
 
# Run a full scan (use --novl on production servers to reduce I/O)
rkhunter --check --enable all

若要自動執行每日掃描,請在/etc/rkhunter.conf中設定CRON_DAILY_RUN="true",並使用--skip-keypress--report-warnings-only以獲得乾淨輸出。檢閱/var/log/rkhunter.log中的日誌,並將已確認的誤判列入白名單。

偵測 LKM rootkit

LKM rootkit 特別危險,因為它們會以核心擴充的方式運作,攔截系統呼叫並在核心層級隱藏進程。lsmod等標準工具不會看到它們,但有一些方法可以發現它們。

比較lsmod 輸出/sys/module/清單。檢查系統日誌是否有可疑的核心訊息:

# Look for out-of-tree module warnings
sudo dmesg | grep "loading out-of-tree module taints kernel"
 
# Check for module verification failures
grep "module verification failed" /var/log/syslog
 
# Run chkrootkit's LKM-specific check
sudo chkrootkit lkm

透過檢查/sys/module/diamorphine/coresize或檢閱 syslog 警告,即使是隱藏於lsmod/proc/modules(如 Diamorphine) 的 rootkit,仍可被發現。

進階偵測:行為監控與完整性檢查

靜態掃描器有一個基本弱點。在 2026 年的一項實驗中,在 rootkit 二進位檔中加入一個空位元組(這項改變並不影響功能),就能大幅降低偵測率。Diamorphine 的偵測率從 33/66 降至 8/64,只因為剔除了符號表。光靠簽名是不夠的。

行為分析

行為分析不是詢問「這個檔案是否符合已知的 rootkit?監控這些訊號:

  • 使用Auditd監視init_module()finit_module()系統呼叫,這些呼叫會不論方法載入核心模組。
  • 監控kill()呼叫的信號高於 31,這可能表示隱蔽的 rootkit 通訊。
  • 檢查/proc/sys/kernel/tainted是否有未經授權的核心模組活動。
  • 注意/tmp/dev/shm 中的意外.so檔案。
  • 追蹤 eBPF 活動,尤其是bpf_probe_write_user呼叫。BCC等工具可以透過sys_enter_io_uring_enter 等追蹤點來追蹤io_uring 作業。

針對 eBPF 和 io_uring rootkit,TetragonFalcoTracee等執行時監控工具可以即時觀察內核內的活動。

檔案完整性監控

AIDE(Advanced Intrusion Detection Environment) 會建立可信系統檔案的基線,並檢查變更。使用aide --init 來初始化,然後透過 cron 排程aide--check。它會追蹤/bin/login/usr/bin/sshd 等關鍵二進位檔的檢查和、權限、所有權和時間戳記。

對於套件層級的驗證,debsums(Debian/Ubuntu) 或rpm -Va(RHEL/CentOS) 可以確認系統檔案的完整性。若要獲得最可靠的結果,請從可信賴的救援媒體開機,並離線檢查檔案系統,因為 rootkit 可能會篡改執行中核心的報告。

同時也要監控持久性機制。Rootkit 通常會修改/etc/ld.so.preload以注入共用物件,或變更.bashrc.profile。這些檔案的合法變更非常罕見,因此此處的警示信噪比很高。

使用 Auditd 進行自動監控

將這些規則新增至/etc/audit/rules.d/rootkit.rules,以即時偵測可疑的核心活動:

# Detect unauthorized kernel module loading
-a always,exit -F arch=b64 -S finit_module -S init_module
 
# Catch unusual high-range kill signals
-a always,exit -F arch=b64 -S kill -F a1>=32

將這些與 rkhunter 的自動更新結合。在設定中設定UPDATE_MIRRORS=1MIRRORS_MODE = 0,並在合法的系統更新後執行rkhunter --propupd以刷新基線。

加固您的伺服器以防禦 Rootkit

偵測很重要,但預防更好。大多數 Rootkit 都需要提升權限才能安裝,因此減少攻擊面能產生真正的差異。

保持核心和套件更新。攻擊者會利用未修補的漏洞提升權限,並部署基於 LKM 或 eBPF 的 rootkit。修補程式後,使用rkhunter --propupd 更新偵測基線。

強制執行最低權限。不要賦予使用者或程序超過其所需的存取權限。使用SELinuxAppArmor進行強制存取控制,即使程序受到攻擊,也能阻止未經授權的動作。

停用啟動後的核心模組載入。在專用伺服器上,您可以在系統啟動後鎖定模組載入,以完全防止 LKM rootkit。這在共用主機上是不可能的,這也是專用或 VPS 環境提供更強大安全威脅的原因之一。

分割您的網路。如果一台機器受到攻擊,隔離部分基礎架構可限制橫向移動。

定期審核。 Lynis等工具可以在攻擊者利用之前找出權限錯誤和配置錯誤。

結論

Rootkit 是隱藏在眾目睽睽之下的。當出現症狀時,系統可能已經受到損害,無法輕易復原。沒有任何單一掃描軟體可以捕捉到所有東西,而基於特徵的基本偵測也很容易躲避。

實用的防禦方法是結合多層防禦:

  • 使用 chkrootkit 和 rkhunter 定期掃描已知的威脅
  • Auditd 規則和行為監控,以偵測可疑的核心活動
  • 使用 AIDE 監控檔案完整性,以偵測未經授權的變更
  • 運行時工具,如 Tetragon 或 Falco,以偵測 eBPF 和 io_uring 威脅
  • 強化存取控制、修補程式及網路分割,以降低攻擊面

自動化您可以做的事,保持基線最新,並從您信任的乾淨作業系統安裝開始。

FDC Servers 提供具有完全 root 存取權限和客製化核心配置的專用和 VPS 主機。探索專用伺服器選項以建立強化的 Linux 環境。

background image
您的服务器是否阻碍了您的发展?

厌倦了缓慢的部署或带宽限制?FDC Servers 提供即时的专用电源、全球覆盖和灵活的计划,适合任何规模。

立即升级

博客

本周特色

更多文章
Linux 伺服器加固清單

Linux 伺服器加固清單

強化 Linux 伺服器的逐步清單。涵蓋 SSH、防火牆、修補程式、檔案權限、SELinux/AppArmor 和稽核記錄

15 分鐘閱讀 - 2026年5月8日

iperf3 教學:測試 Linux 與 Windows 上的網路速度

10 分鐘閱讀 - 2026年5月7日

更多文章