共用方式為


與密碼噴水攻擊相關的可疑IP位址警示分類

適用於:

  • Microsoft Defender XDR

威脅執行者會使用密碼猜測技術來取得用戶帳戶的存取權。 在密碼噴射攻擊中,威脅執行者可能會對許多不同的帳戶使用幾個最常用的密碼。 攻擊者使用密碼噴射成功入侵帳戶,因為許多使用者仍然使用預設和弱式密碼。

此劇本可協助您調查 IP 位址已標示為有風險或與密碼噴水攻擊相關聯的實例,或偵測到可疑的不明活動,例如使用者從不熟悉的位置登入,或使用者 (MFA) 提示取得未預期的多重要素驗證。 本指南適用於安全性作業中心 (SOC) ,以及檢閱、處理/管理及分類警示的 IT 系統管理員等安全性小組。 本指南可協助您快速將警示分類為 真 (TP) 或誤判 (FP) ,並在 TP 的情況下採取建議的動作來補救攻擊並降低安全性風險。

使用本指南的預期結果如下:

  • 您已將與密碼噴射IP位址相關聯的警示識別為惡意 (TP) 或 FP) 活動 (誤判。

  • 如果IP位址已執行密碼噴射攻擊,您已採取必要的動作。

調查步驟

本節包含回應警示的逐步指引,並採取建議的動作來保護您的組織免於遭受進一步的攻擊。

1.檢閱警示

以下是警示佇列中密碼噴射警示的範例:

Microsoft Defender 365 警示的螢幕快照。

這表示有可疑的用戶活動源自可能與威脅情報來源的暴力密碼破解或密碼噴水嘗試相關聯的IP位址。

2.調查IP位址

  • 檢視來源自IP 的活動

    • 登入嘗試大多失敗嗎?

    • 嘗試登入之間的間隔看起來可疑嗎? 自動密碼噴射攻擊通常會有嘗試之間的一般時間間隔。

    • 是否有使用者/數個使用者使用 MFA 提示登入的成功嘗試? 這些嘗試的存在可能表示 IP 不是惡意的。

    • 是否使用舊版通訊協定? 使用 POP3、IMAP 和 SMTP 等通訊協定可能表示嘗試執行密碼噴水攻擊。 Unknown(BAV2ROPC)在使用者代理程式中尋找 (活動記錄中) 裝置類型表示使用舊版通訊協定。 查看活動記錄時,您可以參考下列範例。 此活動必須進一步與其他活動相互關聯。

      Microsoft Defender 365 介面的螢幕快照,其中顯示 [裝置類型]。

      圖 1: [裝置類型] 欄位會顯示 Unknown(BAV2ROPC) Microsoft Defender 全面偵測回應 中的使用者代理程式。

    • 檢查匿名 Proxy 或 Tor 網路的使用。 威脅執行者通常會使用這些替代 Proxy 來隱藏其資訊,使其難以追蹤。 不過,並非所有使用上述 Proxy 都與惡意活動相互關聯。 您必須調查其他可能提供較佳攻擊指標的可疑活動。

    • IP 位址是否來自虛擬專用網 (VPN) ? VPN 是否值得信任? 檢查IP是否源自 VPN,並使用 RiskIQ 之類的工具來檢閱其背後的組織

    • 檢查具有相同子網/ISP 的其他IP。 密碼噴射攻擊有時源自相同子網/ISP 內的許多不同IP。

  • 租使用者的IP位址是否通用? 檢查活動記錄,以查看租使用者在過去 30 天內是否已看到 IP 位址。

  • 搜尋 租用戶中來自IP的其他可疑活動或警示。 要尋找的活動範例可能包括電子郵件刪除、轉寄規則建立,或成功嘗試登入之後的檔案下載。

  • 使用 RiskIQ 之類的工具來檢查 IP 位址的風險分數

3.在登入後調查可疑的用戶活動

一旦辨識出可疑的IP,您就可以檢閱已登入的帳戶。 帳戶群組可能會遭到入侵,並成功用來從IP或其他類似的IP登入。

篩選所有成功嘗試從IP位址登入,以及在警示發生后立即登入。 然後在登入之後,在這類帳戶中搜尋惡意或不尋常的活動。

  • 用戶帳戶活動

    驗證帳戶中密碼噴水活動之前的活動不可疑。 例如,檢查是否有以一般位置或 ISP 為基礎的異常活動,如果帳戶使用之前未使用的使用者代理程式,如果已建立任何其他來賓帳戶,則在帳戶從惡意 IP 登入之後建立任何其他認證等等。

  • 警示

    檢查使用者是否在密碼噴水活動之前收到其他警示。 具有這些警示表示用戶帳戶可能遭到入侵。 範例包括不可能的旅遊警示、來自不常使用國家/地區的活動,以及可疑的電子郵件刪除活動等等。

  • 事件

    檢查警示是否與表示事件的其他警示相關聯。 如果是,請檢查事件是否包含其他確判為真的警示。

進階搜捕查詢

進階搜捕 是以查詢為基礎的威脅搜捕工具,可讓您檢查網路中的事件並找出威脅指標。

使用此查詢來尋找嘗試以來自惡意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
  1. 封鎖攻擊者的IP位址。
  2. 重設用戶帳戶的認證。
  3. 撤銷遭入侵帳戶的存取令牌。
  4. 封鎖舊版驗證。
  5. 盡可能要求使用者使用 MFA增強帳戶安全 性,並讓攻擊者難以遭受密碼噴射攻擊來入侵帳戶。
  6. 視需要封鎖遭入侵的用戶帳戶登入。

另請參閱

提示

想要深入了解? Engage 技術社群中的 Microsoft 安全性社群:Microsoft Defender 全面偵測回應 技術社群。