iT邦幫忙

2

Day 10|第一次看懂 Wazuh Dashboard:安全事件與日誌分析

  • 分享至 

  • xImage
  •  

一、Wazuh Dashboard 是什麼?

Wazuh Dashboard 是 Wazuh 提供的圖形化管理介面,可以用來查看、搜尋與分析由各個 Agent 收集回來的安全資料。
如果沒有 Dashboard,我們可能需要直接查看大量的 Log 檔案;有了 Dashboard,就能夠透過圖表、搜尋條件與篩選器快速找到重要事件。
Wazuh Dashboard 中可以查看的資訊很多,例如:

功能 用途
Agents 查看目前受監控的裝置與連線狀態
Threat Hunting 搜尋與分析各種安全事件
Vulnerability Detection 查看系統是否存在已知漏洞
MITRE ATT&CK 將偵測到的行為對應到攻擊技術
File Integrity Monitoring 監控重要檔案是否被修改
Configuration Assessment 檢查系統設定是否符合安全基準

今天主要會使用 Agents 與 Threat Hunting。


二、先確認 Agent 狀態

登入 Wazuh Dashboard 後,可以先查看目前已經加入 Wazuh Server 的 Agent。
進入:
Agents management → Summary
可以看到目前受到 Wazuh 監控的裝置。
正常情況下,前幾天安裝完成的 Agent 應該會顯示為:
Active
這表示:

Agent 正常執行
      ↓
與 Wazuh Server 保持連線
      ↓
持續收集系統資料
      ↓
將資料傳送到 Server

如果顯示為 Disconnected,則代表 Agent 曾經註冊成功,但是目前沒有與 Server 保持正常連線。
因此在進行事件分析之前,先確認 Agent 為 Active 是很重要的一個步驟。


三、進入 Threat Hunting

確認 Agent 正常之後,就可以開始查看 Wazuh 收集到的事件。
在 Dashboard 左側選單找到:
Threat intelligence → Threat Hunting
Threat Hunting 可以理解成 Wazuh 中用來「搜尋安全事件」的重要功能。
進入之後通常可以看到大量事件資料,例如:

  • 使用者登入
  • SSH 登入
  • sudo 指令
  • 系統服務啟動或停止
  • 驗證失敗
  • 系統錯誤
  • 檔案變動
  • 防火牆事件

實際出現哪些事件,會依照 Agent 使用的作業系統以及目前的操作行為而有所不同。
如果使用 Linux Agent,即使目前沒有進行攻擊測試,通常也可以看到許多正常的系統活動。


四、一筆 Wazuh Event 裡面有什麼?

點開其中一筆事件後,可以看到非常多欄位。
第一次看到可能會覺得有點複雜,但目前先認識幾個重要欄位即可。

欄位 說明
timestamp 事件發生時間
agent.name 產生事件的 Agent
agent.id Agent 編號
rule.id Wazuh 規則編號
rule.level 事件嚴重程度
rule.description 規則描述
decoder.name 負責解析 Log 的 Decoder
full_log 原始日誌內容

例如可能看到:

rule.description:
sshd: authentication failed.

代表 Wazuh 偵測到一次 SSH 驗證失敗事件。
另一筆可能是:

PAM: Login session opened.

代表系統建立了一個登入 Session。
這些描述讓管理者不需要直接閱讀所有原始 Linux Log,也能快速了解系統發生了什麼事情。


五、原始 Log 怎麼變成 Wazuh Alert?

這也是 Wazuh 很核心的一個概念。
Agent 本身會從系統中收集各種 Log,例如 Linux 的:

/var/log/auth.log

可能出現:

Failed password for invalid user admin from 192.168.1.100 port 52431 ssh2

對 Linux 管理者來說可能很好理解,但是如果每天有數萬筆 Log,就很難全部人工閱讀。
因此 Wazuh 會經過幾個處理步驟:

Linux 系統
      ↓
產生原始 Log
      ↓
Wazuh Agent 收集
      ↓
傳送至 Wazuh Server
      ↓
Decoder 解析 Log
      ↓
Rule 規則比對
      ↓
判斷事件類型與 Level
      ↓
產生 Alert
      ↓
Wazuh Dashboard 顯示

Decoder

Decoder 的工作主要是:
「看懂 Log 的格式。」
例如從:

Failed password for root from 192.168.1.100

解析出:

使用者:root
來源 IP:192.168.1.100
事件:登入失敗

六、Rule 又是什麼?

Decoder 負責解析 Log,而 Rule 則負責判斷這筆 Log 有沒有安全上的意義。
例如:

Failed password

Wazuh 的 Rule 可能會判斷這是一筆:

SSH authentication failed

並給予對應的 Rule ID 與 Level。
Wazuh 的 Rule 通常包含:

Rule ID
Rule Level
Description
Group
Condition

因此可以簡單理解成:

Decoder
「這筆 Log 在說什麼?」
Rule
「這個行為是否值得注意?」

這兩個機制搭配之後,Wazuh 才能把大量原始日誌轉換成比較容易分析的安全資訊。


七、認識 Rule Level

每一條 Wazuh Rule 都會有一個 Level,用來表示事件的安全重要程度。
Wazuh Rule Level 的範圍為:

0~16

數字越高,通常代表事件的安全重要性越高。
可以先簡化理解為:

Level 大致意義
0 忽略事件
1~2 非常低優先度的系統事件
3~4 一般系統事件或低優先度錯誤
5~7 值得注意的事件
8~11 較高風險的安全事件
12~15 高嚴重度事件
16 最高嚴重度

例如:

正常登入

與:

短時間大量 SSH 登入失敗

在安全意義上明顯不同,因此 Wazuh 可以透過 Rule Level 幫助管理者決定哪些事件應該優先處理。
不過要特別注意:
Level 高並不等於系統一定已經被入侵。
它代表的是這個事件依照 Wazuh 規則判斷具有較高的安全重要性,仍然需要搭配其他資訊進一步分析。


八、為什麼有些低 Level 的事件看不到?

Wazuh 並不是把所有事件都當成 Alert。
在預設設定中,Wazuh 產生並儲存的 Alert 門檻為:

Level 3

也就是通常只有符合 Level 3 以上規則的事件,才會作為 Alert 儲存。
因此有時候明明系統產生了某個 Log,卻沒有在安全事件中看到它,原因可能就是該事件沒有達到 Alert 的門檻。
這也是避免大量沒有安全意義的系統訊息塞滿 Dashboard 的方法之一。


九、實際查看一筆事件

接著可以從 Threat Hunting 中隨便選擇一筆事件。
例如找到:

sshd: authentication failed.

展開之後,可以觀察:

agent.name

確認是哪一台電腦產生事件。
再看:

rule.id

查看觸發的是哪一條 Wazuh Rule。
接著查看:

rule.level

了解事件的嚴重程度。
最後可以查看:

rule.description

快速理解事件內容。
因此我們可以把一筆 Alert 理解成:

哪一台電腦
        ↓
什麼時間
        ↓
發生什麼行為
        ↓
觸發哪一條 Rule
        ↓
嚴重程度多少

這幾項資訊也是後續進行事件調查時最基本的資料。


十、使用搜尋與篩選功能

當事件數量開始增加之後,不可能一筆一筆查看,因此搜尋與篩選就非常重要。
例如今天只想查看某一台 Agent 的事件,就可以使用 Agent 相關欄位進行篩選。
如果想尋找 SSH 事件,也可以搜尋:

ssh

或查看相關的 Rule Description。
例如:

authentication failed

就可以更快找到驗證失敗相關事件。
之後當我們開始進行真正的攻擊模擬時,就可以利用這種方式快速找出攻擊所產生的 Alert。


十一、從今天開始進入「真正的監控」

Endpoint
   ↓
Wazuh Agent
   ↓
Log Collection
   ↓
Wazuh Server
   ↓
Decoder
   ↓
Rule
   ↓
Alert
   ↓
Wazuh Indexer
   ↓
Wazuh Dashboard
   ↓
安全事件分析

前面的環境建置其實都是為了最後這一步:
讓我們能夠從大量系統 Log 中找出真正值得注意的安全事件。
接下來就可以進一步製造一些比較明顯的安全行為,例如登入失敗或 SSH 異常,觀察 Wazuh 是否能夠成功偵測並產生 Alert。


圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言