共用方式為


密碼噴洒調查

本文提供識別和調查組織內密碼噴洒攻擊的指引,並採取必要的補救動作來保護資訊,並將進一步的風險降到最低。

本文包含下列章節:

  • 必要條件: 涵蓋開始調查之前,您需要完成的特定需求。 例如,應該開啟的記錄、所需的角色和許可權等等。
  • 工作流程: 顯示您應該遵循的邏輯流程,以執行此調查。
  • 檢查清單: 包含流程圖中每個步驟的工作清單。 此檢查清單在高度管制的環境中很有説明,以驗證您所做的或只是作為您自己的品質網關。
  • 調查步驟: 包含此特定調查的詳細逐步指引。
  • 復原: 包含如何從密碼噴洒攻擊中復原/減輕的高階步驟。
  • 參考: 包含更多閱讀和參考數據。

必要條件

開始調查之前,請確定您已完成記錄和警示和其他系統需求的設定。

如需Microsoft Entra 監視,請遵循我們的 Microsoft Entra SecOps 指南中的建議和指引

設定 AD FS 記錄

ADFS 2016 上的事件記錄

根據預設,Windows Server 2016 中的Microsoft Active Directory 同盟服務 (ADFS) 已啟用基本層級的稽核。 透過基本稽核,系統管理員可以看到單一要求的五個或更少事件。 將記錄設定為最高層級,並將AD FS (& security) 記錄傳送至 SIEM,以與 AD 驗證和Microsoft Entra ID 相互關聯。

若要檢視目前的稽核層級,請使用下列 PowerShell 命令:

Get-AdfsProperties

Get-AdfsProperties PowerShell 命令的螢幕快照範例。

下表列出可用的稽核層級。

稽核層級 PowerShell 語法 描述
None Set-AdfsProperties -AuditLevel None 稽核已停用,且不會記錄任何事件
基本 (預設值) Set-AdfsProperties -AuditLevel Basic 單一要求不會記錄超過五個事件
詳細資訊 Set-AdfsProperties -AuditLevel Verbose 記錄所有事件。 此層級會記錄每個要求的大量資訊。

若要提高或降低稽核層級,請使用下列 PowerShell 命令:

Set-AdfsProperties -AuditLevel <None | Basic | Verbose>

設定 ADFS 2012 R2/2016/2019 安全性記錄

  1. 選取 [開始],流覽至 [程式>管理工具],然後選取 [本機安全策略]。

  2. 流覽至 [ 安全性設定\本機原則\用戶版權管理 ] 資料夾,然後按兩下 [ 產生安全性稽核]。

  3. 在 [ 本機安全性設定 ] 索引標籤上,確認已列出 ADFS 服務帳戶。 如果不存在,請選取 [新增使用者群組 ],並將其新增至列表,然後選取 [ 確定]。

  4. 若要啟用稽核,請使用提高的許可權開啟命令提示字元,然後執行下列命令:

    auditpol.exe /set /subcategory:"Application Generated" /failure:enable /success:enable
    
  5. 關閉 [本機安全性原則]

  6. 接下來,開啟 ADFS 管理嵌入式管理單元,選取 [開始],流覽至 [程式 > 管理工具],然後選取 [ADFS 管理]。

  7. 在 [動作] 窗格中,選取 [編輯同盟服務屬性]

  8. 在 [同盟服務屬性] 對話方塊中,選取 [事件] 索引標籤。

  9. 選取 [成功稽核] 和 [失敗稽核] 核取方塊。

  10. 選取 [ 確定 ] 以完成並儲存組態。

安裝 Microsoft Entra Connect Health for ADFS

Microsoft Entra Connect Health for ADFS 代理程式可讓您更瞭解同盟環境。 它提供數個預先設定的儀錶板,例如使用量、效能監視和具風險的IP報告。

若要安裝 ADFS Connect Health,請流覽 使用 Microsoft Entra Connect Health 的需求,然後安裝 Azure ADFS Connect Health 代理程式

使用 ADFS具風險IP報告活頁簿設定具風險的IP警示

Microsoft設定 ADFS 的 Entra Connect Health 之後,您應該使用 ADFS 風險 IP 報告活頁簿和 Azure 監視器來監視和設定警示。 使用此報表的優點包括:

  • 偵測超過密碼型登入失敗閾值的IP位址。
  • 支援因為密碼錯誤或外部網路鎖定狀態而失敗的登入。
  • 支援透過 Azure 警示啟用警示。
  • 符合組織安全策略的可自定義閾值設定。
  • 可自定義的查詢和展開的視覺效果,以進行進一步分析。
  • 自 2022 年 1 月 24 日起,已淘汰先前 Risky IP 報告的擴充功能。

在 Sentinel Microsoft 設定 SIEM 工具警示

若要設定 SIEM 工具警示,請瀏覽現用警示的教學課程。

SIEM 與 適用於雲端的 Microsoft Defender Apps 整合

將安全性資訊和事件管理 (SIEM) 工具連線到 適用於雲端的 Microsoft Defender Apps,其目前支援 Micro Focus ArcSight 和一般事件格式 (CEF)。

如需詳細資訊,請參閱 泛型 SIEM 整合

SIEM 與圖形 API 整合

您可以使用下列任一選項,將 SIEM 與 Microsoft Graph 安全性 API 連線:

  • 直接使用支援的整合選項 – 請參閱支援的整合選項 清單,例如撰寫程式代碼以直接連接您的應用程式來衍生豐富的深入解析。 使用範例來開始使用。
  • 使用Microsoft合作夥伴所建置的原生整合和連接器 – 請參閱 Microsoft Graph 安全性 API 合作夥伴解決方案,以使用這些整合。
  • 使用Microsoft 所建置的連接器 – 請參閱您可以透過各種安全性事件和事件管理(SIEM)、安全性回應和協調流程(SOAR)、事件追蹤和服務管理 (ITSM)、報告等各種解決方案來與 API 連線的連接器清單。

如需詳細資訊,請參閱使用 Microsoft Graph 安全性 API 的安全性解決方案整合。

使用 Splunk

您也可以使用 Splunk 平台來設定警示。

工作流程

下列流程圖顯示密碼噴洒調查工作流程。

如何進行密碼噴洒調查的流程圖。

您也可以:

  • 將密碼噴灑和其他事件回應劇本工作流程下載為 PDF
  • 將密碼噴灑和其他事件回應劇本工作流程下載為 Visio 檔案

檢查清單

調查觸發程式

  • 從 SIEM、防火牆記錄或Microsoft Entra 標識碼接收觸發程式
  • Microsoft專案標識碼保護密碼噴灑功能或具風險的IP
  • 大量失敗的登入 (事件識別碼 411)
  • Microsoft Entra Connect Health for ADFS 中的尖峰
  • 另一個安全性事件(例如網路釣魚)
  • 無法解釋的活動,例如從不熟悉的位置登入,或使用者收到非預期的 MFA 提示

調查

  • 正在收到哪些警示?
  • 您是否可以確認此攻擊是密碼噴灑?
  • 判斷攻擊的時間軸。
  • 判斷攻擊的一或多個IP位址。
  • 篩選此期間和IP位址的成功登入,包括成功密碼但 MFA 失敗
  • 檢查 MFA 報告
  • 帳戶上是否有任何不一般專案,例如新裝置、新OS、使用的新IP位址? 使用 適用於雲端的 Defender Apps 或 Azure 資訊保護 來偵測可疑的活動。
  • 通知地方當局/第三方尋求協助。
  • 如果您懷疑遭到入侵,請檢查數據外洩。
  • 檢查相關聯的帳戶是否有可疑行為,並尋找與其他可能的帳戶和服務以及其他惡意IP位址相互關聯。
  • 檢查在相同辦公室/委派存取中工作的任何人的帳戶 - 密碼衛生 (請確定他們未使用與遭入侵帳戶相同的密碼)
  • 執行ADFS說明

風險降低

如需如何啟用下列功能的指引,請參閱參考一節:

復原

  • 在 適用於雲端的 Defender Apps、SIEM、ADFS 和 Microsoft Entra 識別符中標記不正確的 IP 位址
  • 檢查其他類型的信箱持續性,例如轉送規則或其他新增的委派
  • MFA 作為主要驗證
  • 設定 SIEM 與 Cloud 整合
  • 設定警示 - Identity Protection、ADFS Health Connect、SIEM 和 適用於雲端的 Defender Apps
  • 學到的經驗(包括主要項目關係人、第三方、溝通小組)
  • 安全性狀態檢閱/改善
  • 規劃執行一般攻擊模擬器

您也可以將密碼噴灑和其他事件劇本檢查清單下載為 Excel 檔案

調查步驟

密碼噴灑事件回應

讓我們先瞭解一些密碼噴灑攻擊技術,再繼續進行調查。

密碼入侵: 攻擊者猜到用戶的密碼,但由於多重要素驗證(MFA)等其他控制而無法存取帳戶。

帳戶入侵: 攻擊者猜測用戶的密碼,並取得帳戶的存取權。

環境探索

識別驗證類型

在第一個步驟中,您必須檢查要調查之租使用者/已驗證網域所使用的驗證類型。

若要取得特定功能變數名稱的驗證狀態,請使用 Get-MgDomain PowerShell 命令。 以下是範例:

Connect-MgGraph -Scopes "Domain.Read.All"
Get-MgDomain -DomainId "contoso.com"

驗證是否同盟或受管理?

如果驗證是同盟的,則成功登入會儲存在 entra 標識碼Microsoft。 失敗的登入位於其識別提供者 (IDP) 中。 如需詳細資訊,請參閱 AD FS疑難解答和事件記錄

如果驗證類型為僅限受控雲端、密碼哈希同步處理 (PHS)或傳遞驗證 (PTA),則成功和失敗的登入會儲存在 entra 登入記錄Microsoft。

注意

分段 推出 功能可讓租使用者功能變數名稱同盟,但要管理特定的使用者。 判斷任何使用者是否為此群組的成員。

Microsoft已啟用 ADFS 的 Entra Connect Health 嗎?

ADFS 中是否已啟用進階記錄?

記錄是否儲存在 SIEM 中?

若要檢查您要在安全性資訊和事件管理 (SIEM) 或任何其他系統中儲存和關聯記錄:

  • Log Analytics - 預先建置的查詢
  • Microsoft Sentinel 預先建置的查詢
  • Splunk – 預先建置的查詢
  • 防火牆記錄
  • UAL 如果 > 30 天

瞭解Microsoft Entra標識碼和 MFA 報告

請務必瞭解您看到能夠判斷入侵的記錄。 以下是瞭解Microsoft Entra 登入和 MFA 報告的快速指南:

事件觸發程式

事件觸發程式是事件或一系列事件,導致預先定義的警示觸發。 例如,超出預先定義閾值的密碼嘗試次數。 以下是可在密碼噴灑攻擊中警示的觸發程式,以及這些警示浮出水面的進一步範例。 事件觸發程式包括:

  • 使用者

  • IP

  • 使用者代理程式字串

  • 日期時間

  • 異常

  • 密碼嘗試不正確

    如何追蹤錯誤密碼嘗試的螢幕快照。

活動的異常尖峰是透過Microsoft Entra Health Connect 的關鍵指標(假設已安裝此元件)。 其他指標如下:

  • 當您定序記錄時,透過 SIEM 發出警示會顯示尖峰。
  • ADFS 失敗登入的記錄大小大於一般記錄大小,這可以是SIEM工具中的警示。
  • 增加 342/411 事件識別碼的數量 – 使用者名稱或密碼不正確。 或 516 用於外部網路鎖定。
  • 達到失敗的驗證要求閾值 – Microsoft Entra ID 或 SIEM 工具警示中的風險 IP/342 和 411 錯誤(若要能夠檢視這項資訊,應開啟進階記錄。

Microsoft Entra Health Connect 入口網站中具風險的IP

在一小時內達到不良密碼的自定義閾值和一天中的錯誤密碼計數和外部網路鎖定時,就會發生有風險的IP警示。

具風險 IP 報告數據的螢幕快照範例。

失敗嘗試的詳細數據可在索引 標籤IP位址外部網路鎖定中取得。

IP 位址數據表的螢幕快照範例。

在 Azure Identity Protection 中偵測密碼噴灑

Azure Identity Protection 是一項Microsoft Entra ID P2 功能,具有密碼噴洒偵測風險警示和搜尋功能,可提供更多資訊或自動補救。

密碼噴洒攻擊的螢幕快照範例。

低和緩慢的攻擊指標

低和緩慢的攻擊指標是當帳戶鎖定的閾值或不正確的密碼未受到攻擊時。 您可以透過下列方式偵測這些指標:

  • GAL 順序失敗
  • 重複屬性失敗(UA、目標 AppID、IP 區塊/位置)
  • 計時 – 自動噴灑在嘗試之間往往有更定期的時間間隔。

調查與緩和措施

注意

您可以在持續/持續的攻擊期間同時執行調查和緩和措施。

  1. 如果ADFS尚未開啟,請開啟進階記錄。

  2. 判斷攻擊開始的日期和時間。

  3. 從防火牆、ADFS、SIEM 或Microsoft Entra ID 判斷攻擊者 IP 位址(可能是多個來源和多個 IP 位址)。

  4. 一旦密碼噴灑確認,您可能必須通知當地機構(員警、第三方等)。

  5. 定序並監視ADFS的下列事件識別碼:

    ADFS 2012 R2

    • 稽核事件 403 – 提出要求的使用者代理程式
    • 稽核事件 411 – 驗證要求失敗
    • 稽核事件 516 – 外部網路鎖定
    • Audit Event 342 – 驗證要求失敗
    • 稽核事件 412 - 成功登入
  6. 若要收集 Audit Event 411 - 失敗的驗證要求, 請使用下列 腳本

    PARAM ($PastDays = 1, $PastHours)
    #************************************************
    #ADFSBadCredsSearch.ps1
    #Version 1.0
    #Date: 6-20-2016
    #Author: Tim Springston [MSFT]
    #Description: This script will parse the ADFS server's (not proxy) security ADFS
    #for events which indicate an incorrectly entered username or password. The script can specify a
    #past period to search the log for and it defaults to the past 24 hours. Results >#will be placed into a CSV for
    #review of UPN, IP address of submitter, and timestamp.
    #************************************************
    cls
    if ($PastHours -gt 0)
    {$PastPeriod = (Get-Date).AddHours(-($PastHours))}
    else
    {$PastPeriod = (Get-Date).AddDays(-($PastDays))}
    $Outputfile = $Pwd.path + "\BadCredAttempts.csv"
    $CS = get-wmiobject -class win32_computersystem
    $Hostname = $CS.Name + '.' + $CS.Domain
    $Instances = @{}
    $OSVersion = gwmi win32_operatingsystem
    [int]$BN = $OSVersion.Buildnumber
    if ($BN -lt 9200){$ADFSLogName = "AD FS 2.0/Admin"}
    else {$ADFSLogName = "AD FS/Admin"}
    $Users = @()
    $IPAddresses = @()
    $Times = @()
    $AllInstances = @()
    Write-Host "Searching event log for bad credential events..."
    if ($BN -ge 9200) {Get-Winevent -FilterHashTable @{LogName= "Security"; >StartTime=$PastPeriod; ID=411} -ErrorAction SilentlyContinue | Where-Object{$_.Message -match "The user name or password is incorrect"} | % {
    $Instance = New-Object PSObject
    $UPN = $_.Properties[2].Value
    $UPN = $UPN.Split("-")[0]
    $IPAddress = $_.Properties[4].Value
    $Users += $UPN
    $IPAddresses += $IPAddress
    $Times += $_.TimeCreated
    add-member -inputobject $Instance -membertype noteproperty -name >"UserPrincipalName" -value $UPN
    add-member -inputobject $Instance -membertype noteproperty -name "IP Address" ->value $IPAddress
    add-member -inputobject $Instance -membertype noteproperty -name "Time" -value >($_.TimeCreated).ToString()
    $AllInstances += $Instance
    $Instance = $null
    }
    }
    $AllInstances | select * | Export-Csv -Path $Outputfile -append -force ->NoTypeInformation
    Write-Host "Data collection finished. The output file can be found at >$outputfile`."
    $AllInstances = $null
    

ADFS 2016/2019

除了上述事件標識碼,請定序 Audit Event 1203 – Fresh Credential Validation Error

  1. 在ADFS上將這一次的所有成功登入定序 (如果同盟)。 快速登入和註銷(在同一秒)可能是攻擊者成功猜測並嘗試密碼的指標。
  2. 針對同盟和受管理案例,針對此期間,將任何Microsoft Entra 成功或中斷的事件進行定序。

從Microsoft Entra ID 監視和定序事件標識碼

瞭解如何尋找 錯誤記錄的意義。

下列來自 Microsoft Entra ID 的事件識別符相關:

  • 50057 - 用戶帳戶已停用
  • 50055 - 密碼已過期
  • 50072 - 使用者提示提供 MFA
  • 50074 - 需要 MFA
  • 50079 - 用戶必須註冊安全性資訊
  • 53003 - 條件式存取封鎖的使用者
  • 53004 - 由於可疑活動而無法設定 MFA
  • 530032 - 安全策略上的條件式存取封鎖
  • 登入狀態成功、失敗、中斷

從Microsoft Sentinel 劇本定序事件標識碼

您可以從 GitHub提供的 Microsoft Sentinel 劇本取得所有事件識別碼。

隔離並確認攻擊

隔離 ADFS 並Microsoft Entra 成功且中斷的登入事件。 這些是您感興趣的帳戶。

封鎖IP位址ADFS 2012R2和更新版本以進行同盟驗證。 以下是範例:

Set-AdfsProperties -AddBannedIps "1.2.3.4", "::3", "1.2.3.4/16"

收集ADFS記錄

在時間範圍內收集多個事件標識碼。 以下是範例:

Get-WinEvent -ProviderName 'ADFS' | Where-Object { $_.ID -eq '412' -or $_.ID -eq '411' -or $_.ID -eq '342' -or $_.ID -eq '516' -and $_.TimeCreated -gt ((Get-Date).AddHours(-"8")) }

在 Microsoft Entra ID 中定序 ADFS 記錄

當您使用 Microsoft Entra Connect Health 時,Microsoft Entra 登入報告包含 ADFS 登入活動。 依令牌簽發者類型 「同盟」篩選登入記錄。

以下是擷取特定IP位址登入記錄的範例 PowerShell 命令:

Get-AzureADIRSignInDetail -TenantId aaaabbbb-0000-cccc-1111-dddd2222eeee -IpAddress 131.107.128.76

此外,請搜尋 Azure 入口網站 以取得時間範圍、IP 位址和成功且中斷的登入,如這些影像所示。

如何選取時間範圍範圍的螢幕快照。

顯示如何在特定IP位址上搜尋登入的螢幕快照。

根據狀態搜尋登入。

然後,您可以將此數據下載為 .csv 檔案進行分析。 如需詳細資訊,請參閱 Microsoft Entra 系統管理中心的登入活動報告。

排定結果的優先順序

請務必能夠回應最重要的威脅。 此威脅可能表示攻擊者已成功取得帳戶的存取權,因此可以存取/外泄數據;攻擊者具有密碼,但可能無法存取帳戶。 例如,他們具有密碼,但未通過 MFA 挑戰。 此外,攻擊者無法正確猜測密碼,但會繼續嘗試。 在分析期間,排定這些結果的優先順序:

  • 已知攻擊者IP位址成功登入
  • 已知攻擊者IP位址中斷登入
  • 已知攻擊者IP位址的登入失敗
  • 其他未知的IP位址成功登入

檢查舊版驗證

大部分的攻擊都會使用舊版驗證。 有許多方式可以判斷攻擊的通訊協定。

  1. 在 [Microsoft項目標識符] 中,流覽至 [ 登入 ] 並篩選 [用戶端應用程式]。

  2. 選取所有列出的舊版驗證通訊協定。

    顯示舊版通訊協定清單的螢幕快照。

  3. 或者,如果您有 Azure 工作區,您可以使用預先建置的舊版驗證活頁簿,位於 [監視和活頁簿] 底下的 Microsoft Entra 系統管理中心

    顯示舊版驗證活頁簿的螢幕快照。

封鎖受控案例的 IP 位址Microsoft Entra 識別碼 (PHS 包括預備)

  1. 流覽至 [ 新增具名位置]。

    新具名位置的螢幕快照範例。

  2. 建立 CA 原則,以鎖定所有應用程式,並僅封鎖此具名位置。

使用者之前是否已使用此作業系統、IP、ISP、裝置或瀏覽器?

如果他們尚未這麼做且此活動不尋常,請為使用者加上旗標並調查其所有活動。

IP 是否標示為「具風險」?

請確定您記錄成功密碼但 MFA 回應失敗,因為此活動指出攻擊者正在取得密碼,但未通過 MFA。

請保留任何看似正常登入的帳戶,例如,傳遞的 MFA、位置和 IP 並非不一般。

MFA 報告

請務必檢查 MFA 記錄,以判斷攻擊者是否猜到密碼,但 MFA 提示失敗。 當系統提示用戶進行多重要素驗證時,Microsoft Entra 多重要素驗證記錄會顯示事件的驗證詳細數據。 檢查並確定Microsoft Entra標識符中沒有大型可疑的 MFA 記錄。 如需詳細資訊,請參閱 如何使用登入報告來檢閱Microsoft Entra 多重要素驗證事件

額外檢查

在 適用於雲端的 Defender Apps 中,調查遭入侵帳戶的活動和檔案存取。 如需詳細資訊,請參閱

檢查使用者是否可以存取更多資源,例如虛擬機(VM)、網域帳戶許可權、記憶體等。 如果有數據外洩,您應該通知更多機構,例如警方。

立即補救動作

  1. 變更您懷疑已遭入侵的任何帳戶密碼,或探索到帳戶密碼。 此外,請封鎖使用者。 請確定您遵循撤銷緊急存取的指導方針
  2. 將任何遭入侵的帳戶標示為Microsoft Entra ID Identity Protection 中的「入侵」。
  3. 封鎖攻擊者的IP位址。 在執行此動作時請小心,因為攻擊者可以使用合法的 VPN,而且在變更 IP 位址時可能會產生更多風險。 如果您使用雲端驗證,請封鎖 適用於雲端的 Defender Apps 或 Microsoft Entra 識別碼中的 IP 位址。 如果同盟,您必須封鎖ADFS服務前方防火牆層級的IP位址。
  4. 如果正在使用舊版驗證,請封鎖舊版驗證 (不過,此動作可能會影響業務)。
  5. 如果尚未完成,請啟用 MFA
  6. 為用戶風險和登入風險啟用 Identity Protection
  7. 檢查遭入侵的數據(電子郵件、SharePoint、OneDrive、應用程式)。 請參閱如何在 適用於雲端的 Defender Apps 中使用活動篩選。
  8. 維護密碼衛生。 如需詳細資訊,請參閱 Microsoft Entra 密碼保護
  9. 您也可以參考 ADFS 說明

復原

密碼保護

啟用自定義禁用密碼清單,在 Microsoft Entra ID 和內部部署上實作密碼保護。 此設定可防止使用者設定與貴組織相關聯的弱式密碼或密碼:

如何啟用密碼保護的螢幕快照。

如需詳細資訊,請參閱 如何防禦密碼噴灑攻擊

標記IP位址

標記 適用於雲端的 Defender Apps 中的 IP 位址,以接收未來使用的相關警示:

如何標記IP位址的螢幕快照範例。

標記IP位址

在 適用於雲端的 Defender Apps 中,IP 範圍的「標記」IP 位址,並為此 IP 範圍設定警示,以供日後參考和加速回應。

設定IP位址警示的螢幕快照範例。

設定特定IP位址的警示

設定警示

視組織需求而定,您可以設定警示。

在您的 SIEM 工具 中設定警示,並查看改善記錄差距。 整合 ADFS、Microsoft Entra ID、Office 365 和 適用於雲端的 Defender Apps 記錄。

在ADFS Health Connect和 Risky IP 入口網站中設定臨界值和警示。

如何設定臨界值設定的範例。

設定通知的螢幕快照範例。

請參閱如何在 Identity Protection 入口網站中設定警示。

使用條件式存取或 Identity Protection 設定登入風險原則

  • 教育終端使用者、重要項目關係人、前線作業、技術小組、網路安全與通訊小組
  • 檢閱安全性控制,並進行必要的變更,以改善或強化組織內的安全性控制
  • 建議Microsoft項目設定評估
  • 執行一般 攻擊模擬器 練習

參考資料

必要條件

風險降低

復原

額外的事件回應劇本

檢查識別和調查這些額外攻擊類型的指引:

事件回應資源