目的
Secureworks のドキュメントが 2024 年 10 月 10 日に更新されたので、Cloudflare の Logpush 出力先に Secureworks Taegis XDR を設定します。
Secureworks® Taegis™ XDR 3.6.1 ⫘
Thursday, October 10th, 2024Docs
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, 2024New 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 が不要です。
対応している Logpush データセット
以下のドキュメントで確認できます。
CDN datasets
Zero Trust datasets
Secureworks Taegis XDR で HTTP インジェストを設定
以下のドキュメントに従って設定します。
インテグレーション > クラウド API から「HTTP インジェスト」を設定します。
任意の名前を設定して、完了します。
Cloudflare Logpush の出力先となる「URL」と認証に必要な「連携キー」が発行されるので、保存して次のステップで使います。
上記手順を Logpush したいデータセットごとにおこないます。
Cloudflare で Logpush を設定
以下のドキュメントに従って設定します。
アカウントレベルまたはゾーンレベルのデータセットごとに以下のリンク先から設定します。
Logpush > Create a Logpush job から HTTP destination を選択します。
「URL」と「連携キー」を使って、以下のような宛先を設定します。
- 「URL」+
?header_Authorization=Bearer%20
+ 「連携キー」
その後、データセット・フィールド等を選択して完了します。
参考:API で Logpush を設定
API を使っても Logpush を設定できます。
# 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 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
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
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
以下のようなデータが確認できます。
{
"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 で脅威スコアが付与されたアラート等を確認して、ログ監視運用に活用できます。
まとめ
Cloudflare では、エンタープライズ顧客に対して Logpush 機能を提供していますが、構成の自由度が高く、連携も幅広いです。
費用を気にせず、好きなだけログを出せる環境が提供されることを活かして、様々なデータセットを連携することができます。
今後も Cloudflare 製品の他のデータセットに対応することも期待されます。