Microsoft Graph アクティビティ ログを収集する
概要
このパーサーは、Microsoft Graph アクティビティ ログからフィールドを抽出し、統合データモデル(UDM)に変換します。UDM フィールドを初期化し、ペイロードを解析して、タイムスタンプを抽出し、さまざまなプロパティを UDM フィールドにマッピングし、IP アドレスとポートを処理し、プリンシパルとネットワーク情報の有無に基づいてイベントタイプを分類します。
始める前に
次の前提条件を満たしていることを確認します。
- Google SecOps インスタンス。
- Microsoft Entra ID と Azure ストレージ アカウントへの特権アクセス。
Azure ストレージ アカウントを構成する
- Azure コンソールで、ストレージ アカウントを検索します。
- [作成] をクリックします。
- 次の入力パラメータの値を指定します。
- Subscription: サブスクリプションを選択します。
- リソース グループ: リソース グループを選択します。
- リージョン: リージョンを選択します。
- パフォーマンス: 必要なパフォーマンス レベルを選択します(標準が推奨されます)。
- 冗長性: 必要な冗長性レベルを選択します(GRS または LRS を推奨)。
- ストレージ アカウント名: 新しいストレージ アカウントの名前を入力します。
- [Review + create] をクリックします。
- アカウントの概要を確認して、[作成] をクリックします。
- [ストレージ アカウントの概要] ページで、[セキュリティとネットワーキング] のサブメニュー [アクセスキー] を選択します。
- [key1] または [key2] の横にある [Show] をクリックします。
- [クリップボードにコピー] をクリックして、キーをコピーします。
- キーは、後で参照できるように安全な場所に保存してください。
- [ストレージ アカウントの概要] ページで、[設定] のサブメニュー [エンドポイント] を選択します。
- [クリップボードにコピー] をクリックして、Blob サービス エンドポイント URL(https://
.blob.core.windows.net など)をコピーします。 - エンドポイント URL は、後で参照できるように安全な場所に保存します。
Microsoft Graph アクティビティ ログをストレージ アカウントにエクスポートするように構成する
- Azure コンソールで、[Entra ID] を検索します。
- [モニタリング] > [診断設定] を選択します。
- [+ 診断設定を追加] をクリックします。
- 設定に一意の名前(ms-graph-activity など)を付けます。
- Google SecOps にエクスポートする MicrosoftGraphActivityLog カテゴリを選択します。
- [宛先の詳細] で、[ストレージ アカウントにアーカイブする] を選択します。
- サブスクリプションと、前のステップで作成したストレージ アカウントを選択します。
- [保存] をクリックします。
フィードを設定する
Google SecOps プラットフォームでフィードを設定するには、次の 2 つのエントリ ポイントがあります。
- [SIEM 設定] > [フィード]
- [Content Hub] > [Content Packs]
[SIEM 設定] > [フィード] でフィードを設定する
フィードを構成する手順は次のとおりです。
- [SIEM Settings] > [Feeds] に移動します。
- [Add New Feed] をクリックします。
- 次のページで [単一のフィードを設定] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Microsoft Graph アクティビティ ログ)。
- [ソースタイプ] で [Microsoft Azure Blob Storage] を選択します。
- [ログタイプ] として [Microsoft Graph アクティビティ ログ] を選択します。
- [次へ] をクリックします。
次の入力パラメータの値を指定します。
Azure URI: BLOB エンドポイント URL。
ENDPOINT_URL/BLOB_NAME
次のように置き換えます。
ENDPOINT_URL
: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: BLOB の名前(例: insights-logs-)
URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
Source deletion options: 必要に応じて削除オプションを選択します。
- 共有キー: Azure Blob Storage へのアクセスキー。
[次へ] をクリックします。
[Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
コンテンツ ハブからフィードを設定する
次のフィールドに値を指定します。
- Azure URI: BLOB エンドポイント URL。
ENDPOINT_URL/BLOB_NAME
次のように置き換えます。ENDPOINT_URL
: BLOB エンドポイント URL(https://<storageaccountname>.blob.core.windows.net
)BLOB_NAME
: BLOB の名前(例: insights-logs-)
- URI is a: ログストリームの構成([単一ファイル] | [ディレクトリ] | [サブディレクトリを含むディレクトリ])に応じて URI タイプを選択します。
- Source deletion options: 必要に応じて削除オプションを選択します。
- 共有キー: Azure Blob Storage へのアクセスキー。
詳細オプション
- フィード名: フィードを識別する事前入力された値。
- ソースタイプ: Google SecOps にログを収集するために使用される方法。
- アセットの名前空間: フィードに関連付けられた名前空間。
- Ingestion Labels: このフィードのすべてのイベントに適用されるラベル。
UDM マッピング テーブル
ログフィールド | UDM マッピング | ロジック |
---|---|---|
callerIpAddress |
principal.asset.ip |
未加工ログのフィールド callerIpAddress が UDM フィールドにコピーされます。 |
callerIpAddress |
principal.ip |
未加工ログのフィールド callerIpAddress が UDM フィールドにコピーされます。 |
category |
security_result.category_details |
未加工ログのフィールド category が UDM フィールドにコピーされます。 |
correlationId |
security_result.detection_fields.value |
未加工ログのフィールド correlationId は、キーが correlationId の UDM フィールドにコピーされます。 |
Level |
security_result.detection_fields.value |
未加工ログのフィールド Level は文字列に変換され、キーが Level の UDM フィールドにコピーされます。 |
operationName |
metadata.product_event_type |
未加工ログのフィールド operationName が UDM フィールドにコピーされます。 |
operationVersion |
additional.fields.value.string_value |
未加工ログのフィールド operationVersion は、キーが operationVersion の UDM フィールドにコピーされます。 |
properties.apiVersion |
metadata.product_version |
未加工ログのフィールド properties.apiVersion が UDM フィールドにコピーされます。 |
properties.appId |
target.resource.product_object_id |
未加工ログのフィールド properties.appId が UDM フィールドにコピーされます。 |
properties.atContent |
additional.fields.value.string_value |
未加工ログのフィールド properties.atContent は、キーが atContent の UDM フィールドにコピーされます。 |
properties.clientAuthMethod |
extensions.auth.auth_details |
properties.clientAuthMethod の値に基づいて、UDM フィールドは「Public Client」(0)、「Client ID/Client Secret」(1)、「Client Certificate」(2)に設定されます。 |
properties.clientRequestId |
additional.fields.value.string_value |
未加工ログのフィールド properties.clientRequestId は、キーが clientRequestId の UDM フィールドにコピーされます。 |
properties.durationMs |
network.session_duration.seconds |
未加工ログのフィールド properties.durationMs はミリ秒から秒に変換され、UDM フィールドにコピーされます。 |
properties.identityProvider |
security_result.detection_fields.value |
未加工ログのフィールド properties.identityProvider は、キーが identityProvider の UDM フィールドにコピーされます。 |
properties.ipAddress |
principal.asset.ip |
未加工ログのフィールド properties.ipAddress から IP アドレスが抽出され、UDM フィールドにコピーされます。 |
properties.ipAddress |
principal.ip |
未加工ログのフィールド properties.ipAddress から IP アドレスが抽出され、UDM フィールドにコピーされます。 |
properties.location |
principal.location.name |
未加工ログのフィールド properties.location が UDM フィールドにコピーされます。 |
properties.operationId |
security_result.detection_fields.value |
未加工ログのフィールド properties.operationId は、キーが operationId の UDM フィールドにコピーされます。 |
properties.requestMethod |
network.http.method |
未加工ログのフィールド properties.requestMethod が UDM フィールドにコピーされます。 |
properties.requestId |
metadata.product_log_id |
未加工ログのフィールド properties.requestId が UDM フィールドにコピーされます。 |
properties.responseSizeBytes |
network.received_bytes |
未加工ログのフィールド properties.responseSizeBytes は符号なし整数に変換され、UDM フィールドにコピーされます。 |
properties.responseStatusCode |
network.http.response_code |
未加工ログフィールド properties.responseStatusCode は整数に変換され、UDM フィールドにコピーされます。 |
properties.roles |
additional.fields.value.string_value |
未加工ログのフィールド properties.roles は、キーが roles の UDM フィールドにコピーされます。 |
properties.scopes |
additional.fields.value.string_value |
未加工ログのフィールド properties.scopes は、キーが Scopes の UDM フィールドにコピーされます。 |
properties.servicePrincipalId |
principal.user.userid |
properties.userId が空の場合、未加工ログフィールド properties.servicePrincipalId が UDM フィールドにコピーされます。 |
properties.signInActivityId |
network.session_id |
未加工ログのフィールド properties.signInActivityId が UDM フィールドにコピーされます。 |
properties.tenantId |
metadata.product_deployment_id |
未加工ログのフィールド properties.tenantId が UDM フィールドにコピーされます。 |
properties.tokenIssuedAt |
additional.fields.value.string_value |
未加工ログのフィールド properties.tokenIssuedAt は、キーが tokenIssuedAt の UDM フィールドにコピーされます。 |
properties.userAgent |
network.http.user_agent |
未加工ログのフィールド properties.userAgent が UDM フィールドにコピーされます。 |
properties.userId |
principal.user.userid |
未加工ログのフィールド properties.userId が UDM フィールドにコピーされます。 |
properties.wids |
security_result.detection_fields.value |
未加工ログのフィールド properties.wids は、キーが wids の UDM フィールドにコピーされます。 |
resourceId |
target.resource.attribute.labels.value |
未加工ログのフィールド resourceId は、キーが Resource ID の UDM フィールドにコピーされます。 |
resultSignature |
additional.fields.value.string_value |
未加工ログのフィールド resultSignature は、キーが resultSignature の UDM フィールドにコピーされます。 |
time |
metadata.event_timestamp |
未加工ログのフィールド time が解析されてタイムスタンプに変換され、UDM フィールドにコピーされます。has_principal が true で network.http が空でない場合、UDM フィールド event.idm.read_only_udm.metadata.event_type は「NETWORK_HTTP」に設定されます。has_principal が true で network.http が空の場合、「STATUS_UPDATE」に設定されます。それ以外の場合は、「GENERIC_EVENT」に設定されます。UDM フィールドは「Microsoft Graph」に設定されます。UDM フィールドは「Microsoft」に設定されます。 |
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。