分析 Linux 中的持久化機制
概述
攻擊者透過 crontab 工作、systemd 服務/計時器單元、LD_PRELOAD 函式庫注入、Shell 設定檔修改 (.bashrc, .profile)、SSH authorized_keys 後門以及 init 腳本操縱,在 Linux 系統上建立持久化。本技能會掃描所有已知的持久化向量,檢查檔案時間戳記與完整性,並將發現結果與 auditd 日誌關聯,以建立持久化安裝的時間線。
使用時機
- 調查需要分析 Linux 持久化機制的安全事件時
- 建立此領域的偵測規則或威脅狩獵查詢時
- SOC 分析師需要此分析類型的結構化程序時
- 驗證相關攻擊技術的安全監控覆蓋範圍時
先決條件
- 目標 Linux 系統的 root 或 sudo 存取權限(或鑑識映像檔)
- 已設定 auditd 並在持久化路徑上配置檔案監控規則
- Python 3.8+ 及標準函式庫 (os, subprocess, json)
- 可選:用於檔案完整性監控警報的 OSSEC/Wazuh 代理程式
步驟
- 掃描 Crontab 條目 — 列舉所有使用者的 crontab、/etc/cron.d/、/etc/cron.daily/ 以及 anacron 工作中的可疑指令
- 審核 Systemd 單元 — 檢查 /etc/systemd/system/ 和 ~/.config/systemd/user/ 中非套件管理的服務與計時器單元
- 偵測 LD_PRELOAD 劫持 — 檢查 /etc/ld.so.preload 和 LD_PRELOAD 環境變數中是否有被注入的共享函式庫
- 檢查 Shell 設定檔 — 掃描 .bashrc、.bash_profile、.profile、/etc/profile.d/ 中是否有被注入的指令或反向 Shell
- 檢查 SSH 授權金鑰 — 審核所有 authorized_keys 檔案中未經授權的公開金鑰,特別是具有指令限制者
- 關聯 Auditd 日誌 — 在 auditd 日誌中搜尋持久化路徑上的檔案修改事件,以建立安裝時間線
- 產生持久化報告 — 產出一份包含風險評分的所有發現之持久化機制報告
預期輸出
- 包含所有發現之持久化機制及其風險評分的 JSON 報告
- 透過 auditd 關聯產生的持久化安裝時間線
- MITRE ATT&CK 技術對應 (T1053, T1543, T1574, T1546)
- 針對每個偵測到的持久化機制之補救指令