株式会社セキュアイノベーション
Menu

セキュリティコラム

  • エンドポイント
  • 初心者向け

公開:2021.10.04 10:00 | 更新: 2022.08.15 03:42

メモリから何がわかる?メモリフォレンジック入門

今回は、メモリフォレンジックツールの1つであるVolatilityを使用し、基本的な揮発性メモリ分析を行いたいと思います。
Volatilityは、揮発性メモリ(RAM)サンプルからデジタルアーティファクトを抽出するために最も広く使用されているフレームワークであり、メモリフォレンジックの入門としてもとっつきやすいと思います。
※メモリフォレンジック*の初心者を対象としています。

*メモリフォレンジック(memory forensics):揮発性情報であるメモリ上のデータを解析する技術のことを指す。

メモリフォレンジックをやってみよう!

検証環境

OSParrot OS 4.11(※1)
ToolVolatility 3(v1.2.1)
Symbolwindows.zip(※2)

※1.Parrot OSを使用していますが、Volatilityが動作すれば何でもOK
※2.Symbol(windows.zip)は、Volatility3のREADMEに従って取得してください。

解析手順

さっそくStuxnetに感染したVMのダンプファイルを解析していきたいと思います。
[解析対象(stuxnet.vemv)はこちらから取得できます。]

※解析対象は当該マルウェアに感染しているため、取り扱いには注意してください。
※個々の責任の下、学習目的以外で使用しないでください。

  1. 解析対象のOSを識別
  2. 実行プロセス調査
  3. 怪しいプロセスをダンプ
  4. VirusTotalでHashの確認

1.解析対象のOSを識別

解析対象(stuxnet.vemv)より、対象OSの情報を取得してみる。
 使用するプラグイン:windows.info

windows.info

「NTBuildLab」の情報(2600.xpsp.080413-2111)から対象のOSは、WindowsXP SP3だと判断できました。
※この情報は後の解析で、OS毎に異なる挙動の判断材料に利用します。

2.実行プロセス調査

実行中のプロセス情報を取得し、怪しいプロセスがないか調査してみる。
 使用するプラグイン:windows.pslist、windows.pstree

windows.pslist

※本調査を行うには正しいプロセスの動作を把握していなければなりません。こちらに関して、SANSが「HuntEvil」ポスターを出しているので参考になると思います。

プロセス一覧を確認すると、通常は1つであるはずの「lsass.exe」が複数実行されているのが確認できます。

次にプロセス一覧をツリー状に取得し、プロセスの親子関係などを取得してみましょう。

windows.pstree

「PID:680」の「lsass.exe」に関しては、親が「winlogon.exe」であり正規プロセスだと判断できます。
 → XPの場合、「lsass.exe」の親が「wininit.exe」ではなく「winlogon.exe」が正常
 → 「lsass.exe」の親が「wininit.exe」になるのはWindows Vista以降

残り2つの「PID:868」及び「PID:1928」の「lsass.exe」は「service.exe」から実行されていることが確認でき、また、「CreateTime」が「2011-06-03 04:25:58」と明らかに他とずれていることから不審なプロセスだと判断できます。

3.怪しいプロセスをダンプ

「2.実行プロセス調査」で見つけた不審なプロセス(PID:868、PID:1928)から、インジェクションされたコードを含むものをダンプしてみましょう。
 使用するプラグイン:windows.malfind

Windows.malfind_pid_868(抜粋)
Windows.malfind_pid_1928(抜粋)
dmp一覧及びfiletype

UPX形式で圧縮されていないものをピックアップ↓

pid.1928.vad.0x1000000-0x1005fff.dmp: PE32 executable (GUI) Intel 80386, for MS Windows
pid.868.vad.0x1000000-0x1005fff.dmp: PE32 executable (GUI) Intel 80386, for MS Windows

4.VirusTotalでHashの確認

「3.怪しいプロセスをダンプ」でピックアップしたdmpファイルからHash値を取得し、VirusTotalで検索してみましょう!!

「0af75012adb1ccab2d33b6e23b855f42ac67b6603eca7462dedb72e6d6834c65」結果

「9c5db8058025bb7af4511a5bcdb997b22268bcece083942a9d7f68b2eb999896」結果

不審なプロセスのダンプからHash値を取得し、VirusTotalで検索してみた結果、どちらも「Stuxnet」のサンプルマルウェアだと判明しました!!

まとめ

今回、メモリフォレンジック入門ということで「Stuxnet」に感染したVMダンプファイルを簡単に解析してみました。もう少し掘り下げると、プロセス毎のネットワーク調査や隠ぺいされたDLLのリンク情報を検出するといった事もできます。

この記事でメモリフォレンジックに興味を持っていただけたら、検体は結構ネットに落ちてたりしますので、ぜひ試してみてはいかがでしょうか。

また、何か端末に不正な動きがあり、詳しく調査を行いたい等ありましたら、弊社にご相談ください。
サービスお問い合わせ:問合せ入力フォーム

最新のコラム記事

LOADING...

セキュアイノベーション サービス一覧

ネットワーク・サーバー

Webサイトを守る