パスワード スプレー攻撃のアラート分類

脅威アクターは、革新的な方法を使用してターゲット環境を侵害します。 牽引力を得る攻撃の 1 つの種類は、攻撃者が最小限の労力でネットワーク内の多くのアカウントにアクセスすることを目指すパスワード スプレー攻撃です。 脅威アクターが 1 つのアカウントで多くのパスワードを試す従来のブルート フォース攻撃とは異なり、パスワード スプレー攻撃では、一般的に使用されるパスワードのセットが限られている多くのアカウントの正しいパスワードを推測することに重点を置きます。 パスワードスプレー技術により、パスワードが弱い、または簡単に推測できる組織に対して特に効果的であり、深刻なデータ漏洩や組織の財務損失を引き起こします。

攻撃者は自動ツールを使用して、一般的に使用されるパスワードの一覧を使用して、特定のアカウントまたはシステムへのアクセスを繰り返し試みます。 攻撃者は、多くの仮想マシン (VM) またはコンテナーを作成してパスワード スプレー攻撃を開始することで、正当なクラウド サービスを悪用することがあります。

このプレイブックは、パスワード スプレー攻撃の指標として疑わしい動作が観察されるケースを調査するのに役立ちます。 このガイドは、セキュリティ オペレーション センター (SOC) や、アラートを確認、処理、管理、分類する IT 管理者などのセキュリティ チーム向けです。 このガイドは、アラートを 真陽性 (TP) または偽陽性 (FP) として迅速に分類するのに役立ち、TP の場合は、攻撃を修復し、セキュリティ リスクを軽減するために推奨されるアクションを実行します。

このガイドを使用した場合の目的の結果は次のとおりです。

  • パスワード スプレーの試行に関連するアラートを、悪意のあるアクティビティ (TP) または誤検知 (FP) として特定しました。

  • 攻撃を修復するために必要なアクションを実行しました。

調査手順

次の調査手順では、アラートに対応するためのガイダンスを提供し、組織をさらに攻撃から保護するための推奨されるアクションを実行します。

1. セキュリティ アラートを調査する

サインイン アクティビティが疑わしいことを示す指標について、アラートの詳細を確認してください。

  • 警告されたサインイン試行は疑わしい場所から行われますか? 影響を受けるユーザー アカウントの一般的な場所以外の場所からのサインイン試行を確認します。 1 人または多くのユーザーからの複数のサインイン試行が役立つインジケーターです。

2. 疑わしいユーザー アクティビティを調査する

影響を受けたユーザーの最近のアクティビティで、サービスと場所をまたいでアカウントの誤用の兆候がないか調べます。

  • 一般的でないプロパティを持つ、通常とは異なるイベントはありますか? 通常とは異なる ISP、国/地域、都市など、影響を受けたユーザーの一意のプロパティは、不審なサインイン パターンを示している可能性があります。

  • メールやファイル関連のアクティビティが著しく増加していますか? メール アクセスまたは送信アクティビティの試行の増加や、影響を受けるユーザーの SharePoint または OneDrive へのファイルのアップロードの増加などの疑わしいイベントは、探す兆候です。

  • サインイン試行に失敗した回数はありますか? 影響を受けるユーザーによるさまざまな IP や地理的な場所からのサインイン試行の失敗回数が多い場合は、パスワード スプレー攻撃を示している可能性があります。

  • 影響を受けたユーザーのサインイン アクティビティから ISP を特定します。 同じ ISP の他のユーザー アカウントによるサインイン アクティビティを確認します。

  • 環境内の最近の変更を調べます。

    • Exchange Onlineアクセス許可、メール自動転送、メール リダイレクトなどのOffice 365 アプリケーションの変更
    • PowerAutomate を使用した自動データ転送構成など、PowerAppsの変更
    • Azure 環境での変更 (Azure portal でのサブスクリプションの変更など)
    • 影響を受けるユーザー アカウントが機密/機密/会社専用コンテンツを含む複数のサイトやファイルにアクセスできるようにするなど、SharePoint Online への変更
  • 複数のプラットフォームとアプリで短時間で発生する影響を受けるアカウントのアクティビティを調べます。 アクティビティのタイムラインをチェックするイベントを監査します。ユーザーのメールの読み取りや送信に費やした時間を比較し、ユーザーのアカウントやその他のアカウントにリソースを割り当てるなどです。

3. 後続攻撃の可能性を調査する

パスワード スプレー攻撃が成功した後に攻撃者が悪意のあるアクティビティを実行することが多いため、影響を受けるユーザー アカウントに関連するその他の攻撃がないか、環境を検査します。 次の疑わしいアクティビティを調査することを検討してください。

  • 多要素認証 (MFA) 関連の攻撃

    • 攻撃者は MFA疲れ(ユーザーにアクセス承認を強要するための繰り返し認証プロンプト)を利用して、組織がシステム保護のために採用しているこのセキュリティ対策を回避します。 影響を受けたユーザー アカウントによって発生した複数の MFA 要求を確認します。
    • 攻撃者は、テナント内の他のアカウントの MFA 保護を無効にすることで、昇格された特権を持つ影響を受けたユーザー アカウントを使用して MFA 改ざん を実行する可能性があります。 影響を受けたユーザーによって実行された疑わしい管理者アクティビティを確認します。
  • 内部フィッシング攻撃

    • 攻撃者は、影響を受けるユーザー アカウントを使用して内部フィッシング メールを送信する可能性があります。 メール転送や受信トレイ操作や受信トレイ転送ルールの作成などの疑わしいアクティビティを確認します。 次のプレイブックを使用すると、メール イベントをさらに調査できます。
    • ユーザーがパスワード スプレー アクティビティの前に他のアラートを受信したかどうかを確認します。 これらのアラートは、ユーザー アカウントが侵害される可能性があることを示します。 たとえば、不可能な旅行アラート、頻度の低い国/地域からのアクティビティ、疑わしい電子メールの削除アクティビティなどがあります。

高度なハンティング クエリ

高度なハンティング は、クエリベースの脅威ハンティング ツールで、ネットワーク内のイベントを検査し、脅威インジケーターを見つけることができます。

これらのクエリを使ってパスワードスプレーアラートに関するさらなる情報を集め、アラートされたサインイン活動が怪しいかどうかを判断します。

次のテーブルにアクセスできることを確認します。

このクエリを使用して、パスワード スプレー アクティビティを識別します。

IdentityLogonEvents
| where Timestamp > ago(7d)
| where ActionType == "LogonFailed"
| where isnotempty(RiskLevelDuringSignIn)
| where AccountObjectId == <Impacted User Account Object ID>
| summarize TargetCount = dcount(AccountObjectId), TargetCountry = dcount(Location), TargetIPAddress = dcount(IPAddress) by ISP
| where TargetCount >= 100
| where TargetCountry >= 5
| where TargetIPAddress >= 25

このクエリを使って、アラート詳細に記載されたISPの他の活動を特定してください。

CloudAppEvents
| where Timestamp > ago(7d)
| where AccountObjectId == <Impacted User Account Object ID>
| where ISP == <Alerted ISP>
| summarize count() by Application, ActionType, bin(Timestamp, 1h)

このクエリを使って、アラートで特定されたユーザーアカウントのサインインパターンを特定してください。

IdentityLogonEvents
| where Timestamp > ago(7d)
| where AccountObjectId == <Impacted User Account Object ID>
| where ISP == <Alerted ISP>
| where Application != "Active Directory"
| summarize SuccessCount = countif(ActionType == "LogonSuccess"), FailureCount = countif(ActionType == "LogonFailed") by ISP

このクエリを使用して、MFA 疲労攻撃を特定します。 MFA の呼び出し制限に達したエラーが発生した Microsoft Entra ID のサインインを検出し、これらは MFA 疲労による攻撃の一般的な兆候です。

AADSignInEventsBeta
| where Timestamp > ago(1h)
//Error Code : 50088 : Limit on telecom MFA calls reached
//Error Code : 50074 : Strong Authentication is required.
| where ErrorCode in  ("50074","50088")
| where isnotempty(AccountObjectId)
| where isnotempty(IPAddress)
| where isnotempty(Country)
| summarize (Timestamp, ReportId) = arg_max(Timestamp, ReportId), FailureCount = count() by AccountObjectId, Country, IPAddress
| where FailureCount >= 10

このクエリを使用して、MFA リセット アクティビティを識別します。 以下のクエリは、MFAに関連するリセットおよびバイパスアクションタイプを定義し、クラウドアプリイベントとアラートデータを関連付けて疑わしいMFA変更を検出します。

let relevantActionTypes = pack_array("Disable Strong Authentication.","system.mfa.factor.deactivate", "user.mfa.factor.update", "user.mfa.factor.reset_all", "core.user_auth.mfa_bypass_attempted");
CloudAppEvents
AlertInfo
| where Timestamp > ago(1d)
| where isnotempty(AccountObjectId)
| where Application in ("Office 365","Okta")
| where ActionType in (relevantActionTypes)
| where RawEventData contains "success"
| project Timestamp, ReportId, AccountObjectId, IPAddress, ActionType

以下のクエリを使って、Microsoft Entra IDのユーザーアカウントからMFA強認証要件が削除されているかどうかを確認し、侵害後のMFA改ざんを示す可能性があります。

CloudAppEvents
| where Timestamp > ago(1d)
| where ApplicationId == 11161 
| where ActionType == "Update user." 
| where isnotempty(AccountObjectId)
| where RawEventData has_all("StrongAuthenticationRequirement","[]")
| mv-expand ModifiedProperties = RawEventData.ModifiedProperties
| where ModifiedProperties.Name == "StrongAuthenticationRequirement" and ModifiedProperties.OldValue != "[]" and ModifiedProperties.NewValue == "[]"
| mv-expand ActivityObject = ActivityObjects
| where ActivityObject.Role == "Target object"
| extend TargetObjectId = tostring(ActivityObject.Id)
| project Timestamp, ReportId, AccountObjectId, ActivityObjects, TargetObjectId

このクエリを使って、調査で疑わしいとフラグが立てられたセッション中にパスワードスプレーアラートで特定されたユーザーアカウントによって作成された疑わしい受信トレイルールを見つけてください。 このクエリは、攻撃者が電子メールを非表示またはリダイレクトする受信トレイ ルールを作成する侵害後のアクティビティを特定するのに役立ちます。

CloudAppEvents
| where AccountObjectId == <ImpactedUser>
| where Timestamp > ago(21d)
| where ActionType == "New-InboxRule"
| where RawEventData.SessionId in (suspiciousSessionIds)

このアラートに関連付けられているアクティビティが悪意があると判断したら、それらのアラートを TP として分類し、修復のために次のアクションを実行します。

  1. ユーザーのアカウント資格情報をリセットします。
  2. 侵害されたアカウントのアクセス トークンを取り消します。
  3. Mfa 疲労攻撃を軽減するには、Microsoft Authenticator で番号照合を使用します。
  4. 最小特権の原則を適用します。 タスクを完了するために必要な最小限の特権を持つアカウントを作成します。
  5. 成果物が電子メールに関連している場合は、送信者の IP アドレスとドメインに基づいてブロックを構成します。
  6. 調査中に悪意があると特定された URL または IP アドレス (ネットワーク保護プラットフォーム上) をブロックします。

関連項目

ヒント

さらに詳しく知りたいですか? Tech Community 内の Microsoft Security コミュニティにご参加ください: 「Microsoft Defender XDR Tech Community」。