在第 18 天,我們已經透過 Wazuh FIM 功能,偵測檔案的新增、修改與刪除。
不過,在實際的資安事件調查中,僅知道檔案被修改通常還不夠,管理人員可能還需要了解:
| 功能 | 說明 | 用途 |
|---|---|---|
| realtime | 即時偵測檔案變更 | 快速發現異常 |
| whodata | 記錄修改者與相關程序資訊 | 追蹤操作來源 |
| report_changes | 記錄文字檔案的內容差異 | 分析修改內容 |
| check_all | 檢查檔案完整性屬性 | 確認檔案變化 |
其中,whodata 在 Linux 系統上需要搭配 Audit 稽核機制,才能取得修改事件的相關資訊。
本次延續昨天建立的 /home/wazuh-test 目錄進行實作。
步驟一:確認 Audit 服務
在 Ubuntu 或 Debian 系統上,可以先安裝並確認 auditd:
sudo apt install auditd -y
sudo systemctl enable --now auditd
sudo systemctl status auditd
步驟二:修改 Wazuh Agent 設定
開啟設定檔:
sudo nano /var/ossec/etc/ossec.conf
找到既有的 區塊,將昨天測試目錄的設定改成:
<directories check_all="yes"
whodata="yes"
report_changes="yes">/home/wazuh-test</directories>
這次新增兩個重要參數:
whodata="yes":記錄檔案修改者及相關程序資訊。
report_changes="yes":記錄文字檔案修改前後的內容差異。
注意:以上設定應放在原本的 區塊中,不需要另外建立重複的區塊。
步驟三:重新啟動 Agent
sudo systemctl restart wazuh-agent
完成後,Wazuh 就能依照新的設定監控測試目錄。
首先建立測試檔案:
echo "Version 1" | sudo tee /home/wazuh-test/config.txt
接著修改檔案內容:
echo "Version 2" | sudo tee /home/wazuh-test/config.txt
這個操作將原本的 Version 1 改為 Version 2。
如果已正確啟用 report_changes,Wazuh 就可以記錄文字內容的變化。
例如:
完成測試後,可以進入 Wazuh Dashboard 的 File Integrity Monitoring → Events 查看事件。
展開警報內容後,可以觀察以下資訊:
| 欄位 | 說明 |
|---|---|
| syscheck.path | 發生變更的檔案路徑 |
| syscheck.diff | 檔案修改前後的內容差異 |
| syscheck.audit.user.name | 執行變更程序的使用者 |
| syscheck.audit.process.name | 執行修改的程序名稱 |
| syscheck.audit.process.id | 修改程序的 PID |
| syscheck.changed_attributes | 發生變更的檔案屬性 |
實際出現的欄位會依系統環境、稽核機制與監控設定有所不同。
透過這些資訊,管理人員可以進一步分析檔案修改事件,判斷是否存在異常操作。
進階 FIM 功能可以應用在多種資安監控情境,例如:
<nodiff>/home/wazuh-test/private.txt</nodiff>
這樣仍可監控該檔案的完整性變化,但不會在警報中提供其具體文字內容差異。