威脅行為者會利用密碼猜測技術來取得使用者帳號的存取權。 在密碼噴射攻擊中,威脅者可能會對多個不同帳號使用幾個最常用的密碼。 攻擊者會利用密碼噴射成功入侵帳號,因為許多用戶仍使用預設且弱密碼。
這本手冊幫助你調查 IP 位址被標記為風險或與密碼噴射攻擊有關,或偵測到可疑且無法解釋的行為,例如使用者從陌生地點登入,或收到意外多重驗證 (多重驗證(MFA)) 提示。 本指南針對安全團隊,例如安全作業中心 (SOC) ,以及負責審查、處理/管理及分類警示的IT管理員。 本指南協助快速將警示分類為 TP) (真陽性或FP () 誤報 ,並在TP情況下採取建議措施以修復攻擊並降低安全風險。
使用本指南的預期結果包括:
你已經辨識出與密碼噴灑 IP 位址相關的警示,是惡意的 (TP) 或 FP) 活動 (誤報。
如果 IP 位址一直在執行密碼噴射攻擊,你已經採取了必要的行動。
調查警報
本節包含逐步指引,協助你回應警示並採取建議行動,保護組織免受進一步攻擊。
1. 審查警報
以下是警示佇列中密碼噴射警示的範例:
這表示根據威脅情報來源,可能與暴力破解或密碼噴射嘗試有關的 IP 位址,存在可疑用戶活動。
2. 調查 IP 位址
看看從 IP 衍生的 活動 :
大多是登入失敗嗎?
簽到嘗試之間的間隔看起來可疑嗎? 自動密碼噴射攻擊通常會有固定的間隔。
有沒有成功嘗試過使用者或多個用戶用 多重驗證(MFA )登入? 這些嘗試的存在可能表示該知識產權並非惡意。
有使用舊有協定嗎? 使用像 POP3、IMAP 和 SMTP 等協定,可能暗示有人試圖執行密碼噴射攻擊。 在活動日誌中尋找
Unknown(BAV2ROPC)使用者代理 (裝置類型) ,表示使用了舊有協定。 你可以參考下方的範例,查看活動日誌。 這項活動必須與其他活動進一步相關聯。圖 1: 裝置類型欄位顯示
Unknown(BAV2ROPC)的是 Microsoft Defender 全面偵測回應的使用者代理。檢查匿名代理或 Tor 網路的使用情況。 威脅行為者常利用這些替代代理來隱藏資訊,使其難以被追蹤。 然而,並非所有這些代理的使用都與惡意行為相關聯。 你必須調查其他可疑活動,這些行為可能提供更好的攻擊指標。
IP 位址是來自虛擬私人網路 (VPN) ? VPN 值得信賴嗎? 檢查 IP 是否來自 VPN,並使用 RiskIQ 等工具檢視背後的組織。
檢查同一子網/ISP 的其他 IP。 有時候密碼噴射攻擊會來自同一子網/ISP 內多個不同的 IP。
租戶的 IP 位址是共用的嗎? 查看活動日誌,看看租戶過去 30 天內是否看到過該 IP 位址。
搜尋租戶中是否有其他可疑活動或來自該 IP 的警示。 需要注意的活動範例包括電子郵件刪除、轉寄規則建立,或成功登入後的檔案下載。
使用像 RiskIQ 這類工具來檢查 IP 位址的風險分數。
3. 登入後調查可疑用戶活動
一旦辨識出可疑 IP,你可以查看登入的帳號。 有可能有一群帳號被入侵,並成功用來從該 IP 或其他類似 IP 登入。
過濾所有在警報發生前後的 IP 位址登入嘗試。 登入後再搜尋這些帳號是否有惡意或異常活動。
使用者帳號活動
確認密碼噴灑前帳戶的活動不具可疑性。 例如,檢查是否有基於共同地點或 ISP 的異常活動,帳號是否使用之前沒用過的使用者代理,是否有其他訪客帳號被建立,帳號登入後是否有其他憑證,等等。
警示
檢查使用者在密碼噴灑活動前是否收到其他警示。 這些警示表示使用者帳號可能遭到入侵。 例如無法旅行的警示、來自罕見國家/地區的活動,以及可疑的電子郵件刪除活動等。
事件
檢查警示是否與表示事件的其他警示相關聯。 如果是,請檢查事件是否包含其他確判為真的警示。
進階搜捕查詢
進階狩獵 是一種基於查詢的威脅狩獵工具,讓你能檢查網路中的事件並定位威脅指標。
利用此查詢找出來自惡意 IP 的最高風險分數登入嘗試登入的帳號。 此查詢同時會過濾所有成功登入嘗試與相應的風險分數。
let start_date = now(-7d);
let end_date = now();
let ip_address = ""; // enter here the IP address
AADSignInEventsBeta
| where Timestamp between (start_date .. end_date)
| where IPAddress == ip_address
| where isnotempty(RiskLevelDuringSignIn)
| project Timestamp, IPAddress, AccountObjectId, RiskLevelDuringSignIn, Application, ResourceDisplayName, ErrorCode
| sort by Timestamp asc
| sort by AccountObjectId, RiskLevelDuringSignIn
| partition by AccountObjectId ( top 1 by RiskLevelDuringSignIn ) // remove line to view all successful logins risk scores
利用這個查詢來檢查可疑 IP 是否使用舊有協定來嘗試登入。
let start_date = now(-8h);
let end_date = now();
let ip_address = ""; // enter here the IP address
AADSignInEventsBeta
| where Timestamp between (start_date .. end_date)
| where IPAddress == ip_address
| summarize count() by UserAgent
使用此查詢來檢視過去七天內與可疑 IP 相關的所有警示。
let start_date = now(-7d);
let end_date = now();
let ip_address = ""; // enter here the IP address
let ip_alert_ids = materialize (
AlertEvidence
| where Timestamp between (start_date .. end_date)
| where RemoteIP == ip_address
| project AlertId);
AlertInfo
| where Timestamp between (start_date .. end_date)
| where AlertId in (ip_alert_ids)
使用此查詢以檢視帳戶活動,尋找疑似被入侵帳戶。
let start_date = now(-8h);
let end_date = now();
let ip_address = ""; // enter here the IP address
let compromise_users =
materialize ( AADSignInEventsBeta
| where Timestamp between (start_date .. end_date)
| where IPAddress == ip_address
| where ErrorCode == 0
| distinct AccountObjectId);
CloudAppEvents
| where Timestamp between (start_date .. end_date)
| where AccountObjectId in (compromise_users)
| summarize ActivityCount = count() by AccountObjectId, ActivityType
| extend ActivityPack = pack(ActivityType, ActivityCount)
| summarize AccountActivities = make_bag(ActivityPack) by AccountObjectId
使用此查詢來檢視所有疑似被盜帳號的警示。
let start_date = now(-8h); // change time range
let end_date = now();
let ip_address = ""; // enter here the IP address
let compromise_users =
materialize ( AADSignInEventsBeta
| where Timestamp between (start_date .. end_date)
| where IPAddress == ip_address
| where ErrorCode == 0
| distinct AccountObjectId);
let ip_alert_ids = materialize ( AlertEvidence
| where Timestamp between (start_date .. end_date)
| where AccountObjectId in (compromise_users)
| project AlertId, AccountObjectId);
AlertInfo
| where Timestamp between (start_date .. end_date)
| where AlertId in (ip_alert_ids)
| join kind=innerunique ip_alert_ids on AlertId
| project Timestamp, AccountObjectId, AlertId, Title, Category, Severity, ServiceSource, DetectionSource, AttackTechniques
| sort by AccountObjectId, Timestamp
建議行動
- 封鎖攻擊者的 IP 位址。
- 重設使用者帳號的憑證。
- 撤銷被入侵帳號的存取權。
- 封鎖舊有認證。
- 若可能,要求用戶多重身份驗證(MFA),以提升帳號安全,並透過密碼噴射攻擊讓攻擊者難以入侵帳號。
- 如果需要,封鎖被入侵的使用者帳號登入。
另請參閱
提示
想要深入了解? 請到我們的技術社群中與 Microsoft 安全性社群互動: Microsoft Defender 全面偵測回應技術社群。