暴力破解攻擊(Brute Force Attack)是一種常見的資安攻擊方式,攻擊者透過不斷嘗試不同的帳號與密碼組合,試圖取得系統存取權限。
例如,攻擊者可能針對 Linux SSH 服務,在短時間內發送大量登入請求。
10:30:01 Login failed - admin
10:30:05 Login failed - admin
10:30:09 Login failed - admin
10:30:12 Login failed - admin
10:30:15 Login failed - admin
單次登入失敗可能只是使用者輸入錯誤,但如果短時間內連續出現大量失敗紀錄,就可能代表系統正在遭受攻擊。
Wazuh 可以利用規則的 frequency 與 timeframe 參數,分析這類重複發生的事件。
一般的 Wazuh 規則主要針對單筆日誌進行比對,而頻率偵測可以進一步判斷多筆事件之間的關係。
常見設定如下:
| 參數 | 功能 |
|---|---|
| frequency | 設定觸發規則所需的事件次數 |
| timeframe | 設定事件累積的時間範圍(秒) |
| if_matched_sid | 指定需要重複符合的規則 ID |
| same_srcip | 限定來源 IP 必須相同 |
| ignore | 觸發警報後暫時忽略該規則的秒數 |
例如:
<rule id="100102" level="10"
frequency="5" timeframe="60">
<if_matched_sid>100101</if_matched_sid>
<description>
Multiple failed login attempts detected
</description>
</rule>
這條規則代表:當規則 100101 在 60 秒內符合 5 次時,就會觸發等級 10 的安全警報。
透過這種方式,Wazuh 不只能偵測單一異常事件,也能辨識連續性的可疑行為。
接下來延續第 14 天的 custom_app 日誌範例,建立一條偵測連續登入失敗的規則。
sudo nano /var/ossec/etc/rules/local_rules.xml
<rule id="100102" level="10"
frequency="5" timeframe="60">
<if_matched_sid>100101</if_matched_sid>
<description>
Possible brute force attack detected
</description>
</rule>
這條規則的設定如下:
完成規則設定後,可以使用 wazuh-logtest 測試。
sudo /var/ossec/bin/wazuh-logtest
2026-10-18 10:30:01 custom_app: user=admin status=failed
2026-10-18 10:30:02 custom_app: user=admin status=failed
2026-10-18 10:30:03 custom_app: user=admin status=failed
2026-10-18 10:30:04 custom_app: user=admin status=failed
2026-10-18 10:30:05 custom_app: user=admin status=failed
注意:timeframe 依據事件實際進入規則引擎的時間進行統計,因此測試時應在短時間內連續提交日誌,而不只是修改日誌內的時間文字。
3. 查看測試結果
若規則正確觸發,Phase 3 預期會顯示類似以下內容:
**Phase 3: Completed filtering (rules).
id: '100102'
level: '10'
description: 'Possible brute force attack detected'
如果仍然觸發 100101,可以檢查是否在同一次 wazuh-logtest 工作階段中輸入日誌,以及規則是否成功載入。
Wazuh 的測試工具會在同一工作階段中保留事件匹配計數,適合用來測試這類頻率規則。
在真實攻擊情境中,我們通常希望辨識來自同一個 IP 位址的連續登入失敗事件,而不是將所有使用者的登入錯誤都計算在一起。
假設 Decoder 已經能夠解析來源 IP,便可以加入 same_srcip 條件。
<rule id="100103" level="12"
frequency="5" timeframe="60">
<if_matched_sid>100101</if_matched_sid>
<same_srcip />
<description>
Possible brute force attack from same IP
</description>
</rule>
此規則只有在來源 IP 相同,且指定時間內達到設定次數時,才會觸發警報。
例如:
| 來源 IP | 60 秒內失敗次數 | 偵測結果 |
|---|---|---|
| 192.168.1.10 | 2 次 | 未達門檻 |
| 192.168.1.20 | 5 次 | 觸發警報 |
| 192.168.1.30 | 3 次 | 未達門檻 |
以上是假設事件都已經正確解碼、符合基礎規則,且測試期間沒有其他相關事件的簡化示例。
特別注意,same_srcip 需要 Decoder 將來源位址解析為 Wazuh 可識別的 srcip 欄位。如果使用自訂動態欄位(例如 source_ip),則可以考慮使用 <same_field>source_ip</same_field>。
在實際資安監控中,可以根據事件發生的頻率與嚴重程度,設計不同的警報等級。
例如:
| 偵測情境 | 建議警報等級 | 處理方式 |
|---|---|---|
| 單次登入失敗 | Level 5 | 記錄事件 |
| 60 秒內失敗 5 次 | Level 10 | 提高警戒 |
| 同一 IP 短時間重複失敗 | Level 12 | 優先調查來源 |
| 持續異常且伴隨其他攻擊跡象 | Level 14 | 啟動事件應變程序 |
以上為示範性的分級方式,實際環境應依據組織需求與誤報情況調整。
透過不同警報等級的設定,資安人員可以更有效率地辨識需要優先處理的事件。
雖然頻率偵測能夠協助辨識暴力破解攻擊,但仍然存在一些限制。