iT邦幫忙

0

Day 15|Wazuh 進階規則實作:偵測暴力破解攻擊(Brute Force)

  • 分享至 

  • xImage
  •  

一、什麼是暴力破解攻擊?

暴力破解攻擊(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 頻率偵測機制

一般的 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 日誌範例,建立一條偵測連續登入失敗的規則。

  1. 開啟自訂規則檔案
    在 Wazuh Server 執行:
sudo nano /var/ossec/etc/rules/local_rules.xml
  1. 新增頻率偵測規則
    保留第 14 天建立的 100101 規則,並在相同的 區塊內新增:
<rule id="100102" level="10"
      frequency="5" timeframe="60">

  <if_matched_sid>100101</if_matched_sid>

  <description>
    Possible brute force attack detected
  </description>

</rule>

這條規則的設定如下:

  • Rule ID: 100102
  • 警報等級: 10
  • 偵測次數: 5 次
  • 時間範圍: 60 秒
  • 偵測條件: 連續符合登入失敗規則
    需要注意的是,這個基礎版本會統計同一 Agent 上符合條件的事件,不一定來自同一個攻擊者。若要準確辨識單一來源 IP 的暴力破解行為,還需要進一步設定來源 IP 比對條件。

四、測試暴力破解偵測

完成規則設定後,可以使用 wazuh-logtest 測試。

  1. 啟動測試工具
sudo /var/ossec/bin/wazuh-logtest
  1. 模擬連續登入失敗
    在同一次測試工作階段中,於 60 秒內連續輸入以下日誌,每行輸入後按 Enter:
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 比對條件

在真實攻擊情境中,我們通常希望辨識來自同一個 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 啟動事件應變程序

以上為示範性的分級方式,實際環境應依據組織需求與誤報情況調整。
透過不同警報等級的設定,資安人員可以更有效率地辨識需要優先處理的事件。

七、實際環境中的注意事項

雖然頻率偵測能夠協助辨識暴力破解攻擊,但仍然存在一些限制。

  1. 誤報問題
    使用者忘記密碼、多次輸入錯誤,也可能達到設定的警報門檻。因此,需要根據實際環境調整觸發次數。
  2. 分散式攻擊
    攻擊者可能透過不同 IP 發起登入嘗試,使得單一 IP 的失敗次數低於警報門檻。
  3. 日誌收集完整性
    若 Wazuh Agent 未正確收集登入日誌,即使規則設定正確,也無法有效偵測攻擊。
  4. 警報不等於自動阻擋
    頻率規則主要負責偵測與產生警報。如果希望 Wazuh 自動封鎖可疑來源,還需要搭配 Active Response 等功能。

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

尚未有邦友留言

立即登入留言