Cortex XDRログのエクスポート方法

Cortex XDRログのエクスポート方法

SOC Prime Team
SOC Prime Team linkedin icon フォローする

XQL クエリAPIを使用します。/public_api/v1/xql/start_xql_query からクエリを開始し、実行IDを返します。JSONで結果を取得するには /public_api/v1/xql/get_query_results を使用します。この呼び出しは最大1,000件の結果をインラインで返し、それ以上の場合はストリームIDを /public_api/v1/xql/get_query_results_stream に渡します。認証には2つのヘッダーを使用します: Authorization にAPIキーを、x-xdr-auth-id にそのIDを使用します。

Cortex XDRは、詳細なエンドポイントのテレメトリ、ネットワークデータ、IDデータを多くの展開で収集します。Prime Coreは676のMITRE ATT&CK技術にマップされた24,000以上のユニークな検出ルールを持っています。以下に、データを取り出し、消毒して無料でLogTotalで調査する方法を示します。

無料で始める

始める前に

APIキー。 Cortex XDRの設定で作成します(標準キータイプが最も簡単です)。XQLクエリを実行できるロールを持たせます。キーとそのIDをメモしておきます。

API URL。 キーを作成するときに表示されます。URLの形式は https://api-<tenant>.xdr.<region>.paloaltonetworks.com です。

ライセンスとクォータ。 XQL APIを使用するにはCortex XDR Proライセンスが必要です。クエリはXQLクォータに依存し、最大4つのAPIクエリを並行して実行できます。

データセット。 エンドポイントテレメトリは xdr_data にあり、agent_hostname、event_type、action_process_image_command_line、actor_process_image_name などのフィールドがあります。最初にクエリビルダーでクエリを構築します。

XQL APIでエクスポート

XDR="https://api-<tenant>.xdr.<region>.paloaltonetworks.com"
H1="Authorization: $XDR_API_KEY"
H2="x-xdr-auth-id: $XDR_API_KEY_ID"

# 1. クエリを開始する(時間枠をエポックミリ秒で)
QID=$(curl -sS -X POST "$XDR/public_api/v1/xql/start_xql_query" -H "$H1" -H "$H2" -H 'Content-Type: application/json'
-d '{"request_data": {"query": "dataset = xdr_data | filter agent_hostname = "WS-042" | fields _time, agent_hostname, event_type, action_process_image_name, action_process_image_command_line, actor_process_image_name", "timeframe": {"from": 1792368000000, "to": 1792454400000}}}'
| jq -r '.reply')

# 2. 結果を待つ
while :; do
RESP=$(curl -sS -X POST "$XDR/public_api/v1/xql/get_query_results" -H "$H1" -H "$H2" -H 'Content-Type: application/json'
-d "{"request_data": {"query_id": "$QID", "pending_flag": true, "format": "json"}}")
[ "$(echo "$RESP" | jq -r '.reply.status')" != "PENDING" ] && break
sleep 5
done

# 3. 最大1,000件の結果はインラインで; それ以上はストリームで
STREAM=$(echo "$RESP" | jq -r '.reply.results.stream_id // empty')
if [ -n "$STREAM" ]; then
curl -sS -X POST "$XDR/public_api/v1/xql/get_query_results_stream" -H "$H1" -H "$H2" -H 'Content-Type: application/json'
-d "{"request_data": {"stream_id": "$STREAM", "is_gzip_compressed": false}}" > xdr_ws042_1019.jsonl
else
echo "$RESP" | jq -c '.reply.results.data[]' > xdr_ws042_1019.jsonl
fi

上記のタイムフレームは2026年10月19日00:00 UTCから2026年10月20日00:00 UTCです。

LogTotalでアップロード、消毒、レビュー

  1. アップロード。 logtotal.com を開いて ファイルをドロップしてください。 消毒。
  2. レビュー。 
  3. 問題が発生したとき 

症状

考えられる原因キーとキーIDの交換、またはキーの有効期限切れFix
401Authorizationにキー、x-xdr-auth-idにIDライセンスエラー
XDR ProライセンスがないXQL APIはXDR Proが必要クォータエラー
XQLクォータが使い果たされた、または4つ以上の並行クエリ待つ; クエリを絞るちょうど1,000件の結果
ストリームが使用されていないストリームIDで残りを取得するクエリエラー
XQL構文最初にクエリビルダーでテストするインシデントとアラートをエクスポートできますか?

FAQ

はい、それぞれのインシデントとアラートAPIを通じて可能です。LogTotalでは、背後にあるテレメトリをエクスポートします。

生のサードパーティログはどうですか?

Cortexに取り込んだ場合、それらは独自のデータセットにあり、同じ方法で出力されます。

If you ingest them into Cortex, they live in their own datasets and come out the same way.

SOC PrimeのDetection as Codeプラットフォームに参加し ビジネスに最も関連性のある脅威に対する可視性を向上させましょう。開始して即座に価値をもたらすためには、今すぐSOC Primeの専門家とのミーティングを予約してください。