Sysdig ログを収集する

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

このパーサーは、Sysdig JSON ログからセキュリティ イベントデータを抽出し、未加工のログフィールドを変換して Google Security Operations UDM 形式にマッピングします。メタデータ、プリンシパル/ターゲット情報、セキュリティ結果の詳細、Kubernetes 関連のコンテキストなど、さまざまなフィールドを処理し、Google SecOps 内で分析するためのデータを拡充します。また、パーサーは、フィールド値に基づいてデータ型の変換、エラー処理、条件付きロジックも実行し、正確で包括的な UDM 表現を実現します。

始める前に

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

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

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

    [認証情報] に移動

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

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

オプション 1

Google SecOps で Webhook フィードを構成して Sysdig ログを取り込む

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

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

  1. クライアント アプリケーションで、Webhook フィードで指定された HTTPS エンドポイント URL を指定します。
  2. 次の形式でカスタム ヘッダーの一部として API キーとシークレット キーを指定して、認証を有効にします。

    X-goog-api-key = API_KEY
    X-Webhook-Access-Key = SECRET
    

    推奨事項: API キーは URL ではなくヘッダーとして指定してください。

  3. Webhook クライアントがカスタム ヘッダーをサポートしていない場合は、次の形式のクエリ パラメータを使用して API キーとシークレット キーを指定できます。

    ENDPOINT_URL?key=API_KEY&secret=SECRET
    

    次のように置き換えます。

    • ENDPOINT_URL: フィードのエンドポイント URL。
    • API_KEY: Google SecOps に対する認証に使用する API キー。
    • SECRET: フィードの認証用に生成したシークレット キー。

Sysdig で Webhook を構成する

  1. 管理者権限で Sysdig Secure にログインします。
  2. [プロフィール] > [設定] > [イベント転送] に移動します。
  3. [+ 統合を追加] をクリックし、プルダウンから [Webhook] を選択します。
  4. 次の入力パラメータの値を指定します。

    • 統合名: Webhook のわかりやすい名前を入力します(例: Google SecOps Webhook)。
    • エンドポイント: Webhook <ENDPOINT_URL> に続けて <API_KEY<SECRET> を入力します。
    • 送信するデータ: 転送する Sysdig データの種類をプルダウンから選択します。

    • 統合をテストしてから、[有効] を切り替えて有効にします。

    • [保存] をクリックします。

オプション 2

データを Google SecOps に直接転送する

  1. 管理者の認証情報を使用して Sysdig Secure にログインします。
  2. [設定] > [イベント転送] に移動します。
  3. [+ 統合を追加] をクリックし、プルダウンから [Google Chronicle] を選択します。
  4. 次の入力パラメータの値を指定します。
    • 統合名: 統合のわかりやすい名前を入力します(例: Google SecOps 統合)。
    • お客様 ID: GCP アカウントに関連付けられている Google お客様 ID。(Google SecOps では、[設定] > [プロファイル] で確認できます)。
    • Namespace: 省略可。タグとして使用して、インデックス登録と拡充に適したデータドメインを識別します。
    • JSON 認証情報: Google SecOps JSON 認証情報をアップロードします。
    • リージョン: 米国、ヨーロッパ、アジアなどのリージョンを選択します。
    • 送信するデータ: 転送する Sysdig データの種類をプルダウンから選択します。
    • 統合をテストしてから、[有効] を切り替えて有効にします。
    • [保存] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
agentId read_only_udm.metadata.product_deployment_id 元のログの agentId の値は、この UDM フィールドに直接マッピングされます。
category read_only_udm.security_result.category_details 元のログの category の値は、この UDM フィールドに直接マッピングされます。
content.fields.container.id read_only_udm.target.asset.asset_id 元のログの content.fields.container.id の値に「container_id:」が追加され、この UDM フィールドにマッピングされます。containerId が空の場合に使用されます。
content.fields.container.image.repository read_only_udm.target.file.full_path 元のログの content.fields.container.image.repository の値は、この UDM フィールドに直接マッピングされます。
content.fields.container.image.tag read_only_udm.metadata.ingestion_labels.value(キーが tag の場合) 元のログの content.fields.container.image.tag の値は、この UDM フィールドに直接マッピングされます。
content.fields.evt.res read_only_udm.metadata.ingestion_labels.value(キーが evt_res の場合) 元のログの content.fields.evt.res の値は、この UDM フィールドに直接マッピングされます。
content.fields.evt.type read_only_udm.metadata.event_type 元のログの content.fields.evt.type の値は、この UDM フィールドに直接マッピングされます。
content.fields.falco.rule read_only_udm.security_result.rule_name 元のログの content.fields.falco.rule の値は、この UDM フィールドに直接マッピングされます。content.ruleName が空の場合に使用されます。
content.fields.group.gid read_only_udm.target.group.product_object_id 元のログの content.fields.group.gid の値は、この UDM フィールドに直接マッピングされます。
content.fields.group.name read_only_udm.target.group.group_display_name 元のログの content.fields.group.name の値は、この UDM フィールドに直接マッピングされます。
content.fields.proc.cmdline read_only_udm.target.process.command_line 元のログの content.fields.proc.cmdline の値は、この UDM フィールドに直接マッピングされます。
content.fields.proc.pcmdline read_only_udm.target.process.parent_process.command_line 元のログの content.fields.proc.pcmdline の値は、この UDM フィールドに直接マッピングされます。
content.fields.proc.pid read_only_udm.target.process.pid 元のログの content.fields.proc.pid の値は、この UDM フィールドに直接マッピングされます。
content.fields.proc.ppid read_only_udm.target.process.parent_process.pid 元のログの content.fields.proc.ppid の値は、この UDM フィールドに直接マッピングされます。
content.fields.proc.sid read_only_udm.metadata.ingestion_labels.value(キーは sid 元のログの content.fields.proc.sid の値は、この UDM フィールドに直接マッピングされます。
content.fields.user.loginname read_only_udm.principal.user.user_display_name 元のログの content.fields.user.loginname の値は、この UDM フィールドに直接マッピングされます。
content.fields.user.uid read_only_udm.principal.user.userid 元のログの content.fields.user.uid の値は、この UDM フィールドに直接マッピングされます。
content.output read_only_udm.additional.fields.value.string_value(キーが content_output の場合) 元のログの content.output の値は、この UDM フィールドに直接マッピングされます。
content.policyId read_only_udm.security_result.rule_id 元のログの content.policyId の値は、この UDM フィールドに直接マッピングされます。
content.policyOrigin read_only_udm.additional.fields.value.string_value(キーが content_policyOrigin の場合) 元のログの content.policyOrigin の値は、この UDM フィールドに直接マッピングされます。
content.policyVersion read_only_udm.additional.fields.value.string_value(キーが content_policyVersion の場合) 元のログの content.policyVersion の値は、この UDM フィールドに直接マッピングされます。
content.ruleName read_only_udm.security_result.rule_name 元のログの content.ruleName の値は、この UDM フィールドに直接マッピングされます。
content.ruleTags read_only_udm.security_result.rule_labels 元のログの content.ruleTags 配列の値は、この UDM フィールドにマッピングされ、キーは「ruletag_index」として動的に生成されます。
content.ruleType read_only_udm.additional.fields.value.string_value(キーは content_ruleType 元のログの content.ruleType の値は、この UDM フィールドに直接マッピングされます。
containerId read_only_udm.target.asset.asset_id 元のログの containerId の値に「container_id:」が追加され、この UDM フィールドにマッピングされます。
description read_only_udm.metadata.description 元のログの description の値は、この UDM フィールドに直接マッピングされます。
id read_only_udm.metadata.product_log_id 元のログの id の値は、この UDM フィールドに直接マッピングされます。
labels.container.label.io.kubernetes.container.name read_only_udm.additional.fields.value.string_value(キーが container_name の場合) 元のログの labels.container.label.io.kubernetes.container.name の値は、この UDM フィールドに直接マッピングされます。
labels.container.label.io.kubernetes.pod.name read_only_udm.additional.fields.value.string_value(キーが pod_name の場合) 元のログの labels.container.label.io.kubernetes.pod.name の値は、この UDM フィールドに直接マッピングされます。labels.kubernetes.pod.name が空の場合に使用されます。
labels.container.label.io.kubernetes.pod.namespace read_only_udm.principal.namespace 元のログの labels.container.label.io.kubernetes.pod.namespace の値は、この UDM フィールドに直接マッピングされます。labels.kubernetes.namespace.name が空の場合に使用されます。
labels.aws.instanceId read_only_udm.target.resource.product_object_id 元のログの labels.aws.instanceId の値は、この UDM フィールドに直接マッピングされます。
labels.aws.region read_only_udm.target.resource.attribute.cloud.availability_zone 元のログの labels.aws.region の値は、この UDM フィールドに直接マッピングされます。
labels.host.hostName read_only_udm.principal.ip または read_only_udm.principal.hostname 値に「ip」が含まれている場合、IP アドレスとして解析され、principal.ip にマッピングされます。それ以外の場合は principal.hostname にマッピングされます。
labels.host.mac read_only_udm.principal.mac 元のログの labels.host.mac の値は、この UDM フィールドに直接マッピングされます。machineId が空の場合に使用されます。
labels.kubernetes.cluster.name read_only_udm.additional.fields.value.string_value(キーが kubernetes_cluster_name の場合) 元のログの labels.kubernetes.cluster.name の値は、この UDM フィールドに直接マッピングされます。
labels.kubernetes.deployment.name read_only_udm.additional.fields.value.string_value(キーが kubernetes_deployment_name の場合) 元のログの labels.kubernetes.deployment.name の値は、この UDM フィールドに直接マッピングされます。
labels.kubernetes.namespace.name read_only_udm.principal.namespace 元のログの labels.kubernetes.namespace.name の値は、この UDM フィールドに直接マッピングされます。
labels.kubernetes.node.name read_only_udm.additional.fields.value.string_value(キーは kubernetes_node_name 元のログの labels.kubernetes.node.name の値は、この UDM フィールドに直接マッピングされます。
labels.kubernetes.pod.name read_only_udm.additional.fields.value.string_value(キーが pod_name の場合) 元のログの labels.kubernetes.pod.name の値は、この UDM フィールドに直接マッピングされます。
labels.kubernetes.service.name read_only_udm.additional.fields.value.string_value(キーは kubernetes_service_name 元のログの labels.kubernetes.service.name の値は、この UDM フィールドに直接マッピングされます。
machineId read_only_udm.principal.mac 元のログの machineId の値は、この UDM フィールドに直接マッピングされます。
name read_only_udm.security_result.summary 元のログの name の値は、この UDM フィールドに直接マッピングされます。
severity read_only_udm.security_result.severity 未加工ログの severity の値は、次の範囲に基づいて文字列値にマッピングされます。4 未満 = 高、3 より大きく 6 未満 = 中、6 = 低、7 = 情報。
source read_only_udm.security_result.description 元のログの source の値は、この UDM フィールドに直接マッピングされます。
timestampRFC3339Nano read_only_udm.metadata.event_timestamp 未加工ログの timestampRFC3339Nano の値はタイムスタンプとして解析され、この UDM フィールドにマッピングされます。
type read_only_udm.metadata.product_event_type 元のログの type の値は、この UDM フィールドに直接マッピングされます。
(パーサー ロジック) read_only_udm.metadata.product_name 「SYSDIG」にハードコードされました。
(パーサー ロジック) read_only_udm.metadata.vendor_name 「SYSDIG」にハードコードされました。
(パーサー ロジック) read_only_udm.metadata.event_type デフォルトでは「PROCESS_UNCATEGORIZED」に設定されます。labels.host.hostName が空の場合は「GENERIC_EVENT」に設定されます。
(パーサー ロジック) read_only_udm.metadata.log_type 「SYSDIG」にハードコードされました。
(パーサー ロジック) read_only_udm.target.resource.resource_type labels.aws.instanceId が存在する場合は「CLOUD_PROJECT」に設定します。

変更点

2024-01-05

  • 「severity」が 0、1、2、3 の場合、「security_result.severity」のマッピングを「LOW」から「HIGH」に変更しました。
  • 「severity」が 6 の場合、「security_result.severity」のマッピングを「HIGH」から「LOW」に変更しました。
  • 「severity」が 7 の場合、「security_result.severity」のマッピングを「HIGH」から「INFORMATIONAL」に変更しました。
  • JSON 形式ではないログに「drop」を追加しました。
  • 「timestampRFC3339Nano」の日付マッピングに「on_error」を追加しました。

2022-10-07

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