iT邦幫忙

1

Day 16|Wazuh Active Response 實作:自動阻擋可疑 IP

  • 分享至 

  • xImage
  •  

一、什麼是 Active Response?

Active Response 是 Wazuh 提供的自動化安全回應功能,可以根據規則觸發的警報,自動執行指定腳本或系統指令。
例如,當 Wazuh 偵測到某個 IP 在短時間內多次嘗試登入失敗,就可以透過防火牆暫時阻擋該 IP,減少持續遭受攻擊的風險。
常見的 Active Response 功能如下:

回應方式 功能說明
阻擋 IP 封鎖可疑來源的網路連線
停用帳號 暫時停用具有異常行為的使用者帳號
執行自訂腳本 根據事件執行指定的處理程序
重新啟動服務 在特定條件下重新啟動服務
傳送通知 透過整合腳本將事件通知管理員

Wazuh 提供部分內建回應腳本,也支援管理員自行撰寫腳本,以符合不同環境的資安需求。

二、Active Response 的運作流程

Active Response 的主要運作流程如下:

系統產生安全日誌
        ↓
Wazuh Agent 收集日誌
        ↓
Wazuh Manager 分析日誌
        ↓
Decoder 解析日誌內容
        ↓
Rules 判斷是否符合攻擊條件
        ↓
觸發安全警報
        ↓
Active Response 執行防護措施
        ↓
阻擋可疑 IP 或執行指定指令

其中,Rules 負責判斷事件是否符合條件,而 Active Response 則負責執行對應的處理動作。
兩者搭配使用,可以讓 Wazuh 從單純的監控工具,進一步具備自動化事件回應能力。

三、設定 Active Response

接下來以 Linux 環境為例,示範如何利用 Active Response 自動封鎖可疑 IP。
本次使用 Wazuh 內建的 firewall-drop 腳本,並以 Wazuh 內建 SSH 暴力破解偵測規則 5763 作為觸發條件。

  1. 開啟設定檔
    在 Wazuh Server 執行:
sudo nano /var/ossec/etc/ossec.conf

這是 Wazuh Manager 的主要設定檔,用來管理日誌收集、規則處理與 Active Response 等功能。
建議修改前先備份:

sudo cp /var/ossec/etc/ossec.conf \
/var/ossec/etc/ossec.conf.bak
  1. 確認回應指令設定
    在現有的 <ossec_config> 區塊中,確認是否存在以下設定:
<command>
  <name>firewall-drop</name>
  <executable>firewall-drop</executable>
  <timeout_allowed>yes</timeout_allowed>
</command>

各項參數功能如下:

參數 功能
name 設定回應指令名稱
executable 指定執行的腳本
timeout_allowed 是否允許逾時後撤銷回應動作

firewall-drop 是 Wazuh 提供的內建腳本,主要透過 Linux 的 iptables 防火牆封鎖指定 IP。
如果原本的設定檔已經存在相同的 區塊,就不需要重複新增。
3. 新增 Active Response 設定
接著,在 <ossec_config> 區塊中新增:

<active-response>
  <disabled>no</disabled>
  <command>firewall-drop</command>
  <location>local</location>
  <rules_id>5763</rules_id>
  <timeout>180</timeout>
</active-response>

這項設定代表,當 Wazuh 偵測到符合規則 5763 的 SSH 暴力破解事件時,會在產生警報的受監控端點上執行 firewall-drop,將攻擊來源 IP 暫時封鎖 180 秒。
相關參數說明如下:

參數 設定值 功能
disabled no 啟用 Active Response
command firewall-drop 指定封鎖 IP 的腳本
location local 在觸發警報的端點執行
rules_id 5763 指定 SSH 暴力破解偵測規則
timeout 180 設定封鎖時間為 180 秒

其中,location 可以根據需求調整執行位置,例如在 Wazuh Server 或指定 Agent 上執行。
本次使用 local,讓防護動作直接在受監控的 Linux 系統上執行。

四、套用 Active Response 設定

完成設定後,需要重新啟動 Wazuh Manager。

sudo systemctl restart wazuh-manager

接著確認服務狀態:

sudo systemctl status wazuh-manager

如果服務正常啟動,就可以進一步測試 Active Response。
另外,也可以確認受監控 Linux 主機是否具有對應的回應腳本:

ls /var/ossec/active-response/bin/

由於 firewall-drop 依賴 iptables,測試前也應確認端點具有必要的防火牆工具及執行權限。

五、測試自動封鎖功能

本次測試的目標,是確認當 Wazuh 偵測到 SSH 暴力破解事件後,能否自動封鎖攻擊來源 IP。
建議在隔離的虛擬機或授權測試環境進行,避免影響正式系統。

  1. 產生測試事件
    在另一台授權測試主機上,對實驗用 Linux SSH 服務進行多次錯誤密碼登入,觀察是否達到 Wazuh 內建規則的觸發條件。
  2. 查看 Active Response 日誌
    在受監控 Linux 主機執行:
sudo tail -f /var/ossec/logs/active-responses.log

如果 Active Response 成功執行,就能在日誌中觀察到相關回應紀錄。
3. 檢查防火牆規則
可以透過以下指令查看 iptables 規則:

sudo iptables -L -n

若防護動作成功,應能在對應規則中看到被封鎖的來源 IP。
當設定的 180 秒結束後,支援逾時復原的腳本會撤銷先前的封鎖動作。
需要注意,wazuh-logtest 主要用於測試 Decoder 與 Rules,不會直接執行實際的 Active Response 封鎖動作。因此,本次必須透過真實收集的測試日誌來驗證功能。

六、Active Response 的優點與限制

雖然 Active Response 可以提升事件處理效率,但在實際使用時仍需要考慮誤判與系統安全性。

項目 說明
自動化處理 減少管理員手動處理事件的時間
即時防護 偵測到符合條件的事件後執行防護
彈性設定 可依照規則、警報等級設定回應方式
誤判風險 正常使用者也可能因異常操作而被阻擋
系統影響 錯誤設定可能導致合法連線遭到封鎖

因此,在正式環境中,建議先確認偵測規則的準確性,再逐步啟用自動封鎖功能。
也可以透過 timeout 設定暫時性封鎖,降低誤判造成的長期影響。

七、Active Response 與傳統警報的差異

透過前幾天的規則設定,Wazuh 已經能夠偵測異常事件並產生警報。
加入 Active Response 後,系統便能進一步執行自動化防護措施。

比較項目 傳統警報偵測 Active Response
事件偵測 支援 搭配 Rules 觸發
產生警報 支援 依據警報執行動作
自動阻擋 IP 不支援 支援
執行自訂腳本 不支援 支援
人工介入需求 通常較高 可減少部分人工操作

透過 Rules 與 Active Response 的整合,Wazuh 不僅能夠協助管理員發現資安事件,也能在符合指定條件時,自動採取初步的防護行動。


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

尚未有邦友留言

立即登入留言