Microsoft Sentinel ログを収集する

以下でサポートされています。

概要

このパーサーは、Microsoft Sentinel JSON ログからフィールドを抽出し、IP アドレスの抽出や文字列操作などの変換を実行し、抽出されたデータを UDM にマッピングします。これには、principal、target、security_result、metadata フィールドが含まれます。また、さまざまなデータ型を処理し、抽出されたエンティティを UDM 構造に統合します。

始める前に

  • Google SecOps インスタンスがあることを確認します。
  • Microsoft Sentinel へのアクセス。

Microsoft Sentinel ログを取り込むように Google SecOps でフィードを構成する

  1. [SIEM 設定] > [フィード] に移動します。
  2. [新しく追加] をクリックします。
  3. [フィード名] フィールドに、フィードの名前を入力します(例: Microsoft Sentinel ログ)。
  4. [ソースタイプ] として [Webhook] を選択します。
  5. [ログタイプ] として [Microsoft Sentinel] を選択します。
  6. [次へ] をクリックします。
  7. 省略可: 次の入力パラメータの値を指定します。
    • 分割区切り文字: ログ行を区切るために使用される区切り文字(\n など)。
    • アセットの名前空間: アセットの名前空間
    • 取り込みラベル: このフィードのイベントに適用されるラベル。
  8. [次へ] をクリックします。
  9. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。
  10. [秘密鍵を生成する] をクリックして、このフィードを認証するためのシークレット キーを生成します。
  11. このシークレットは再び表示できないため、秘密鍵をコピーして保存します。新しい秘密鍵を再度生成できますが、秘密鍵を再生成すると、以前の秘密鍵は無効になります。
  12. [詳細] タブで、[エンドポイント情報] フィールドから、フィードのエンドポイント URL をコピーします。このエンドポイント URL は、クライアント アプリケーションで指定する必要があります。
  13. [完了] をクリックします。

Webhook フィードの API キーを作成する

  1. Google Cloud コンソール > [認証情報] に移動します。

    [認証情報] に移動

  2. [認証情報を作成] をクリックして [API キー] を選択します。

  3. API キーによる Google Security Operations API へのアクセスを制限します。

エンドポイント URL を指定する

  1. クライアント アプリケーションで、Webhook フィードで指定された HTTPS エンドポイント URL を指定します。
  2. カスタム ヘッダーの一部として 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 を構成する手順は次のとおりです。

  1. Azure Portal にログインします。
  2. [リソースを作成] をクリックします。
  3. Logic App を検索します。
  4. [作成] をクリックして作成プロセスを開始します。
  5. 次の入力パラメータの値を指定します。
    • サブスクリプション: サブスクリプションを選択します。
    • リソース グループ: リソース グループを選択します。
    • 名前: Logic App の名前を入力します。
    • リージョン: リージョンを選択します。
    • Log Analytics ワークスペース: Log Analytics ワークスペースを選択します。
  6. [Review + create] をクリックします。
  7. [作成] をクリックします。
  8. Logic App が作成されたら、[リソースに移動] をクリックします。
  9. [開発ツール] > [Logic App Designer] をクリックします。
  10. [トリガーを追加] をクリックします。
  11. [Microsoft Sentinel] を検索します。
  12. トリガーとして [Microsoft Sentinel インシデント] を選択します。
  13. Microsoft Sentinel への接続をまだ作成していない場合は、ここで作成する必要があります。[新規作成] をクリックし、画面の指示に沿って認証します。
  14. [新しいステップを挿入] をクリックします。
  15. [アクションを追加] をクリックします。
  16. HTTP」を検索して、アクションとして選択します。
  17. 次の入力パラメータの値を指定します。
    • URI: フィードのエンドポイント URL。
    • メソッド: POST
    • ヘッダー: 次のヘッダーを追加します。
      • Content-Type: application/json
      • X-goog-api-key: Google Security Operations の認証に使用する API キー。
      • X-Webhook-Access-Key: フィードの認証用に生成したシークレット キー。

Microsoft Sentinel アラート用に Logic App を構成する

Microsoft Sentinel アラート用の Logic App を構成する手順は次のとおりです。

  1. Azure ポータルのホームページに移動します。
  2. [リソースを作成] をクリックします。
  3. Logic App を検索します。
  4. [作成] をクリックして作成プロセスを開始します。
  5. 次の入力パラメータの値を指定します。
    • サブスクリプション: サブスクリプションを選択します。
    • リソース グループ: リソース グループを選択します。
    • 名前: Logic App の名前を入力します。
    • リージョン: リージョンを選択します。
    • Log Analytics ワークスペース: Log Analytics ワークスペースを選択します。
  6. [Review + create] をクリックします。
  7. [作成] をクリックします。
  8. Logic App が作成されたら、[リソースに移動] をクリックします。
  9. [開発ツール] > [Logic App Designer] をクリックします。
  10. [トリガーを追加] をクリックします。
  11. [Microsoft Sentinel] を検索します。
  12. トリガーとして [Microsoft Sentinel アラート] を選択します。
  13. Microsoft Sentinel への接続をまだ作成していない場合は、ここで作成する必要があります。[新規作成] をクリックし、画面の指示に沿って認証します。
  14. [新しいステップを挿入] をクリックします。
  15. [アクションを追加] をクリックします。
  16. HTTP」を検索して、アクションとして選択します。
  17. 次の入力パラメータの値を指定します。
    • URI: フィードのエンドポイント URL。
    • メソッド: POST
    • ヘッダー: 次のヘッダーを追加します。
      • Content-Type: application/json
      • X-goog-api-key: Google Security Operations の認証に使用する API キー。
      • X-Webhook-Access-Key: フィードの認証用に生成したシークレット キー。

Microsoft Sentinel の自動化ルールを構成する

Microsoft Sentinel の自動化ルールを構成する手順は次のとおりです。

  1. Microsoft Sentinel ワークスペースに移動します。
  2. [構成] > [自動化] をクリックします。
  3. [作成] をクリックします。
  4. [自動化ルール] を選択します。
  5. 次の入力パラメータの値を指定します。
    • 名前: 自動化ルールの名前を入力します。
    • トリガー: [インシデント作成時] を選択します。
    • アクション: [Playbook を実行] > [インシデント用に作成された Logic App] を選択します。
  6. [適用] をクリックします。
  7. [作成] をクリックします。
  8. [自動化ルール] を選択します。
  9. 次の入力パラメータの値を指定します。
    • 名前: 自動化ルールの名前を入力します。
    • トリガー: [インシデントが更新されたとき] を選択します。
    • 条件: [追加] > [条件(AND)] > [ステータス] > [変更済み] をクリックします。
    • アクション: [Playbook を実行] > [インシデント用に作成された Logic App] を選択します。
  10. [適用] をクリックします。
  11. [作成] をクリックします。
  12. [自動化ルール] を選択します。
  13. 次の入力パラメータの値を指定します。
    • 名前: 自動化ルールの名前を入力します。
    • トリガー: [アラートの作成時] を選択します。
    • アクション: [Playbook を実行] > [アラート用に作成された Logic App] を選択します。
  14. [適用] をクリックします。

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_idtarget.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_timestampevents.timestamp 直接マッピング。
VendorName metadata.vendor_name 直接マッピング。
VendorOriginalId additional.fields.VendorOriginalId 直接マッピング。
_time metadata.event_timestampevents.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」が「null 以外」で、イベントの「principal」または「target」のいずれかが「null 以外」の場合、「metadata.event_type」を「USER_RESOURCE_ACCESS」にマッピングします。

2023-08-31

  • 新しく作成されたパーサー。