今回のミートアップは「メモリ分析でマルウェアを探す」といった内容であった。
作業の流れと使用ツールは以下であった。
1. メモリのイメージをダンプツール: FTK Image Lite
2. ダンプしたメモリの分析
ツール:Volatility
手順 >
1. メモリのイメージをダンプ
まずは、Access Data のサイトから、FTK Image Lite をダウンロードする。Lite は必要最小限なコンポーネントでできたもので、今回は Lite 版を使用した。
a) FTK Lite を実行し
b) File → Capture Memory
c) Destination Path にはファイルの出力先を指定。(通常は外部のシェアなど作るのが良い。)
d) [ Capture Memory ] ボタンをクリック
2. ダンプしたメモリの分析
今回は Volatility はフリーな Open source で、Add-on が多く便利なコマンドが多いから採用したようだ。
a) VolatileSystems から、Volatility の Standalone exe をダウンロード
b-1) コマンドラインから、1でダンプしたファイルを指定して実行。imageinfo はダンプデータのOSなども含めた情報を表示させるオプション> volatility-2.1.standalone.exe imageinfo -f d:memdump.mem
b-2) オプションを sockets に変更すると、その時のPID、プロトコル、インターネット接続時間を表示できる。
> volatility-2.1.standalone.exe sockets -f d:memdump.mem
b-3) connections に変更すると、その時 Active だった接続が表示できる。
> volatility-2.1.standalone.exe connections -f d:memdump.mem
b-4) connscan にすると、最近アクティブだった接続が表示できる。
> volatility-2.1.standalone.exe connscan -f d:memdump.mem
b-5) cmdscan にすると、最近実行されたコマンドが表示できる。
> volatility-2.1.standalone.exe cmdscan -f d:memdump.mem
b-6) pslist にすると、その時稼働していたプロセスが表示できる。
> volatility-2.1.standalone.exe pslist -f d:memdump.mem
b-7) dlllist にして、b-6 で見つけたPIDを追加するとの、そのプロセスが使用していた DLL 一覧が表示できる。PID を指定しない場合は、全 DLL が表示される。
> volatility-2.1.standalone.exe dlllist -p 682 -f d:memdump.mem
b-8) filescan にすると、開いていたファイルが全て表示される。
> volatility-2.1.standalone.exe filescan -f d:memdump.mem
などなど・・・。他にも、procexedump で、プロセスを a.exe などのファイルにしたり、procmemdump で、プロセスのメモリをダンプしたり、memdump でプロセスのメモリを番地付でダンプしたりできるようだ。
上記の内容から予想できると思うが、Windows のメモリ分析をするのであれば、Windows で普段どんなプロセスが動いているか。一般的なプロセスはどういう行動をとっているのかを、知っていないといけない。
今回は、PDFと称したファイルが、バックグラウンドで通信を行っていた。そもそも Acrobat Reader がネットワークを使用するものなのかどうかがわかってないと、これらのコマンドから、怪しいものに気づく事はできない。そのため、これからこういった事をやっていきたい場合は、普段から、プロセスモニターなどみて、Windows の一般的なプロセスくらいは、最低知っておく必要はあるだろう。Ctrl+Alt+Del で画面変わったら、ALT+T でタスクマネージャーはすぐに起動できる。もしくは、Windows タスクバーで右クリックして、「タスクマネージャー」からも起動できる。あるいは、Windowsキー+R (名前を指定して実行)で、tskmgr でも起動できる。
上記の分析をするに当たっては、一般的に標的にされるアプリ、IE、Acrobat Rader が、どういった動作をするのかという基本を知っておく必要もある。