2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Cloudflare の Logpush 出力先に Secureworks Taegis XDR を設定する

Last updated at Posted at 2024-10-30

目的

Secureworks のドキュメントが 2024 年 10 月 10 日に更新されたので、Cloudflare の Logpush 出力先に Secureworks Taegis XDR を設定します。

Secureworks® Taegis™ XDR 3.6.1 ⫘
Thursday, October 10th, 2024

Docs
Cloudflare Integration Guide Updated
Additional guidance has been added to the Cloudflare Integration Guide to make configuration easier.

少し前にリリースのあった HTTP インジェストを活用した設定をおこないます。

Secureworks® Taegis™ XDR 3.4.13 ⫘
Thursday, August 8th, 2024

New Transport Methods Available ⫘
Two new transport methods that can be used for custom data source integrations are now available: HTTP Ingest

Amazon S3 を経由させたログ連携も可能ですが、HTTP インジェストの場合は Amazon S3 が不要です。

image.png

対応している Logpush データセット

以下のドキュメントで確認できます。

CDN datasets

Zero Trust datasets

Secureworks Taegis XDR で HTTP インジェストを設定

以下のドキュメントに従って設定します。

インテグレーション > クラウド API から「HTTP インジェスト」を設定します。

image.png

任意の名前を設定して、完了します。

image.png

Cloudflare Logpush の出力先となる「URL」と認証に必要な「連携キー」が発行されるので、保存して次のステップで使います。

image.png

上記手順を Logpush したいデータセットごとにおこないます。

image.png

Cloudflare で Logpush を設定

以下のドキュメントに従って設定します。

アカウントレベルまたはゾーンレベルのデータセットごとに以下のリンク先から設定します。

Logpush > Create a Logpush job から HTTP destination を選択します。

image.png

「URL」と「連携キー」を使って、以下のような宛先を設定します。

  • 「URL」+ ?header_Authorization=Bearer%20 + 「連携キー」

image.png

その後、データセット・フィールド等を選択して完了します。

image.png
image.png

参考:API で Logpush を設定

API を使っても Logpush を設定できます。

account_level_datasets
# ACCOUNT LEVEL DATASET 
 
export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'
 
export INGESTION_URL=''
export INGESTION_KEY=''

# 全フィールドを指定
export FIELDS=$(curl -s \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/datasets/$DATASET/fields" | jq -r '.result | keys | join(",")')
echo $FIELDS

# Logpush ジョブを作成
curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" -X POST -d '
{                                             
  "name": "secureworks-http-'${DATASET//_/-}'",                                  
  "logpull_options": "fields='$FIELDS'",
  "destination_conf": "'$INGESTION_URL'?header_Authorization=Bearer%20'$INGESTION_KEY'&tags=dataset:'$DATASET'",
  "max_upload_bytes": 5000000,
  "max_upload_records": 1000,
  "dataset": "'$DATASET'",
  "enabled": true
}' \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" | jq

zone_level_datasets
# ZONE LEVEL DATASET
export EMAIL='YOUR_EMAIL'
export APIKEY='YOUR_APIKEY'
export ZONE_ID='YOUR_ZONE_ID'

export INGESTION_URL=''
export INGESTION_KEY=''

# 全フィールドを指定
export FIELDS=$(curl -s \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" \
"https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/datasets/$DATASET/fields" | jq -r '.result | keys | join(",")')
echo $FIELDS

# Logpush ジョブを作成
curl -s "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" -X POST -d '
{                                             
  "name": "secureworks-http-'${DATASET//_/-}'",                                  
  "logpull_options": "fields='$FIELDS'",
  "destination_conf": "'$INGESTION_URL'?header_Authorization=Bearer%20'$INGESTION_KEY'&tags=dataset:'$DATASET'",
  "max_upload_bytes": 5000000,
  "max_upload_records": 1000,
  "dataset": "'$DATASET'",
  "enabled": true
}' \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $APIKEY" | jq

参考:GraphQL API から Logpush Health を確認する

Logpush ジョブ設定後に、Health 状態を確認したい場合、GraphQL API から logpushHealthAdaptiveGroups のデータを確認できます。

ジョブ ID XXXXXX は、Logpush ジョブの編集時の URL から確認できます。

  • https://dash.cloudflare.com/?to=/:account/logs/edit/XXXXXX
  • https://dash.cloudflare.com/?to=/:account/:zone/analytics/logs/edit/XXXXXX
account_level_datasets
export GQL_ENDPOINT='https://api.cloudflare.com/client/v4/graphql'
export ACCOUNT_ID='YOUR_ACCOUNT_ID'
export JOB_ID='YOUR_JOB_ID'

http -A creds $GQL_ENDPOINT query='query
{
  viewer {
    accounts(filter: {accountTag: "'$ACCOUNT_ID'"}) {
      logpushHealthAdaptiveGroups (limit:1000,filter:{date_geq:"2024-10-01",date_lt:"2024-10-31",jobId:'$JOB_ID', status_lt:300, final:1}) {
        sum {
          bytes
          bytesCompressed
          records
        }
        count
        dimensions {
          date
        }
      }
    }
  }
}
' | jq -r
zone_level_datasets
export GQL_ENDPOINT='https://api.cloudflare.com/client/v4/graphql'
export ZONE_ID='YOUR_ZONE_ID'
export JOB_ID='YOUR_JOB_ID'

http -A creds $GQL_ENDPOINT query='query
{
  viewer {
    zones(filter: {zoneTag: "'$ZONE_ID'"}) {
      logpushHealthAdaptiveGroups (limit:1000,filter:{date_geq:"2024-10-01",date_lt:"2024-10-31",jobId:'$JOB_ID', status_lt:300, final:1}) {
        sum {
          bytes
          bytesCompressed
          records
        }
        count
        dimensions {
          date
        }
      }
    }
  }
}
' | jq -r

以下のようなデータが確認できます。

logpushHealth_result.json
{
  "data": {
    "viewer": {
      "accounts": [
        {
          "logpushHealthAdaptiveGroups": [
            {
              "count": 7,
              "dimensions": {
                "date": "2024-10-30"
              },
              "sum": {
                "bytes": 265814,
                "bytesCompressed": 12848,
                "records": 289
              }
            }
          ]
        }
      ]
    }
  },
  "errors": null
}

Secureworks Taegis XDR アラート確認

ログ連携がおこなわれることで、Secureworks Taegis XDR で脅威スコアが付与されたアラート等を確認して、ログ監視運用に活用できます。

image.png

まとめ

Cloudflare では、エンタープライズ顧客に対して Logpush 機能を提供していますが、構成の自由度が高く、連携も幅広いです。

費用を気にせず、好きなだけログを出せる環境が提供されることを活かして、様々なデータセットを連携することができます。

今後も Cloudflare 製品の他のデータセットに対応することも期待されます。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?