昨天介紹了 MITRE ATT&CK,以及接下來要測試的:
T1110 - Brute Force
但 Wazuh 並不是憑空知道有人正在嘗試 SSH 登入。
在 Wazuh 能夠產生警報之前,首先要有一個很重要的東西:
Log(日誌)
所以今天先不研究 Wazuh Rule,而是從最源頭開始,看看一次 SSH 登入失敗後,Linux 到底留下了什麼。
首先從 Windows PowerShell 連線到 Ubuntu:
ssh hacker@192.168.212.128
接著故意輸入錯誤密碼。
可以看到:
hacker@192.168.212.128's password:
Permission denied, please try again.
連續輸入錯誤密碼後,最後會出現:
Permission denied (publickey,password).

對 Windows 端來說,我們只看到:
Permission denied
但 Ubuntu 端其實已經留下了這次登入失敗的相關紀錄。
Ubuntu 上負責 SSH 連線的服務是:
sshd
當 Windows 發起:
Windows
↓
SSH Connection
↓
Ubuntu
實際上是 Ubuntu 上的 sshd 負責處理這次連線與認證。
如果帳號或密碼驗證失敗,系統就會留下相關的 Authentication Log。
因此整個流程可以理解成:
Windows 發起 SSH
↓
Ubuntu sshd
↓
進行身分驗證
↓
密碼錯誤
↓
Authentication Failed
↓
產生 Log
Linux 的登入驗證還會接觸到另一個常見名詞:
PAM
也就是:
Pluggable Authentication Modules
可以把 PAM 簡單理解成 Linux 的一套認證框架。
SSH、sudo、系統登入等服務,都可以透過 PAM 進行身分驗證與相關處理。
因此 SSH 登入的流程可以簡化成:
SSH Client
↓
sshd
↓
PAM / Authentication
↓
成功 or 失敗
↓
產生認證紀錄
這些紀錄就是後面 Wazuh 判斷登入行為的重要資料來源。
在 Ubuntu 上,可以從系統日誌查看 SSH 相關事件。
例如使用:
sudo journalctl -u ssh
也可以針對 sshd 相關訊息進一步查看。
如果系統有使用 rsyslog 將認證事件寫入:
/var/log/auth.log
也可以使用:
sudo tail -f /var/log/auth.log
接著再從 Windows 輸入錯誤 SSH 密碼,就能即時觀察新的登入失敗紀錄。
可能會看到類似:
Failed password for hacker from 192.168.212.1 port XXXXX ssh2
這一行其實已經包含很多重要資訊:
Failed password
↓
登入失敗
hacker
↓
嘗試登入的帳號
192.168.212.1
↓
來源 IP
sshd
↓
產生事件的服務
這些資訊後面都會成為 Wazuh 分析事件的重要線索。
這時候就可以回到前面 Day 04 遇到的問題。
當時 Ubuntu 24.04 環境中,我遇到:
找不到 /var/log/auth.log
最後才進一步研究 systemd-journald 與 rsyslog 的日誌機制。
現在就可以看出這件事情為什麼重要。
如果 Wazuh 要分析 SSH 登入失敗:
SSH Attack
↓
Linux Authentication Event
↓
Wazuh Agent
↓
Decoder
↓
Rule
↓
Alert
那麼最前面的 Log Source 就必須先確認正常。
如果連 SSH 登入失敗的紀錄都沒有取得,後面的偵測自然也無法正常進行。
現在我們已經可以看到:
Failed password for hacker
但有一個問題。
正常使用者也可能只是:
「密碼打錯一次。」
所以:
1 次 Failed Password
並不能直接代表:
Brute Force Attack
真正值得注意的情況比較像:
Failed Password
Failed Password
Failed Password
Failed Password
Failed Password
↓
短時間大量出現
↓
可能存在 Brute Force 行為
這就是接下來要測試的重點。
今天我們從 SSH 登入失敗一路追到 Linux Authentication Log。
整個資料來源可以整理成:
Windows
↓
SSH Login
↓
Ubuntu sshd
↓
Authentication / PAM
↓
登入失敗
↓
Authentication Log
↓
Wazuh Agent
這也讓我更清楚:
Wazuh 的偵測能力,最前面其實建立在系統產生的 Log 上。
沒有 Log,就沒有後面的分析。
今天我們只觀察一次 SSH 登入失敗。
下一篇就要把次數提高。
從 Windows 攻擊端連續對:
hacker@192.168.212.128
進行多次登入嘗試。
看看原本只是普通的:
Permission denied
在短時間大量發生之後,會如何變成 Wazuh 眼中的可疑行為。