QRadarから生のイベントを取得する最もクリーンな方法は、Ariel REST APIです。UTF8(payload)を選択するAQLクエリを実行し、検索が完了するのを待ち、結果をJSONとして取得します。これにより、ログソースが送信した元のログ行が完全に得られます。ログアクティビティタブも検索結果のエクスポートが可能ですが、LogTotalが今日読む形式ではありません。
QRadarは多くのSOCの中心にあり、遅かれ早かれ、誰かがコンソール外でそのデータの一部を必要とすることになります:IRパートナー、セカンドオピニオン、新しいルールなしでの迅速なチェック。Prime CoreにはQRadarのための23,656の検出ルールがあり、それは674のMITRE ATT&CK技術に対応しています。以下に生のイベントのクリーンなスライスを取得し、消毒し、LogTotalで無料で調査する方法を示します。
このガイドは、オンプレミス版およびソフトウェア版のQRadar SIEMを対象にしています。あなたの会社がIBMから2024年にPalo Alto Networksに売却されたQRadar SaaSを使用していた場合、既にCortex XSIAMに移行しているかもしれません。
始める前に
認証されたサービス用トークン。 以下で作成 Admin → 認証されたサービス 有効期限を設定します。トークンにはユーザーロールとセキュリティプロファイルがあります。セキュリティプロファイルは、どのログソースやネットワークを見ることができるかを決定します。自分のものより狭い場合、APIは静かにログアクティビティより少ないイベントを戻します。それがQRadarエクスポートでの「イベントはどこに行った?」という最も一般的な瞬間です。
保持。 イベントは、保持バケットが許可する限り存続します(Admin → イベントの保持)。必要なウィンドウがこれより古い場合、エクスポートするものは残っていません。
ネットワークアクセス。 APIはコンソールのHTTPSポートで実行されます。コンソールはしばしば自己署名証明書を使用するため、検証をオフにするのではなく、正しいCAを–cacertで指定します。
ステップ1:AQL クエリを書く
ペイロードといくつかのフィールドを選択してコンテキストを追加:
SELECT DATEFORMAT(starttime, 'yyyy-MM-dd HH:mm:ss') AS event_time,
LOGSOURCENAME(logsourceid) AS log_source,
QIDNAME(qid) AS event_name,
UTF8(payload) AS payload
FROM events
WHERE LOGSOURCENAME(logsourceid) = 'web-03'
START '2026-10-19 00:00' STOP '2026-10-20 00:00'
いくつかの経験上の注意点:
- UTF8(payload) は重要な部分です。 それがないと、ペイロードはエンコードされたバイトとして戻り、読み取れないログテキストになってしまいます。
- 絞り込む。 ログソース名またはLOGSOURCETYPENAME(devicetype) ILIKE ‘%Linux%’でタイプでフィルタリングし、ウィンドウを狭く保ちます。
- START / STOP で正確なウィンドウ、または相対的なものではLAST 24 HOURS。
- 最初にテスト in ログアクティビティ → 詳細検索。それは同じAQLで、エクスポートする前にイベント数を見ることができます。
WinCollectを通じて収集されたWindowsイベントはEVTXではなくテキストペイロードとして到着します。エクスポートされるのはそのテキストです。
ステップ2:Ariel APIを通じて実行する
これをqradar_export.shとして保存します。それは検索を開始し、その完了を待って、1行あたり1つの生のペイロードを書き込みます:
#!/usr/bin/env bash
set -euo pipefail
QRADAR="https://qradar.example.com"
TOKEN="${QRADAR_TOKEN:?set QRADAR_TOKEN first}"
AQL="SELECT UTF8(payload) AS payload FROM events WHERE LOGSOURCENAME(logsourceid) = 'web-03' START '2026-10-19 00:00' STOP '2026-10-20 00:00'"
# 1. 検索を開始する(-GはURLにクエリを入れ、-X POSTはメソッドを保つ)
SID=$(curl -sS -G -X POST -H "SEC: $TOKEN" -H "Accept: application/json"
--data-urlencode "query_expression=$AQL"
"$QRADAR/api/ariel/searches" | jq -r '.search_id')
# 2. 完了するのを待つ
while :; do
STATUS=$(curl -sS -H "SEC: $TOKEN" "$QRADAR/api/ariel/searches/$SID" | jq -r '.status')
[ "$STATUS" = "COMPLETED" ] && break
if [ "$STATUS" = "ERROR" ] || [ "$STATUS" = "CANCELED" ]; then echo "Search $STATUS"; exit 1; fi
sleep 5
done
# 3. 結果を取得:生のペイロードを1行ごとに
curl -sS -H "SEC: $TOKEN" -H "Accept: application/json"
"$QRADAR/api/ariel/searches/$SID/results" | jq -r '.events[].payload' > web-03_qradar_1019.log
代わりにトークン時間やログソースをフィールドとして構造化されたイベントが欲しいですか?それらのカラムをAQLで選択し、最後のステップでjq -c ‘.events[]’を使用してください。これにより1行ごとに1つのJSONオブジェクトが得られます。
非常に大きな結果セットの場合、Rangeヘッダを使用してページごとに結果を取得します(例: -H “Range: items=0-49999″)、次の50,000。
ステップ3:LogTotalでアップロード、消毒、レビュー
- アップロード。 開く logtotal.com ファイルをドロップします。
- 消毒。 継続する前に確認します。
- レビュー。
問題が発生した場合
| 症状 | 考えられる原因 | Fix |
|---|---|---|
| APIから401 | トークンが無効、期限切れ、またはSECヘッダがありません | ヘッダを確認、新しいトークンを作成 |
| ログアクティビティで示されるより少ないイベント | トークンのセキュリティプロファイルが少ないログソースを閲覧します | 調査に一致するプロファイルをトークンに与える |
| ペイロードがエンコードされた意味不明のもののように見える | クエリからUTF8()が除外されています | UTF8(payload)を選択 |
| 検索ステータスがエラーに移行 | AQLの構文エラー | まず詳細検索でクエリをテスト |
| 結果が空 | ウィンドウが保持期間外、またはタイムゾーンがオフ | 保持を確認し、コンソールのタイムゾーンを確認 |
| curlが証明書について文句を言う | 自己署名されたコンソール証明書 | コンソールのCAを使用して–cacertを使用 |
FAQ
QRadarからEVTXファイルを取得できますか?
いいえ。QRadarはWindowsイベントをテキストペイロードとして保存します。本当のEVTXファイルは、Windowsホストからエクスポートしてください。
フローデータはどうですか?
フローは別のテーブルに存在します:FROM eventsの代わりにFROM flowsをクエリしてください。これはネットワーク接続の記録で、ログではなく、別の分析が必要です。