当記事では、LogStare CollectorでMicrosoft Graph APIを利用してMicrosoft Defenderのアラート情報を取得する方法について記載します。なお、当記事は2024年7月時点での内容を元に作成しています。
目次
更新履歴
2024/07/08 公開しました。
前提
- Microsoft 365の管理者権限を操作できること
- Microsoft Defenderを利用していること
- LogStare CollectorサーバとM365クラウド間でHTTPSの疎通ができること
大まかな流れ
- Microsoft Entra IDでアプリを登録する
- Microsoft Entra IDでアプリのアクセス許可を登録する
- Microsoft Entra IDで登録したアプリにクライアントシークレットを追加する
- LogStare Collectorにて必要な設定を行う
Microsoft Entra IDでアプリを登録する
- Microsoft Entra IDにアクセスします。
Microsoft Entra IDのポータルリンク - 「アプリの登録」を検索・選択します。
- 「新規登録」をクリックします。
- 任意の「名前」を入力し、「サポートされているアカウントの種類」として「この組織ディレクトリのみに含まれるアカウント」を設定します。「リダイレクト URI」は設定せずに画面下部の「登録」をクリックします。
- 登録したアプリの情報が表示されます。アプリケーションID(クライアントID)はLogStare Collectorの設定で必要となるので、記録してください。画面はそのままで次の手順へ進んでください。
Microsoft Entra IDでアプリのアクセス許可を登録する
- 左側のメニューより「API のアクセス許可」をクリックします。
- 「アクセス許可の追加」をクリックします。
- 「Microsoft Graph」をクリックします。
- 「アプリケーションの許可」をクリックします。
- 検索欄にて「SecurityAlert.Read.All」を入力し、表示された項目にチェックを入れて画面下部の「アクセス許可の追加」をクリックします。
- 「○○に管理者の同意を与えます」をクリックし、確認画面が表示されたら「はい」をクリックします。
- 状態がグリーンになっていることが確認できたら画面はそのままで次の手順へ進んでください。
Microsoft Entra IDで登録したアプリにクライアントシークレットを追加する
- 左側のメニューより「証明書とシークレット」をクリックします。
- 「新しいクライアント シークレット」をクリックします。
- 「説明」と「有効期限」を設定し、画面下部の「追加」をクリックします。
- 追加後に画面に表示されるクライアントシークレットの「値」はLogStare Collectorの設定で必要となるので、記録してください。※重要※ クライアントシークレットの「値」は一度しか表示されません。記録し忘れた場合は再度「新しいクライアント シークレット」をクリックします。
ここまでがMicrosoft Entra ID上で実施する手順となり、以降はLogStare Collector上で設定を実施します。
LogStare Collectorにて必要な設定を行う
-
- LogStare CollectorにてMicrosoft Defenderのアラート情報を取得する設定を追加します。インストール手順につきましては、以下を参照してください。
LogStare Collectorインストールからアンインストールまで Linux版
LogStare Collectorインストールからアンインストールまで Windows版 - Microsoft Defenderのアラート情報を取得するためのデバイスを追加します。APIにて情報を取得するため、IPアドレスやSNMP情報は任意の設定でも問題ありませんが、APIの実行周期は「監視周期」設定に準拠します。デバイス追加手順につきましては、以下を参照してください。
監視対象デバイスの設定
以下は設定の参考例です。 - Microsoft Defenderのアラート情報を取得するための収集設定を追加します。利用する収集項目はMETRICS収集です。METRICS収集については以下の記事を参照してください。
METRICS(メトリクス)収集の使用方法
以下はMETRICS収集の設定例です。- 監視ON/OFF:デフォルトの「ON」にて設定します。
- 取得エラー判定回数:デフォルトの「注意:1」「警告:1」にて設定します。
- 収集項目名:他の監視/収集項目と被らない任意の名前を設定します。
- IPアドレス:デフォルトのデバイスのIPアドレスにて設定します。
- タイムアウト(秒):デフォルトの「5」にて設定します。もし、タイムアウトが頻繁に発生する場合は設定値を変更してください。
- REST API:Microsoft Defender のアラート情報の取得先として「https://graph.microsoft.com/v1.0/security/alerts_v2?$filter=createdDateTime gt [LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]&$orderby=createdDateTime asc」を設定し、JSONデータとして1つ以上のアラート情報を取得します。設定値の詳細は以下の通りです。
- https://graph.microsoft.com/v1.0/security/alerts_v2:アラート情報の取得先です。詳細については、以下をご参照ください。
https://learn.microsoft.com/ja-jp/graph/api/security-list-alerts_v2 - ?$filter=createdDateTime gt [LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]&$orderby=createdDateTime asc:アラート情報取得時のオプションです。このオプションと「前回実行時間のオーバーライド」の設定を組み合わせることで、LogStare Collectorは前回取得したログの内、createdDateTimeが最新のものを基準にした上で、次回のアラート情報取得時の取得対象時間を自動的に設定します。「$filter=createdDateTime gt」「$orderby=createdDateTime asc」の詳細については、以下をご参照ください。
https://learn.microsoft.com/ja-jp/graph/query-parameters
[LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]については、「前回実行時間のオーバーライド」にて説明します。
- https://graph.microsoft.com/v1.0/security/alerts_v2:アラート情報の取得先です。詳細については、以下をご参照ください。
- 認証使用:「OAuth2.0 client-credentials」を設定します。
- Access Token url:「https://login.microsoftonline.com/{テナント名}/oauth2/v2.0/token」を設定します。{テナント名}には利用するテナント毎の設定値を入れてください。
- Authorization Header(opt):ログインID、パスワード共に空欄のままとします。
- Content-Type:「application/x-www-form-urlencoded」を設定し、keyとvalueを以下の通りに4つ設定します。
- keyは「Grant_Type」、valueは「client_credentials」
- keyは「Scope」、valueは「https://graph.microsoft.com/.default」
- keyは「client_Id」、valueは手順 1.Microsoft Entra IDでアプリを登録する > 5 にて確認したアプリケーションIDを設定します。
- keyは「Client_Secret」、valueは手順 3.Microsoft Entra IDで登録したアプリにクライアントシークレットを追加する > 4 にて確認したクライアントシークレットの「値」を設定します。
- Proxy選択:インターネット接続時にProxyを利用する場合は「使用」を選択し、Proxy接続情報を設定します。
- METRICSパス:「$['value']」を設定します。
- 前回実行時間のオーバーライド:「XPATH」を選択し、「$['value'][-1]['createdDateTime']」を設定します。これによってcreatedDateTimeの昇順で取得されたJSONデータの内、最後のJSONに含まれるcreatedDateTimeの値を次回METRICS収集実行のパラメータ「[LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]」に代入します。例えば、最後のJSONに含まれるcreatedDateTimeの値が「2024-05-31T05:05:24.1266667Z」の場合、次回METRICS収集では「https://graph.microsoft.com/v1.0/security/alerts_v2?$filter=createdDateTime+gt+2024-05-31T05%3A05%3A24.1266667Z&$orderby=createdDateTime+asc」にてリクエストします。
※実際のリクエストでは半角スペースが「+」に変換され「:」が「%3A」にエンコードされています。また、リクエスト時の時刻はUTCです。
以下は注意事項となります。- METRICS収集の初回実行時には実行処理時間から1時間前の情報を取得します。初回実行から一度もアラート情報を取得出来ない場合は、常に実行処理時間から1時間前をパラメータ「[LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]」に設定しリクエストします。
- 「[LXT,yyyy-MM-dd'T'HH:mm:ss.SSSSSSS'Z',,]」はアラート情報が取得出来ない場合は更新されません。例えば「https://graph.microsoft.com/v1.0/security/alerts_v2?$filter=createdDateTime+gt+2024-05-31T05%3A05%3A24.1266667Z&$orderby=createdDateTime+asc」のリクエストにてcreatedDateTimeが含まれない場合、次回METRCIS収集では同じパラメータでリクエストします。
- Microsoft側の仕様でcreatedDateTimeが同一のアラート情報が生成される場合、LogStare Collectorでの収集処理のタイミングによっては取得出来ないアラート情報が発生する場合があります。
- 検知タイプ:「マッチング検知」を設定します。
- マッチング検知:アラート条件を設定します。アラートメール通知を行うためには環境設定にて通知設定を行う必要があります。環境設定の詳細につきましては、下記の記事をご参照ください。アラートが必要ない場合は設定の必要はありません。
LogStare Collector における環境設定について - アラートメール送信先:当該収集項目におけるアラートメール送信先を設定します。詳細につきましては下記の記事をご参照ください。
アラートメールの仕様(環境設定/個別設定) - テストボタン:設定した認証情報を基にログが収集できるかどうかテストします。以下の様に「Retrieving data succeeded!」が表示されることを確認してください。表示されない場合は、設定情報が正しいかをご確認ください。
- 右下の「追加」を押下すると追加確認画面が表示されますので「はい」をクリックします。
- LogStare CollectorにてMicrosoft Defenderのアラート情報を取得する設定を追加します。インストール手順につきましては、以下を参照してください。
取得したログについて
- 取得したログは「検索・ダウンロード」にて確認することができます。「検索・ダウンロード」につきましては以下の記事を参照してください。
LogStare Collector における検索・ダウンロード画面について - 以下はLogStare Collector上で取得したMicrosoft Defenderのアラート情報です。
ログレポート
Microsoft DefenderのアラートログレポートをLogStare Reporter または LogStare Quintにて生成することができます。
レポート例
アラートログを日付別で集計したレポートです。インシデント件数、アラート種別件数、アラートデータのログ件数を日付単位で集約したレポートで、その他、時間帯別、重要度別のレポートも提供できます。
LogStare Reporterは、Collectorが収集したログデータのレポート作成や、監視データとの相関分析、高度な複合条件によるアラート通知などを行なうSaaS型のログ分析システムです。詳細については下記よりお問い合わせください。
お問い合わせ | AI予測・システム監視・ログ管理を統合したセキュリティ・プラットフォーム LogStare(ログステア)
以上でMicrosoft Graph APIを利用してMicrosoft Defenderのアラート情報を取得する方法についての説明は終了です。
記載されている会社名、システム名、製品名は一般に各社の登録商標または商標です。
当社製品以外のサードパーティ製品の設定内容につきましては、弊社サポート対象外となります。