$30 off During Our Annual Pro Sale. View Details »

Splunkを使った インシデント調査ハンズオン体験

Avatar for 株式会社SHIFT 株式会社SHIFT PRO
December 08, 2025
190

Splunkを使った インシデント調査ハンズオン体験

▼ご自身の使用環境はこちらからご確認ください
(開封パスワードは受付でお渡しする用紙をご確認ください)
https://link.directcloud.jp/xTKLUxq6PF

▼以下も、ハンズオン体験で使用いたします。URLよりファイルのダウンロードをお願いいたします。
20251208_SecLnL_SPL_sheet.txt

https://link.directcloud.jp/crMwcj16q6
開封パスワード:KDPLZWP4

Avatar for 株式会社SHIFT

株式会社SHIFT PRO

December 08, 2025
Tweet

Transcript

  1. Copyright SHIFT Inc, All Rights Reserved. 2025 / Copyright SHIFT

    Inc, All Rights Reserved. 1 合同イベント Splunk Services Japan合同会社 株式会社SHIFT 8 12 19:00~21:00 Splunkを使った インシデント調査ハンズオン体験 登壇企業
  2. Copyright SHIFT Inc, All Rights Reserved. 2025 / 私たちの思い これからのセキュリティ業界を支える「次世代の担い手」を育てたい——

    そんな共通の想いをもつ 私たちがタッグを組み、特別イベント第2弾を開催します。 今回は、実際にセキュリティエンジニアの業務を体験できるイベント。 はじめてSplunkを触る方向けの基本ハンズオンです。Splunkサーチ言語(SPL)を使いながら、Webサ イト改ざんインシデントログの調査をステップバイステップで行います。 実体験を通して、みなさんのこれからのキャリアの参考になりますと幸いです。
  3. Copyright SHIFT INC, All Rights Reserved. 3 01. 企業紹介(株式会社SHIFT、Splunk Services

    Japan合同会社) 02.体験イベント~Splunkを使ったインシデント調査ハンズオン~ 03.ご案内 本日のイベントについて
  4. 6 Copyright SHIFT Inc, All Rights Reserved. 自己紹介 森日出雄|Hideo Mori

    株式会社SHIFT ソリューション事業部 セキュリティ・ネットワークサービス部 部長 ナショナルセキュリティ事業部 事業部長 Japan Aerospace & Defense consulting(JADC) 代表取締役社長 1992年 大学院卒業、外資系製造業(今はIT会社)に就職 NotePCの生産技術エンジニアからスタートし、 暗号化製品開発、ソリューションデリバリ、 営業部長、SOC責任者等を歴任 2021年 株式会社SHIFT入社 同年9月、セキュリティサービス部長 2024年 ナショナルセキュリティ事業部 事業部長(兼任) 2025年 JADC 代表取締役社長(兼任) 好きな言葉: できないと言わない、できると言った後にどうやるか考える(SHIFTクレド) 趣味:ゴルフ
  5. 7 Copyright SHIFT Inc, All Rights Reserved. セキュリティ・ネットワークサービス部の紹介 創部 :

    2020年9月 所属社員 : 約200名(4年半前は2名) 年間成長率 : 150%以上 スキル 成長の機会
  6. 8 Copyright SHIFT Inc, All Rights Reserved. スキル育成への試み https://note.shiftinc.jp/n/n60f70be4bebb •

    技術研鑽を推奨する風土 • 資格取得費用補助 • 有償e-learning受講費補助 • 独自の実践型教育プログラム開発 • スキル評価試験の開発 • 同じ目標に向かって研鑽する仲間多数
  7. © 2025 SPLUNK LLC © 2025 SPLUNK LLC Splunkから見るセキュリティの 最前線と未来

    テクノロジーで守る人材 パートナー・ソリューションズエンジニアリング本部 兼ソリューションズアーキテクチャ本部 本部長 横田 聡 CISSP GMON
  8. © 2025 SPLUNK LLC Splunk は、シスコの一員として、価値あるソリューションの 提供を通じて、お客様の成功に貢献します AI 対応 データセンタ

    未来を見据えた ワークプレイス デジタルレジリエンス 安全なグローバル接続 Accelerated by Cisco AI
  9. © 2025 SPLUNK LLC Splunkという会社・製品の魅力 Agentic Observability Agentic SOC Data

    Platform Turn machine data into intelligence ①独自のデータプラットフォームと、AI Agentを活用した先進的なセキュリティ・Observabilityソリューション ②多くの熱狂的なファンに支えられた強力なエンジニアのコミュニティ ③11年連続でGartner社のMagic Quadrant for SIEMでリーダーの一社として評価された実績と信頼性
  10. © 2025 SPLUNK LLC © 2025 SPLUNK LLC Splunkでの技術キャリア形成のポイント Ciscoの働きやすさとSplunkのベンチャー精神のハイブリット環境ならではの魅力

    • 幅広いスキル獲得の機会が得られる ✓ お客様への価値訴求を考慮した提案が重要なため、顧客接渉能力が高まる ✓ 年齢を重ねた際に求められるプレゼンテーション、コンサルティング能力を鍛えられる • セキュリティ業界でのプレゼンスを向上させられる ✓ 自社CTFイベント開催(BOTS)、セキュリティイベント登壇、ブログ・書籍執筆など • セキュリティ未経験でも育成制度が整っている ✓ お客様に寄り添ったセキュリティ提案のためには、NWエンジニア、サーバエンジニア、アプリ開発エンジニア経験が 非常に大事!(3年以上のエンジニア経験が望ましい) • 様々なバックグラウンドの同僚と切磋琢磨できる ✓ 世代や性別だけでなく、身近なところに海外のエンジニアも 参考情報:Splunker Stories 社員の声 - Splunkソリューションエンジニアとは?
  11. © 2025 SPLUNK LLC © 2025 SPLUNK INC. Splunk概要 1.

    Splunk概要 2. Splunkサーチ画面の見方 3. セキュリティログを使った調査の実行
  12. © 2025 SPLUNK INC. Splunk Inc.概要 • 本社:米国カリフォルニア州サンフランシスコ • 2003年設立|2012年

    NASDAQ上場(SPLK) • 従業員数:約 7,500 名 • 日本法人設立: 2012年 • 特許数:1050 + • お客様:110 カ国以上 / 20,000 社以上 • Fortune 100 社中 90社以上が利用 • 最大データ取り込み量 : 5PB / day • 国内では120TB / day プラットフォーム SIEM 異常行動分析 Splunk Security Orchestration, Automation and Response (SOAR) SOAR
  13. © 2025 SPLUNK INC. 自社データの 大部分が 未活用の状態 であると 回答した組織 Splunk

    Enterprise 開発の背景 “構造化データ:20 %” vs “非構造化データ:80 %” 出典: “In Cloud We Trust”, CREDIT SUISSE GROUP 非構造化データの増加に伴う、データ量の指数的増加 出典: Splunk Inc. 60%
  14. © 2025 SPLUNK LLC データをビジネスの価値に変換 テキストデータをそのまま取り込み、利用したいタイミングで自由に取り出し活用 オンプレミス プライベート クラウド パブリック

    クラウド ストレージ オンライン ショッピング コールセンター デスクトップ セキュリティ Web サービス ネットワーク コンテナ Webユーザー RFID スマートフォン サーバー メッセージ GPS 位置情報 パッケージ アプリケーション カスタム アプリケーション オンライン サービス データベース 通話記録 電力計 ファイアウォール 侵入検知 監視 調査・分析 高度な対応
  15. © 2025 SPLUNK LLC Splunkはどんな構成要素でできているの? それぞれのフェーズで専用のコンポーネントを用意することで、処理速度やリソース利用効率 を高め、システム全体のパフォーマンスや利便性・拡張性などを高めています データ生成 & データソー

    ス Forwarder Indexer Search head ファイルや ディレクトリから データの取り込み ネットワーク ソースからの データの取り込み HTTPイベント コレクターによる データの取り込み スクリプトを介した APIなどからの データの取り込み Add-onによる データの取り込み 予測 分類 特徴抽出 判断 チェック クレンジン グ マスキング フォーマッ ト 抽出 チェック クレンジン グ マスキング フォーマッ ト 生データとインデックスを保管 高速なデータサーチと分析を実現 データの保持期間の設定 アクセスポリシーの設定 The Splunk Platform 生成 収集 蓄積 活用
  16. © 2025 SPLUNK LLC Splunkならではの特徴は? データ取り込み後にスキーマを定義し柔軟なデータの構造化を実現 呼称 : “Schema on

    the Fly” / “Schema at Read” / 「動的スキーマ」 など gz gz gz オリジナルのデータを全量保持 Index ②クエリーの実 行 ③ディスクからの読み出 し ⑤結果の表 示 データ蓄積 Search Head データ活用 ④ オンメモリーで 構造化 Indexer Splunk データ分析基盤 ① データ 活用命令 データ抽出は、キーワー ド検索、キーなど、直感 的にわかりやすい操作で 実現 データは原則として非構 造化データのまま取り込 み利用することが可能 データにアクセスする際 に、動的に構造化条件を 適用し、柔軟にユースケ ースを実現 Splunkに取り込むことで データの種類やフォーマ ットの垣根を越えてデー タを扱うことが可能
  17. © 2025 SPLUNK LLC データ取り込み後に構造化が可能 正規表現を利用してデータの構造化を行い、データの抽出結果に反映可能。 構造化条件 1 構造化条件 2

    抽出データ1 抽出データ2 保存データ データの形式が変わった場合や、新たに分析したい項目が出てきても、Splunk上の設定変更だけで対応可能 91.205.189.15 - - [07/Mar/2024:18:22:16] "GET /oldlink?itemId=EST- 14&JSESSIONID=SD6SL7FF7ADFF53113 HTTP 1.1" 200 1665 "http://www.buttercupgames.com/oldlink?itemId= EST-14" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5" 159 ^(?P<clientip>[^ ]+)[^¥[¥n]*¥[(?P<timestamp>[^¥]]+)¥]¥s+"(? P<method>¥w+)[^ ¥n]* (?P<uri>[^ ]+) ^(?P<clientip>[^ ]+)[^¥[¥n]*¥[(?P<timestamp>[^¥]]+)¥]¥s+"(?P<meth od>¥w+)[^ ¥n]* (?P<uri>[^ ]+)[^¥.¥n]*¥.¥d+"¥s+(?P<status>¥d+)[^ ¥n]* (?P<bytes>[^ ]+) フィールド名 値 clientip 91.205.189.15 timestamp 07/Mar/2024:18:22:16 method GET uri /oldlink?itemId=EST- 14&JSESSIONID=SD6SL7FF7ADFF53113 フィールド名 値 clientip 91.205.189.15 timestamp 07/Mar/2024:18:22:16 method GET uri /oldlink?itemId=EST- 14&JSESSIONID=SD6SL7FF7ADFF53113 status 200 bytes 1655
  18. © 2025 SPLUNK LLC 分析結果は柔軟に可視化 ダッシュボード機能やレポート機能などを利用して分析結果を可視化し共有可能。 ダッシュボードスタジオ ビジュアライゼーションのフレームワークは JSONをソースコードとして利用。ダッシュボード自体 のレイアウトやイメージなどを柔軟に表現可能。

    クラシックダッシュボード ビジュアライゼーションのフレームワークは Simple XMLをソースコードとして利用。Splunkbaseから様々な データの可視化方法を追加することが可能。 クラシックダッシュボードについて : https://docs.splunk.com/Documentation/Splunk/latest/Viz/Aboutthismanual ダッシュボードスタジオについて : https://docs.splunk.com/Documentation/Splunk/latest/DashStudio/IntroFrame
  19. © 2025 SPLUNK LLC 可視化表現はカスタマイズ可能 デフォルトでは、6つの可視化方法を利用可能。デフォルトで用意されている可視化方法以外を 利用したい場合はSplunkbaseから任意の可視化方法をダウンロードして利用することが可能。 イベントリスト 使用方法 •サーチでイベントを抽

    出。 表示方法 •抽出されたフィールド と値を直接表示。 テーブル 使用方法 • 1 つ以上の特定のフ ィールドやサーチ結果 をテーブル形式で抽出 。 表示方法 •テーブル形式で表示。 フォーマットを追加して 、特定の傾向やパター ンを強調可能。 チャート 使用方法 •チャートにあったデー タ形式でデータを抽出 。 表示方法 •パイ、エリア、ライン、 カラム、バー、バブル、 スキャッターなどで表示 可能。 シングルバリュ ー 使用方法 •単一の値や文字を 抽出。 表示方法 •サーチされた値の最近 の変化や傾向を表示可 能 ゲージ 使用方法 •単一の値を抽出。 表示方法 •サーチされた値をゲージ の範囲で表示可能。 マップ 使用方法 •サーチで地理情報を 抽出。 表示方法 •地理座標をマップで表 示。コロプレスマップなど を使用して、地域の傾向 や濃度を表示可能。 視覚エフェクト 詳細 : https://docs.splunk.com/Documentation/Splunk/latest/Viz/Visualizationreference
  20. © 2025 SPLUNK LLC 柔軟なアラート条件と自動アクション 検索結果で特定条件が満たされた場合にアラートを生成し、さまざまなアクションが可能 サーチ文によって柔 軟に特定条件を設定 することが可能 アラート生成

    条件 スケジュールサー チ、リアルタイム サーチを使ってア ラート設定を実行 可能 アラート生成 タイミング アラートを通知す る条件は、特定条 件に合致した回数 や期間などによっ て設定可能 アラート 通知条件 アラートをトリガー として、ログの生成 、mail通知、webhook の実行、カスタムア クションの実行など が可能 アラート 自動アクション
  21. © 2025 SPLUNK INC. セキュリティに 特化したプレミアムソリューションと連携 Splunk Enterprise Security ユーザーフレンドリーなダッシュボード

    と高度な検索機能により、複雑なセキュ リティデータを可視化し、即座に判断、 対応可能なセキュリティ環境を提供 Splunk User Behavior Analytics 高度な機械学習アルゴリズムにより異常 検知モデルを作成し、未知の脅威や高度 な攻撃パターンを検知することが可能な セキュリティ環境を提供 Splunk SOAR セキュリティインシデントの検知から対 応までのプロセスで利用される異なるセ キュリティツールやシステムのオーケス トレーションと対応の自動化を実現可能 SIEMソリューション 振る舞い検知 SOARソリューション
  22. © 2025 SPLUNK LLC © 2025 SPLUNK INC. Splunk サーチ画面の見方

    1. Splunk概要 2. Splunkサーチ画面の見方 3. セキュリティログを使った調査の実行
  23. © 2025 SPLUNK INC. 皆さんの武器は、、、 柔軟かつ高速検索可能な Splunk Enterprise 多種多様な Splunkコマンド

    調査・分析対象 調査・分析ツール サポート 自社環境の さまざまなデータ IDS IDS NGFW Web App Middleware OS Wire data
  24. © 2025 SPLUNK LLC 調査環境のデータソース全体像 調査に必要なログソースがどこのデータを表しているのかを把握 攻撃者 インターネット IDS IDS

    (Suricata) NGFW (Fortigate ) Web App (なし) Middleware (iis) OS (Windows Sysmon Windows Event Windows Registry) Wire data (Splunk Stream) (http通信) Webサイト imreallynotbatman.com 通信関連情報 アプリ 関連情報
  25. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの操作に慣れよう 1 ~ ホーム画面の見方

    : App panelからSearch & ReportのAppを利用して調査を進めます。 1 No 名称 説明 1 Splunk bar Splunk Web のすべてのページに表示される。このbarを使って、Appの切り替え、Splunkの設定、システ ムレベルのメッセージの表示、Splunkの監視などを行うことが可能。一番左端のSplunk>enterpriseのロゴ を選択するとホーム画面に戻ることが可能。 2 App panel Splunkにインストールされているアプリケーションのリストを表示。 3 Explore Splunk panel Splunkを利用するために必要な情報のリンクを提供。 2 3
  26. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの操作に慣れよう 2 ~ Search

    & Reportの画面の見方 : Search barにキーワードなどを入れてデータを抽出します No 名称 説明 1 Application menu インストールしたSplunk アプリケーションの切り替えが可能。 2 Apps bar 現在のAppのさまざまなViewの移動が可能。Search & Reportingの場合、サーチ、Analytic, データセット、レポート、アラート、およびダッシュボード を提供。 3 Search bar サーチ内容を指定可能 4 Time range picker 過去30分間や昨日など、検索期間を指定可能。デフォルトは過去24時間(設定で変更可能) 5 検索履歴 実行したサーチのリストを表示。サーチを実行すると、検索履歴が表示される。 6 サーチ方法 リンクを使用して、データの検索を開始する方法の詳細と、アクセスできるデータの概要を確認可能(データサマリーでhost, source, sourcetypeなどを 確認可能)。 7 テーブルビューによるデータの分析 SPLを利用せずにデータの可視化を行うことが可能。 詳細 : https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/Aboutthesearchapp 2 3 4 5 6 7 1
  27. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの用語に慣れよう 1 ~ Indexとは?

    : Splunk がデータを格納するバケット(領域)。データはインデックスされると3つのフ ァイルが作成され、時間やファイルサイズ、ファイル数を基準とした条件によって、各バケットで データが管理される。 Index rawデータを指す インデックス その他 メタデータ ファイル コールド バケット ホット バケット ウォーム バケット フローズン バケット 圧縮された rawデータ gz バケット数 バケットサイズ 経過時間 新しいデータが必ず書き込まれる場所。 1つ以上のバケットが存在 コールドから移行されるバケット。 サーチ対象にはならず、アーカイブ 設定していない場合は削除される。 アーカイブ ホットから移行されたバケット。 多数のウォームバケットが存在 ウォームから移行されたバケット。 ホット、ウォームバケットと別の ストレージを選択可能。 多数のコールドバケットが存在。 フローズンから移行されるバケット。 指定したストレージ領域に保存される。 サーチ対象にはならず、解凍する事でイ ンデックス対象として扱うことができる アーカイブ 設定 インデックス サイズ 経過時間 バケット数 経過時間
  28. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの操作に慣れよう 3 ~ サーチ結果の見方

    : index=tutorialに格納されているデータをSearch barで検索した結果を表示。 No 名称 説明 1 Search action buttons サーチジョブの操作、共有、印刷、検索結果のエクスポートなど、実行できるアクション。 2 Search results tabs サーチ結果が表示されるタブ。サーチでは一連のイベントが抽出され、 [イベント] タブに表示される。サーチの内容によっては、 統計情報タブに表示される。 3 Search mode menu サーチ実行モードを選択可能。スマート(デフォルト)、高速(フィールドの自動検出を行わない)、および詳細(全てのイベントとフィールドを表示)が選択可能。 4 Timeline 各時点で発生するイベント数の視覚的表現を提供。タイムラインのズームイン、アウトが可能。 5 Field sidebar イベントで発見されたフィールドのリストを表示。フィールドは選択されたフィールド、関連するフィールドにグループ化される。 6 Event viewer サーチに一致するイベントを表示。デフォルトでは、最新のイベントが最初に表示されます。 7 Save As menu [名前を付けて保存] メニューを使用して、サーチ結果をレポート、ダッシュボードパネル、アラート、またはイベントタイプを保存可能 2 3 4 5 6 7 1 tutorialデータについて : https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/AboutgettingdataintoSplunk
  29. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの操作に慣れよう 4 ~ Event

    Viewerの見方 : tutorialデータ(下記)をアップロードして、Search barで検索した結果を表示 。 tutorialデータについて : https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/AboutgettingdataintoSplunk No 名称 説明 1 ドロップダウン menu イベントのフィールド名や値の確認、イベントに対するアクションなどを確認可能。 2 rowデータ 取り込まれた1イベントを表示。 3 イベントアクション イベントタイプの作成、フィールドの抽出、ソースの表示などのアクションを行うことが可能。アクションはタグの編集が可能。 4 フィールドの詳細 イベントの各価がどのフィールドに設定されているのか確認可能。 2 3 4 1
  30. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの用語に慣れよう 2 ~ hostとは?

    : そのデータ(イベント、ログ)がどのホストから生成されたものかを識別する定義(メタ)属性。 • Splunk内ではhostフィールドとして各イベント*に付与される。 • Forwarder経由であれば、Forwarderが付与。 • 手入力もしくは、ファイル名や、フォルダ名などから抽出することも可能 *イベントはSplunkにデータが格納される際にhost, source, sourcetype, timestampの情報が付与された単一のデータ。詳細 : https://docs.splunk.com/Splexicon:Event 1イベントの詳細 host情報 例 : index=botsv1のデータを2016/8/29 12:00 - 2016/8/30 00:00の期間で抽出した場合の結果 21,896件のイベントを抽出
  31. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの用語に慣れよう 3 ~ sourcetypeとは?

    : Splunkがデータ種別を識別する定義(メタ)属性。 データに設定されるsourcetypeに応じて、様々な処理をSplunkが行う。 • Splunk内ではsourcetypeフィールドとして各イベント*に付与される • フィールドの認識方法などを判別して、データにフィールドを設定する • デフォルトにて、約35種の標準的なデータ種別(Apacheログ、Windowsイベント等)を提供 • sourcetypeは独自に設定することも可能 • Splunkbase上のAdd-onを利用することでsourcetypeの定期を拡張することも可能 *イベントはSplunkにデータが格納される際にhost, source, sourcetype, timestampの情報が付与された単一のデータ。詳細 : https://docs.splunk.com/Splexicon:Event デフォルトで用意しているsourcetype一覧 詳細 : http://docs.splunk.com/Documentation/Splunk/latest/Data/Listofpretrainedsourcetypes
  32. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの用語に慣れよう 4 ~ フィールドとは?

    : イベント(Splunkに取り込まれたデータ)で検索可能な「名前と値」(キー、バ リューペア)の組み合わせ。イベント内のどの箇所(値)がどのフィールド名に該当するかを正規表 現などで定義。フィールドを用いることで、イベントの抽出、加工、可視化などの処理を柔軟に 行うことが可能。 91.205.189.15 - - [07/Mar/2022:18:22:16] "GET /oldlink?itemId=EST-14&JSESSIONID=SD6SL7FF7ADFF53113 HTTP 1.1" 200 1665 "http://www.buttercupgames.com/oldlink?itemId=EST-14" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5" 159 例 : アクセスログを取り込んだ場合 フィールド名 値 clientip 91.205.189.15 timestamp 07/Mar/2022:18:22:16 method GET uri /oldlink?itemId=EST-14&JSESSIONID=SD6SL7FF7ADFF53113 status 200 bytes 1655 referer http://www.buttercupgames.com/oldlink?itemId=EST-14 useragent Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5 フィールド抽出するための正規表現 ^(?P<clientip>[^ ]+)[^¥[¥n]*¥[(?P<timestamp>[^¥]]+)¥]¥s+"(?P<method>¥w+)[^ ¥n]* (?P<uri>[^ ]+)[^¥.¥n]*¥.¥d+"¥s+(?P<status>¥d+)[^ ¥n]* (?P<bytes>[^ ]+)¥s+"(?P<referer>[^"]+)[^ ¥n]* "(?P<useragent>[^"]+) 抽出されたフィールド
  33. © 2025 SPLUNK LLC 調査をする前に ~ Splunkの操作に慣れよう 5 ~ Field

    sidebarの見方 : tutorialデータ(下記)をアップロードして、Search barで検索した結果を表示 。 tutorialデータについて : https://docs.splunk.com/Documentation/Splunk/latest/SearchTutorial/AboutgettingdataintoSplunk 2 3 4 1 No 名称 説明 1 すべてのフィールド 全てのフィールドを表示。関連するフィールドは抽出されたイベントで20%以上の出現 率があるものが表示される。 2 # フィールドに格納されている値が数値であることを示す。 3 a フィールドに格納されている値が英数字であることを示す。 4 number フィールドに格納されている値のユニークな値の数を示す。 5 レポート 各種メニューの統計結果を表示させることが可能。 6 このフィールドを持つイベント 選択したフィールド名で新たにサーチを実施。例 : action = *がサーチに追加される。 5 6
  34. © 2025 SPLUNK LLC インシデント調査で有効なSPLコマンド 本日のWorkshopでは下記コマンドを使ってインシデントを調査。 1.metadata • source, sourcetype,

    host情報をリス トで表示 2.AND OR NOT • ブール式。大文字で記載する必要 あり 3.stats –count, values, average, • 指定した統計処理を実施し結果を 表示 4.lookup • ルックアップに保存されているデ ータを参照 5.eval – lower, length, round • 指定した処理に基づいてデータを 加工 6.fields • フィールド情報を表示 7.timechar • 時系列に統計処理を実施し結果を 表示 8.sort • 指定された順序によってデータを 並べ替え 9.reverse • データの並び順を逆に並び替え 10.table • 表形式でデータを表示 11.head • 先頭から指定したデータを表示 12.tail • 末尾から指定したデータを表示 13.transaction • データを指定した処理によってグ ループ化 14.rex • 正規表現を使用してデータを抽出 15.search • データを検索
  35. © 2025 SPLUNK LLC サーチの基本を確認 調査内容 : Webサーバ“imreallynotbatman.com ”に対して脆弱性をスキャンしたPo1s0n1vyグ ループのIPアドレスは何か?

    基本1 : Splunkはキーワード検索が可能 サーチバーに "imreallynotbatman.com" と入力し、タイムレンジを 全時間にして、虫眼がボタ ンを押して検索を実行。 サーチ結果で注目すべきポイント 該当した イベント数(Splunkに取り込 まれたデータ)が確認可能 該当した イベントのヒストグラムが 確認可能
  36. © 2025 SPLUNK LLC 画面左下で確認 フィールドを使って調査を加速 調査内容 : Webサーバ“imreallynotbatman.com ”に対して脆弱性をスキャンしたPo1s0n1vyグ

    ループのIPアドレスは何か? フィールドとはイベントで検索可能な「名前と値」(キー、バリューペア)の組み合わせ。フィールドを用いることで、イベントの抽出、 加工、可視化などの処理を柔軟に行うことが可能。 フィールド名をクリックで詳細表示 表示させるフィールドのピックアップ Field sidebarに意図するフィールドが見つからない場合 は、Field sidebarに表示されていない可能性があるため 、他のフィールドを選択。カバー範囲 : 1%以上の設定 を全フィールドに変更、または、チェックボックスをク リックして表示させることが可能。 頻出度の高い値の確認や、レポート作成メニューを提供
  37. © 2025 SPLUNK LLC データ調査時のその他便利機能 調査内容 : Webサーバ“imreallynotbatman.com ”に対して脆弱性をスキャンしたPo1s0n1vyグ ループのIPアドレスは何か?

    入力のヘルプ データを時間で フィルター データ抽出 スピードの切り替え 入力したコマンドのヘルプ情報や、入力した 文字のオートコンプリート機能を提供 タイムレンジピッカーで 任意の時間範囲のデータのみをサーチ対象に データ抽出の処理を任意に設定し、 抽出スピードを切り替え
  38. © 2025 SPLUNK INC. 脆弱性 スキャンの特徴 脆弱性スキャンとはネットワークを通じて 、セキュリティ上の欠陥を検知する技術 Point :

    ネットワーク内で大量の通信を生成するため 、ネットワークトラフィックの急増や異常な 挙動に注意を払うことが重要
  39. © 2025 SPLUNK LLC ネットワークトラフィックを 監視しているデータソースは? データソース全体像 攻撃者 インターネット IDS

    IDS (Suricata) NGFW (Fortigate ) Web App (なし) Middleware (iis) OS (Windows Sysmon Windows Event Windows Registry) Wire data (Splunk Stream) (http通信) Webサイト imreallynotbatman.com 通信関連情報 アプリ 関連情報 Wire dataのソースタイプは sourcetype=stream:http
  40. © 2025 SPLUNK LLC 調査サポート問題 1 Webサーバ“imreallynotbatman.com”に対して 脆弱性をスキャンしたPo1s0n1vyグループの IPアドレスは何か? キーワードでフィルター

    imreallynotbatman.com データソースでフィルター sourcetype=stream:http 送信元IPでフィルター フィールド名はsrc_ip ?????????? 問題の解き方 Splunk内の データ
  41. © 2025 SPLUNK LLC 回答1 40.80.148.42 サーチ文 index=botsv1 imreallynotbatman.com sourcetype=stream:http

    説明 フィールドに送信元を表す src_ipがあるので、src_ipで 頻出度の高い40.80.148.42が 回答。
  42. © 2025 SPLUNK LLC © 2025 SPLUNK INC. セキュリティログを使った 調査の実行

    1. Splunk概要 2. Splunkサーチ画面の見方 3. セキュリティログを使った調査の実行
  43. © 2025 SPLUNK LLC Splunkサーチコマンドの利用 Searchはデータ抽出結果と、そのデータを処理するコマンドを パイプライン「|」でつなぐことで構成される。 例 : index

    = main sourcetype=access_combined_wcookie ERROR | top hostip main indexに格納されているsoucetypeがaccess_combined_wcookieでERRORの文字が含まれるイベ ントを抽出し、そのイベントで頻出度の高いhostipを表示させる。 rawデータが 統計情報に 抽出データを topコマンドで処理
  44. © 2025 SPLUNK LLC サーチ文の基本的な構造 サーチは5つの基本的なコンポーネントから構成される。 サーチ文の例 index = web

    sourcetype =access_* status = 503 | stats sum(price) as lost_revenue | eval lost_revenue = “$” + tostring(lost_revenue, “commas”) 1. Search terms : キーワード、フィールド、ブール式などを利用してデータを抽出 2. Commands : 抽出結果に実行する処理を定義(チャート作成、統計・加工・変換処理) 3. Functions : Commandsで実施する処理の詳細を定義 4. Arguments : Functionsを適応する値を定義 5. Clauses : 処理した結果のグループ化やフィード名を定義
  45. © 2025 SPLUNK LLC sort コマンド 指定したフィールドの値を並び替え • 構文 •

    sort [<count>] <sort-by-clause> [desc] <並び替えするfield名> • 考慮点 • countを指定した場合、指定した値 のイベントを表示させる。defaultで は10,000。 • sort-by-clauseは表示される結果を降 順(-)、昇順(+)やauto、ip、num(数値 )、str(辞書式順序)などに基づいて表 示させることが可能。 • descは結果の順序を逆にする 使い方1 : 降順 使い方2 : 昇順 実行コマンド 1 : "imreallynotbatman.com" source="stream:http" | table bytes_in | sort - bytes_in 実行コマンド 2 : "imreallynotbatman.com" source="stream:http" | table bytes_in | sort + bytes_in
  46. © 2025 SPLUNK LLC statsコマンド 指定したフィールドの値に統計処理を実施 • 構文 • stats

    (stats-function(field名) [as field)]) [by field名] • 考慮点 • stats-functionで利用可能なfunctionはAggregate, Event order, Multivalues stats and chart, Timeがある。 詳細は https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Statsを参照。 • よく利用されるfunction – count(X) : フィールド X の登場回数を返す。 – dc(X) : フィールド X の一意の値の数を返す。 – sum(X) : フィールド X の値の合計を返す。 – avg(X) : フィールド X の値の平均を返します。 • asは処理結果を別のフィールド名に定義、byは処理に 軸(~ごとの集計とする)を設定 使い方 : srcごとのイベント件数(アクセス回数)を算出 実行コマンド 1 : "imreallynotbatman.com" source="stream:http" | stats count by src 実行コマンド 2 : "imreallynotbatman.com" source="stream:http" | stats avg(bytes_in) by src
  47. © 2025 SPLUNK LLC 調査サポート問題 2 imreallynotbatman.comにスキャンを 実行している攻撃元に対して、webサイトが応答する際の URI 上位10件を求めよ

    攻撃元IPでフィルター src=40.80.148.42 statsコマンドで uriごとの応答回数を算出 | stats count by uri sortコマンドで 応答回数上位10件に並べ替え | sort xxxx 問題の解き方 問題 1の サーチ文で 抽出したデータ uri a : xxx回 uri b : xxx回 uri c : xxx回
  48. © 2025 SPLUNK LLC 回答2 右図参照 サーチ文 index=botsv1 imreallynotbatman.com sourcetype=stream:http

    src_ip="40.80.148.42" | stats count by uri | sort 10 - count 説明 statsコマンドで統計処理を実施 し、処理結果となるcountフィ ールドをsortで並べ替え
  49. © 2025 SPLUNK LLC Search termsの基本と応用 1 キーワード、フレーズ、フィールド、ワイルドカード、ブール式、比較式などを利用して、 indexからデータを抽出する。 キーワードと

    フレーズ キーワードやフレーズで抽出を 行うと_rawを照合してイベン トを抽出。フレーズは”で囲む 必要あり。 キーワードは大文字、小文字の 区別はしない。 例 • web errorを指定。イベント 内にwebとerrorを両方含む イベントを抽出 • “web error”を指定。 イベント内にweb errorとい う語句が含まれるイベント を抽出 フィールド フィールド名と値を指定してイ ベントを抽出。 フィールド名は大文字、小文字 の区別あり、値は区別はしない 。 例 • host=www3とhost=WWW3 は同じイベントを抽出。 HOST=www3は上記二つと は別のイベントを抽出。 ワイルドカード アスタリスク(*)文字をワイルド カードとして使用して、文字列 内の無制限の数の文字に一致さ せる。 上限に達するまですべてのイベ ントが取得されるため、他の Userが検索を実行できなくな る可能性があるため検索条件を できるだけ具体的にする必要が ある。 eval, whereコマンドはワイル ドカードとして%を指定。 ワイルドカードの詳細 : https://docs.splunk.com/Documentation/Splunk/latest/Search/Wildcards ブール式の詳細 : https://docs.splunk.com/Documentation/Splunk/latest/Search/Booleanexpressions 比較式の詳細 : https://docs.splunk.com/Documentation/Splunk/latest/Search/Fieldexpressions ブール式 ブール演算子AND, OR, NOTをサポ ート。 演算子は全て大文字で記載する必要 あり。NOT 演算子は、NOT の直後 の用語にのみ適用される。複数の用 語に適用するには、用語を括弧で囲 む必要がある。 1. 評価の順序は括弧内の式 2. NOT 3. OR 4. ANDの順番 (whereコマンド利用時は異なる。) 比較式 比較演算子を使用して、特定の 値またはフィールド値の範囲を 照合可能。 比較式 説明 = x xと完全に一致する値を抽出 != x xと完全に一致しない値を抽出 < x xより小さい値を抽出 > x xより大きい値を抽出 <= x x以下の値を抽出 >= x x以上の値を抽出
  50. © 2025 SPLUNK LLC Search termsの基本と応用 2 ワイルドカード、ブール式、比較式の使い方 form_dataに格納されている値で userが含まれている値を抽出

    form_dataに格納されている値で userが含まれている値、または、 form_dataに格納されている値で passwordが含まれている値で、 src_ipに23.22.63.114が値として 含まれていないデータを抽出 bytes_inが1000より大きい値で かつ、bytes_outが300以下の データを抽出 アスタリスク(*)文字を ワイルドカードとして使用 ブール演算子AND, OR, NOTを 利用してデータを抽出 比較演算子 >、<を 利用してデータを抽出 実行コマンド 1 : "imreallynotbatman.com" form_data=*user* 実行コマンド 1 : "imreallynotbatman.com" AND form_data=*user* OR form_data=*password* NOT src_ip="23.22.63.114" 実行コマンド 1 : "imreallynotbatman.com" bytes_in>1000 AND bytes_out<=300
  51. © 2025 SPLUNK INC. ブルートフォース パスワードアタックの 特徴 事前に用意された辞書や単語リストを使用 して、パスワードの総当たり攻撃を行う Point

    : 短期間に多数の連続したログイン試行がある。 特定のユーザーに多数のログイン試行がある。 特定のパスワードで多数のログイン試行がある。
  52. © 2025 SPLUNK LLC ネットワークトラフィックの データソースに含まれている内容は? 今回のWorkshopで注目したい3つのポイント 送信先、送信元を 表すフィールド リクエスト内容を

    表すフィールド 転送データの中身を 表すフィールド 誰がどこにアクセスしたのか詳細を確認可能 どんなリクエストを実施したのか確認可能 どんなデータを転送したのか確認可能
  53. © 2025 SPLUNK LLC 調査サポート問題 3 “imreallynotbatman.com”に ブルートフォースパスワードアタックを 施行したIPアドレスを求めよ クライアントがリソースを要求す

    る際のメソッドでフィルター http_method = post 送信されているデータでuserとpassが 含まれるデータのみにフィルター form_data=*user*pass* statsコマンドで 送信元ごとの施行回数を算出 | stats xxxx 問題の解き方 宛先が imreallynotbatman.comで、 sourcetype=stream:httpから 抽出したデータ
  54. © 2025 SPLUNK LLC 回答3 23.22.63.114 サーチ文 index=botsv1 imreallynotbatman.com sourcetype=stream:http

    http_method=POST form_data=*user*pass* | stats count by src_ip 説明 postメソッドで、form_data にユーザー名、パスワードを 入力しているデータのみを抽 出し、statsコマンドで送信元 のsrcごとに施行回数を算出
  55. © 2025 SPLUNK LLC 前半戦の振り返り • Splunk概要 • Splunk UIの説明

    • 構造/非構造データの検索方法 • 複合検索 (キーワード、フィールド、 ワイルドカード) • stats, sortコマンドの説明
  56. © 2025 SPLUNK LLC tableコマンド 指定したフィールドの値をテーブル形式で表示 • 構文 • table

    <field名1>, <field名2>, <field名3>, ・ ・・・ • 考慮点 • field名にはワイルドカードのアスタリス ク*を利用することが可能。 • tableコマンドでfield名を変更することは できないため、表示するfield名を変更す る場合は事前に任意のfield名に変更が必 要。 • 表示される結果数はlimits.confの[search] スタンザで設定可能。 使い方 : 時系列でbytes_in, out ,src_ipをテーブル形式で表示 実行コマンド 1 : "imreallynotbatman.com" sourcetype="stream:http" | table _time bytes_in bytes_out src_ip
  57. © 2025 SPLUNK LLC 調査サポート問題 4 ブルートフォースアタックに 利用された最初のパスワードは何か? tableコマンドを利用して form_dataを時系列で表示

    | table _time form_data sortコマンドを利用して、一番古いデ ータを表示 | sort + _time 問題の解き方 調査サポート問題3で 抽出したデータ (statsコマンドは削除) 2024 / 01 2023 / 12 2023 / 11 2024 / 01 2023 / 12 2023 / 11
  58. © 2025 SPLUNK LLC Splunkを もっと使いこなそう!! いろんなやり方を知っていると応用が効きます。 1. reverse ‒

    データの並び順を逆に並び替え 2. rex ‒ 正規表現を使用してデータを抽出 3. search ‒ データを検索 4. head ‒ 先頭から指定したデータを表示 5. tail ‒ 末尾から指定したデータを表示
  59. © 2025 SPLUNK LLC reverseコマンド 表示されている結果の順序を逆にして表示 • 構文 • reverse

    • 考慮点 • 数百万以上の結果を処理する場合は 、大量の一次ストレージの利用、大 量のI/O発生、大量の処理時間が必要 となります。 使い方 : 時系列でbytes_in, out ,src_ipをテーブル形式で 表示させたデータをreverseを使って時系列を逆にして表示 実行コマンド 1 : "imreallynotbatman.com" sourcetype="stream:http" | table _time bytes_in bytes_out src_ip | reverse
  60. © 2025 SPLUNK LLC rexコマンド 指定したフィールドの値を正規表現で抽出し、 新たなフィールドを作成 • 構文 •

    rex [field=<field名>]( <正規表現 > [max_match=<int>] [offset_field=<string>] ) | (mode=sed <sed-expression>) • 考慮点 • 正規表現はPCREを使用して、抽出す る値とフィールド名を指定する。 • sed(UNIX stream editor)を利用する場 合に指定する。 • field名はデフォルトでは_rawが設定 される。 • 正規表現の一致回数をmax_matchで 指定可能。 • offset_fieldで正規表現に基づいて、 引数内の特定の値の位置をリストす るフィールドを作成可能 使い方 : 正規表現で抽出したいデータが含まれている form_dataをfield=で指定し、passwd=XXXのXXX部分の値を userpasswordというフィールド名で格納する。 実行コマンド 1 : "imreallynotbatman.com" sourcetype="stream:http" | rex field=form_data "passwd=(?<userpassword>¥w+)"
  61. © 2025 SPLUNK LLC searchコマンド • 構文 • search <search-expression>

    • 考慮点 • search-expressionはキーワード、フレ ーズ、ワイルドカード、フィールド 、比較演算子、期間などで条件を指 定可能。 • SPLの先頭で使用可能。 • 大文字小文字は区別しない。 • 括弧内 → NOT → OR → ANDの順番で 評価される。 searchコマンドはインデックスのデータセットからイベントを取得するか、すでにメモリ内にある検索結 果をフィルターする機能を提供。 使い方 : stats countで抽出されたデータで、2,000以上の 件数があるデータのみを抽出する 実行コマンド 1 : "imreallynotbatman.com" sourcetype="stream:http" | stats count by src_ip | search count>2000
  62. © 2025 SPLUNK LLC head / tailコマンド 指定したフィールドの最初の値 / 最後の値を表示

    • 構文 • head[<N> | (<eval- expression>)][limit=<int>][null=<bool>][k eeplast=<bool>] • tail [<N>] • 考慮点 • Nで表示させる結果を指定可能 • limitでも表示させる結果を指定可能 • eval-expressionでの評価がfalseとなる まで結果を返すことが可能 • keeplastはeval-expressionで評価された 最後の結果を保持するかどうか制御 • nullはeval-expressionで評価された値に null引数を有効にするかどうか制御 使い方 : tableコマンドを使って時系列で表示させたデ ータをheadとtailを使って最初の値 / 最後の値を表示 実行コマンド 1 : "imreallynotbatman.com" sourcetype="stream:http" | table _time bytes_in bytes_out src_ip | head 1 実行コマンド 2 : "imreallynotbatman.com" sourcetype="stream:http" | table _time bytes_in bytes_out src_ip | tail 1
  63. © 2025 SPLUNK LLC 調査サポート問題 4 ブルートフォースアタックに 利用された最初のパスワードは何か? Searchコマンドを利用して、Nullデー タを排除、reverseコマンドを利用して

    、 一番古いデータを表示 | search userpassword=* | reverse 問題の解き方 : 応用編 調査サポート問題3で 抽出したデータ (statsコマンドは削除) passwd A passwd B passwd C passwd A passwd B passwd C headコマンドを利用して、 一番最初のパスワードを表示 | head 1 | table userpassword rexコマンドを利用して、 form_dataからパスワードを抽出 | rex field=form_data “passwd=(?<userpassword>¥w+)”
  64. © 2025 SPLUNK LLC 回答4 12345678 サーチ文 index=botsv1 imreallynotbatman.com sourcetype=stream:http

    http_method=POST form_data=*user*pass* | rex field=form_data "passwd=(?<userpassword>¥w+)" | search userpassword=* | reverse | head 1 | table userpassword 説明 rexコマンドで、パスワードデータを抽出 したuserpasswordフィールドを作成し、 searchコマンドでuserpasswordのnullを排 除し、reserve、head、tableコマンドでデ ータを表示
  65. © 2025 SPLUNK LLC 調査サポート問題 5 同じパスワードの文字列が 2回使用されているケースがあります。 その際の接続元IPを全て求めよ。 statsコマンドを利用して、

    userpsswordとsrcごとの件数を表示 | stats count values(src_ip) as source_address by XXXXX 問題の解き方 index=botsv1 sourcetype=stream:http form_data=*user*pass* で抽出したデータ passwd A passwd B passwd C rexコマンドを利用して、 form_dataからパスワードを抽出 | rex field=form_data “passwd=(?<userpassword>¥w+)”
  66. © 2025 SPLUNK LLC 回答5 23.22.63.114 40.80.148.42 サーチ文 index=botsv1 sourcetype=stream:http

    form_data=*user*pass* | rex field=form_data "passwd=(?<userpassword>¥w+)" | stats count values(src_ip) as source_address by userpassword | sort - count 説明 rexコマンドで、パスワードデータを抽出 したuserpasswordフィールドを作成し、 statsコマンドを利用して、 userpsswordとsrc_ipごとの件数を表示さ せ、sortコマンドでcountの値が大きい順 に並べ替え
  67. © 2025 SPLUNK LLC evalコマンド 指定した処理に基づいてデータを加工 • 構文 • eval

    field名1 = <式1> [“,” <field名2>=<式2>…] • 考慮点 • fieldは式の結果を格納する宛先field名。field名がイベントに既に存在する場合は値を上書きする。 • 式はfieldに格納する値を決定するために実行される値、変数、演算子、および関数の組み合わせ。 • evalで作成された新たな値は、既存のIndexされているデータを上書きや、新たにIndexに書き込まない。 • eval式では大文字と小文字が区別される。 • 式にfieldに格納されている値を利用する場合は、field名をシングルクォーテーションで囲む必要がある。 • 式にリテラル文字列を参照する場合は、その文字列をダブルクォーテーションで囲む必要がある。 • eval 式の結果をブール値にすることはできません。 evalコマンドは既存のフィールドと任意の式を使用して、イベントに新しいフィールドを作成する事が可能 A B C A B C D evalコマンド実行前の結 果 evalコマンド実行後の結 果 … | eval D = …
  68. © 2025 SPLUNK LLC eval コマンド Text Function Text Functionは文字列に使用できる関数が含まれ、指定された関数に基づいて文字列を加工した

    結果を返す。 https://docs.splunk.com/Documentation/SCS/current/SearchReference/TextFunction s | eval n=substr("splendid", 1, 3) + substr("chunk", -3) Text Functionの例 | eval n=replace(“01/14/2023”, "^(¥d{1,2})/(¥d{1,2})/", "¥2/¥1/") splendidからはspl, chunkからはunkを取得しsplunkという 結果を返す。 月と日付を入れ替えた14/01/2023という結果を返す。 構文 説明 lower(<str>) strの文字列を小文字にした結果を返す。strはフィールド名を指定することも可能。 upper(<str>) strの文字列を大文字にした結果を返す。strはフィールド名を指定することも可能。 len(<str>) strの文字列の文字数を結果として返す。strはフィールド名を指定することも可能。 substr(<str>,<start>,<length>) strで指定した文字列をstart(文字列の取得開始位置)で指定した数値とlength(取得する文字数)で指定した数値に該当する結 果を返す。strはフィールド名を指定することも可能。lengthは指定しないことも可能。 trim(<str>,<trim_chars>) ltrim(<str>,<trim_chars>) rtrim(<str>,<trim_chars>) strの文字列をtrim_charsで指定した文字列を文字列の左側と右側から排除した結果を返す。 trim_charsを指定しない場合、文字列の左側と右側からスペースとtabを削除した結果を返す。 ltrimは文字列の左側のみ、rtrimは右側のみ排除した結果を返す。 replace(<str>,<regex>,<replacement> ) strの文字列に含まれる値をregexで指定された正規表現(PCRE)で取得し、replacementで指定した内容で該当箇所(regexで 取得された箇所)を置き換えた結果を返す。
  69. © 2025 SPLUNK LLC eval コマンド Mathematical Function Mathematical Functionは値に対して数学的な計算処理を行う関数が含まれ、指定された関数に基

    づいて結果を返す。 構文 説明 abs(<num>) numで指定された値の絶対値を返す。 ceiling(<num>) or ceil(<num>) numで指定された値の次に大きい整数に丸めた値を返す。 exact(<expression>) expressionで算出される値を倍精度浮動小数点数表現で結果を返す。 floor(<num>) numで指定された値の次に小さい整数に丸めた値を返す。 pi() 円周率の値を11桁の精度で値を返す。 pow(<num>, <exp>) numで指定された値をexpで指数乗した値を返す。 round(<num>, <precision>) numで指定された値をprecisionで指定した小数点以下の桁数に丸められた値を返す。 precisionを指定しない場合は整数値に丸められる。 https://docs.splunk.com/Documentation/SCS/current/SearchReference/MathematicalFunction s
  70. © 2025 SPLUNK LLC eval コマンド使い方の紹介 evalコマンドのlen Functionを利用して、 userpasswordの文字数を求める evalコマンドのround

    Functionを利用して、 平均帯域の小数点以下を四捨五入して求める 実行コマンド 1 : index=botsv1 sourcetype=stream:http form_data=*user*pass* earliest=1470862800 latest=1470877200 | rex field=form_data "passwd=(?<userpassword>¥w+)" | eval lenpword=len(userpassword) | table lenpword userpassword 実行コマンド 2 index=botsv1 sourcetype=stream:http form_data=*user*pass* earliest=1470862800 latest=1470877200 | stats avg(bytes_in) as avg_bytes_in by src | eval round_avg_bytes_in=round(avg_bytes_in,0) | table round_avg_bytes_in avg_bytes_in
  71. © 2025 SPLUNK LLC 調査サポート問題 6 ブルートフォースアタックの施行に 使われたパスワード文字列の長さの平均値を求めよ (小数点以下を切り捨てて答えよ。例:5.23213の場合答えは5) statsコマンドを利用して、

    lenpwordの値の平均値を算出 | stats avg(lenpword) as avgPword 問題の解き方 調査サポート問題5で 抽出したデータ (statsとsortコマンドは 削除) lenpword=6 lenpword=7 lenpword=8 avgPword=6.666 evalコマンドを利用して、 小数点以下を切り捨て | eval avgPword=xxxxxxx evalコマンドを利用して、 userpasswordの値の長さを算出 | eval lenpword=len(userpassword)
  72. © 2025 SPLUNK LLC 回答6 6 サーチ文 index=botsv1 sourcetype=stream:http form_data=*user*pass*

    | rex field=form_data "passwd=(?<userpassword>¥w+)" | eval lenpword=len(userpassword) | stats avg(lenpword) as avgPword | eval avgPword=round(avgPword,0) 説明 evalコマンドのlenを利用して、 userpasswordの値の長さを算出し statsコ マンドのavgを利用して、lenpwordの値の 平均値を算出し、evalコマンドのroundを 利用して、小数点以下を切り捨てた結果 を表示
  73. © 2025 SPLUNK LLC 小休止 : 5分休憩 休憩中余裕があれば下記を実施 index=botsv1 sourcetype=stream:http

    form_data=*user*pass* | rex field=form_data "passwd=(?<userpassword>¥w+)" | timechart count span=1m by dest 視覚エフェクトをクリック してサーチ結果を可視化 span=1sやspan=10mに変更してサ ーチを再実行 どのspanのグラフが分析結果として 優れていますか?
  74. © 2025 SPLUNK LLC transactionコマンド データを指定した処理によってグループ化 • 構文 • transaction

    [<field-list>][name=<transaction- name>][<txn_definition- options>...][<memcontrol- options>...][<rendering-options>...] • 考慮点 • field-listでグループ化を実施するフィールド を指定 • nameはtransactiontypes.conf • txn_definition-optionsはグループ化する条件を 設定可能 • memcontrol-optionsはtransactionコマンドが利 用できるメモリ量を設定可能 • rendering-optionsはレンダリングを制御可能 グループ化する条件で最も古いデータの時刻を開始時刻、最も新しいデータの時刻情報を終了時刻として 時差を計算してdurationフィールドを新たに作成する。また、グループ化されたデータ数をeventcountフィ ールド新たに作成する。 使い方 : transactionコマンドでsrc_ipを指定することで、src_ipごとでデ ータをグループ化。locationとdurationを表示させることで、どこにどれ くらい滞在したのか可視化可能 実行コマンド : index=botsv1 sourcetype=stream:http form_data=*user*pass* earliest=1470862800 latest=1470877200 | transaction src_ip | table src_ip location duration
  75. © 2025 SPLUNK LLC 調査サポート問題 7 最初にパスワード(batman)が 利用されてから、もう一度利用されたときまでの 経過時間は何秒か? transactionコマンドを利用して、

    userpasswordの値のグループ化 | transaction userpassword 問題の解き方 調査サポート問題5で 抽出したデータ (statsとsortコマンドは 削除) userpassword=batman userpassword=batman userpassword=batman duration=XXXXX tableコマンドを利用して、 durationをテーブルで表示 | table duration searchコマンドを利用して、 userpasswordのbatmanの値のみを算出 | search userpassword=batman
  76. © 2025 SPLUNK LLC 回答7 92.169084 サーチ文 index=botsv1 sourcetype=stream:http form_data=*user*pass*

    | rex field=form_data "passwd=(?<userpassword>¥w+)" | search userpassword=batman | transaction userpassword | table duration 説明 searchコマンドを利用して、 userpasswordからbatmanの値を抽出して transactionコマンドで、durationを算出し 、Tableコマンドでdurationを表示させる
  77. © 2025 SPLUNK INC. おさらい You did it!! 今日学んだこと 1.

    脆弱性スキャンやブルートフォースアタッ クを検知することができる。 2. Splunkのコマンドを利用することで攻撃の 詳細を様々な角度から調査・分析できる。
  78. © 2025 SPLUNK LLC ワークショップ2025年コース https://www.splunk.com/ja_jp/about-us/events.html Entry Basic Security IT

    Lunch & Learn Security Essentials Risk-Based Alerting SOAR Endpoint 受講前提または同等の知識をお持ちであること Splunk Coreによる セキュリティ分析 Enterprise Security (SIEM) による 高度なセキュリティ分析 セキュリティ対応自動化 Platform Machine Learning Splunk Core Enterprise Security 機械学習 概要・ ユースケース 基本機能 実施日が決定したワークショップは 随時、上記URLに掲載されます。 (メールでの配信もございます) 各ワークショップの詳細は各ページを ご確認ください。 ※SOAR単体でのご利用検討の 場合、受講前提はございません 凡例 受講推奨(より深く理解できます) Splunk Observability Cloud - Basic Observability Business Service Insight Service Insight IT Service IntelligenceによるITサービス監視 Data Onboarding データ取り込み Splunk Observability Cloudが提供する基本的なオブザーバビリティの機能と操作方法 Building Correlation Search Advanced APT Hunting
  79. 98 Copyright SHIFT Inc, All Rights Reserved. 今日の話に興味を持ってくださった方へ 気になる企業と まずはお話してみませんか?

    お手元にあるご案内から 各社の求人情報をご確認いただけます。 ぜひアクセスお願いいたします!