Linux Rootkit Detection:工具與技術
10 分鐘閱讀 - 2026年5月16日

如何使用 chkrootkit、rkhunter、Auditd、AIDE 和伺服器上的行為監控來偵測和預防 Linux rootkits。
Linux Rootkit 偵測:伺服器安全工具與技術
Rootkit 賦予攻擊者對 Linux 系統的持久且隱蔽的存取權限。它們能操縱核心運作、隱藏檔案與程序,並規避標準的安全工具。有些甚至長達數年未被察覺。由於沒有單一工具能偵測到所有 Rootkit,因此偵測工作需要採取分層式的方法。
本文將探討 Linux Rootkit 的主要類型、檢測方法,以及能捕捉基礎掃描工具遺漏之處的高階監控技術。
Linux 根套件的類型
Rootkit 運作於不同的權限層級,位置越深,就越難被發現。
使用者模式 Rootkit 在應用程式層級(Ring 3)運行。它們利用 LD_PRELOAD 來注入惡意函式庫,藉此攔截標準 C 函式庫中的函式,例如 readdir 或 fopen等標準 C 函式庫函式,藉此將檔案與程序隱藏於使用者空間工具的偵測範圍之外。
核心模式 Rootkit 透過載入可載入核心模組 (LKM) 在 Ring 0 層級運行。它們攔截系統呼叫、操縱核心記憶體,並隱藏自身存在。由於它們與特定核心版本綁定,若設定錯誤可能導致核心恐慌,這反而會暴露其存在。
基於 eBPF 的 rootkit 利用擴展伯克利封包過濾子系統,無需載入傳統模組即可在核心空間運行。它們會掛接至系統呼叫掛鉤、追蹤點或 LSM 事件。標準的 LKM 掃描器無法偵測到它們。Boopkit 是一個廣為人知的概念驗證,它利用此方法建立隱蔽的 C2 通道。
基於 io_uring 的 Rootkit 是最新的變種。它們將 io_uring 非同步 I/O 介面進行批次操作,產生較少可偵測的系統呼叫事件。實驗性 Rootkit RingReaper 展示了此技術如何悄無聲息地替換如 read, write等呼叫, connect 等呼叫,同時規避 EDR 工具的偵測。
| Rootkit 類型 | 權限層級 | 掛鉤方法 | 偵測難度 |
|---|---|---|---|
| 使用者模式 | 第 3 層 (使用者) | LD_PRELOAD、函式庫劫持 | 中等 |
| 核心模式 | Ring 0 (核心) | 系統呼叫表、LKM、內嵌掛鉤 | 高 |
| 基於 eBPF | Ring 0(核心) | eBPF 程式掛載 | 極高 |
| 基於 io_uring | 使用者/核心 | 非同步 I/O 批次處理 | 非常高 |
使用 chkrootkit 和 rkhunter 進行掃描
有兩項工具構成了 Linux 伺服器上偵測 rootkit 的基礎:chkrootkit 用於快速掃描,rkhunter 則用於更深入的檢查。
chkrootkit
chkrootkit 是一個 shell 腳本,用於檢查關鍵系統二進位檔(ls, ps, netstat, sshd, ifconfig) 是否存在遭篡改的跡象。它還能偵測混雜模式的網路介面及遭刪除的日誌。截至 0.59 版(2026 年 1 月),它可識別超過 75 種 rootkit、蠕蟲及 LKM,包括 Linux BPFDoor、Syslogk 和 XZ Backdoor 等新興威脅。
在發現任何可疑活動後執行此工具。請特別留意 ifpromisc 組件發出的警告,以及關於已刪除 lastlog 或 wtmp 檔案的警示。
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
若要進行自動化的每日掃描,請設定 CRON_DAILY_RUN="true" 在 /etc/rkhunter.conf 並使用 --skip-keypress 和 --report-warnings-only 以確保輸出結果乾淨。請在 /var/log/rkhunter.log 並將已確認的誤報加入白名單。
偵測 LKM 根套件
LKM 根套件特別危險,因為它們作為核心擴充模組運作,能在核心層級攔截系統呼叫並隱藏程序。標準工具如 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
即使是那些能躲過 lsmod 及 /proc/modules (如 Diamorphine)的 Rootkit,仍可透過檢查 /sys/module/diamorphine/coresize 或檢視 syslog 警告訊息。
進階偵測:行為監控與完整性檢查
靜態掃描器存在根本性的弱點。在 2026 年的一項實驗中,僅需在 Rootkit 二進位檔中加入一個空字節(此變更不影響功能),便能大幅降低偵測率。Diamorphine 的偵測率僅因移除其符號表,便從 33/66 驟降至 8/64。僅依賴簽名是不夠的。
行為分析
行為分析不再詢問「此檔案是否與已知 Rootkit 匹配?」,而是探問「此進程是否正在執行異常行為?」請監控以下訊號:
- 使用 Auditd 進行監控
init_module()以及finit_module()系統呼叫,無論採用何種方式,這些呼叫都會載入核心模組。 - 監控
kill()號碼大於 31 的系統呼叫,這可能表示隱蔽的 Rootkit 通訊。 - 檢查
/proc/sys/kernel/tainted檢查是否有未經授權的內核模組活動。 - 留意意外出現的
.so檔案/tmp或/dev/shm. - 追蹤 eBPF 活動,特別是
bpf_probe_write_user呼叫。像 BCC 這樣的工具可以透過追蹤點(例如sys_enter_io_uring_enter.
針對 eBPF 和 io_uring 根套件,Tetragon、Falco 和 Tracee 等執行時監控工具可即時觀察內核中的活動。
檔案完整性監控
AIDE(進階入侵偵測環境)會建立可信系統檔案的基準線,並檢查是否有變更。使用 aide --init,接著透過 aide --check 透過 cron 排程。它會追蹤關鍵二進位檔(如 /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=1 和 MIRRORS_MODE=0 ,並在執行 rkhunter --propupd 以更新基準線。
強化伺服器防禦以抵禦 Rootkit
偵測固然重要,但預防更為關鍵。多數 Rootkit 需具備提升的權限才能安裝,因此縮小攻擊面能產生實質影響。
請保持核心與套件更新。攻擊者會利用未修補的漏洞來提升權限,並部署基於 LKM 或 eBPF 的 Rootkit。修補漏洞後,請透過以下方式更新您的偵測基準: rkhunter --propupd.
實施最小權限原則。切勿授予使用者或程序超出其所需的存取權限。使用 SELinux 或 AppArmor 進行強制存取控制,即使程序遭到入侵,也能阻擋未經授權的操作。
停用開機後的內核模組載入。在專用伺服器上,您可以透過鎖定系統啟動後的模組載入,完全防止 LKM 根套件的入侵。這在共享主機環境中無法實現,這也是專用伺服器或 VPS 環境能提供更強大安全防護的原因之一。
進行網路分段。將基礎架構的各部分隔離,可限制單一機器遭入侵時的橫向移動。
定期進行稽核。透過 Lynis 等工具,可在攻擊者利用漏洞之前,預先識別權限錯誤與設定失誤。
結論
Rootkit 的設計初衷就是隱藏在明處。等到症狀顯現時,系統可能已經遭到嚴重入侵,難以輕易恢復。沒有任何單一掃描工具能偵測到所有威脅,而基本的簽名式偵測也容易被規避。
有效的防禦應結合多重防護層:
- 使用 chkrootkit 和 rkhunter 定期掃描已知威脅
- 透過 Auditd 規則與行為監控,偵測可疑的內核活動
- 使用 AIDE 進行檔案完整性監控,以偵測未經授權的變更
- 使用 Tetragon 或 Falco 等執行時工具,以防範 eBPF 和 io_uring 威脅
- 透過強化存取控制、修補程式及網路分段來縮小攻擊面
盡可能自動化流程、保持基準設定最新,並從您信任的乾淨作業系統安裝開始。
FDC Servers 提供具備完整 root 權限及可自訂核心設定的專用伺服器與 VPS 主機服務。探索專用伺服器方案,打造強化版的 Linux 環境。

厌倦了缓慢的部署或带宽限制?FDC Servers 提供即时的专用电源、全球覆盖和灵活的计划,适合任何规模。
立即升级Linux 記憶體管理:交換、OOM 殺手與 Cgroups
12 分鐘閱讀 - 2026年5月31日