VolatilityでStuxnetのメモリダンプ解析 #1
揮発性メモリの分析(メモリフォレンジック)手法について学んでいる。
メモリフォレンジックの主な目的は,インシデント発生時にメモリダンプからその状況を解析することである。これを実現するために,フォレンジックツールはメモリダンプからプロセス,ライブラリやネットワークなどの状況を詳細に解析するコマンドを提供する。
利用するソフトウェアは,Volatility Framework(以下Volatility)やGoogleのRekallが実質標準となっている。今回はVolatilityについて学んだことを解説記事として記載する。
本記事の内容
Volatilityの基本的な使い方を学習することを目的とする。Stuexnetに感染したVMに,Volatilityを使って種々の解析を行いマルウェアの特定を行う。なお,Stuxnetは2010年頃に発見されたWindowsのマルウェアである。
準備
- Volatility Framework (https://github.com/volatilityfoundation/volatility)
- VMのメモリダンプ (http://malwarecookbook.googlecode.com/svn/trunk/stuxnet.vmem.zip)
VMは当該マルウェアに感染してるため,取り扱いには十分注意されたい。個々の責任の下,Volatilityの学習目的のみにおいて使用すること。
環境はKali Linuxを推奨する。説明不要かもしれないが,Kali Linuxはセキュリティ関連ツールの揃ったLinuxのディストリビューションである。Volatilityも起動すれば使える状態になっている。
1. 解析対象の識別をする
まずはimageinfo
コマンドで解析対象の情報を得る。実行結果の抜粋を下図に,全文を末尾の章に示す。これにより解析対象のOSはWinXPSP2x86であることが分かる。
2. 不審なプロセスを探す
不審なプロセスを探すためにまずプロセスの一覧の取得を行う。Volatilityの当該コマンドにはpstree
, psscan
がある。pstreeコマンドの抜粋を下図に,pstree, psscanの実行結果の全文を末尾の章に示す。
この中から不審なプロセスを探す。手掛かりとなる情報は,名前,親子関係,重複起動している数などである。
上記の結果から次の2点が言え,pid1928, 868が不審なプロセスであると推定できる。
- lsass.exeは本来1つしか起動しないはずだが,3つ(pid1928, 868, 680)重複起動しており不審である。
- lsass.exeはwinlogon.exeを親プロセスとするため,pid680は正しいプロセスだと推定できる。
補足. pid680が正しいプロセスであることの推定は,起動時間が早いこと,pidが小さいことからも可能です。
このように,調査にはWindowsの基本的なプロセスについての情報が不可欠である。SANSの出している資料*1などで確認しておくと良い。
短いですがきりが良いのでここまでとします。次回はこの結果を踏まえてプロセスオブジェクト,ネットワークの解析を行っていく。
(参考) コマンドの実行結果
imageinfo
root@kali:~/Desktop/volatility/stuxnet# volatility -f stuxnet.vmem imageinfo Volatility Foundation Volatility Framework 2.6 INFO : volatility.debug : Determining profile based on KDBG search... Suggested Profile(s) : WinXPSP2x86, WinXPSP3x86 (Instantiated with WinXPSP2x86) AS Layer1 : IA32PagedMemoryPae (Kernel AS) AS Layer2 : FileAddressSpace (/root/Desktop/volatility/stuxnet/stuxnet.vmem) PAE type : PAE DTB : 0x319000L KDBG : 0x80545ae0L Number of Processors : 1 Image Type (Service Pack) : 3 KPCR for CPU 0 : 0xffdff000L KUSER_SHARED_DATA : 0xffdf0000L Image date and time : 2011-06-03 04:31:36 UTC+0000 Image local date and time : 2011-06-03 00:31:36 -0400
pstree
root@kali:~/Desktop/volatility/stuxnet# volatility -f stuxnet.vmem pstree Volatility Foundation Volatility Framework 2.6 Name Pid PPid Thds Hnds Time -------------------------------------------------- ------ ------ ------ ------ ---- 0x823c8830:System 4 0 59 403 1970-01-01 00:00:00 UTC+0000 . 0x820df020:smss.exe 376 4 3 19 2010-10-29 17:08:53 UTC+0000 .. 0x821a2da0:csrss.exe 600 376 11 395 2010-10-29 17:08:54 UTC+0000 .. 0x81da5650:winlogon.exe 624 376 19 570 2010-10-29 17:08:54 UTC+0000 ... 0x82073020:services.exe 668 624 21 431 2010-10-29 17:08:54 UTC+0000 .... 0x81fe52d0:vmtoolsd.exe 1664 668 5 284 2010-10-29 17:09:05 UTC+0000 ..... 0x81c0cda0:cmd.exe 968 1664 0 ------ 2011-06-03 04:31:35 UTC+0000 ...... 0x81f14938:ipconfig.exe 304 968 0 ------ 2011-06-03 04:31:35 UTC+0000 .... 0x822843e8:svchost.exe 1032 668 61 1169 2010-10-29 17:08:55 UTC+0000 ..... 0x822b9a10:wuauclt.exe 976 1032 3 133 2010-10-29 17:12:03 UTC+0000 ..... 0x820ecc10:wscntfy.exe 2040 1032 1 28 2010-10-29 17:11:49 UTC+0000 .... 0x81e61da0:svchost.exe 940 668 13 312 2010-10-29 17:08:55 UTC+0000 .... 0x81db8da0:svchost.exe 856 668 17 193 2010-10-29 17:08:55 UTC+0000 ..... 0x81fa5390:wmiprvse.exe 1872 856 5 134 2011-06-03 04:25:58 UTC+0000 .... 0x821a0568:VMUpgradeHelper 1816 668 3 96 2010-10-29 17:09:08 UTC+0000 .... 0x81fee8b0:spoolsv.exe 1412 668 10 118 2010-10-29 17:08:56 UTC+0000 .... 0x81ff7020:svchost.exe 1200 668 14 197 2010-10-29 17:08:55 UTC+0000 .... 0x81c47c00:lsass.exe 1928 668 4 65 2011-06-03 04:26:55 UTC+0000 .... 0x81e18b28:svchost.exe 1080 668 5 80 2010-10-29 17:08:55 UTC+0000 .... 0x8205ada0:alg.exe 188 668 6 107 2010-10-29 17:09:09 UTC+0000 .... 0x823315d8:vmacthlp.exe 844 668 1 25 2010-10-29 17:08:55 UTC+0000 .... 0x81e0eda0:jqs.exe 1580 668 5 148 2010-10-29 17:09:05 UTC+0000 .... 0x81c498c8:lsass.exe 868 668 2 23 2011-06-03 04:26:55 UTC+0000 .... 0x82279998:imapi.exe 756 668 4 116 2010-10-29 17:11:54 UTC+0000 ... 0x81e70020:lsass.exe 680 624 19 342 2010-10-29 17:08:54 UTC+0000 0x820ec7e8:explorer.exe 1196 1728 16 582 2010-10-29 17:11:49 UTC+0000 . 0x81c543a0:Procmon.exe 660 1196 13 189 2011-06-03 04:25:56 UTC+0000 . 0x81e86978:TSVNCache.exe 324 1196 7 54 2010-10-29 17:11:49 UTC+0000 . 0x81e6b660:VMwareUser.exe 1356 1196 9 251 2010-10-29 17:11:50 UTC+0000 . 0x8210d478:jusched.exe 1712 1196 1 26 2010-10-29 17:11:50 UTC+0000 . 0x81fc5da0:VMwareTray.exe 1912 1196 1 50 2010-10-29 17:11:50 UTC+0000
psscan
root@kali:~/Desktop/volatility/stuxnet# volatility -f stuxnet.vmem --profile WinXPSP2x86 psscan Volatility Foundation Volatility Framework 2.6 Offset(P) Name PID PPID PDB Time created Time exited ------------------ ---------------- ------ ------ ---------- ------------------------------ ------------------------------ 0x0000000001e0cda0 cmd.exe 968 1664 0x0a9403a0 2011-06-03 04:31:35 UTC+0000 2011-06-03 04:31:36 UTC+0000 0x0000000001e47c00 lsass.exe 1928 668 0x0a9403c0 2011-06-03 04:26:55 UTC+0000 0x0000000001e498c8 lsass.exe 868 668 0x0a940360 2011-06-03 04:26:55 UTC+0000 0x0000000001e543a0 Procmon.exe 660 1196 0x0a940260 2011-06-03 04:25:56 UTC+0000 0x0000000001fa5650 winlogon.exe 624 376 0x0a940060 2010-10-29 17:08:54 UTC+0000 0x0000000001fb8da0 svchost.exe 856 668 0x0a9400e0 2010-10-29 17:08:55 UTC+0000 0x000000000200eda0 jqs.exe 1580 668 0x0a9401e0 2010-10-29 17:09:05 UTC+0000 0x0000000002018b28 svchost.exe 1080 668 0x0a940140 2010-10-29 17:08:55 UTC+0000 0x0000000002061da0 svchost.exe 940 668 0x0a940100 2010-10-29 17:08:55 UTC+0000 0x000000000206b660 VMwareUser.exe 1356 1196 0x0a9402e0 2010-10-29 17:11:50 UTC+0000 0x0000000002070020 lsass.exe 680 624 0x0a9400a0 2010-10-29 17:08:54 UTC+0000 0x0000000002086978 TSVNCache.exe 324 1196 0x0a940180 2010-10-29 17:11:49 UTC+0000 0x0000000002114938 ipconfig.exe 304 968 0x0a940380 2011-06-03 04:31:35 UTC+0000 2011-06-03 04:31:36 UTC+0000 0x00000000021a5390 wmiprvse.exe 1872 856 0x0a9401c0 2011-06-03 04:25:58 UTC+0000 0x00000000021c5da0 VMwareTray.exe 1912 1196 0x0a9402c0 2010-10-29 17:11:50 UTC+0000 0x00000000021e52d0 vmtoolsd.exe 1664 668 0x0a940200 2010-10-29 17:09:05 UTC+0000 0x00000000021ee8b0 spoolsv.exe 1412 668 0x0a9401a0 2010-10-29 17:08:56 UTC+0000 0x00000000021f7020 svchost.exe 1200 668 0x0a940160 2010-10-29 17:08:55 UTC+0000 0x000000000225ada0 alg.exe 188 668 0x0a940240 2010-10-29 17:09:09 UTC+0000 0x0000000002273020 services.exe 668 624 0x0a940080 2010-10-29 17:08:54 UTC+0000 0x00000000022df020 smss.exe 376 4 0x0a940020 2010-10-29 17:08:53 UTC+0000 0x00000000022ec7e8 explorer.exe 1196 1728 0x0a940280 2010-10-29 17:11:49 UTC+0000 0x00000000022ecc10 wscntfy.exe 2040 1032 0x0a9402a0 2010-10-29 17:11:49 UTC+0000 0x000000000230d478 jusched.exe 1712 1196 0x0a940300 2010-10-29 17:11:50 UTC+0000 0x00000000023a0568 VMUpgradeHelper 1816 668 0x0a940220 2010-10-29 17:09:08 UTC+0000 0x00000000023a2da0 csrss.exe 600 376 0x0a940040 2010-10-29 17:08:54 UTC+0000 0x0000000002479998 imapi.exe 756 668 0x0a940320 2010-10-29 17:11:54 UTC+0000 0x00000000024843e8 svchost.exe 1032 668 0x0a940120 2010-10-29 17:08:55 UTC+0000 0x00000000024b9a10 wuauclt.exe 976 1032 0x0a940340 2010-10-29 17:12:03 UTC+0000 0x00000000025315d8 vmacthlp.exe 844 668 0x0a9400c0 2010-10-29 17:08:55 UTC+0000 0x00000000025c8830 System 4 0 0x00319000