サイト内の現在位置

Microsoftログ収集ツール「Microsoft-Extractor-Suite」のご紹介

NECセキュリティブログ

2026年4月24日

現代のサイバーセキュリティにおいて、Microsoft 365(以下、M365とする)やAzureといったクラウド環境への攻撃は、その複雑さとスピードを増しており、侵害発生時の迅速な証拠収集が鍵となります。Microsoft-Extractor-Suiteは、Invictus Incident Response社が開発した、M365やAzure内の多様なソースから必要なデータをシームレスに収集し、収集プロセスを劇的に加速させるための強力なPowerShellツールですnew window[1]new window[2]
本記事では、Microsoft-Extractor-Suiteの機能、インストール方法やログ収集方法について紹介します。

目次

Microsoft-Extractor-Suiteとは

Microsoft-Extractor-Suiteは、Microsoftの様々なソースから必要なデータを効率的に収集するために設計された、オープンソースのPowerShellモジュールです。
通常、M365やAzureの調査には「Microsoft Purview コンプライアンスポータル」や「Azure Monitor」、「Microsoft Entra ID 管理センター」など、複数のプラットフォームを各画面にて確認する必要があり、個別のPowerShellモジュール(ExchangeOnlineManagement, Microsoft.Graph, Azなど)を使い分ける必要があります。
Microsoft-Extractor-Suiteを利用することで、Entra ID、Azure、M365といった環境から、単一のインターフェースを通して包括的な証拠収集を可能にすることができます。

収集可能なログの種類

Microsoft-Extractor-Suiteによって、収集することが可能なログを紹介しますnew window[3]new window[4]new window[5][6]new window[7]

表1 Microsoft-Extractor-Suiteで収集可能なログの種類
ログの種類 ログの説明 ログの保持期間
Unified Audit Log Microsoft365の各アプリケーションに対して行われた操作を統合的に確認することができるログです。
※取得には監査ログを有効化する必要があります。
  • 監査 (標準):180日
  • 監査 (プレミアム):10年間
Entra IDサインインログ ユーザやアプリケーションがMicrosoft Entra テナントにアクセスする際のサインインアクティビティのログです。
  • 無料:7日
  • P1/P2:30日
Entra ID監査ログ Microsoft Entra IDの テナント内で発生したシステムアクティビティの履歴を記録したログです。
ユーザの管理、グループの変更、アプリケーションの設定更新といった、ディレクトリ内でのあらゆる操作(作成、更新、削除など)を追跡するために不可欠なリソースです。
  • 無料:7日
  • P1/P2:30日
Azureアクティビティログ Azure リソースに対して実行された管理操作(コントロール プレーン操作)を記録するログです。 90日
(90日を超える保持や高度な分析が必要な場合は、診断設定などを作成する必要あり)
NSGフローログ Azure仮想ネットワーク内を流れるIPトラフィックに関する情報(送信元/送信先IP、ポート、プロトコル、許可/拒否など)を記録するログです。 ストレージアカウントなどで保持する必要あり。
VNetフローログ Azure仮想ネットワーク内を流れるIPトラフィックに関する情報(送信元/送信先IP、ポート、プロトコル、許可/拒否など)を記録するログです。 ストレージアカウントなどで保持する必要あり。

インストール&ログ収集準備

Microsoft-Extractor-SuiteによってEntra IDやM365環境でログ収集をする際に、以下の3点の設定が必要となります。

  • ツールを実行する端末にPowerShellモジュールのインストール
    • ExchangeOnlineManagement - Microsoft 365の機能を利用するために必要
    • Microsoft.Graph - Graph API の機能に必要
    • Az - Azureの機能を利用するために必要
  • ツールを実行するユーザに適切な権限の割り当て(表2 各機能での必要な権限(一部))
  • ログ収集するために必要なGraph API権限をもつアプリケーションの設定(表3 Graph API権限の割り当て一覧(一部))

ツールを実行する端末に必要なPowerShellモジュールのインストール

PowerShellを管理者権限で実行し、Microsoft-Extractor-Suiteの使用に必要なモジュールを以下のコマンドを入力してインストールします。

Install-Module -Name Microsoft-Extractor-Suite
Install-Module -Name Microsoft.Graph
Install-Module -Name Az

表2 各機能での必要な権限(一部)
機能性 必要な権限(役割)
Unified Audit Log AuditLogs
AuditLogsQuery.Read.All
Admin Audit Log AuditLogs
Entra ID Logs Reports Reader
Security Reader
Security Administrator
Global Reader (sign-in logs only)
Global Administrator
User/Admin information User.Read.All
Directory.AccessAsUser.All
User.ReadBasic.all
Directory.Read.All
Device information Device.Read.All
Directory.Read.All
Group information Group.Read.All
Directory.Read.All
Security Alerts SecurityEvents.Read.All

次に、Microsoft-Extractor-Suiteを実行するために、ユーザへの適切な権限の割り当て(表2参照)および、ログ収集に必要なGraph API権限を持つアプリケーションの設定(表3参照)の設定例を示します。

ログ収集するために必要な権限を持つアカウントの設定例

  • 2.
    新規ユーザに「Global Reader」ロールを割り当てます。
  • 3.
    Azureポータル (new windowhttps://portal.azure.com/ )に移動します。
  • 4.
    サブスクリプションの「アクセス制御(IAM)」に移動して「ロールの割り当ての追加」を選択し「閲覧者」を2.で作成した新規ユーザに付与します。
  • Log Analyticsワークスペースやトレージアカウントなどのサービス単体でのアクセス権限管理も可能です。
  • 上記項目は検証のための権限が付与されているため、実運用での適切な権限ではありません。適宜、最小権限での権限付与を推奨します。

必要なGraph API権限を持つアプリケーション

1. アプリケーションを登録します:

  • a.
    グローバル管理者または管理者権限を持つユーザで Azure ポータルにログインします(new windowhttps://portal.azure.com/)。
  • b.
    Microsoft Entra IDに移動します。
  • c.
    アプリ登録を選択し、「新規登録」をクリックします。
  • d.
    アプリケーションの名前を入力し、「登録」をクリックします。
    表示されている「アプリケーション(クライアント)ID」、「ディレクトリ(テナント)ID」はログ収集する際に必要なためメモをしておきます。

2. クライアントシークレットを生成します:

  • a.
    アプリケーションの「証明書とシークレット」セクションに移動します。
  • b.
    クライアントシークレットを作成し、有効期限を適切な期間に設定します。

3. API権限の割り当て:

  • a.
    アプリケーションの「API権限」セクションに移動します。
  • b.
    「権限を追加」をクリックし、作成したアプリケーションに対して、ログ収集をするために必要な表3のGraph API権限(アプリケーション権限)を割り当てます。
表3 Graph API権限の割り当て一覧(一部)
権限 説明
Application.Read.All すべてのアプリケーションの読み取り
AuditLog.Read.All すべての監査ログデータの読み取り
AuditLogsQuery.Read.All すべてのサービスからの監査ログデータの読み取り
Directory.Read.All ディレクトリデータの読み取り
User.Read.All すべてのユーザの完全なプロフィールの読み取り
Group.Read.All アプリによるグループ一覧の取得を許可
Device.Read.All すべてのデバイス情報の読み取り
SecurityEvents.Read.All セキュリティ イベントとアラートの読み取り

ログ収集手順

Microsoft-Extractor-Suiteを使用して、実際にログを収集していきます。

Unified Audit Log

Microsoft365への接続手順を以下に示します。
1. 管理者権限で起動したPowerShellを起動して以下のコマンドを実行します。

powershell -ep bypass

2. 以下のコマンドを実行して資格情報オブジェクトを作成します。

$clientsecret = Get-Credential

3. 2. の実施後にクライアントIDとクライアントシークレットを求めるダイアログが表示されます。
「アプリの登録」にて登録したアプリケーションのクライアントIDとシークレットを指定して「OK」を押下します。

  • ユーザ名:アプリケーション(クライアント)ID
  • パスワード:クライアントシークレットのシークレット「値」

4. Microsoft 365に接続するコマンドを実行します。

Connect-MgGraph -TenantId "<ディレクトリ(テナント)ID>" -ClientSecret $clientsecret

次にUnified Audit Logのログ取得方法を以下に示します。

Get-UALGraph -SearchName test -startDate "YYYY-MM-DDTHH:mm:ssZ"

  • デフォルトでは過去180日分のログがダウンロードされます。オプション「-startDate」を利用することでログの取得対象期間の開始日時を指定することができます。
    成功すると「Export Details」の「Output Directory」に取得したログが格納されています。

Entra IDサインインログ

Entra ID サインインログは、Unified Audit Logログ同様、Microsoft365への接続を行います。
次にEntraID サインインログのログ取得方法を以下に示します。

Get-GraphEntraSignInLogs YYYY-MM-DD

  • デフォルトでは過去30日間のログがダウンロードされます。

Azureアクティビティログ

Azureへの接続方法を以下に示します。
1. PowerShellを起動して以下のコマンドを実行します。

powershell -ep bypass

2. Azureへの接続のコマンドを実行します。

Connect-AzAccount

3. サインインに使用するアカウントの選択を求められるため、作成した新規ユーザの資格情報を選択して「続行」を押下します。
ユーザが表示されない場合は、「職場または学校アカウント」を選択し「続行」を押下してログイン処理に進みます。

4. 次にAzureアクティビティログのログ取得方法を以下に示します。

Get-ActivityLogs

  • デフォルトでは過去90日間のログがダウンロードされます。

おわりに

今回紹介した Microsoft-Extractor-Suiteは、単一のフレームワークで M365 や Azure から包括的なデータ抽出を可能にすることができるため、複雑なクラウドインフラから迅速に「証跡」を引き出すための優秀なツールとなっています。手動のデータ収集作業を自動化・効率化することで、より高度な「分析と判断」に時間を割くことが可能になります。
本記事が、皆様のより堅牢なセキュリティ運用の助けとなれば幸いです。

参考文献

執筆者プロフィール

油布 翔平(ゆふ しょうへい)
担当領域:リスクハンティング

監視サービスの検討/導入やEDR製品の検証/分析の業務を経て、現在は脆弱性診断やインシデントレスポンス対応に従事。

執筆者の他の記事を読む

アクセスランキング