今回は、デジタルフォレンジックおよびインシデント対応に特化したオープンソースのモニタリングツールである「Velociraptor」(ベロシラプター)[1]についてご紹介します。
本記事では、Velociraptorの基本的な使い方や導入方法、フォレンジックに活用できる機能を紹介します。
Velociraptorとは
一般的なログ基盤では、端末から中央サーバーへデータを送り、サーバー側で処理・分析する構成がよく使われます。Velociraptorでは、端末上でVQL(Velociraptor Query Language)を実行し、必要なデータをその場で絞り込んでからサーバーに送ります。目的に合わせて収集対象を限定できるため、大量のファイルを常に転送する構成に比べ、ネットワークやサーバーへの負荷を抑えながら迅速かつ大規模な調査を実施できます。
主要な特徴
Velociraptorの主な特徴は以下の通りです。
- VQL(Velociraptor Query Language)
Velociraptorでは、SQLに似た独自のクエリ言語「VQL(Velociraptor Query Language)」を使用します。VQLを利用することで、エンドポイント上のファイル、プロセス、メモリ、ログなど、さまざまな情報の検索・取得が可能です。 - 外部ツール・SIEM/SOARとの連携
Velociraptorは、Hayabusaなどの外部ツールをエンドポイントへ配布・実行し、その解析結果を集約できるほか、収集したデータをElasticsearchなどへ転送することもできます。また、APIを利用することで、PythonやGoなどの外部プログラムから調査タスクの実行や結果取得を自動化することも可能です。 - 多様なアーティファクト(Artifact)
Velociraptorでは、調査・情報収集の手順を「Artifact(アーティファクト)」として定義しています[2]。ArtifactはYAML形式で記述され、収集対象やパラメータ、VQLクエリなどを定義できます。たとえば、WindowsのPrefetchファイルからアプリケーションの実行痕跡の収集を行いたい場合、実行に必要なパラメータやデータを取得・分析するためのクエリがArtifactに定義されています。通常はWeb UIでArtifactを選び、必要な条件を設定して実行します。
標準で多数のArtifactが用意されており、Windows、Linux、macOSなどを調査できます。OS別のArtifactに加えて、複数OSで利用できる汎用Artifactや、クライアント・サーバーのイベントを扱うArtifactもあります。
表 1 デフォルトで導入されているArtifactの対応OS
表 2 Artifactの実行場所
調査目的に合うArtifactがない場合は、後述する「Server.Import.Extras」などを使い、追加でArtifactをインポートすることも可能です。また、Artifactを編集もしくは新規作成し、独自の調査手順を作ることも可能です。
他にもコミュニティサイトのVelociraptor Artifact Exchange[3]で公開されているArtifactを活用することも可能です。なお、コミュニティ提供のArtifactは品質や安全性が保証されているわけではないため、利用前に実行内容を確認し、検証環境で試してから使用することを推奨します。
主な利用方法
Velociraptorは、調査対象の環境や組織の要件に応じて大きく以下の3つの方法で利用できます。
-
クライアント/サーバー(Client-Server Deployment)
- 各エンドポイントにVelociraptorクライアントを導入し、Velociraptorサーバーへ接続します。
- サーバーから調査内容を指示し、クライアントが端末上でArtifactを実行し結果を返します。結果を確認しながら別のArtifactを追加実行するなど、調査を段階的に進められます。
-
オフラインコレクター(Offline Collector)
- 収集対象のArtifactをあらかじめ組み込んだ専用の実行ファイルをVelociraptor 上で作成し、対象端末で実行します。
- エンドポイントにVelociraptorクライアントを常駐させることが難しい環境や、ネットワーク制限・ファイアウォールなどによってVelociraptorサーバーと通信ができない場合でもVelociraptorを実行することができます。
- 実行する前に収集するArtifactを決めておく必要があり、調査中に内容を変更する場合は再度コレクターを作り直す必要があります。
-
インタラクティブローカル解析(Interactive Local Analysis)
- 取得済みのディスクイメージなど、手元にある証拠データをVelociraptorから参照できるように設定し、イメージ内のファイルシステムに対してArtifactを実行します。
Velociraptorの構築手順
ここからは、検証環境を例にクライアント/サーバー構成を構築します。
検証環境
今回の検証には、Velociraptorサーバー1台、Windowsクライアント2台、ElasticsearchとKibanaを使用します。
- Velociraptorサーバー:Ubuntu 26.04.1 LTS
- Velociraptorクライアント:Windows 11
- Elasticsearchサーバー:Ubuntu 26.04.1 LTS、Elasticsearch Version 9.5.4
設定方法
GitHub[4]から実行環境に対応したVelociraptorのバイナリをダウンロードします。今回の検証では、以下のバージョンを使用しました。
- サーバー:velociraptor-v0.77.2-linux-amd64
- クライアント:velociraptor-v0.77.2-windows-amd64.exe
まず、サーバー側で操作を行います。設定ファイルを作成し、その設定に基づいてサーバーおよびWeb UIを起動します。
サーバー上でバイナリファイルを実行し、対話型のConfiguration Generatorを起動します。
画面の指示に従い、環境に合わせたパラメータを選択・入力します。今回の検証では以下のように設定しました。
表 3 Configuration Generatorの設定項目
設定が完了すると指定した場所に server.config.yamlが生成されます。生成された設定ファイルを使用し、Velociraptorサーバーを起動します。
コマンド実行後、WebブラウザからVelociraptorのWeb UIへアクセスできるようになります。
サーバー側の起動を確認後、クライアント側で操作を行います。
クライアント側では、設定ファイルの作成と実行ファイルの起動を行います。
まず、サーバー側で生成した設定ファイル(server.config.yaml)を使用し、クライアント側の設定ファイルを作成します。
--org:Velociraptor上の組織(Organization)名を指定。デフォルトの組織名としてrootが使用される。
生成された設定ファイルを使用して、クライアントを起動します。
なお、複数端末でクライアントを動かしたい場合でも、端末ごとにファイルを生成し直す必要はなく、同じ設定ファイルを各端末に配布するだけで動作します。
クライアント起動後は、自動的にサーバーへ接続が開始されます。
Web UI画面上部の▼を選択し、「Show All」を選択すると、接続されたクライアントを確認することができます。
Velociraptorの主要機能
Velociraptorの主要な機能の概要を紹介します。
Home
Velociraptorサーバー全体のステータスや稼働状況を確認できる画面です。接続されているクライアント数や、サーバーのCPU使用率・メモリ使用量などをグラフ形式で確認できます。
Hunt Manager
Huntとは、複数のエンドポイントに対して同じArtifactを実行する機能です。Hunt Managerでは新規Huntの作成、進捗状況の確認、収集結果の確認、失敗した場合の再実行などを行うことができます。
例えば、複数のWindows端末に対してプロセス情報を収集するArtifactである「Windows.System.Pslist」を実行すると、プロセス情報を一括で収集し、まとめて確認することができます。
Huntを作成する際、まずConfigure Hunt画面で収集対象や有効期限などの基本設定を行います。
次にSelect Artifacts画面で対象端末から収集するArtifactを検索・選択します。
その後、必要に応じてArtifact固有の実行パラメータやリソース制限などを設定します。最後に「Launch」を選択しHuntを作成・起動します。実行中はResult画面で進捗状況やエラーを確認します。
完了後は 「Notebook」 タブから結果を確認することが可能です。
View Artifacts
システムに登録されているArtifactを一覧表示・管理する画面です。各ArtifactのYAML構造、概要、パラメータ、VQLクエリなどを確認できます。
また、独自に編集したArtifactの作成や、コミュニティで公開されているArtifactをインポートすることも可能です。
既存Artifactを検索する場合は、画面右上の検索窓にキーワードを入力します。
また、新たにArtifactを作成したい場合は、左上の「+(Add an Artifact)」から作成できます。
Server Events/Server Artifacts
Server Eventsは、サーバー上で発生するイベントを継続的に受け取り処理するArtifactを設定する画面です。例えば、Elasticsearchへのデータ転送を行う「Elastic.Flows.Upload」などの設定はここから行います。
Server Artifactsでは、サーバー側で実行するArtifactを扱う画面です。例えば、追加でArtifactを取り込む「Server.Import.Extras」など、サーバー側で実行する処理をここから設定・実行します。
Host Information
特定のエンドポイントに関する基本情報や接続状況を確認できる画面です。OSバージョン、IPアドレス、最終アクティブ時間などを確認できます。
また、調査対象端末などにラベルを付与して管理することで、Hunt Managerから特定のグループに対象を絞って一括調査することも可能です。
Virtual File System
リモートのエンドポイント上にあるファイルシステムやレジストリなどを、Web UIからディレクトリツリー形式で参照できる機能です。
左ペインから参照したいディレクトリを選択し、「Refresh this directory」をクリックすると、エンドポイントから最新のファイル情報を取得できます。
また、エンドポイント上のファイルをダウンロードすることも可能です。取得したいファイルを選択し、「Collect from client」をクリックすると、ファイルをサーバーへ転送できます。転送されたファイルは「Download」からローカル端末へ保存できます。
Collected Artifacts
選択した特定のエンドポイントに対して実行したCollectionの履歴と結果が表示されます。1台でArtifactの動作を試す場合はNew Collection、複数台を対象に一括実行する場合はHuntを使います。
Collectionの作成方法はHuntとほぼ同一で、画面左の「+(New Collection)」ボタンを選択し、表示されたダイアログから目的のArtifact(今回は「Windows.Timeline.Prefetch」)を検索し選択します。
必要に応じてArtifact固有の実行パラメータやリソース制限などを設定します。設定が完了したら「Launch」を選択し実行します。収集が完了すると、一覧に新しいFlowが追加され、「Results」タブから収集結果を確認できます。
その他おすすめ機能
ここまで紹介した基本的な機能に加え、実際のインシデント調査で活用できる機能をいくつか紹介します。
カスタムYARAルールによる脅威スキャン
Velociraptorでは、標準搭載されている検出ルールに加え、独自のYARAルールを利用したファイルシステムやプロセスメモリに対するスキャンにも対応しています。
例えば、フォレンジック調査中でマルウェアのハッシュ値や新たなIoCが確認された場合、その特徴をもとにYARAルールを作成し、複数のエンドポイントに対して一括でスキャンを実行できます。
Windows.Detection.Yara.Process(プロセスメモリ用)や Generic.Detection.Yara.Glob(ファイル用)などの標準ArtifactではYaraルールの設定を行うことができます。
YARAルールを設定したArtifactの作成後は、前述したHunt ManagerもしくはCollected Artifactsの基本手順に沿って実行します。
EVTXイベントログのSigmaスキャン(Hayabusa連携)
Velociraptorでは、Windowsイベントログ(EVTX)に対してHayabusa[5]を実行(Windows.EventLogs.Hayabusa)し、Sigmaルールを利用した高速なイベントログ解析を行うこともできます。[6]
Hayabusaを利用するためのArtifactがデフォルトで登録されていないため、Server Artifactsから「Server.Import.Extras」を実行し、追加のArtifactを取得します。
Artifactの追加が完了すると、Hayabusa関連のArtifactを利用できるようになります。
今回は、例として「Windows.Hayabusa.Rules」を実行します。
このように、対象端末にHayabusaを個別にインストール・配布することなく、Windowsイベントログに対するSigmaルールを用いた解析を実施することが可能です。
Elasticsearchとの連携
Velociraptorでは、Elasticsearchと連携することで、収集したデータ をELKスタックと組み合わせて検索・可視化することができます[7]。
Velociraptor単体でも、VQLを使用して収集対象の絞り込みや集計を行うことができます。そのため、対象端末が少なく個別の調査やHunt単位で結果を確認する場合は、Velociraptor単体でも十分に対応できます。
一方、結果を横断的に検索したい場合や、長期間にわたる調査結果を比較・分析したい場合には、Elasticsearchとの連携が有効です。Kibanaを利用することで、端末名やArtifact名、イベントの発生時刻などを条件に検索できるほか、収集結果を集計して可視化することもできます。
Velociraptorとの連携方法
今回は例として、Elasticsearchへのデータ転送に対応したArtifactである「Elastic.Flows.Upload」を利用します。
なお、設定を行う前に、VelociraptorサーバーからElasticsearchへ正常に通信できることを確認してください。
「Elastic.Flows.Upload」の設定画面では、接続先となるElasticsearchサーバーのURLに加えて、認証に使用するユーザー名とパスワードを指定します。
正常に実行が完了すると、Elasticsearch側にインデックスが作成されます。作成されたインデックスをもとにデータビューを作成し、KibanaのDiscover画面からログを確認します。データビューのパターンやフィールド名は、実際に作成されたインデックスとドキュメントを確認して設定します。
なお、Server Eventsを利用して継続的にイベントを転送する構成では、設定した条件に合致するイベントが発生するたびにElasticsearchへの転送が行われます。転送を停止する場合は、Server Eventsで対象Artifactの無効化または削除を行います。継続的に転送する場合は、転送対象やデータ量にも注意が必要です。
収集データの構造を確認する
Elasticsearchへ転送するデータについては、転送後のデータ構造にも注意が必要です。
例えば、EVTXファイルを解析してイベント情報を取得するWindows.EventLogs.Evtxを使用した場合、イベントによっては一つのフィールドに値がまとめて格納され、個々の値が独立したフィールドとして分割されないことがあります。
このようなデータは、ElasticsearchやKibana上で特定の項目を条件に検索・集計する際に扱いづらくなる可能性があります。そのため、実際にElasticsearchへ転送されたドキュメントの構造を確認し、必要に応じてElasticsearchのIngest PipelineやLogstashなどを利用し必要なフィールドを抽出する必要があります。
まとめ
今回は、オープンソースのフォレンジックモニタリングフレームワークであるVelociraptorについて、導入方法や主要な機能、フォレンジック調査で活用できる機能を紹介しました。
豊富なArtifactを利用してエンドポイントから必要な情報を効率的に収集できるほか、外部ツールとの連携にも対応しており、用途や環境に応じて柔軟に活用できるため、フォレンジック調査やインシデント対応の分野で広く活用されています。
導入や操作も簡単に行うことができ、Web UIから収集結果を視覚的に確認できるため、フォレンジック調査をこれから始める方にも非常に扱いやすいツールだと思います。
参考文献
[1] GitHub - Velocidex/velociraptor: Digging Deeper.... · GitHub
https://github.com/velocidex/velociraptor
[2] Velociraptor Artifacts
https://docs.velociraptor.app/docs/artifacts/
[3] Artifact Exchange
https://docs.velociraptor.app/exchange/?
[4] Release Release 0.77.2 · Velocidex/velociraptor · GitHub
https://github.com/Velocidex/velociraptor/releases/tag/v0.77.2
[5] GitHub - Yamato-Security/hayabusa · GitHub
https://github.com/Yamato-Security/hayabusa
[6] Triaging Logs
https://www.velociraptor-docs.org/blog/2026/2026-03-21-cli/
[7] Velociraptor to Elasticsearch – Velociraptor - Digging deeper!
https://docs.velociraptor.app/blog/2019/2019-12-08-velociraptor-to-elasticsearch-3a9fc02c6568/
執筆者プロフィール
Ao森(あおもり)※ハンドルネーム
担当領域:リスクハンティング
専門分野:インシデントレスポンス、フォレンジック
脆弱性診断やマルウェア解析業務を経て、現在はインシデント対応業務に従事。