iT邦幫忙

2026 iThome 鐵人賽

DAY 9
0
Security

從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心系列 第 9 篇

# Day 09|Wazuh 怎麼知道檔案被改了?深入 Linux inotify 與 Real-time FIM

  • 分享至 

  • xImage
  •  

昨天介紹了 Wazuh 的 FIM(File Integrity Monitoring,檔案完整性監控),可以用來監控重要檔案是否遭到建立、修改或刪除。

但這時我產生了一個問題:

Wazuh 到底怎麼知道檔案被修改了?難道一直重新掃描檔案嗎?

今天就來看看 Wazuh Real-time FIM 背後一個很重要的 Linux 機制:inotify。


1. 定期掃描 vs 即時監控

最直覺的檔案監控方式,就是定期檢查檔案狀態。

例如:

第一次掃描 → Hash A
      ↓
檔案被修改
      ↓
第二次掃描 → Hash B
      ↓
發現檔案改變

這種方式可以找到檔案變化,但有一個問題:

必須等到下一次掃描,才會知道檔案被修改。

如果希望檔案一發生變化就能發現,就需要使用即時監控的方式。


2. 什麼是 inotify?

inotify 是 Linux 提供的檔案系統事件通知機制。

簡單來說,可以把它理解成:

「這個檔案或目錄如果發生變化,就通知我。」

例如檔案發生以下行為:

  • 建立(Create)
  • 修改(Modify)
  • 刪除(Delete)
  • 移動(Move)
  • 權限等屬性變更

Linux 就可以產生相對應的事件。

概念上可以簡化成:

監控檔案 / 目錄
       ↓
檔案發生變化
       ↓
Linux Kernel
       ↓
inotify Event
       ↓
監控程式收到通知

相較於不斷重新檢查檔案是否改變,這種方式可以更即時地掌握檔案系統事件。


3. 自己測試 inotify

在 Ubuntu 中,可以安裝 inotify-tools:

sudo apt update
sudo apt install inotify-tools

接著建立一個測試目錄:

mkdir ~/fim-test

開始監控:

inotifywait -m ~/fim-test

其中 -m 代表持續監控。

接著另外開啟一個 Terminal,依序執行:

touch ~/fim-test/test.txt
echo "hello" >> ~/fim-test/test.txt
rm ~/fim-test/test.txt

這時就可以觀察到類似:

CREATE test.txt
MODIFY test.txt
DELETE test.txt

也就是當檔案發生變化時,Linux 可以立即產生對應的檔案系統事件。


4. 那這跟 Wazuh 有什麼關係?

Wazuh 中負責 FIM 的主要模組是 Syscheck。

例如,我們可以設定:

<syscheck>
  <directories realtime="yes">/home/user/fim-test</directories>
</syscheck>

其中:

realtime="yes"

代表對指定位置啟用 Real-time Monitoring。

在 Linux 環境中,Wazuh 的 Real-time FIM 可以利用 inotify 監控檔案系統事件。

整個流程可以簡化成:

檔案被修改
    ↓
Linux / inotify
    ↓
Wazuh Agent
    ↓
Syscheck
    ↓
Wazuh Manager
    ↓
Alert

所以 realtime="yes" 不只是一個設定參數,它背後其實與 Linux 的檔案系統事件通知機制有關。


5. 是不是全部開 Real-time 就好了?

既然 Real-time Monitoring 可以快速發現檔案變化,那是不是乾脆整台主機都監控?

其實並不是。

Linux 系統本來就會產生大量正常的檔案變化,如果監控範圍太大,很容易產生大量事件與雜訊。

最後可能變成:

大量檔案異動
      ↓
大量 FIM Event
      ↓
大量 Alert
      ↓
真正重要的事件反而被淹沒

因此 FIM 真正重要的問題不是:

「可以監控多少檔案?」

而是:

「哪些檔案被修改時,真的值得我注意?」

這也帶出了下一個問題。

如果我故意建立一個正常情況下根本不應該有人去碰的檔案,那麼只要有人修改它,是不是就非常值得調查?

這就是接下來要介紹的 Honeyfile。


今日總結

今天主要了解三件事情:

  1. FIM 可以透過定期掃描與即時監控發現檔案變化。
  2. Linux 的 inotify 可以提供檔案系統事件通知。
  3. Wazuh 使用 realtime="yes" 時,可以利用 Linux 的事件機制進行 Real-time FIM。

今天比較偏向理解 Wazuh FIM 背後的 Linux 機制。

下一篇就要開始把這個功能實際應用到我們的防禦環境。


上一篇
Day 08|防線建立:什麼是 FIM?為何它是防禦 APT 攻擊的關鍵?
下一篇
Day 10|不要只等攻擊發生:設計 Honeyfile 誘餌檔案
系列文
從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心 共 16 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言