昨天講完 Wazuh 自己內部的四個元件跟一次容量問題。今天要往前一步:Windows 端的事件是怎麼一路走到 Wazuh 手上的,以及我在這裡卡住的兩個不同原因。
事件要先「被寫下來」,Wazuh 才有東西可以撿
路徑大致是這樣:Windows 把安全相關的活動寫進特定的事件記錄通道(例如 Security、System,或 PowerShell 的操作記錄通道),Wazuh Agent 讀取這些通道,轉送給 Manager 解析、比對規則。
這裡有個前提我一開始沒有放在心上:某個事件會不會出現,取決於 Windows 端有沒有開啟對應的稽核政策。 如果沒開,這個事件從一開始就不會被寫下來,不是 Wazuh 沒收到、也不是規則沒寫好——是這筆記錄從源頭就不存在。這件事聽起來理所當然,但我自己是踩過才真的記住:
「查不到某個事件」不等於「這件事沒發生」,也可能是稽核政策沒開。 這兩種情況在畫面上長得一模一樣,都是「什麼都沒有」,但代表的意義完全不同。
我遇到的狀況:兩種不同的「沒資料」
第一種,稽核政策本身
我想看 PowerShell 的執行內容(也就是 Script Block Logging),這個功能得先在 Windows 端開啟。我用群組原則(GPO)把這個設定推送下去,確認登錄機碼裡對應的值已經被寫成啟用狀態。
下面這張是GPO 管理畫面,可以看到套用範圍設在受監控端點這個群組:
第二種,Wazuh 有沒有在讀那個通道
這是我一開始沒意識到的地方:就算 Windows 端已經正確產生事件,Wazuh Agent 的設定裡如果沒有指定要採集那個通道,一樣什麼都收不到。稽核政策開了,只代表 Windows 願意寫;而Wazuh 的採集設定,才決定它願不願意讀。
這兩種我後來是分開查證的:先用 Windows 內建的稽核政策查詢工具,確認登錄機碼與稽核設定確實生效;再回頭檢查 Wazuh 那邊的採集設定有沒有涵蓋對應通道。這兩件事分開查,才不會在「到底是哪一層沒開」這個問題上瞎猜。
目前我這裡的狀態是:稽核政策那一層已經確認開啟,但 Wazuh 這邊的採集設定還沒有把那個通道正式加進去——也就是說,即使 Windows 已經在寫這些事件,我目前還沒辦法在 Wazuh 上看到它們。這是一個我知道存在、但還沒處理完的缺口,還沒做完。
順便發現的另一個缺口
查證上面這件事的過程中,我也順便檢查了另一項稽核設定(跟服務安裝有關的事件),發現這台主機目前這項稽核是關閉的,而且過去的記錄裡也確實找不到對應的事件。這個缺口目前我先如實記下來,還沒有動手開啟——畢竟每多開一項稽核,就可能多一種噪音來源...
這件事告訴我什麼
事件從「Windows 產生」到「Wazuh 顯示出來」中間至少有兩道關卡,任何一道沒打開,結果看起來都是一樣的空白。之後如果我在 Wazuh 上查不到某個事件,我現在會先問自己兩個問題,而不是直接懷疑規則寫錯:這個事件在 Windows 端有沒有被稽核政策涵蓋? 就算有,Wazuh 的採集設定有沒有涵蓋這個通道?
明天
接下來想合併著講兩件事:Wazuh 的告警長什麼樣子(有哪些欄位),以及等級是怎麼定出來的。這兩個原本我想分兩天講,後來覺得放在一起講比較連貫。
明天見。