Cloudflare Page Shield のログを収集する

パーサーのバージョン: 1.0

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

このドキュメントでは、Amazon S3 を使用して Cloudflare Page Shield ログを Google Security Operations に取り込む方法について説明します。

Page Shield は、ウェブサイトの訪問者が読み込んだリソース(スクリプト、接続、Cookie など)の管理に役立ちます。リソースが変更された場合や、悪意があると見なされた場合に、アラート通知をトリガーします。

始める前に

  • Google SecOps インスタンス
  • Page Shield が有効になっている Cloudflare アカウント
  • Cloudflare ダッシュボードへの特権アクセス
  • AWS(S3、IAM)への特権アクセス

このオプションでは、Cloudflare Logpush を使用して Page Shield イベントを Amazon S3 にエクスポートし、Google SecOps がそれを取り込みます。

Page Shield を有効にする

  1. Cloudflare ダッシュボードにログインします。
  2. アカウントとドメインを選択します。
  3. [Security] > [Page Shield] に移動します。
  4. [Enable Page Shield] をクリックします。

Amazon S3 バケットを作成する

  1. Amazon S3 コンソールを開きます。
  2. [バケットを作成] をクリックします。
  3. 次の構成情報を指定します。
    • バケット名: バケットにわかりやすい名前を入力します(例: cloudflare-pageshield-logs)。
    • リージョン: 任意の AWS リージョン(us-east-1 など)を選択します。
  4. [作成] をクリックします。
  5. 後で参照できるように、バケット名とリージョンを保存します。

S3 アクセス権を持つ IAM ユーザーを作成する

  1. IAM コンソールを開きます。
  2. [ユーザー] > [ユーザーを追加] をクリックします。
  3. ユーザー名を入力します(例: chronicle-s3-user)。
  4. [プログラマティック アクセス] を選択します。
  5. [Next: Permissions] をクリックします。
  6. [既存のポリシーを直接アタッチする] を選択します。
  7. AmazonS3FullAccess ポリシーを検索して選択します。
  8. [Next: Tags] をクリックします。
  9. [次へ: 確認] をクリックします。
  10. [Create user] をクリックします。
  11. [.csv ファイルをダウンロード] をクリックして、[アクセスキー ID] と [シークレット アクセスキー] を保存します。

Cloudflare の S3 バケット ポリシーを構成する

  1. Amazon S3 コンソールで、バケットを選択します。
  2. [権限] > [バケット ポリシー] をクリックします。
  3. [編集] をクリックします。
  4. 次のポリシーを貼り付けます。<BUCKET_NAME> はバケット名に置き換えます。

    {
      "Id": "Policy1506627184792",
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "Stmt1506627150918",
          "Action": ["s3:PutObject"],
          "Effect": "Allow",
          "Resource": "arn:aws:s3:::<BUCKET_NAME>/*",
          "Principal": {
            "AWS": ["arn:aws:iam::391854517948:user/cloudflare-logpush"]
          }
        }
      ]
    }
    
  5. [変更を保存] をクリックします。

Cloudflare Logpush ジョブを作成する

  1. Cloudflare ダッシュボードにログインします。
  2. アカウントとドメインを選択します。
  3. [Analytics & Logs] > [Logs] に移動します。
  4. [Create a Logpush job] をクリックします。
  5. [Select a destination] で [Amazon S3] を選択します。
  6. 次の宛先情報を入力します。
    • バケット名: S3 バケット名を入力します(例: cloudflare-pageshield-logs)。
    • バケットのリージョン: S3 バケットに一致するリージョンを選択します。
    • バケットパス(省略可): パス接頭辞を入力します(例: pageshield/)。
  7. [続行] をクリックします。
  8. 所有権を証明するため、Cloudflare から指定された宛先にファイルが送信されます。トークンを確認するには、所有権の確認ファイルの [Overview] タブで [Open] ボタンを選択し、Cloudflare ダッシュボードに貼り付けて、バケットへのアクセス権を確認します。所有権トークンを入力し、[Continue] を選択します。
  9. [データセットを選択] で、[Page Shield イベント] を選択します。
  10. [次へ] をクリックします。
  11. Logpush ジョブを構成します。
    • ジョブ名: わかりやすい名前を入力します(例: pageshield-to-s3)。
    • If logs match: すべてのイベントを含める場合は空のままにします。必要に応じてフィルタを構成します。
    • 次のフィールドを送信: [すべてのフィールド] を選択するか、特定のフィールドを選択します。
  12. [送信] をクリックします。

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

  1. [設定] > [データ管理] > [フィード] に移動します。SIEM のみのプラットフォームを使用している場合は、[設定] > [フィード] に移動します。
  2. [Add New Feed] をクリックします。
  3. 次のページで、[単一のフィードを構成する] をクリックします。
  4. [フィード名] フィールドに、フィードの名前を入力します(例: Cloudflare Page Shield S3)。
  5. [ソースタイプ] として [Amazon S3 V2] を選択します。
  6. [ログタイプ] として [Cloudflare Page Shield] を選択します。
  7. [次へ] をクリックします。
  8. 次の入力パラメータの値を指定します。

    • S3 URI: バケット URI を s3://<BUCKET_NAME>/<BUCKET_PATH>/ の形式で入力します。

    • Source deletion option: 必要に応じて削除オプションを選択します。

      • なし: 転送後にファイルを削除しません。
      • 転送されたファイルを削除する: 転送が完了した後にファイルを削除します。
      • 転送されたファイルと空のディレクトリを削除する: 転送が成功した後にファイルと空のディレクトリを削除します。
    • ファイルの最長存続期間: 過去数日間に変更されたファイルを含めます。デフォルトは 180 日です。

    • アクセスキー ID: S3 バケットにアクセスできるユーザー アクセスキー。

    • シークレット アクセスキー: S3 バケットにアクセスできるユーザーのシークレット キー。

    • Asset namespace: アセットの名前空間。

    • Ingestion labels: このフィードのイベントに適用されるラベル。

  9. [次へ] をクリックします。

  10. [Finalize] 画面で新しいフィードの設定を確認し、[送信] をクリックします。

UDM マッピング テーブル

ログフィールド UDM マッピング ロジック
URLContainsCDNCGIPath event.idm.read_only_udm.additional.fields.CGI_label URLContainsCDNCGIPath から取得した値。キー「CGI」を持つラベルの string_value として設定されます。
アクション event.idm.read_only_udm.additional.fields.action_label Action から取得された値。キーが「action」のラベルに string_value として設定されます。
resource.first_page_url event.idm.read_only_udm.additional.fields.first_page_label resource.first_page_url から取得した値。キー「first_page_url」のラベルに string_value として設定されます。
resource.last_page_url event.idm.read_only_udm.additional.fields.last_page_label resource.last_page_url から取得した値。キー「last_page_url」のラベルに string_value として設定されます。
name event.idm.read_only_udm.additional.fields.name_label name から取得した値。キー「name」のラベルに string_value として設定されます。
ts event.idm.read_only_udm.metadata.event_timestamp ts(UNIX)からタイムスタンプに変換
event.idm.read_only_udm.metadata.event_type has_principal、has_target、has_target_user に基づいて派生します。プリンシパルとターゲットの両方が存在する場合は NETWORK_CONNECTION、target_user が存在する場合は USER_UNCATEGORIZED、プリンシパルが存在する場合は STATUS_UPDATE、それ以外の場合は GENERIC_EVENT です。
resource.url event.idm.read_only_udm.network.http.referral_url resource.url から取得された値
ホスト event.idm.read_only_udm.principal.asset.hostname Host または host.hostname から取得された値
ホスト event.idm.read_only_udm.principal.hostname Host または host.hostname から取得された値
alert_type event.idm.read_only_udm.principal.resource.attribute.labels.alert_type_label alert_type から取得された値。キー「alert_type」のラベルの値として設定されます。
resource.cryptomining_score event.idm.read_only_udm.principal.resource.attribute.labels.crypto_label resource.cryptomining_score から取得した値。キー「cryptominingscore%{index2}」のラベルの値として設定されます。
resource.dataflow_score event.idm.read_only_udm.principal.resource.attribute.labels.dataflow_label resource.dataflow_score から取得した値。キー「dataflowscore%{index2}」のラベルの値として設定されます。
policie.description event.idm.read_only_udm.principal.resource.attribute.labels.desc_label policie.description から取得した値。キー「description_%{index}」のラベルの値として設定されます。
version.fetched_at event.idm.read_only_udm.principal.resource.attribute.labels.fetched_at_label version.fetched_at から取得した値。キー「fetchedat%{index2}」を持つラベルの値として設定されます。
version.hash event.idm.read_only_udm.principal.resource.attribute.labels.hash_label version.hash から取得した値。キー「hash_%{index2}」のラベルの値として設定されます。
policie.id event.idm.read_only_udm.principal.resource.attribute.labels.id_label policie.id から取得した値。キー「policyid%{index}」を持つラベルの値として設定されます。
data.options.remove_dashboard_links event.idm.read_only_udm.principal.resource.attribute.labels.remove_dash_label data.options.remove_dashboard_links から取得した値。キー「remove_dashboard_links」のラベルの値として設定されます。
resource.resource_type event.idm.read_only_udm.principal.resource.attribute.labels.res_type_label resource.resource_type から取得した値。キー「resourcetype%{index2}」のラベルの値として設定されます。
data.type event.idm.read_only_udm.principal.resource.attribute.labels.type_label data.type から取得した値。キー「type」を持つラベルの値として設定されます。
data.zones event.idm.read_only_udm.principal.resource.attribute.labels.zones_label data.zones から取得した値。キー「zones」を持つラベルの値として設定されます。
resource.id event.idm.read_only_udm.principal.resource.id resource.id から取得された値
PageURL event.idm.read_only_udm.principal.url PageURL から取得した値
account_id event.idm.read_only_udm.principal.user.product_object_id account_id から取得された値
policy_id event.idm.read_only_udm.security_result.detection_fields.policy_id_label policy_id から取得した値。キー「policy_id」のラベルの値として設定されます。
policy_name event.idm.read_only_udm.security_result.detection_fields.policy_name_label policy_name から取得した値。キー「policy_name」のラベルの値として設定されます。
テキスト event.idm.read_only_udm.security_result.description テキストから取得された値
resource.first_seen_at event.idm.read_only_udm.security_result.first_discovered_time resource.first_seen_at から ISO8601 タイムスタンプに変換
PolicyID event.idm.read_only_udm.security_result.rule_name PolicyID から取得された値
data.severity event.idm.read_only_udm.security_result.severity data.severity から派生: 「INFO」の場合は「INFORMATIONAL」、「WARN」の場合は「MEDIUM」、それ以外の場合は「UNKNOWN_SEVERITY」
URL event.idm.read_only_udm.target.url URL から取得した値
URLHost event.idm.read_only_udm.target.user.email_addresses メールパターンと一致する場合、URLHost から取得された値

変更ログ

このパーサーの変更ログを表示する

さらにサポートが必要な場合 コミュニティ メンバーや Google SecOps のプロフェッショナルから回答を得ることができます。