Microsoft Sentinel のログを収集する
概要
このパーサーは、Microsoft Sentinel JSON ログからフィールドを抽出し、IP アドレスの抽出や文字列操作などの変換を実行し、抽出されたデータを UDM にマッピングします。これには、principal、target、security_result、metadata フィールドが含まれます。また、さまざまなデータ型を処理し、抽出されたエンティティを UDM 構造に統合します。
始める前に
- Google SecOps インスタンスがあることを確認します。
- Microsoft Sentinel へのアクセス権があることを確認します。
Microsoft Sentinel ログを取り込むように Google SecOps でフィードを構成する
- [SIEM 設定] > [フィード] に移動します。
- [新しく追加] をクリックします。
- [フィード名] フィールドに、フィードの名前を入力します(例: Microsoft Sentinel ログ)。
- [Source type] として [Webhook] を選択します。
- [Log type] として [Microsoft Sentinel] を選択します。
- [次へ] をクリックします。
- 省略可: 次の入力パラメータの値を指定します。
- Split delimiter: ログ行を区切るために使用される区切り文字(
\n
など)。 - Asset namespace: アセットの名前空間。
- Ingestion labels: このフィードのイベントに適用されるラベル。
- Split delimiter: ログ行を区切るために使用される区切り文字(
- [次へ] をクリックします。
- [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
- [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
- このシークレットは再び表示できないため、秘密鍵をコピーして保存します。新しい秘密鍵を再度生成できますが、秘密鍵を再生成すると、以前の秘密鍵は無効になります。
- [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。 このエンドポイント URL をクライアント アプリケーション内で指定する必要があります。
- [完了] をクリックします。
Webhook フィード用の API キーを作成する
[Google Cloud コンソール] > [認証情報] に移動します。
[認証情報を作成] をクリックして [API キー] を選択します。
API キーのアクセスを [Google Security Operations API] に制限します。
エンドポイント URL を指定する
- クライアント アプリケーション内で、Webhook フィードで提供される HTTPS エンドポイント URL を指定します。
次の形式でカスタム ヘッダーの一部として API キーと秘密鍵を指定して、認証を有効にします。
X-goog-api-key = API_KEY X-Webhook-Access-Key = SECRET
推奨事項: API キーは URL 内ではなくヘッダーとして指定してください。Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーと秘密鍵を指定できます。
ENDPOINT_URL?key=API_KEY&secret=SECRET
以下を置き換えます。
ENDPOINT_URL
: フィードのエンドポイント URL。API_KEY
: Google Security Operations の認証に使用する API キー。SECRET
: フィードの認証用に生成した秘密鍵。
Microsoft Sentinel インシデント用に Logic App を構成する
Microsoft Sentinel インシデント用の Logic App を構成する手順は次のとおりです。
- Azure Portal にログインします。
- [Create a resource] をクリックします。
- Logic App を検索します。
- [Create] をクリックして作成プロセスを開始します。
- 次の入力パラメータの値を指定します。
- Subscription: サブスクリプションを選択します。
- Resource group: リソース グループを選択します。
- Name: Logic App の名前を入力します。
- Region: リージョンを選択します。
- Log Analytics workspace: Log Analytics ワークスペースを選択します。
- [Review + create] をクリックします。
- [作成] をクリックします。
- Logic App が作成されたら、[Go to resource] をクリックします。
- [Development Tools] > [Logic App Designer] をクリックします。
- [Add a trigger] をクリックします。
- [Microsoft Sentinel] を検索します。
- トリガーとして [Microsoft Sentinel incident] を選択します。
- Microsoft Sentinel への接続をまだ作成していない場合は、ここで作成する必要があります。[Create new] をクリックし、画面の指示に沿って認証します。
- [Insert a new step] をクリックします。
- [Add an action] をクリックします。
- 「HTTP」を検索して、アクションとして選択します。
- 次の入力パラメータの値を指定します。
- URI: フィードのエンドポイント URL。
- Method: POST
- Headers: 次のヘッダーを追加します。
- Content-Type: application/json
- X-goog-api-key: Google Security Operations に対する認証に使用する API キー。
- X-Webhook-Access-Key: フィードの認証用に生成した秘密鍵。
Microsoft Sentinel アラート用に Logic App を構成する
Microsoft Sentinel アラート用の Logic App を構成する手順は次のとおりです。
- Azure ポータルのホームページに移動します。
- [Create a resource] をクリックします。
- Logic App を検索します。
- [Create] をクリックして作成プロセスを開始します。
- 次の入力パラメータの値を指定します。
- Subscription: サブスクリプションを選択します。
- Resource group: リソース グループを選択します。
- Name: Logic App の名前を入力します。
- Region: リージョンを選択します。
- Log Analytics workspace: Log Analytics ワークスペースを選択します。
- [Review + create] をクリックします。
- [作成] をクリックします。
- Logic App が作成されたら、[Go to resource] をクリックします。
- [Development Tools] > [Logic App Designer] をクリックします。
- [Add a trigger] をクリックします。
- [Microsoft Sentinel] を検索します。
- トリガーとして [Microsoft Sentinel alert] を選択します。
- Microsoft Sentinel への接続をまだ作成していない場合は、ここで作成する必要があります。[Create new] をクリックし、画面の指示に沿って認証します。
- [Insert a new step] をクリックします。
- [Add an action] をクリックします。
- 「HTTP」を検索して、アクションとして選択します。
- 次の入力パラメータの値を指定します。
- URI: フィードのエンドポイント URL。
- Method: POST
- Headers: 次のヘッダーを追加します。
- Content-Type: application/json
- X-goog-api-key: Google Security Operations に対する認証に使用する API キー。
- X-Webhook-Access-Key: フィードの認証用に生成した秘密鍵。
Microsoft Sentinel の自動化ルールを構成する
Microsoft Sentinel の自動化ルールを構成する手順は次のとおりです。
- Microsoft Sentinel ワークスペースに移動します。
- [Configuration] > [Automation] をクリックします。
- [作成] をクリックします。
- [Automation rule] を選択します。
- 次の入力パラメータの値を指定します。
- Name: 自動化ルールの名前を入力します。
- Trigger: [When incident is created] を選択します。
- Actions: [Run playbook] > [Logic App created for incidents] を選択します。
- [適用] をクリックします。
- [作成] をクリックします。
- [Automation rule] を選択します。
- 次の入力パラメータの値を指定します。
- Name: 自動化ルールの名前を入力します。
- Trigger: [When incident is updated] を選択します。
- Condition: [Add] > [Condition (And)] > [Status] > [Changed] をクリックします。
- Actions: [Run playbook] > [Logic App created for incidents] を選択します。
- [適用] をクリックします。
- [作成] をクリックします。
- [Automation rule] を選択します。
- 次の入力パラメータの値を指定します。
- Name: 自動化ルールの名前を入力します。
- Trigger: [When alert is created] を選択します。
- Actions: [Run playbook] > [Logic App created for alerts] を選択します。
- [適用] をクリックします。
UDM マッピング テーブル
ログフィールド | UDM マッピング | 論理 |
---|---|---|
AlertGenerationStatus |
security_result.detection_fields.AlertGenerationStatus |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
AlertLink |
principal.labels.AlertLink |
直接マッピングされます。 |
AlertName |
security_result.rule_name |
直接マッピングされます。 |
AlertSeverity |
security_result.severity |
直接マッピングされ、大文字に変換されます。値が HIGH、MEDIUM、LOW、CRITICAL、UNKNOWN_SEVERITY のいずれかの場合、security_result.severity にマッピングされます。それ以外の場合は security_result.severity_details にマッピングされます。 |
AlertType |
security_result.threat_name |
直接マッピングされます。 |
Category |
security_result.detection_fields.Category |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
CompromisedEntity |
principal.resource.attribute.labels.CompromisedEntity |
直接マッピングされます。 |
CompromisedEntityId |
security_result.detection_fields.CompromisedEntityId |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
ConfidenceLevel |
security_result.confidence_details |
直接マッピングされます。 |
ConfidenceScore |
security_result.detection_fields.ConfidenceScore |
直接マッピングされます。 |
cribl_pipe |
additional.fields.cribl_pipe |
直接マッピングされます。 |
Description |
security_result.description |
直接マッピングされます。 |
DestinationDevice |
security_result.detection_fields.DestinationDevice または target.ip |
JSON 解析後に ExtendedProperties フィールドからマッピングされます。値が有効な IP アドレスの場合は、target.ip にマッピングされます。それ以外の場合は、検出フィールドとしてマッピングされます。 |
DestinationDeviceAddress |
target.ip |
JSON 解析後に ExtendedProperties フィールドからマッピングされます(有効な IP アドレスの場合のみ)。 |
DeviceId |
security_result.detection_fields.DeviceId |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
DisplayName |
security_result.summary |
直接マッピングされます。 |
EndTime |
about.labels.EndTime |
直接マッピングされます。 |
Entities.Address |
principal.asset.ip |
JSON 解析後に Entities 配列から抽出されます。IP アドレスのみがマッピングされます。 |
Entities.HostName |
principal.asset.hostname または principal.asset.ip |
JSON 解析後に Entities 配列から抽出されます。値が有効な IP アドレスの場合は、principal.asset.ip にマッピングされます。それ以外の場合は principal.asset.hostname にマッピングされます。 |
Entities.IoTDevice.DeviceId |
security_result.detection_fields.IoTDeviceID |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.DeviceType |
security_result.detection_fields.IoTDeviceType |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.DeviceTypeId |
security_result.detection_fields.IoTDeviceTypeId |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.Importance |
security_result.detection_fields.IoTDeviceImportance |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.IoTSecurityAgentId |
security_result.detection_fields.IoTSecurityAgentId |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.Manufacturer |
security_result.detection_fields.IoT Manufacturer |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.OperatingSystem |
principal.asset.platform_software.platform_version |
JSON 解析後に Entities 配列から抽出された値。末尾のスペースは削除されます。 |
Entities.IoTDevice.PurdueLayer |
security_result.detection_fields.IoT PurdueLayer |
JSON 解析後に Entities 配列から抽出されます。 |
Entities.IoTDevice.Sensor |
security_result.detection_fields.IoT Sensor |
JSON 解析後に Entities 配列から抽出されます。 |
ExtendedProperties.Protocol |
security_result.detection_fields.Protocol |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
ExtendedProperties.SensorId |
security_result.detection_fields.SensorId |
JSON 解析後に ExtendedProperties フィールドから直接マッピングされます。 |
ExtendedProperties.SourceDevice |
principal.ip または security_result.detection_fields.SourceDevice |
JSON 解析後に ExtendedProperties フィールドからマッピングされます。値が有効な IP アドレスの場合は、principal.ip にマッピングされます。それ以外の場合は、検出フィールドとしてマッピングされます。 |
ExtendedProperties.SourceDeviceAddress |
principal.ip |
JSON 解析後に ExtendedProperties フィールドからマッピングされます(有効な IP アドレスの場合のみ)。 |
IsIncident |
security_result.detection_fields.IsIncident |
直接マッピングされ、文字列に変換されます。 |
ProcessingEndTime |
about.labels.ProcessingEndTime |
直接マッピングされます。 |
ProductComponentName |
principal.resource.attribute.labels.ProductComponentName |
直接マッピングされます。 |
ProductName |
principal.resource.attribute.labels.ProductName |
直接マッピングされます。 |
ProviderName |
principal.resource.attribute.labels.ProviderName |
直接マッピングされます。 |
ResourceId |
principal.resource.product_object_id 、target.resource.name |
直接マッピングされます。 |
SourceComputerId |
principal.asset.asset_id |
直接マッピングされ、「SourceComputerId:」が接頭辞として付加されます。 |
SourceSystem |
security_result.detection_fields.SourceSystem |
直接マッピングされます。 |
StartTime |
about.labels.StartTime |
直接マッピングされます。 |
Status |
security_result.detection_fields.Status |
直接マッピングされます。 |
SystemAlertId |
metadata.product_log_id |
直接マッピングされます。 |
Tactics |
security_result.attack_details.tactics.name |
JSON 解析とバックスラッシュの削除後に Tactics フィールドから抽出されます。 |
Techniques |
security_result.attack_details.techniques.id |
JSON 解析とバックスラッシュの削除後に Techniques フィールドから抽出されます。 |
TenantId |
additional.fields.TenantId |
直接マッピングされます。 |
TimeGenerated |
about.labels.TimeGenerated |
直接マッピングされます。 |
timestamp |
metadata.event_timestamp 、events.timestamp |
直接マッピングされます。 |
VendorName |
metadata.vendor_name |
直接マッピングされます。 |
VendorOriginalId |
additional.fields.VendorOriginalId |
直接マッピングされます。 |
_time |
metadata.event_timestamp 、events.timestamp |
UNIX 形式または UNIX_MS 形式を使用してタイムスタンプとして解析されます。 |
(パーサー ロジック) | metadata.event_type |
プリンシパル、ターゲット、ResourceId が存在する場合は「USER_RESOURCE_ACCESS」に設定します。それ以外の場合は、「GENERIC_EVENT」に設定します。 |
(パーサー ロジック) | metadata.log_type |
「MICROSOFT_SENTINEL」に設定します。 |
(パーサー ロジック) | metadata.product_name |
「MICROSOFT_SENTINEL」に設定します。 |
変更
2023-11-03
- 「ResourceId」を「target.resource.name」にマッピングしました。
- 「ResourceId」が「not null」で、イベントの「principal」または「target」のいずれかが「not null」の場合、「metadata.event_type」を「USER_RESOURCE_ACCESS」にマッピングします。
2023-08-31
- 新しく作成されたパーサー。
さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。