iT邦幫忙

2026 iThome 鐵人賽

DAY 18
0
Security

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

Day 18|從 Decoder 到 Rule:SSH 登入失敗如何變成 Wazuh Alert?

  • 分享至 

  • xImage
  •  

昨天我們介紹了 Wazuh 的 Decoder。

當 Ubuntu 產生 SSH 登入失敗紀錄:

Failed password for hacker from 192.168.212.1

Wazuh 可以透過 SSHD Decoder 解析這筆 Log,取得來源 IP、使用者以及事件類型等資訊。

但 Decoder 只負責:

「這筆 Log 是什麼?」

真正決定要不要產生警報的,則是今天的主角:

Wazuh Rule。


1. Rule 是什麼?

Rule 可以簡單理解成 Wazuh 的事件判斷規則。

Decoder 把 Log 解析完成後,Rule Engine 會根據事件內容判斷是否符合特定條件。

整個流程可以想成:

原始 Log
   ↓
Decoder
   ↓
解析事件資訊
   ↓
Rule
   ↓
判斷事件
   ↓
Alert

所以 Decoder 與 Rule 的工作其實不同。

Decoder → 看懂 Log

Rule → 判斷 Log

2. 以 SSH 登入失敗為例

假設 Linux 產生:

Failed password for hacker from 192.168.212.1

首先經過 SSHD Decoder:

SSH Log
   ↓
SSHD Decoder
   ↓
辨識為 SSH Authentication Failed

接著 Wazuh Rule Engine 會拿解析後的事件去比對規則。

如果符合某個 SSH Authentication 相關 Rule,就會產生對應的 Security Alert。

因此我們最後才會在 Dashboard 看到這筆事件。


3. Alert 裡面的 Rule ID 是什麼?

在 Wazuh Dashboard 查看事件時,可以看到:

Rule ID
Rule Level
Description

其中 Rule ID 可以理解成每條規則的識別編號。

例如:

Rule ID:XXXXX

代表這筆事件符合了某一條 Wazuh Rule。

而 Description 則會告訴我們這條規則主要在描述什麼事件。

https://ithelp.ithome.com.tw/upload/images/20261001/201842607PKvAc5cbT.png
所以當 Dashboard 出現 Alert 時,我們可以透過 Rule ID 進一步追查:

到底是哪一條規則讓這個 Alert 被觸發?


4. Rule Level 又代表什麼?

除了 Rule ID 之外,還會看到:

Rule Level

Wazuh 會使用不同的 Level 表示事件的重要程度。

概念上可以理解成:

較低 Level
   ↓
一般或較低風險事件

較高 Level
   ↓
較值得注意的安全事件

因此我們在看 Dashboard 時,不應該只注意:

有沒有 Alert

還需要觀察:

哪條 Rule 被觸發?
Rule Level 是多少?
Description 是什麼?
來源 IP 是誰?
事件發生幾次?

這些資訊放在一起,才能比較完整地理解事件。


5. 一次登入失敗跟多次登入失敗不一樣

這裡就出現一個很重要的問題。

假設:

hacker 密碼輸入錯一次

Wazuh 可以辨識這是一筆 SSH Authentication Failed。

但如果變成:

Failed Login
Failed Login
Failed Login
Failed Login
Failed Login

那麼我們可能希望產生一個更值得注意的警報:

偵測到多次 SSH 登入失敗

這時候 Rule 就不能只判斷:

這是不是 SSH Login Failed?

還需要考慮:

發生幾次?
     +
多久內發生?
     ↓
是否觸發另一條 Rule?

而這正是我後面設定自訂 SSH 偵測規則時碰到的重要概念。


6. 從單一事件到規則觸發

目前整個 SSH 偵測流程已經可以串起來:

Windows SSH Login
        ↓
密碼輸入錯誤
        ↓
Ubuntu Authentication Log
        ↓
Wazuh Agent
        ↓
SSHD Decoder
        ↓
解析 SSH Event
        ↓
Wazuh Rule
        ↓
Security Alert

也就是說,Wazuh 並不是單純「看到 Log 就叫」。

而是經過:

收集 → 解析 → 規則判斷 → 告警

這幾個步驟。


7. 接下來真正重要的問題

現在我們已經知道:

一筆 SSH 登入失敗
        ↓
Decoder
        ↓
Rule
        ↓
Alert

但是我的實驗真正想做到的是:

如果短時間內連續出現多次 SSH 登入失敗,再產生更明顯的警報。

這時候就會遇到兩個非常重要的設定:

frequency
timeframe

例如概念上:

短時間內
   ↓
SSH 登入失敗
SSH 登入失敗
SSH 登入失敗
   ↓
達到指定次數
   ↓
觸發 Rule

這也是下一篇要研究的內容。


今日總結

今天把昨天的 Decoder 再往後推進了一步。

目前我們已經知道:

Log
 ↓
Decoder
 ↓
Rule
 ↓
Alert

其中:

Decoder
→ 負責解析 Log

Rule
→ 負責判斷事件

Alert
→ 呈現最後的安全警報

這樣一來,我們就能理解 Wazuh Dashboard 上的 Alert 並不是憑空產生的。

背後其實有一套完整的 Log 分析與 Rule Matching 流程。


下一篇就要直接回到我的實驗結果。

在 Wazuh Event 中,我可以看到:

frequency = 3
firedtimes = 3

這些數字到底代表什麼?

以及 Wazuh 怎麼從:

單次登入失敗

進一步判斷成:

短時間內多次 SSH 登入失敗

下一篇就來拆解 Wazuh 的事件關聯機制。


上一篇
Day 17|Wazuh 怎麼看懂 SSH Log?認識 Decoder 日誌解析機制
系列文
從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言