Splunkからログをエクスポートしてセキュリティ分析を行う方法

Splunkからログをエクスポートしてセキュリティ分析を行う方法

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

短い答え: 検索を実行し、クリックして エクスポート 仕事用ツールバーの検索バーの下にある、そして選択 生のイベント、CSV or JSONを。数千のイベントであれば、それで十分です。より大きなデータを取得する場合は、ブラウザをスキップし、Splunk検索CLIまたはRESTエクスポートエンドポイントを使用します。どちらも結果をストリームし、Splunk Webが大きなファイルを構築することを避けます。

データがすでにインデックスされているのに、なぜSplunkからエクスポートするのか?通常、Splunk外の誰かがそれを見る必要があるからです: IRパートナー、他のチームの同僚、またはあなた、自分のノートパソコンでSPLを書くことなく1時間。Prime Coreには676のMITRE ATT&CKテクニックにマッピングされた23,674のSplunk検出ルールがあります。データを取り出した後の小さなスライスに対して実行できる非常に多くの検出ロジックです。以下では、そのスライスを取得し、サニタイズして、LogTotalで無料で調査する方法を紹介します。

無料で始める

TL;DR

ルートそれを使用するタイミング必要なもの
Splunk Web → エクスポート一度きり、小さなエクスポート、すでに開かれている検索インデックスへの検索アクセス
splunk search CLISplunk Enterpriseの検索ヘッドにシェルがあるOSアクセス + Splunkの資格情報
REST検索/jobs/export大きなエクスポート、スクリプト化、またはSplunk Cloud管理ポート(8089)へのアクセス + トークン

始める前に

どのルートがあなたに合うかを決定するのは3つの要因です: Splunkがどこで動作しているか、あなたの役割が検索できるか、データを持ち出すことが許可されているか。

  • インデックスアクセス。 役割が検索可能なものだけをエクスポートできます。検索が空の場合でもデータがあることを知っている場合、SPLを書き直す前に役割の許可されたインデックスを確認してください。検索にindex=を明示的に追加し、デフォルトのインデックスに頼らないでください。
  • Splunk Cloud vs. Enterprise。 Splunk Cloud Platformにはシェルがないので、CLIルートはありません。REST APIもデフォルトでは有効ではありません: スタックのアクセスをリクエストする必要があり、無料トライアルでは使用できません。Splunk Webのエクスポートはどこでも動作します。
  • エクスポートの許可。 生のログにはユーザー名、ホスト名、内部IP、時にはURL内のトークンが含まれます。LogTotalは分析前にアップロードをサニタイズしますが、会社のデータ処理ポリシーは依然として適用されます。まずOKを取得します。5分かかりますが、これがインシデントに発展した場合は書面で得ておきたいです。

以下のコマンドは、Splunk EnterpriseとSplunk Cloud PlatformのSplunkの現行ドキュメントに従います。2026年10月に確認済みです。使用したすべてのページへのリンクは最後にあります。

ステップ1: 何もエクスポートする前に検索のスコープを決める

最も一般的な間違いは、「念のため」にインデックス全体をエクスポートすることです。誰も開けたくないファイルができあがります。どの質問に答えるのかを決め、それからインデックス、ソースタイプ、ホスト、時間を定めます:

index=linux sourcetype=linux_secure host=web-03 earliest=-24h@h latest=@h

WindowsのイベントがXMLモードでSplunk Add-on for Windowsによって収集された場合:

index=wineventlog source="XmlWinEventLog:Security" host=dc-01 earliest=-24h@h latest=@h

エクスポートを有効に保つための2つのルール。

保持する _raw。 検索がstats, tableまたはchartで終了する場合、エクスポートしているのはログではなくサマリーであり、Splunk Webは生のイベント形式をグレイアウトします。結果ではなくイベントをエクスポートします。JSONにする場合、ファイルが3倍のサイズにならないように抽出されたフィールドをトリムします:

... | fields _time host source sourcetype _raw

重要な場合は絶対時間を使用します。 earliest=-24h は毎分意味が異なります。エクスポート中にSplunkが検索を再実行しなければならない場合(以下で詳述)、相対ウィンドウがわずかに異なるイベントセットを返す可能性があります。インシデント関連のものには正確なタイムスタンプを使用してください。

Windowsデータについて知っておくべきことの一つ: Splunkは元の.evtxファイルを保持していません。レンダリングされたイベントテキスト、XMLまたは古典的なkey=valueをインデックス化します。したがって、エクスポートするものはそのテキストであり、バイナリEVTXではありません。

ステップ2a: Splunk Webからエクスポートする

すでに画面上にある検索の場合、小さく、一回限りのエクスポートに適しています。

  1. 検索を実行してジョブが完了するのを待ちます。実行中のジョブをエクスポートすると、一部のみを取得します。
  2. クリック エクスポート (ダウンロード矢印) 検索バーの下にあるジョブアクションの行で。
  3. 形式を選択してください。 生のイベント はインデックス化されたままの元のログ行を提供します。これはlinux_secureのようなsyslogスタイルのソースに最適です。 JSON 各イベントのそばにホスト、ソース、ソースタイプを保持します。エクスポートが複数のホストにわたる場合に役立ちます。
  4. ファイルに来週でも認識できる名前を付けてください。例えば、web-03_sshd_2026-10-19.logです。
  5. 空白にする 結果の数 検索が返したすべてをエクスポートします。500を入力すると、最初の500が得られたことになりますが、他の数があることは教えてくれません。
  6. クリック エクスポート.

人々を混乱させる詳細: エクスポートはブラウザで見えるものからではなく、検索ジョブアーティファクトから動作します。Splunkがジョブにすべての結果を保持していない場合、ダイアログは最初に検索を再実行することを警告します。それは正常です。ただし、時間がかかり、ステップ1の絶対的な時間範囲が重要です。非常に長いエクスポートは、Splunk Webセッションのタイムアウトに当たる可能性もあります。エクスポートが数分間続く場合は、CLIまたはRESTに切り替えます。

ステップ2b: Splunk CLIでエクスポートする(Enterpriseのみ)

検索ヘッドにシェルがある場合、これは最速のルートであり、最も簡単にスクリプト化できます。最初にログインしてください。そうしないと、パスワードが-authを伴ってシェル履歴に残ります。

$SPLUNK_HOME/bin/splunk login

$SPLUNK_HOME/bin/splunk search
  'index=linux sourcetype=linux_secure host=web-03 earliest="10/19/2026:00:00:00" latest="10/20/2026:00:00:00"'
  -preview 0 -maxout 0 -output rawdata > web-03_sshd.log

各フラグが行うこと:

  • -maxout 0 はキャップを解除します。デフォルトではCLIは 100イベント のキャップをはずします。ファイルに100行しかない場合、これが理由であり、静かなホストではありません。
  • -preview 0 はプレビューデータをファイルから除外します。
  • -output rawdata は元の行を書き込みます。メタデータ付きの構造化イベントが必要な場合は-output jsonを使用してください。

リモートサーチヘッドに-uri https://<search-head>:8089を使用してCLIを実行することもできます。管理ポートにアクセスできる限り、どこでも可能です。

アップロード前に行う2つの迅速な整合性チェック:

wc -l web-03_sshd.log
head -3 web-03_sshd.log

linux_secureのような単一行ソースの場合、行数は同じ検索でSplunk Webが示すイベント数とほぼ一致します。最初の数行はログ行であるべきであり、エラーメッセージではありません。

ステップ2c: REST APIを通じて結果をストリームする

これは大規模なエクスポート、スケジュールされたプル、Splunk Cloud(RESTアクセスがスタック用に有効化された場合)用のルートです。エクスポートエンドポイントは検索が実行されている間に結果をストリームしますので、ポーリングするジョブはなく、結果ページを歩く必要もありません。

ユーザー名とパスワードの代わりに認証トークンを使用します。作成方法は 設定 → トークンです。管理者がトークン認証をオンにしている場合。

export SPLUNK_TOKEN='<your token>'

curl -sS
  -H "Authorization: Bearer $SPLUNK_TOKEN"
  https://sh01.example.com:8089/services/search/v2/jobs/export
  --data-urlencode search='search index=linux sourcetype=linux_secure host=web-03'
  -d earliest_time='2026-10-19T00:00:00.000+00:00'
  -d latest_time='2026-10-20T00:00:00.000+00:00'
  -d output_mode=raw
  -o web-03_sshd.log

人々を惑わせること:

  • 検索文字列はsearchで始まる必要があります(または| tstatsのような生成コマンド)。それがなくてクエリを貼り付けるとSplunkが拒否します。
  • output_mode=rawは、元の行を提供し、最速のモードです。output_mode=jsonは、各イベントをresultキーの下に配置した1つのJSONオブジェクトとしてストリームします。イベント自体のみが必要な場合、jqを使用してエンベロープを取り除きます。jq -c ‘select(.result) | .result’ export.json > events.ndjson。LogTotalのアップロードには、生の形式でとどまってください。
  • ラボインスタンスはしばしば自己署名証明書を使用し、すべてのStack Overflowの回答は-kを追加するように教えます。プロダクションでは、–cacertでCAにcurlをポイントします。
  • search/v2/jobsにPOSTし、/resultsから読み取る場合、サーバーは1リクエストあたりの行数を制限し、オフセットでページ分けする必要があります。エクスポートはしないので、ここで使用する理由です。

ステップ3: LogTotalでアップロードしてサニタイズし、レビューする

LogTotalはセットアップなしでログファイルに対して検出ロジックを実行するためのSOC Primeの無料サービスです。アップロードをサニタイズし、ファイルを保持しません。

  1. アップロード。 開く logtotal.com ステップ2からファイルをドロップしてください。
  2. サニタイズ。 続行する前にそれをよく見てください。あなたの環境はどんなマスキングルールよりもよく分かっています。
  3. レビュー。 

エクスポートがうまくいかない場合

症状考えられる原因Fix
CLIファイルにちょうど100イベントがあるデフォルトの-maxoutは100追加 -maxout 0
エクスポートダイアログでRaw Eventsがグレイアウトされている検索が変換コマンド(stats, table, chart)で終了している代わりにイベントをエクスポートするか、JSONを選びます
検索が何も返さないがデータは存在しているインデックスが役割の許可されたインデックスまたはデフォルトインデックスにない、あるいは時間範囲が間違っているindex=を明示的に追加する; 管理者にロールを問い合わせます
ダイアログが検索が再実行されることを示しているジョブアーティファクトがすべての結果を保持しなかった予期された動作;再実行が同じイベントを返すように絶対時間範囲を使用する
ブラウザのエクスポートが停止、またはファイルが途中で切断される長いエクスポート時のSplunk WebセッションタイムアウトCLIまたはRESTに切り替えます
curlからの401 Unauthorizedトークンが期限切れ、無効、またはトークン認証がオフ設定→トークンで新しいトークンを作成する
curlが8089でハングまたは接続拒否管理ポートがブロック、またはSplunk CloudでRESTが有効でないファイアウォールルールを確認する; クラウドスタックへのRESTアクセスをリクエストする
RESTが検索構文エラーを返すクエリがsearchで始まらないsearchで接頭辞をつける
JSONファイルが予想以上に大きいすべての抽出フィールドがエクスポートされた| fields _time host source sourcetype _rawを追加

FAQ

Splunk Cloudからログをエクスポートできますか?

はい。Splunk WebのエクスポートはEnterpriseと同じです。RESTエクスポートエンドポイントは、APIアクセスがスタック用に有効化された後に機能します;無料トライアルでは利用できません。CLIはSplunk Cloudにシェルがないためオプションではありません。

元のEVTXファイルをSplunkから取り出すことができますか?

いいえ。Splunkはバイナリの.evtxではなく、レンダリングされたイベントテキストを保存します。そのテキストを生のイベントまたはJSONとしてエクスポートすることができます。本物のEVTXファイルはWindowsホスト自体からエクスポートします。

生のイベントまたはJSON:LogTotal用にはどちらを選ぶべきですか?

生のイベントです。ホストに存在する同じ行が取得され、LogTotalはそのままsyslog形式のファイルを読みます。JSONは各イベントをSplunkの独自の構造にラップします。各イベントのそばにホストとソースタイプが必要な場合に便利ですが、LogTotalアップロードのためには、生の形式がより安全な選択です。

オンラインツールにSplunkエクスポートをアップロードするのは安全ですか?

LogTotalは分析の前にアップロードをサニタイズし、ファイルを保持しません。

何個のイベントをエクスポートできますか?

Splunk側では、好きなだけ:Splunk Webで結果の数を空白にしておくか、CLIで-maxout 0を設定します。実際には、制限は相手側のアップロードサイズです。したがって、ステップ1で検索を適切にスコープすることが重要です。

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