iT邦幫忙

2026 iThome 鐵人賽

DAY 19
0
Security

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

# Day 19|不只看內建警報:開始建立自己的 Wazuh SSH 偵測規則

  • 分享至 

  • xImage
  •  

前幾天已經一路從 SSH 登入失敗,看到 Wazuh 如何經過 Decoder、Rule,最後產生 Alert。

但做到這裡,我不想只停在:

「Wazuh 有偵測到。」

我希望可以自己定義偵測條件。

所以今天開始修改 Wazuh 的 Local Rule。


1. 為什麼要自己寫 Rule?

Wazuh 本身已經提供許多 SSH 相關的偵測規則。

但在實際環境中,不同系統可能會有不同需求。

例如我這次希望做到:

SSH 登入失敗
      ↓
短時間重複發生
      ↓
符合我的條件
      ↓
產生自訂 Alert

這樣後面如果要接 Active Response,也可以直接指定自己的 Rule。


2. Local Rule 放在哪裡?

Wazuh 自訂規則主要可以放在:

/var/ossec/etc/rules/local_rules.xml

因此先開啟檔案:

sudo nano /var/ossec/etc/rules/local_rules.xml

這裡的重點是:

不直接修改 Wazuh 原本的 Ruleset,而是另外建立自己的 Local Rule。

這樣後續管理也比較方便。


3. 我的 SSH 偵測邏輯

這次我要做的不是重新解析 SSH Log。

前面的 Decoder 已經可以辨識 SSH 事件,所以我要利用既有的事件,再加入自己的判斷條件。

概念如下:

SSHD Log
   ↓
Wazuh 既有 Decoder / Rule
   ↓
SSH 登入失敗
   ↓
Local Rule
   ↓
判斷是否符合我的條件
   ↓
Custom Alert

也就是直接站在 Wazuh原本的偵測能力上,再往上增加自己的規則。


4. 加入多次登入失敗條件

我希望的效果是:

一次登入失敗
→ 保留原本事件

多次登入失敗
→ 觸發我的自訂警報

因此自訂 Rule 會需要考慮事件發生次數與時間範圍。

例如:

frequency="3"
timeframe="30"

概念上就是:

30 秒內
   ↓
符合條件的 SSH 事件出現多次
   ↓
觸發自訂 Rule

這也是為什麼前面測試時,我會從 Windows 重複輸入錯誤密碼。

不是單純一直測試 SSH,而是要確認:

我的規則到底有沒有真的被觸發。


5. 修改完不能直接算成功

把 Rule 寫進:

local_rules.xml

並不代表工作已經完成。

接下來還要確認:

XML 格式有沒有錯
        ↓
Wazuh 能不能載入 Rule
        ↓
SSH 事件有沒有符合條件
        ↓
Dashboard 有沒有出現自訂 Alert

只要其中一個環節有問題,就可能出現:

明明有 SSH 登入失敗
但是自訂 Alert 沒出現

所以今天先完成 Rule 的建立。

真正的驗證留到下一篇。


今日總結

今天開始從「使用 Wazuh 內建偵測」走向「自己建立偵測邏輯」。

目前流程變成:

SSH Log
   ↓
Decoder
   ↓
既有 Rule
   ↓
Local Rule
   ↓
Custom Alert

這也是後面 Active Response 很重要的準備。

因為如果我要讓系統自動封鎖攻擊來源,就必須先明確知道:

到底是哪一條 Rule 被觸發時,才要執行自動回應。


Rule 100002 實戰:我的 SSH 自訂警報有成功嗎?

下一篇直接進行驗證。

我會重新從 Windows 嘗試 SSH 登入,並故意輸入錯誤密碼,確認:

Rule ID:100002

是否真的成功出現在 Wazuh Dashboard。

如果成功,就代表自己的 SSH 偵測規則正式完成。


上一篇
Day 18|從 Decoder 到 Rule:SSH 登入失敗如何變成 Wazuh Alert?
系列文
從零打造 Wazuh 自動化防禦與威脅狩獵戰情中心 共 19 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言