iT邦幫忙

0

Day 17|Wazuh 警報優化實作:降低誤報與調整規則等級

  • 分享至 

  • xImage
  •  

一、為什麼需要優化警報?

在使用 Wazuh 監控系統時,並非所有事件都代表真正的資安威脅。例如,使用者輸入錯誤密碼、管理員正常登入,或系統服務重新啟動,都可能產生警報。
如果警報數量過多,管理人員可能無法及時發現真正重要的安全事件,因此需要適當調整規則條件與警報等級。
常見的警報問題包括:

  • 誤報(False Positive):正常行為被判定為可疑事件。
  • 警報疲勞(Alert Fatigue):大量警報導致管理人員忽略重要訊息。
  • 警報等級不適當:低風險事件被設定為高風險警報。
  • 重複警報:相似事件持續產生大量通知。

二、Wazuh 警報等級

Wazuh 使用 0~16 的規則等級表示事件的重要程度,數值越高,通常代表事件越需要關注。

等級 說明
0 忽略事件,不產生一般警報
1~3 低重要性事件
4~6 一般事件與低風險異常
7~9 值得關注的安全事件
10~12 高風險安全事件
13~16 嚴重或高度重要的安全事件

以上為方便理解的概略分類,實際仍應依規則內容與系統環境判斷。

三、修改自訂規則等級

Wazuh 允許管理人員透過自訂規則調整事件的警報等級。
自訂規則通常放在以下位置:

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

假設希望將特定 SSH 登入失敗事件的警報等級設定為 8,可以新增以下示範規則:

<group name="local,sshd,"> <rule id="100017" level="8"> <if_sid>5716</if_sid> <description>SSH authentication failure - adjusted level</description> </rule> </group>

其中:

  • id:自訂規則的識別編號。
  • level:設定警報等級。
  • if_sid:指定此規則所依據的既有規則。
  • description:警報的描述內容。
    此範例是針對符合規則 5716 的事件建立子規則,並非修改所有 SSH 登入失敗事件。

四、透過條件降低不必要的警報

除了調整警報等級,也可以針對特定來源 IP 設定例外條件。
例如,假設內部測試主機的 IP 為 192.168.1.100,希望對符合規則 5716 且來自該 IP 的事件降低警報等級:

<group name="local,sshd,"> <rule id="100018" level="2"> <if_sid>5716</if_sid> <srcip>192.168.1.100</srcip> <description>SSH failure from internal test host</description> </rule> </group>

這樣可以讓符合條件的事件使用較低的警報等級。
不過,不建議直接忽略所有內部 IP 的安全事件,因為內部主機同樣可能遭到入侵。

五、測試自訂規則

修改完成後,可以使用 Wazuh 提供的工具測試規則:

sudo /var/ossec/bin/wazuh-logtest

接著輸入測試日誌:
Oct 18 10:30:00 server sshd[1234]: Failed password for root from 192.168.1.100 port 52222 ssh2
觀察測試結果是否符合預期,包括:

  1. 日誌是否成功解析。
  2. 是否符合指定的規則條件。
  3. 最終警報等級是否正確。
    確認無誤後,可以重新啟動 Wazuh Manager,讓正式監控載入修改後的規則:
sudo systemctl restart wazuh-manager

六、警報優化的注意事項

優化方式 目的 注意事項
調整規則等級 區分事件重要性 避免降低真正高風險事件的等級
設定來源 IP 條件 區分特定來源事件 內部 IP 不代表絕對安全
增加規則條件 提高警報精確度 條件過嚴可能漏掉攻擊
測試自訂規則 確認規則正常運作 應使用正常與異常事件測試
定期檢查警報 持續改善監控品質 需隨系統環境變化調整

警報優化的目的不是單純減少警報數量,而是讓真正重要的資安事件更容易被發現。


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

尚未有邦友留言

立即登入留言