Microsoft Sentinelオートメーション機能によるアカウント無効化検証

目次

  1. はじめに
  2. Microsoft Sentinelとは
  3. 構成
    3-1. 構成図
    3-2. 製品動作
  4. 導入手順
    4-1. 処理概要
    4-2. Microsoft Sentinelワークスペースの作成
    4-3. コンテンツハブの選択
    4-4. Entra IDとのデータコネクタを接続
    4-5. プレイブックの作成
    4-6. 分析ルールの作成
    4-7. 自動化ルールの作成
  5. 動作確認
    5-1. インシデントを発生させる
    5-2. 実行履歴確認
  6. まとめ

1. はじめに

昨今、様々な企業への攻撃、被害によりセキュリティへの意識が高まっています。
多数のセキュリティ製品が販売されており、またそのセキュリティ製品により別の問題が発生する
事もあります。今回はMicrosoftによるセキュリティの統合、監視・検知(SIEM)である、
Microsoft Sentinelで検知~自動で対処を行う仕組みを御紹介します。

2. Microsoft Sentinelとは

Microsoft Sentinelとは、クラウドネイティブのセキュリティ情報イベント管理 (SIEM)
プラットフォームです。組み込みの AI を使用しているため、企業全体の大量のデータの
迅速な分析が可能です。

セキュリティ情報とイベント管理 (SIEM)を取得して、オーケストレーション、オートメーション、
応答 (SOAR)を行います。Microsoft Defenderを中心としたログ収集は勿論、Trend Micro、Palo Alto Networksなどサードパーティ製品とも連携可能です。

基本的な利用の流れは以下の通りです。
 1. Azureポータルにてワークスペース(Log Analytics)を作成
 2. Microsoft Sentinelをワークスペース(Log Analytics)へ追加
 3. データコネクタでデータを収集
 4. 分析ルールを使用して監視
 5. プレイブックを利用して自動化

公開情報
https://azure.microsoft.com/ja-jp/products/microsoft-sentinel

3. 構成

3-1. 構成図

今回構築を行った環境の構成図です。
必要なコンポーネントは下記の通りです。
・M365特権管理者
・M365 ユーザー(被験者)
・Microsoft Sentinel

構成図

3-2. 製品動作

今回はMicrosoft Sentinelを利用して不正ログインを検知し、検知されたアカウントを自動的にDisableにしてみます。

検証ケース:M365ユーザーの不正ログイン停止
内容:M365ユーザーにて不正ログイン(ログイン失敗2回)の事象を
   検知した場合に自動でユーザー停止を行う

実施の流れは以下の通りです。
 1.Microsoft Sentinelワークスペースの作成
 2.コンテンツハブの選択
 3.Entra IDとのデータコネクタを接続
 4.プレイブックの作成
 5.分析ルールの作成
 6.自動化ルールの作成
 7.事象の確認

4. 導入手順

4-1. 処理概要

今回の構築を実施した際の処理は以下の通りです。

エンティティでアカウントを定義する事で、オートメーションルールでユーザーを判別して
実行出来るようにします。

4-2. Microsoft Sentinelワークスペースの作成

先ず、Microsoft SentinelにてLog Analyticsのワークスペースを作成していきます。

※既存でLog Analyticsのワークスペースがある場合、そちらを利用する事も可能です。

4-3. コンテンツハブの選択

コンテンツハブはMicrosoftにて用意してあるテンプレート集です。
データコネクタ、プレイブック、分析ルール等が用意されています。
今回はEntra ID向けのテンプレートをインストールします。

※今回はデータコネクタのみを利用し、分析ルール等は一から作成していきます。

4-4. Entra IDとのデータコネクタを接続

データコネクタよりMicrosoft Entra IDと接続をする。
[User Directory Collectors]タブに移動し、ドメインコントローラと連携をします。

※今回はSign in Logsと監査ログを選択。
※Sign in LogsはEntra ID P1 or P2ライセンスが必要です。
※コネクタ完了には時間が掛かります。

4-5. プレイブックの作成

オートメーションよりインシデントトリガーを使用したプレイブックを作成します。

ロジックアプリデザイナーを使用して、今回実行する内容をデザインしていきます。
 1. インシデントを受信する(インシデントトリガー)
 2. 分析でエンティティとして指定した情報を受け取る
 3. ユーザーを無効化する処理をする
上記をフローとして追加していきます。

・Microsoft Sentinel incident
こちらがスタートとなる初期値になります。

・エンティティ – アカウントを取得

+から「Microsoft Sentinelのエンティティ – アカウントを取得」を選択します。
※パラメーターのエンティティ一覧でエンティティを検索して選択。

・ユーザーの更新

+からEntra IDよりユーザーの更新を選択します。
※ユーザーのIDまたはプリンシパル名にアカウント名前を選択。
→詳細パラメーターからアカウントが有効を選択。
 →アカウントが有効でいいえを選択。

4-6. 分析ルールの作成

要件とマッチするクエリを記載した分析ルールを作成します。
今回はスケジュール済みクエリルールとして作成していきます。

要件とマッチするクエリを記載します。
今回利用するクエリは以下の通りです。

クエリ)
SigninLogs
| where ResultType !in ("0", "50125", "50140")
| summarize count() by UserPrincipalName, TimeGenerated

※ResultTypeの0はサインイン成功、50125はパスワードリセットまたはパスワード登録
エントリのためにサインインが中断、50140はユーザーがサインインしたときの
サインインしたままにする割り込みによるエラーです。これらを正常時に発生するもの
である為、正規表現で除外し、辞書攻撃のようなアカウントハッキングを検知します。

エラーコード詳細:
https://learn.microsoft.com/ja-jp/entra/identity-platform/reference-error-codes

アラートの拡張にあるエンティティマッピングで、アカウントをセッティングします。

エンティティマッピング)
アカウント → Name / UserPrincipalName

今回は検証のため、直ぐに検知が出来るように間隔や閾値も調整します。

クエリのスケジュール設定)
5分

アラートのしきい値)
次の値より大きい:1

ここまでで分析ルールは完了です。引き続き自動化ルールを設定していきます。

4-7. 自動化ルールの作成

分析ルールに続いて、先ほど作成したプレイブックを自動化ルールで紐づけていきます。
新規作成からトリガーはインシデントにして、作成したプレイブックを選択します。

※何も表示されない場合はアクセス許可のリンクをクリックします。

作成をすると、状態が有効になって一覧に表示されます。

以上でログイン失敗を検知してアカウントを停止する仕組みが導入出来ました。

5. 動作確認

5-1. インシデントを発生させる

分析が動き始めると、自動的に検知が行われます。
10回近く間違えると内部的にDisable状態になり、成功するまでアカウントロックが
かかってしまう為、5~6回連続して間違えたパスワードを入力していきます。

検知が始まります。

5-2. 実行履歴確認

オートメーションから実行履歴を確認します。

正常に完了していれば、Succeededの状態となっています。
※デザインに問題がありデータの受け渡しに失敗してスキップされた場合でも
 Succeededになる可能性があります。
 実行の履歴でデザイン上の処理がオールグリーンになっている事を確認します。

エラーが出ていた場合はクリックする事で詳細を確認する事が出来ます。

エラーなく全て成功していれば、M365の管理画面から対象ユーザーがサインイン禁止状態になっている事を確認出来ます。

6. まとめ

今回はMicrosoft Sentinelでのオートメーションをご紹介させていただきました。
SIEMは情報の一元化、見える化を進める中で非常に重要なツールになってきています。
M365やAzureを利用しているのであれば、Microsoft Sentinelに集約をしてインシデント対応
を行い、対応の自動化やログを残していくという選択肢は、主流となって来ています。

分析時のクエリ部分で、ある程度コードを書く必要がありますが、それ以外はGUIで視覚的に操作が
可能であるため、ノーコードに近い形で構築が出来る事から、幅広い職種でも利用が可能かと
思います。テンプレートも豊富にあり、GitHubでもMicrosoftや有志によって公開されています。
しかしながら、テンプレートは少し癖がある場合もあり、ちょっとした事で躓きやすいので、
先ずは今回のような簡単な処理を自分で書いてみる事をお勧めします。
Microsoft Sentinelはトライアルもありますので、M365やAzureを活用している方は
ぜひ実際に利用してみてください。