iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0
佛心分享-IT 人職涯歷練

從網管黑手到資安長思維:一線維運的 30 天防禦進化與證照修煉系列 第 13 篇

Day 13|重組攻擊者的作案拼圖:Linux 數位鑑識基礎與日誌防竄改(auditd)

  • 分享至 

  • xImage
  •  

在 Day 10 到 Day 12,我們將防禦體系逐步推展至 SIEM 集中監控、SOAR 自動化聯防與 EDR 端點行為偵測。然而,資安維運的實戰殘酷之處在於:即便擁有成熟的防護工具,仍必須預設最壞情況——「某台核心 Linux 主機已被攻擊者取得 Root 權限」。

過去做為網管,直覺反應可能是「立刻重開機以清空不明行程」或「登入主機狂敲 ps、netstat 找可疑程式」。但當我們站在 CISSP 安全營運(Domain 7) 與 ECIH / 鑑識實務 的視角,這些直覺動作往往是徹底破壞案發現場的元兇。

Day 13,我們從單純的防守與阻斷,正式跨入數位鑑識(Digital Forensics)與日誌保全的核心地帶。

一、 現場保全的第一鐵則:RFC 3227 揮發性順序(Order of Volatility)

在數位鑑識領域,最關鍵的基本法則是:「永遠先採集最脆弱、最容易消失的證據」。

當一台 Linux 伺服器傳出入侵警報,任何一個終端機指令(包括你敲下的 ls)都會改變系統狀態、改寫 inode 時間戳記(MACB timestamps),甚至覆寫快取。依據 RFC 3227 規範,取證必須依以下揮發性順序進行:

暫存器與快取記憶體(Registers, cache):最容易隨時鐘週期刷新消失。

實體記憶體(Routing table, ARP cache, process table, kernel statistics, RAM):包含未寫入硬碟的惡意程式碼、記憶體注入 Payload、建立中的網路連線與暫存金鑰。切勿直接拔插頭或重啟系統!

暫存檔案系統(Temporary file systems, /tmp, swap space):重啟後可能自動被作業系統清空或覆寫。

非揮發性儲存媒體(Disks, SSDs):硬碟上的檔案、日誌與已落地的腳本,即便斷電依然存在。

遠端記錄與拓撲(Remote logging, network topology):外部 SIEM、Syslog 伺服器與網路封包側錄。

「拔線、取證、鏡像」看似標準,但在一線維運環境中,應變必須兼顧業務連續性。在決定隔離網路之前,先確保易失性記憶體的保全,是避免攻擊者透過無檔案(Fileless)技術全身而退的關鍵底線。

二、 信任崩塌的危機:一般日誌的脆弱性

很多工程師習慣依賴 /var/log/secure 或 /var/log/messages 來排查入侵跡象。但在攻擊者取得 Root 或高權限 Shell 的瞬間,這些本機檔案便已失去證據能力:

攻擊者可以輕易下達 echo "" > /var/log/secure 清空檔案。

透過修改系統二進位檔(如替換 netstat 或 ps 為惡意封裝版本,即 Rootkit),隱匿自身行程與連線。

利用 touch -r 進行時間偽造(Timestomping),讓新增的後門檔案看起來像一年前建立的正常系統檔。

要讓鑑識證據在法庭或事故調查報告中站得住腳,日誌必須具備不可否認性(Non-repudiation)與完整性(Integrity)。除了透過 Day 10 談過的 Syslog-over-TLS 將日誌即時推送到外部 WORM 儲存外,Linux 本機端必須啟動底層的內核級防護機制——auditd(Linux Audit Daemon)。

三、 核心級監控:利用 Linux auditd 鎖定系統呼叫軌跡

auditd 是 Linux 內核子系統(Kernel Subsystem)的一部分,它運作於作業系統的最底層。與一般應用程式日誌不同,auditd 直接監聽系統呼叫(System Calls, syscalls),哪怕攻擊者用自訂工具或別名繞過常規指令,只要觸發了內核操作,就一定會被客觀記錄。

在加固的核心伺服器上,我會要求團隊建立以下三類關鍵的審計規則(/etc/audit/rules.d/audit.rules):

1. 監控關鍵身分與提權檔案

記錄任何人對帳號密碼檔的寫入或屬性變更:

Bash

監控 /etc/passwd 與 /etc/shadow 的寫入與屬性變更

-w /etc/passwd -p wa -k identity_changes
-w /etc/shadow -p wa -k identity_changes
-w /etc/sudoers -p wa -k sudo_changes

2. 監控提權與特權程式執行

攻擊者常用 SUID 程式(如 sudo、pkexec)進行橫向提權,必須記錄非一般使用者的系統呼叫:

Bash

監控所有 64-bit 系統中 setuid / setgid 的系統呼叫

-a always,exit -F arch=b64 -S setuid -S setgid -S setreuid -S setregid -k privilege_escalation

3. 鎖定防竄改:不可逆的核心凍結

這是許多網管忽略但資安長極為看重的設定——防止攻擊者直接停用 auditd:

Bash

在規則檔最後一行加上 -e 2

-e 2

-e 2 意味著將 auditd 規則鎖定在「不可變更(Immutable)」狀態。一旦設定生效,即使是本機 Root 帳號也無法透過 auditctl 刪除或修改任何規則,唯一解除鎖定的方法是重新啟動整個作業系統。這迫使攻擊者若要抹除軌跡,必須引發系統重開機,而這正是監控中心最容易察覺的告警特徵。

結語:將代碼還原為作案現場

數位鑑識不是事後諸葛的補破網,而是平時就必須融入架構設計的工程。

從一線工程師的角度看,搞懂 RFC 3227 揮發性原則,能避免我們在危機時自亂陣腳、親手銷毀作案現場;而深入內核部署 auditd 與防竄改規則,則是為整座 Linux 環境安裝上不受應用程式干擾的「全時黑盒子」。

當我們能將攻擊者的每個系統呼叫、檔案讀寫與網路連線,在時間軸上一一嚴密拼接出來時,防守方才真正握有主導權,將被動受挫的被侵入現場,轉化為強化企業整體防線的寶貴情資。

PS:想了解何謂RFC 3227,可參考下列這篇文章
https://www.rfc-editor.org/info/rfc3227/ <<原文Guideline


上一篇
Day 12|當防線退至最後一米:資安長視角下的端點可視化與 EDR 行為防禦
下一篇
Day 14| 第二週維運復盤:穿透邊界之後,伺服器與中介軟體的縱深防禦實戰
系列文
從網管黑手到資安長思維:一線維運的 30 天防禦進化與證照修煉 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言