フォレンジックツール「Velociraptor」を試してみる(オフラインで)
概要
Velociraptorというフォレンジックツールを試してみようと思います。
説明を見てる感じでは、Velociraptor Query Language (VQL)というクエリ言語エンジンをコアとしたフレームワークというのが正しいのかもしれないですね。
実は前から気になっていたんですが、調査対象の機器と常時接続して必要に応じてアーティファクトを収集するという説明だったのでちょっと使いづらいかなと思ってました。
久しぶりにドキュメントを読んだらどうやらオフラインコレクターも作成できるとのことらしいので、今回はそれを試してみようと思います。
手順
1. 起動
GitHubのReleasesから、Velociraptorを動かすOSに合わせてバイナリを落とします。
今回は velociraptor-v0.72.4-windows-amd64.exe
を使いました。
調査対象で動かすバイナリをVelociraptorでビルドするので、できれば同じOSで動かすと良いかなと思います。(クロスプラットフォーム対応ではあるのですが念の為)
私はWindowsのフォレンジックを想定しているので、Windows上で動かします。
> velociraptor-v0.72.4-windows-amd64.exe gui
起動すると 127.0.0.1:8889
でWebUIが立ち上がりました。
2. コレクターのビルド
Server Artifacts > Build offline collector
を選択します。
Select Artifacts
収集するアーティファクトを指定できます。
あまりに種類が多いのでちゃんと使わないとどれが適切かは選べなさそうですね。
とりあえず下記だけ選択してみました。
Windows.EventLogs.Evtx
Windows.Timeline.MFT
Configure Parameters
各Artifactのコンフィグを設定できます。
収集期間とかを指定できるみたい。
Configure Collection
コレクターの設定ができます。
暗号化設定だったり出力フォルダだったり。
Specify Resources
リソースの制限を掛けられます。特になしで。
Review
ここまでの設定をjsonで表示してくれるっぽいです。
レビュー依頼用の機能を想定したものみたいですが、Gitで管理してPRで共有とかの運用にするのかな。
Launch
なんかよくわからないですが、ビルドのときにはインターネット接続必要みたいです。(なぜ?)
3. コレクターをダウンロードする
Launchをクリックしたら画面が遷移しました。
アップロードされたアーティファクト一覧を確認できたり、結果をダウンロードできるみたいです。
Uploaded Files
をクリックすると先程作成したコレクターをダウンロードできます。
4. コレクターを実行する
調査対象機器の上で先程ダウンロードしたコレクターを実行します。
ダブルクリックするとUACが表示されるので、許可して実行します。
今回はMFTとEvtxだけですが、CDIR-Collector などと比べるとそこそこ時間はかかるかなという気はします。調査対象機器上でパースしているみたいなのでその影響かな。
実行が終わるとウィンドウが閉じます。気長に待ちましょう。
また、実行ファイルと同じフォルダにzipファイルとlogファイルが作成されます。
5. アーティファクトのアップロード
これ本当に分かりづらくて1時間くらい手間取りました。
GUIでポチッとアップロードできるのかと思っていたのですが、そうではなくCollectorとして用意されているものを使ってインポートするみたいです。
Server Artifacts > New Collection
を選択して Server.Utils.ImportCollection
を選択します。
Configure Parameters
ではインポートしたいzipのPathを選択します。データを識別するためのhostnameもつけておきましょう。あとは全部デフォで。
このパラメータの説明も型くらいしかなくて、どういうPath指定なのかくらいは書いておいてほしかったのですが、みんなわかるんでしょうか。一応下記のページのスクリーンショットから読み取りました。
6. データの閲覧
上部アイコンから Show All
を選択し、さっきインポートしたhostnameを選択します。
Collected
をクリックすると収集したアーティファクトを見れます。
各収集したアーティファクトを選択して、Resultを押下すると収集したアーティファクトが見れます。
一応正規表現でのフィルタとかができるみたい。
おわりに
この手のツールに入っているパーサの数としては相当に多いのではないかなと思いました。
開発側が想定している通り、ネットワークつなげてLiveで情報取得する分にはなかなかよいのではないかと思います。
一方で、私のようにオフラインで分析したい場合には上記のメリットを活かしきれないのと、一番重要な検索・分析機能が発展途上な印象は受けました。
個人的には、せっかくJSONで収集してるんだからElasticsearchに全部ぶち込んでKibanaで分析したほうがまだ楽な気もします。
今後のアップデートに期待しつつ、定期的に様子を見てみようと思います。
お し ま い
Discussion