Linux Rootkit Detection:工具與技術

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

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

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

Linux Rootkit 偵測:伺服器安全工具與技術

Rootkit 賦予攻擊者對 Linux 系統的持久且隱蔽的存取權限。它們能操縱核心運作、隱藏檔案與程序,並規避標準的安全工具。有些甚至長達數年未被察覺。由於沒有單一工具能偵測到所有 Rootkit,因此偵測工作需要採取分層式的方法。

本文將探討 Linux Rootkit 的主要類型、檢測方法,以及能捕捉基礎掃描工具遺漏之處的高階監控技術。


Linux 根套件的類型

Rootkit 運作於不同的權限層級,位置越深,就越難被發現。

使用者模式 Rootkit 在應用程式層級(Ring 3)運行。它們利用 LD_PRELOAD 來注入惡意函式庫,藉此攔截標準 C 函式庫中的函式,例如 readdirfopen等標準 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 組件發出的警告,以及關於已刪除 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

若要進行自動化的每日掃描,請設定 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 根套件,TetragonFalcoTracee 等執行時監控工具可即時觀察內核中的活動。

檔案完整性監控

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=1MIRRORS_MODE=0 ,並在執行 rkhunter --propupd 以更新基準線。

強化伺服器防禦以抵禦 Rootkit

偵測固然重要,但預防更為關鍵。多數 Rootkit 需具備提升的權限才能安裝,因此縮小攻擊面能產生實質影響。

請保持核心與套件更新。攻擊者會利用未修補的漏洞來提升權限,並部署基於 LKM 或 eBPF 的 Rootkit。修補漏洞後,請透過以下方式更新您的偵測基準: rkhunter --propupd.

實施最小權限原則。切勿授予使用者或程序超出其所需的存取權限。使用 SELinuxAppArmor 進行強制存取控制,即使程序遭到入侵,也能阻擋未經授權的操作。

停用開機後的內核模組載入。在專用伺服器上,您可以透過鎖定系統啟動後的模組載入,完全防止 LKM 根套件的入侵。這在共享主機環境中無法實現,這也是專用伺服器或 VPS 環境能提供更強大安全防護的原因之一。

進行網路分段。將基礎架構的各部分隔離,可限制單一機器遭入侵時的橫向移動。

定期進行稽核。透過 Lynis 等工具,可在攻擊者利用漏洞之前,預先識別權限錯誤與設定失誤。

結論

Rootkit 的設計初衷就是隱藏在明處。等到症狀顯現時,系統可能已經遭到嚴重入侵,難以輕易恢復。沒有任何單一掃描工具能偵測到所有威脅,而基本的簽名式偵測也容易被規避。

有效的防禦應結合多重防護層:

  • 使用 chkrootkit 和 rkhunter 定期掃描已知威脅
  • 透過 Auditd 規則與行為監控,偵測可疑的內核活動
  • 使用 AIDE 進行檔案完整性監控,以偵測未經授權的變更
  • 使用 Tetragon 或 Falco 等執行時工具,以防範 eBPF 和 io_uring 威脅
  • 透過強化存取控制、修補程式及網路分段來縮小攻擊面

盡可能自動化流程、保持基準設定最新,並從您信任的乾淨作業系統安裝開始。

FDC Servers 提供具備完整 root 權限及可自訂核心設定的專用伺服器與 VPS 主機服務。探索專用伺服器方案,打造強化版的 Linux 環境。

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

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

立即升级

博客

本周特色

更多文章
為什麼擁有一個強大且不計費的 VPS 是很重要的?

為什麼擁有一個強大且不計費的 VPS 是很重要的?

非計費 VPS 以固定的連接埠速度提供定額頻寬。它與計費計劃有何不同、何時會有好處,以及購買前需要檢查的事項。

7 分鐘閱讀 - 2025年5月9日

Linux 記憶體管理:交換、OOM 殺手與 Cgroups

12 分鐘閱讀 - 2026年5月31日

更多文章