Compact
true
担当領域:リスクハンティング/専門分野:インシデントレスポンス、フォレンジック
脆弱性診断やマルウェア解析業務を経て、現在はインシデント対応業務に従事。

今回は、デジタルフォレンジックおよびインシデント対応に特化したオープンソースのモニタリングツールである「Velociraptor」(ベロシラプター)[1]についてご紹介します。
本記事では、Velociraptorの基本的な使い方や導入方法、フォレンジックに活用できる機能を紹介します。

Velociraptorとは

一般的なログ基盤では、端末から中央サーバーへデータを送り、サーバー側で処理・分析する構成がよく使われます。Velociraptorでは、端末上でVQL(Velociraptor Query Language)を実行し、必要なデータをその場で絞り込んでからサーバーに送ります。目的に合わせて収集対象を限定できるため、大量のファイルを常に転送する構成に比べ、ネットワークやサーバーへの負荷を抑えながら迅速かつ大規模な調査を実施できます。

主要な特徴

Velociraptorの主な特徴は以下の通りです。

  1. VQL(Velociraptor Query Language)
    Velociraptorでは、SQLに似た独自のクエリ言語「VQL(Velociraptor Query Language)」を使用します。VQLを利用することで、エンドポイント上のファイル、プロセス、メモリ、ログなど、さまざまな情報の検索・取得が可能です。
  2. 外部ツール・SIEM/SOARとの連携
    Velociraptorは、Hayabusaなどの外部ツールをエンドポイントへ配布・実行し、その解析結果を集約できるほか、収集したデータをElasticsearchなどへ転送することもできます。また、APIを利用することで、PythonやGoなどの外部プログラムから調査タスクの実行や結果取得を自動化することも可能です。
  3. 多様なアーティファクト(Artifact)
    Velociraptorでは、調査・情報収集の手順を「Artifact(アーティファクト)」として定義しています[2]。ArtifactはYAML形式で記述され、収集対象やパラメータ、VQLクエリなどを定義できます。たとえば、WindowsのPrefetchファイルからアプリケーションの実行痕跡の収集を行いたい場合、実行に必要なパラメータやデータを取得・分析するためのクエリがArtifactに定義されています。通常はWeb UIでArtifactを選び、必要な条件を設定して実行します。
図 1 Artifactの一覧/詳細画面
100

標準で多数のArtifactが用意されており、Windows、Linux、macOSなどを調査できます。OS別のArtifactに加えて、複数OSで利用できる汎用Artifactや、クライアント・サーバーのイベントを扱うArtifactもあります。

表 1 デフォルトで導入されているArtifactの対応OS
center
20
80
対応OS
1
1
主な調査対象・用途
1
1
Windows
1
1
レジストリ、イベントログ、Prefetchなど、Windows固有の情報を調査する
1
1
Linux
1
1
システムログ、プロセス、ファイルなど、Linuxの情報を調査する
1
1
macOS
1
1
macOS固有のファイルやシステム情報を調査する
1
1
Generic(汎用)
1
1
特定のOSに限定されない処理や、複数OSに共通する処理を行う
1
1
表 2 Artifactの実行場所
center
20
80
種類
1
1
実行場所・役割
1
1
CLIENT
1
1
クライアント端末で調査を実行し、結果をサーバーへ返す
1
1
CLIENT_EVENT
1
1
クライアント端末のイベントを継続的に収集し、サーバーへ送る
1
1
SERVER
1
1
Velociraptorサーバー上で管理タスクなどを実行する
1
1
SERVER_EVENT
1
1
サーバー上でイベントを受け取り、継続的に処理する
1
1
NOTEBOOK
1
1
Notebookでの分析や可視化に使うテンプレート
1
1

調査目的に合うArtifactがない場合は、後述する「Server.Import.Extras」などを使い、追加でArtifactをインポートすることも可能です。また、Artifactを編集もしくは新規作成し、独自の調査手順を作ることも可能です。
他にもコミュニティサイトのVelociraptor Artifact Exchange[3]で公開されているArtifactを活用することも可能です。なお、コミュニティ提供のArtifactは品質や安全性が保証されているわけではないため、利用前に実行内容を確認し、検証環境で試してから使用することを推奨します。

主な利用方法

Velociraptorは、調査対象の環境や組織の要件に応じて大きく以下の3つの方法で利用できます。

図 2 Velociraptorの利用方法
100

Velociraptorの構築手順

ここからは、検証環境を例にクライアント/サーバー構成を構築します。

検証環境

今回の検証には、Velociraptorサーバー1台、Windowsクライアント2台、ElasticsearchとKibanaを使用します。

設定方法

GitHub[4]から実行環境に対応したVelociraptorのバイナリをダウンロードします。今回の検証では、以下のバージョンを使用しました。

まず、サーバー側で操作を行います。設定ファイルを作成し、その設定に基づいてサーバーおよびWeb UIを起動します。

サーバー上でバイナリファイルを実行し、対話型のConfiguration Generatorを起動します。

./velociraptor-v0.77.2-linux-amd64 config generate -i
1
1
図 3 Velociraptor 起動後の設定画面
100

画面の指示に従い、環境に合わせたパラメータを選択・入力します。今回の検証では以下のように設定しました。

表 3 Configuration Generatorの設定項目
center
100
100
項目
1
1
入力値
1
1
Deployment Type
1
1
Self Signed SSL
1
1
Server OS
1
1
Linux
1
1
Datastore directory
1
1
任意のパス
1
1
Logs directory
1
1
任意のパス
1
1
Internal PKI Certificate Expiration
1
1
1 Year
1
1
Use registry for client writeback?
1
1
No
1
1
Clients will connect to the Frontend using this public name
1
1
Velociraptorサーバーが動いているIPアドレス
1
1
DNS Type
1
1
None
1
1
Experimental WebSocket comms
1
1
No
1
1
Frontend port
1
1
8000
1
1
GUI port
1
1
8889
1
1
Username
1
1
任意の管理者名
1
1
Password
1
1
任意のパスワード
1
1
Server config file
1
1
/<任意のパス>/server.config.yaml
1
1

設定が完了すると指定した場所に server.config.yamlが生成されます。生成された設定ファイルを使用し、Velociraptorサーバーを起動します。

./velociraptor-v0.77.2-linux-amd64 --config server.config.yaml gui
1
1
図 4 サーバー側でVelociraptorを起動後の画面
100

コマンド実行後、WebブラウザからVelociraptorのWeb UIへアクセスできるようになります。

図 5 Velociraptor 起動後のWeb UI画面
100

サーバー側の起動を確認後、クライアント側で操作を行います。
クライアント側では、設定ファイルの作成と実行ファイルの起動を行います。

まず、サーバー側で生成した設定ファイル(server.config.yaml)を使用し、クライアント側の設定ファイルを作成します。

.\velociraptor-v0.77.2-windows-amd64.exe config client --org "root" --config server.config.yaml > client.root.config.yaml
1
1

--org:Velociraptor上の組織(Organization)名を指定。デフォルトの組織名としてrootが使用される。

生成された設定ファイルを使用して、クライアントを起動します。

.\velociraptor-v0.77.2-windows-amd64.exe --config .\client.root.config.yaml client -v
1
1
図 6 クライアント側でVelociraptorを実行後の画面
100

なお、複数端末でクライアントを動かしたい場合でも、端末ごとにファイルを生成し直す必要はなく、同じ設定ファイルを各端末に配布するだけで動作します。

クライアント起動後は、自動的にサーバーへ接続が開始されます。
Web UI画面上部の▼を選択し、「Show All」を選択すると、接続されたクライアントを確認することができます。

図 7 接続されたクライアントの確認
100

Velociraptorの主要機能

Velociraptorの主要な機能の概要を紹介します。

Home

Velociraptorサーバー全体のステータスや稼働状況を確認できる画面です。接続されているクライアント数や、サーバーのCPU使用率・メモリ使用量などをグラフ形式で確認できます。

図 8 Home画面
100

Hunt Manager

Huntとは、複数のエンドポイントに対して同じArtifactを実行する機能です。Hunt Managerでは新規Huntの作成、進捗状況の確認、収集結果の確認、失敗した場合の再実行などを行うことができます。
例えば、複数のWindows端末に対してプロセス情報を収集するArtifactである「Windows.System.Pslist」を実行すると、プロセス情報を一括で収集し、まとめて確認することができます。

Huntを作成する際、まずConfigure Hunt画面で収集対象や有効期限などの基本設定を行います。

図 9 New HuntのConfigure Hunt画面
100

次にSelect Artifacts画面で対象端末から収集するArtifactを検索・選択します。

図 10 New HuntのSelect Artifact 画面
100

その後、必要に応じてArtifact固有の実行パラメータやリソース制限などを設定します。最後に「Launch」を選択しHuntを作成・起動します。実行中はResult画面で進捗状況やエラーを確認します。

図 11 Hunt実行後のResults画面
50

完了後は 「Notebook」 タブから結果を確認することが可能です。

図 12 Hunt実行後のNotebook画面
100

View Artifacts

システムに登録されているArtifactを一覧表示・管理する画面です。各ArtifactのYAML構造、概要、パラメータ、VQLクエリなどを確認できます。
また、独自に編集したArtifactの作成や、コミュニティで公開されているArtifactをインポートすることも可能です。
既存Artifactを検索する場合は、画面右上の検索窓にキーワードを入力します。

図 13 View Artifactの検索画面
100

また、新たにArtifactを作成したい場合は、左上の「+(Add an Artifact)」から作成できます。

図 14 Artifactの作成画面
100

Server Events/Server Artifacts

Server Eventsは、サーバー上で発生するイベントを継続的に受け取り処理するArtifactを設定する画面です。例えば、Elasticsearchへのデータ転送を行う「Elastic.Flows.Upload」などの設定はここから行います。

図 15 Server Events画面
100

Server Artifactsでは、サーバー側で実行するArtifactを扱う画面です。例えば、追加でArtifactを取り込む「Server.Import.Extras」など、サーバー側で実行する処理をここから設定・実行します。

図 16  Server Artifacts画面
100

Host Information

特定のエンドポイントに関する基本情報や接続状況を確認できる画面です。OSバージョン、IPアドレス、最終アクティブ時間などを確認できます。
また、調査対象端末などにラベルを付与して管理することで、Hunt Managerから特定のグループに対象を絞って一括調査することも可能です。

図 17 Host Information画面
100

Virtual File System

リモートのエンドポイント上にあるファイルシステムやレジストリなどを、Web UIからディレクトリツリー形式で参照できる機能です。
左ペインから参照したいディレクトリを選択し、「Refresh this directory」をクリックすると、エンドポイントから最新のファイル情報を取得できます。

図 18 Virtual File System画面
100

また、エンドポイント上のファイルをダウンロードすることも可能です。取得したいファイルを選択し、「Collect from client」をクリックすると、ファイルをサーバーへ転送できます。転送されたファイルは「Download」からローカル端末へ保存できます。

図 19 Virtual File System画面からファイルのダウンロードも可能
100

Collected Artifacts

選択した特定のエンドポイントに対して実行したCollectionの履歴と結果が表示されます。1台でArtifactの動作を試す場合はNew Collection、複数台を対象に一括実行する場合はHuntを使います。

図 20 Collected Artifacts画面
100

Collectionの作成方法はHuntとほぼ同一で、画面左の「+(New Collection)」ボタンを選択し、表示されたダイアログから目的のArtifact(今回は「Windows.Timeline.Prefetch」)を検索し選択します。

図 21 New Collection画面
100

必要に応じてArtifact固有の実行パラメータやリソース制限などを設定します。設定が完了したら「Launch」を選択し実行します。収集が完了すると、一覧に新しいFlowが追加され、「Results」タブから収集結果を確認できます。

図 22 New Collection完了後の結果出力画面
100

その他おすすめ機能

ここまで紹介した基本的な機能に加え、実際のインシデント調査で活用できる機能をいくつか紹介します。

カスタムYARAルールによる脅威スキャン

Velociraptorでは、標準搭載されている検出ルールに加え、独自のYARAルールを利用したファイルシステムやプロセスメモリに対するスキャンにも対応しています。
例えば、フォレンジック調査中でマルウェアのハッシュ値や新たなIoCが確認された場合、その特徴をもとにYARAルールを作成し、複数のエンドポイントに対して一括でスキャンを実行できます。

Windows.Detection.Yara.Process(プロセスメモリ用)や Generic.Detection.Yara.Glob(ファイル用)などの標準ArtifactではYaraルールの設定を行うことができます。

図 23 Yaraルールの設定画面
100

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を取得します。

図 24  Server.Import.Extrasを実行
100

Artifactの追加が完了すると、Hayabusa関連のArtifactを利用できるようになります。
今回は、例として「Windows.Hayabusa.Rules」を実行します。

図 25 Windows.Hayabusa.Rulesの実行
100
図 26 Windows.Hayabusa.Rulesの実行結果
100

このように、対象端末に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に加えて、認証に使用するユーザー名とパスワードを指定します。

図 27 Elastic.Flows.Uploadの設定画面
100

正常に実行が完了すると、Elasticsearch側にインデックスが作成されます。作成されたインデックスをもとにデータビューを作成し、KibanaのDiscover画面からログを確認します。データビューのパターンやフィールド名は、実際に作成されたインデックスとドキュメントを確認して設定します。

図 28 Velociraptor のデータをKibanaで確認
100

なお、Server Eventsを利用して継続的にイベントを転送する構成では、設定した条件に合致するイベントが発生するたびにElasticsearchへの転送が行われます。転送を停止する場合は、Server Eventsで対象Artifactの無効化または削除を行います。継続的に転送する場合は、転送対象やデータ量にも注意が必要です。

収集データの構造を確認する

Elasticsearchへ転送するデータについては、転送後のデータ構造にも注意が必要です。

例えば、EVTXファイルを解析してイベント情報を取得するWindows.EventLogs.Evtxを使用した場合、イベントによっては一つのフィールドに値がまとめて格納され、個々の値が独立したフィールドとして分割されないことがあります。

図 29 EvtxファイルをVelociraptorで取得しELKに送信した際のログ構造
50

このようなデータは、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/

執筆者プロフィール

original
50

Ao森(あおもり)※ハンドルネーム
担当領域:リスクハンティング
専門分野:インシデントレスポンス、フォレンジック

脆弱性診断やマルウェア解析業務を経て、現在はインシデント対応業務に従事。