目錄
FIM 支援全域設置和特定於端點作業系統的設置,以下三個要點可以快速了解如何設定FIM 模組監控指定目錄或檔案:
指定要監控的目錄或檔案有兩種方式
指定 Wazuh 伺服器或代理程式需要監視的檔案或目錄。
使用集中設定檔遠端設定此功能,方便管理。
設定監控目錄和檔案
使用 <directories> 標籤定義要監視的檔案和目錄。
支援逗號分隔的條目或多行條目,以加入多個檔案和目錄。
可使用 * 和 ? 通配符,與 shell 或 cmd 命令提示字元中的使用方式相同:
?:匹配單個字符,例如 file?.txt 會匹配到 file1.txt、fileA.txt。
*:匹配零個或多個字符,例如 file*.txt 會匹配到 file.txt、file1.txt、fileABC.txt。
觸發警報
每當 FIM 模組偵測到檔案變更時,會依據更改的檔案屬性觸發警報。
這些警報可以在 Wazuh 儀表板中查看,方便即時監控。
要設定 FIM 監視檔案和目錄,將 <FILEPATH_OF_MONITORED_FILE> 和 <FILEPATH_OF_MONITORED_DIRECTORY> 替換為要監視的檔案或資料夾路徑,並在 Wazuh 代理程式設定檔中加入以下設定,依據不同Wazuh代理作業系統不同,位於以下不同路徑中:
Linux: /var/ossec/etc/ossec.conf
Windows: C:\Program Files (x86)\ossec-agent\ossec.conf
macOS: /Library/Ossec/etc/ossec.conf
設定內容範例
<syscheck>
<directories><FILEPATH_OF_MONITORED_FILE></directories>
<directories><FILEPATH_OF_MONITORED_DIRECTORY></directories>
</syscheck>
重新啟動 Wazuh 代理程式
完成設定後,使用管理員權限在終端機中重新啟動 Wazuh 代理程式,以套用變更:
Linux:sudo systemctl restart wazuh-agent
Windows:Restart-Service -Name wazuh
macOS:/Library/Ossec/bin/wazuh-control restart
realtime 屬性可以在 Windows 和 Linux 端點上啟用目錄的實時/連續監控。
要在實時監控文件時,需使用 realtime 屬性來配置 FIM 模組的目錄選項。realtime 屬性允許的值為 yes 和 no,且僅適用於目錄,無法應用於單一文件。實時變更偵測在 FIM 模組的排程掃描期間會暫停,並在掃描完成後重新啟動。
以下是如何配置 FIM 模組來實時監控目錄的示例。請將 <FILEPATH_OF_MONITORED_DIRECTORY> 替換為您自己的目錄路徑。
注意:指定實時監控的目錄時,該目錄必須在重新啟動 Wazuh 代理程式之前存在。否則,模組會忽略該目錄,直到下次重新啟動 Wazuh 代理程式時找到它。
將以下設置新增至 Wazuh 代理程式的配置文件:
Linux:/var/ossec/etc/ossec.conf
Windows:C:\Program Files (x86)\ossec-agent\ossec.conf
設置實時監控屬性程式碼範例:
<syscheck>
<directories realtime="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories>
</syscheck>
使用管理員權限在終端機中重新啟動 Wazuh 代理程式以套用任何配置變更:
Linux:systemctl restart wazuh-agent
Windows:Restart-Service -Name wazuh
要修改 FIM 模組掃描的排程,可以配置 Wazuh FIM 模組的 <frequency> 選項,此選項定義了 FIM 掃描的間隔時間,或者也可以使用 <scan_time> 和 <scan_day> 選項設定特定的掃描時間和每週星期幾執行掃描,排程掃描有助於防止在監控頻繁更新的文件(如日誌文件)時出現過多警報。
FIM 模組默認設定是每 12 小時(43200 秒)執行一次掃描。
在以下設定範例中,可以看到如何將 FIM 模組設置為每 15 分鐘(900 秒)執行一次掃描。
將以下設置新增至 Wazuh 代理程式的配置文件:
Linux:/var/ossec/etc/ossec.conf
Windows:C:\Program Files (x86)\ossec-agent\ossec.conf
macOS:/Library/Ossec/etc/ossec.conf
設置程式碼範例:
<syscheck>
<frequency>900</frequency>
</syscheck>
使用管理員權限在終端機中重新啟動 Wazuh 代理程式以套用任何配置變更:
Linux:systemctl restart wazuh-agent
Windows:Restart-Service -Name wazuh
macOS:/Library/Ossec/bin/wazuh-control restart
以下設置範例將顯示如何設置指定目錄的掃描,讓掃描在每週六晚上 10 點進行。
將以下設置新增至 Wazuh 代理程式的配置文件:
Linux:/var/ossec/etc/ossec.conf
Windows:C:\Program Files (x86)\ossec-agent\ossec.conf
macOS:/Library/Ossec/etc/ossec.confxml
設置程式碼範例:
<syscheck>
<scan_time>10pm</scan_time>
<scan_day>saturday</scan_day>
</syscheck>
使用管理員權限重新啟動 Wazuh 代理程式以套用任何配置變更:
Linux:systemctl restart wazuh-agent
Windows:Restart-Service -Name wazuh
macOS:/Library/Ossec/bin/wazuh-control restart
Wazuh 規則是一組以 XML 格式撰寫的條件,用於定義如何解釋日誌數據。這些規則由 Wazuh 管理器使用,以便在日誌消息中檢測特定的模式或行為,並根據規則生成警報或回應,在威脅偵測中扮演重要角色,使系統可以根據預先設定的條件識別潛在的安全事件。
每條規則通常包含如 <rule>、<description>、<group> 和 <field> 等元素。其中:
<description> 元素:提供該規則的目的和功能的清晰說明。
<group> 元素:將規則按其重要性或優先級進行分類,便於管理。
<field> 元素:指定需要檢查的日誌數據欄位,以便進行條件匹配。
每條規則都會分配一個 ID 和一個等級(level),規則的等級決定了當滿足規則條件時所觸發警報的嚴重性。等級範圍從 0(忽略)到 16(嚴重攻擊),每個等級代表不同的安全相關性,等級越高,表示事件的威脅程度越高,應當引起更多關注,而在儀表板中預設是將等級高於12的警報是為高威脅性的
Wazuh 的自訂規則允許用戶根據其獨特的環境、應用程序或安全需求定義特定的條件或模式。雖然 Wazuh 附帶一組涵蓋廣泛安全事件的預設規則,但自訂規則使用戶能夠根據自身需求進行系統調整,增強系統的適用性。
Wazuh 允許用戶:
新增自訂規則。
修改預設規則。
新增自訂規則
注意:請使用 100000 到 120000 之間的 ID 號碼來為自訂規則分配唯一識別碼。
注意:如果僅需對規則進行小幅調整,可在 /var/ossec/etc/rules/local_rules.xml 文件中進行修改。建議在 /var/ossec/etc/rules/ 目錄中創建新規則文件,以便進行較大規模的變更。
在 Wazuh 中,自訂義規則(Rule)可以加強特定事件的偵測能力,在檔案發生異常變動時即時獲取通知。在接下來的這個延伸範例中,我實作配置一個規則來監控指定目錄中大量刪除行為的發生,並透過 Wazuh 儀表板即時獲取警報,以便進行後續防護,我將規則偵測在指定目錄中 60 秒內達到5次以上刪除的行為。
在Wazuh代理的系統上需要先將指定目錄加入實時監控範圍中:
首先使用 sudo nano /var/ossec/etc/ossec.conf 編輯代理上的設定檔
輸入以下語法將指定目錄設為實時監控狀態:
<syscheck>
<directories realtime="yes"><FILEPATH_OF_MONITORED_DIRECTORY></directories>
</syscheck>
終端機中重新啟動 Wazuh 代理程式以套用變更:
Linux:systemctl restart wazuh-agent
這樣設定後指定的目錄<FILEPATH_OF_MONITORED_DIRECTORY>將會維持實時監控狀態,這邊做法和前面實時監控一模一樣~
在Wazuh伺服器的系統上建立自訂義的規則xml文件:
接下來要在Wazuh伺服器上使用 sudo nano /var/ossec/etc/rules/rules_100003.xml 語法建立規則文件並直接編輯。
規則的XML 設置範例:
<group name="syscheck">
<rule id="100003" level="12" frequency="5" timeframe="60">
<if_matched_sid>553</if_matched_sid>
<match><FILEPATH_OF_MONITORED_DIRECTORY></match>
<description>More than 5 deletions detected in <FILEPATH_OF_MONITORED_DIRECTORY> within 60 seconds.</description>
<mitre>
<id>T1070.004</id>
<id>T1485</id>
</mitre>
</rule>
</group>
規則參數說明 :
<group name="syscheck">:
將規則分配到 syscheck 組內,表示此規則屬於系統完整性監控相關的規則集合。
<rule id="100003" level="12" frequency="5" timeframe="60">:
設定規則的 ID 為 100003,警報等級為 12,表示較高的威脅級別。frequency 和 timeframe 表示在 60 秒內若檔案變動次數超過 5 次,即觸發警報。
<if_matched_sid>553</if_matched_sid>:
is_matched_sid是在使用frequency元素時需要 ID (SID) 為 553 時,才啟動這條規則。此參數允許根據之前的事件來進行條件式觸發。
<match><FILEPATH_OF_MONITORED_DIRECTORY> </match>:
指定監控的目錄路徑。將 <FILEPATH_OF_MONITORED_DIRECTORY> 替換為您要監控的實際目錄,以便系統能夠在此路徑下偵測到檔案變動。
<description>:
詳細說明規則的作用,指出若在指定目錄中 60 秒內發生超過 5 次刪除事件,則觸發此警報。
<mitre>:
規則對應到 MITRE ATT&CK 框架的行為ID,包括:T1070.004、T1485。
終端機中重新啟動 Wazuh 管理程式以套用變更:
Linux:systemctl restart wazuh-manager
在Wazuh儀錶板上查看觸發的警報:
接下來我們實測在Wazuh儀表板上是否能看得到觸發的警報。
首先我們回到代理程式的Linux系統對指定監控的資料夾做大量刪除檔案的動作,再回到Wazuh儀表板查看是否有相關的警報。
-- 更詳細的 FIM 配置與功能說明請參考 Wazuh 官方文件。