MWS2012 ハンズオン
インシデントレスポンス

2012/11/1
株式会社インターネットイニシアティブ
春山 敬宏、鈴木 博志

準備hands-on
Host OS• ハンズオンで使用するファイル群のコピー– USBメモリ内のmws2012フォルダをホストOSのC:¥に
コピー• leaked_file– 漏洩したファイルを含む圧縮ファイル• WinHost– ホストOSで使用するデータ、ツール• WinVM– ゲストOS（Windows）で使用するデータ、ツール• Documents– ハンズオン資料、フォレンジック解析に関する解説文書• ディスクイメージの展開– C:¥mws2012¥WinHost¥acquired_disk_image¥win
7usp1.zip– ディスクイメージはハンズオンが終わったら削除してく
ださい
2

調査開始までのあらすじ• あなたは某社でインシデントレスポンスを行う
エンジニア• あなたは顧客から「弊社の機密情報がインター
ネット上になぜか漏洩している。原因を調べてほしい」との依頼を受ける• ヒアリングとファイルサーバのログ調査を行ったところ、不審な一台の端末が特定され、手始
めにその端末を解析することになった3

ネットワーク構成
インターネット
今回の解析対象：
重役toshiのアカウントでファイルサーバにアクセス？
（本人にその覚えはない、
アカウント情報も知らない）

外部DNS/メールサー
バ/Firewall/GW(mail)Cent OS 6.32

ローカルネットワーク (192.168.52.0/24)
Domain : shinsen-group.50
Client A(win7usp1)
Windows 7 SP1(一般社員okitaが利用).52
Client B (winxpsp3)
Windows XP SP3（ネットワーク管理者
kondoが利用）.51
Client C (vistaesp2)
Windows Vista SP2（重役toshiが利用）.33
DC/内部DNSサーバ (2008r2dc)
Windows Server
2008 r2 SP1.34
ファイル共有/web
サーバ(2003r2fs)
Windows Server
2003 r2 SP24

インシデント対応における解析のフロー
今回の
解析範囲

フォレンジック解析

マルウェア解析5

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

6

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

7

SIFTのVM設定、ログイン確認•

フォルダの共有設定– SIFTからホストのイメージファイルにアクセス可能にする•• [VM] -> [設定]から[オプション]タブを選択

ログインできることを確認– パワーオン、ID=sansforensics, password=forensicsでログイン• 使用しているVMWareが古くて起動しない場合は、 以下の設定を参照
C:¥mws2012¥WinHost¥conf¥VMWare¥Workstation_SIFT_setting.txt

8タイムラインの作成• ファイルシステム・レジストリ等、様々なタイムスタンプを１つにまとめて表示• マルウェアによる感染痕跡が残りやすい個所を調べて時刻を絞り込む– 事前にもらった情報（マルウェアのアクセス先URL等）があればそれを利用• 絞り込んだ時刻の前後の活動を芋づる式に抽出していく– 前：感染原因– 後：マルウェアや攻撃者による活動
ファイルシステム

レジストリ

log2timeline
web履歴

CSV出力、EXCELで表示

プログラム実行履歴9タイムラインの作成(Cont.)• SIFTのlog2timeline-sift– 生成• log2timeline-sift -win7 -z Japan –i イメージファイルのパス• ホストOS側と共有設定していれば、ホストOSのCドライブを/mnt/hgfsもしくはデスクトップから参照可能• 詳しいコマンドオプションは以下を参照のこと– C:¥mws2012¥Documents¥log2timeline-cheatsheet.pdf

10タイムラインの作成(Cont.)• SIFTのlog2timeline-sift– 期間でフィルタリング• l2t_process -b /cases/timeline-output-folder/イメージファイル名_bodyfile.txt
開始日(..終了日) > 出力csvファイルのパス

11タイムラインの作成(Cont.)• SIFTのlog2timeline-sift– 抽出されたエントリのソースタイプを確認• awk -F, ‘{print $6;}’ フィルタした後のcsvのパス | grep -v
sourcetype | sort | uniq

– 処理の過程で抜け落ちるソースが存在• v2.13の場合、イベントログがタイムラインに含まれてこない

12本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

13自動起動設定プログラムの調査• マルウェアはシステム起動時・ログイン時に自身を実行するための設定を登録することが多い– 感染時期や原因、マルウェアに関する情報等が事前に無い場合、まずは起動設定を調べる• AutoRuns– レジストリやスタートアップ等、自動起動設定に関する情報を一括表示– 起動中のシステムだけでなく、オフラインのシステ
ムボリュームの設定を表示することも可能• FTK Imager– 保全したディスクイメージをマウント

14

ハンズオン#1:自動起動設定プログラムの調査

hands-on
Host OS• FTK Imager– インストール①• C:¥mws2012¥Win
Host¥tools¥Access
Data%20FTK%20I
mager.exe②③
ボリュームレター：Eにマウントされた– [File] -> [Image
Mounting...]
1.

2.
3.

イメージファイル
を指定
マウント
Mapped Images
を確認– AutoRunsで指定すべきボリューム
を判別

15

ハンズオン#1:自動起動設定プログラムの調査(Cont.)

hands-on
Host OS• AutoRuns– "C:¥mws2012¥WinHost¥tools¥Autoruns.zip"を展開、autoruns.exeを
管理者権限で実行– [File] -> [Analyze Offline System...]1.
2.

System Rootに「レター番号:¥Windows」をセット
User Profileに「レター番号:¥Users¥okita」をセット– [Options] -> [Filter Options]でノイズを除去①②※ HKLM (Hive Key Local Machine): システムレジストリ
HKCU (Hive Key Current User): 指定したユーザプロファイルのレジストリ
16本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

17マルウェアの登録時刻の特定• レジストリキーには最終更新時刻の情報が含まれる– AutoRunsで発見した不審なエントリが追加された時刻を特定し、それ以前のタイムライ
ンを遡っていく• Registry Decoder– ディスクイメージ、レジストリファイルを解析してレジストリの情報を検索・表示• Digital Forensic Framework– 削除・未使用領域を含めたファイルの検索、
表示、抽出

18

マルウェアの登録時刻の特定(Cont.)• SIFTのDigital Forensic Framework– SIFT VMメニューバーのアイコンをクリック– [File] -> [Open evidence file(s)]– ①ファイルフォーマット、②読み込むイメージファイルを指定

①
②

19

マルウェアの登録時刻の特定(Cont.)• SIFTのDigital Forensic Framework– 対応するモジュールを指定してNTFSをパース• [Relevant module] -> ①partition, ②ntfs

①

②

20

マルウェアの登録時刻の特定(Cont.)• SIFTのDigital Forensic Framework– 対象のレジストリファイルを抽出• 保存先はホストOSのファイルシステムのフォルダを指定21

マルウェアの登録時刻の特定(Cont.)•

Registry Decoder– "C:¥mws2012¥WinHost¥tools¥regedcoderR103.zip"を展開、regdecoderR103.exeを実行– [Start a new case]を選択、Next– ケースの作成• Case Directoryは必ず空のフォルダを指定– レジストリファイルの追加• Add Evidenceで抽出したレジストリファイルを選択

レジストリファイルの追加

ケースの作成22

マルウェアの登録時刻の特定(Cont.)• Registry Decoder– ブラウジング• [File View] タブでレジストリファイルを選択、 [View] をクリック• [Browse] タブが開くので、注目しているレジストリパスをたどる

Runキーの最終更新時刻（上書きされる可能性あり）

23

マルウェアの登録時刻の特定(Cont.)• Registry Decoder
• 検索
1.
2.
3.
4.

[Search] タブで対象のレジストリファイルを選択[Search Term] 内でキーワードを入力[Partial Search] を選択
検索対象を全てチェック

①
②

④

③

24

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

25タイムラインのチェック• 感染原因に迫るアプローチ– 自動起動設定されているwmi.exeの様々なタイム
スタンプを参照する
Registrykey

Filesystem

Prefetch

ShimCache

Description

last written
time

MACB times

first & last
run time

file
modification
time

Tool

log2timeline, log2timeline Windows
Registry
Prefetch
Decoder
Parser

ShimCache
ParserRisk

別のエントリ マルウェアや SSD/ESXiのによる上書き 攻撃者による イメージ変更?
(シャットダウンが必要)

Result2012/10/5
18:48:30

2012/10/5
17:05:56

2012/10/5
17:05:56

無26

ハンズオン#2:タイムラインのチェック

hands-on
Host OS• log2timeline-siftが生成したCSVをチェック– C:¥mws2012¥WinHost¥timeline¥win7usp1current¥20120901-win7usp1-bodyfile.zipを展
開、CSVをExcelでオープン• Officeが無い場合、SIFT内の表計算ソフトも利用可能
A, B,D,E, F, Mのカラムに注目する

modification/last access/entry modified/creation

タイムスタンプの種類を表す

既に削除されているエントリの場合、パスの後ろに(deleted)が入る
27

ハンズオン#2:タイムラインのチェック(Cont.)

hands-on
Host OS• ShimCacheに残っていたファイルの更新時刻から、直前の活動を遡る– ファイルの生成• C:/Users/okita/AppData/Local/~EFGOI.tmp– デスクトップからWordファイルをオープン• taiseihoukan.doc• Flashオブジェクトを含む？

• 以下の疑問について確認していく– 「~EFGOI.tmp」とは何か？
– 「taiseihoukan.doc」はどこから来たファイルか？（e.g., web or mail）

28

ファイルの内容や由来に関する調査•「~EFGOI.tmp」とは何か？
– Digital Forensic Frameworkを用いたハッシュ値の照合• “~EFGOI.tmp”と”wmi.exe”は同一のファイル•「taiseihoukan.doc」はどこから来たファイルか？
– web履歴（explorerによるファイルアクセスも残る）• Web Historian–

writableで再マウント、ホームフォルダにアクセスしてアクセス権限を取得– メールの調査• Thunderbirdのメールフォルダを抽出、 VM上にセットアップしたThunderbirdに読み込み–

Users/okita/AppData/Roaming/Thunderbird/Profiles/*.default/Mail

2012/10/5
17:05:10送信の「大政奉還（修正版）」”taiseihoukan.doc”が添付されている29

ユーザ活動の調査• ユーザが実行したGUIプログラムの調査– ユーザレジストリのUserAssistキー（実行回数、最後に実行された時刻）– Registry DecoderのUser Assistプラグイン• ファイルのオープンに関する調査– Officeの最近開いたファイル• C:¥Users¥<user>¥AppData¥Roaming¥Microsoft¥Office¥Recent¥– JumpList• C:¥Users¥user¥AppData¥Roaming¥Microsoft¥Windows¥Recent• JumpLister– ユーザレジストリ• Shell Bag, RecentDocs, etc..
• Registry Decoderの各プラグイン（Searchも有効）30本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

31Officeドキュメントの解析• embeddedなコード・ファイルの確認– 文字列検索• Flash/JavaScript/ActiveXコンポーネント(ScriptBridge), etc..
• 文字列抽出ツール、バイナリエディタを使う– e.g., BinText– OLE構造をパースして確認• FileInsight• Pyew/hachoir-subfile (REMnuxに収録）• スキャン– OfficeMalScanner• 実行ファイル・シェルコード、swfの抽出
32

Officeドキュメントの解析(Cont.)• FileInsight– VM内の"C:¥mws2012¥WinVM¥tools¥fileinsight.exe"を実行してインストール– taiseihoukan.docを読み込んで中身を確認

Flashファイルのシグネチャ

33

Officeドキュメントの解析(Cont.)•

OfficeMalScanner– VM内の"C:¥mws2012¥WinVM¥tools¥OfficeMalScanner.zip"を展開– OfficeMalScanner.exeのscanコマンドを実行• 実行ファイルやシェルコードのパターンを検索・抽出–

bruteオプションでone-byte XORを試行• Flashファイルの抽出も可能

34

Flashの簡易解析• デコンパイルしたコードを確認– PDF Stream DumperのAS3 Sourcerer (評価版)• p-codeの確認– SWFInvestigator

デコンパイルしたコード

p-code35

Flashの簡易解析(Cont.)••

PDF Stream Dumper– VM内の"C:¥mws2012¥WinVM¥tools¥PDFStreamDumper_Setup.exe"を実行してインストール– [Tools] -> [Decompile Flash w/ AS3 Sourcerer]– 評価版なので文字列コピー等の操作は不可

特徴的な文字列をwebで検索– “Main_FontClass”、シェルコードの文字列– CVE-2012-1535？

36

悪性文書ファイルの動的解析• CVE-2012-1535– Adobe Flash Player 11.3.300.270 およびそれ以前のバージョンが対象– 感染端末のFlashのバージョンを調べる• SOFTWARE¥Microsoft¥Windows¥CurrentVersion¥Uninstall¥A
dobe Flash Player ActiveX– DisplayVersion = 11.2.202.233• 動的解析

– 同じバージョンのFlashをインストールしたWindows VM上で対象ドキュメントを開いて挙動を観察する• ファイル入出力、プロセスの動作解析– Process Hacker/Process Explorer– CaptureBAT• エミュレーションサーバ– FakeNet• レジストリ、ファイルシステム差分取得– regshot– Windows VMにOfficeをインストールしていない場合は、
wmi.exeを代わりに実行する
37

Windows VMの設定

hands-on
Host OS• VMWare Toolsをインストールしていない場合は入れておく• マルウェアを実行するので以下の設定を行う– ネットワークの設定をホストオンリーに– 実行前の状態に戻せるようにしておく• VMWare Workstationの場合、スナップショットを作成– [VM] -> [スナップショット] -> [スナップショットの作成]• VMWare Playerの場合、VM停止後に変更を破棄できるよう設定を編集– C:¥mws2012¥WinHost¥conf¥VMWare¥Player_Win_setting.txt• パワーオン、ログイン• ホストOSの"C:¥mws2012¥WinVM"をWindows VM内のC:¥mws2012にコピー

38

ハンズオン#3:
悪性文書ファイルの動的解析•

hands-on
VM

VM内環境の準備– Flashのインストール• "C:¥mws2012¥WinVM¥tools¥flashplayer11_2r202_233_winax_32bit.exe"の実行– 動作確認• テスト用のコンテンツにIEでアクセス–"C:¥mws2012¥WinVM¥tools¥flash_IE_test_page¥moon.html“– "C:¥mws2012¥WinVM¥extracted_malwares¥malwares.zip"を展開• パスワード：infected39

ハンズオン#3:
悪性文書ファイルの動的解析

hands-on
VM• CaptureBATのインストール– “C:¥mws2012¥WinVM¥tools¥CaptureBAT¥Cap
tureBAT.exe“を実行してインストール• インストールに失敗する場合、”Visual C++2005
Redistrib Package.exe”を実行– インストール後、再起動が必要

40

ハンズオン#3:
悪性文書ファイルの動的解析

hands-on
VM• Process Hacker– "C:¥mws2012¥WinVM¥tools¥processhacker-2.28-bin.zip"
を展開、x86¥ProcessHacker.exeを管理者権限で起動– プロセス、サービス、ネットワーク情報等を表示

41

ハンズオン#3:
悪性文書ファイルの動的解析

hands-on
VM• FakeNet– ファイアーウォール設定の無効化– “C:¥mws2012¥WinVM¥tools¥Fakenet1.0c.zip”を展開、管理者権限のコ
マンドプロンプトから起動– nslookupコマンドでlocalhostに向くことを確認

42

ハンズオン#3:
悪性文書ファイルの動的解析

hands-on
VM• CaptureBATの実行– 管理者権限のコマンドプロンプトから起動• 出力をリダイレクトして保存• -c: 変更もしくは削除されたファイルをキャプチャ• -n: ネットワークパケットをキャプチャ– 起動後、サービスがインストールされることを確認

43

ハンズオン#3:
悪性文書ファイルの動的解析• regshot– 管理者権限で起動• "C:¥mws2012¥WinVM¥tools¥v5_regshot_1.8.3_beta1_win32_x64_src_bi
n_v5¥regshot.exe"– [Scan dir1...]をチェック、対象ディレクトリはC:¥– [1st shot] -> [shot]をクリック– [2nd shot]が有効になっていることを確認

44

ハンズオン#3:
悪性文書ファイルの動的解析

hands-on
VM• 悪性ドキュメントのオープン– "C:¥mws2012¥WinVM¥extracted_malwares¥malwares.zip"展開後のtaiseihoukan.docをオープン– VM内にOffice環境が無い場合、ドロップされたマルウェア(wmi.exe)を実行してください• exploitが成功すると、ダミードキュメントが開く45

hands-on
VM

ハンズオン#3:
悪性文書ファイルの動的解析•

ツールの終了、結果の確認– regshot（今回は未実施）• [2nd shot] -> [Compare]• 実行ファイルのインストール、レジストリ登録を確認– CaptureBAT• 適当にキーを押す• regshotの差分では把握できない詳細部分や削除ファイルの実体を参照– FakeNet• Ctrl-Cを押す• www.fewjriehgusuoh.comを名前解決、ポート80番にプロトコル不明な通信

regshotfakenetCaptureBAT

46

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

47

シェルコードの解析• 補足：exploit後の動作をコードレベルで確認したい場合– デコンパイルしたコード or p-codeを読んでシェルコードを特定– swfファイルからシェルコードを抽出する• バイナリエディタ– シェルコードのエミュレーション（呼び出すAPIをチェック）• e.g., libemu• ただし、このシェルコードには効果がない– シェルコードのデバッグ• デバッガにbinary paste もしくは ランチャーを使う– http://practicalmalwareanalysis.com/labs/– シェルコードの静的解析• IDA Pro

48

実行されたマルウェアの特定• 動的解析でキャプチャした通信の特徴– Wireshark• TCP80番宛にランダムな256bytesの通信• PoisonIvy?

– Camellia Encryption• 最初にチャレンジレスポンスのネゴシエーションを行う– https://media.blackhat.com/bh-eu10/presentations/Dereszowski/BlackHat-EU-2010-DereszowskiTargeted-Attacks-slides.pdf– http://labs.alienvault.com/labs/index.php/category/blog/page/3/

49

Poison Ivyとは• RAT(Remote Administration Tool)と呼ばれ、リモートから端末を操作するためのツールの一種• 現状でも配布用Webサイトが生存しており、だれでも入手可能

・画面操作
・マウスやキーボードの操作
・キー入力の盗聴
・WebCam(カメラ)の盗撮
・マイクの盗聴・任意のファイルのダウンロード、アップロード、実行
などが可能

50

実行されたマルウェアの特定(Cont.)• Process Hackerで見てみると・・・• メモリフォレンジックツール（Redline）による検出– iexplore.exeが含む特徴的なハンドル名：!VoqA.I4• ただし、ビルド時に自由に変更可能– コードインジェクションされたとおぼしき領域も存在• PoisonIvyのGUIクライアントを起動– 該当プログラムが接続に来るか？
• デフォルトパスワード(admin)のまま接続可能51実行されたマルウェアの詳細解析• 補足：コードレベルで特徴を把握したい場合– アンパック• VirtualAllocEx/VirtualProtectEx等の動的な領域確保・属性変更のAPIに着目– デバッグ• フラグメント化したコードのインジェクション
– wmi.exe: explorer.exeへインジェクション
– explorer.exe: iexplore.exeを起動、マルウェアのインストール、インジェクション

• iexplore.exe– クライアントへの接続を開始– 静的解析

• shellcodeライクなAPI呼び出し• call [esi + *]52

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

53感染原因に関する調査結果• 攻撃のトリガ– 攻撃者は2012/10/5 17:05:10にファイルを添付したメールを送信– このWordファイル内に悪性のswfファイルが含まれていた• exploitはCVE-2012-1535の脆弱性をついてマルウェアをドロップ• インストールされたマルウェア– マルウェアのインストールパス• ファイルシステム– C:/Users/okita/AppData/Roaming/wmi.exe• レジストリ– HKCU¥Software¥Microsoft¥Windows¥CurrentVersion¥Run– PoisonIvyというRATに分類されるマルウェア– C&Cサーバ• www.fewjriehgusuoh.com• 今後は、感染後の影響範囲に関する調査が必要– 端末内のデータの詐取– そこを踏み台として他端末やサーバへの不正アクセス
54

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

55

その後の活動の調査• マルウェアが生成された時刻から漏えいしたデータのタイムスタンプまでの期間を調査– wmi.exeの最終更新時刻• 2012/10/5 17:05:56– a.7z内のaフォルダの最終更新時刻• 2012/10/5 18:34:29• 漏えいしたファイル名（a.7z）を検索してもヒットしない• wmi.exe生成後、大量のレジストリへのアクセスや周辺端末へのログ
イン試行が見られる– イベントログの閲覧、フィルタ、検索• イベントビューア• Event Log Explorer– Poison Ivyインストール後の情報列挙か？
• 何らかのツールを利用している可能性が高い• 2012/10/5 19:44:45にメモリダンプ(C:/Windows/MEMORY.DMP)
を生成、システムクラッシュ– ここまでにそれらしきツールのエントリは無し

56

その後の活動の調査（Cont.）• wmi.exe実行後から大量のレジストリエントリ発生までの間を再調査• フォルダ”t”– いくつかの実行ファイルが存在• ただし、タイムスタンプが対象期間内ではない• 本当に無関係？

57

アンチフォレンジック(1)• タイムスタンプの変更– timestomp– マルウェアによって一般的に行われる• 変更の検出– NTFSファイルシステムには２種類のタイムスタンプが存在する• Standard Information (SI): 通常参照される• File Name (FN): 参照されない、変更するAPIも無い– FN属性も含めてタイムラインを生成する(win7usp1-current-with-fn)• tフォルダ以下は対象期間内に生成されたファイル
一般にOSやアプリケーションによって参照されるタイムスタンプを保持。
APIによって任意の時間に変更可能。
ファイル毎
の
メタデータ
レコード

MFT Header

Standard Information(SI) Attribute

更新されにくいタイムスタンプを保持。
SI属性のタイムスタンプより一般に古くなる。
APIによって変更できない。

Filename(FN) Attribute

Remaining Attributes...
(e.g., Data Attribute)58

アンチフォレンジック(2)• ファイルデータ、フォルダのメタデータの上書き削除– sdelete.exe– マルウェアによってまれに行われる or 時間の経過によって自然に行われる• 過去のファイルシステムの参照– Volume Shadow Copyを調べる• ホストのWindowsで調べる場合– ddイメージをvhdに変換（vhdtools）» 勝手に上書きするのでイメージのバックアップを取っておく– Windows7の標準機能でマウント– ShadowKitでブラウジング、エクスポート• SIFTで調べる場合– fdiskでイメージのsector数とunit数を調べる– vshadowmountでVSSのイメージをマウント– マウントしたイメージからファイルをTSKで抽出、
log2timelineでタイムラインを作成

59

攻撃者がアップロードしたツール•

以下のツールをアップロードしている– scan.bat• ネットワーク・アカウント・ファイル情報の収集– wce.exe/wce_x64.exe• パスワード/パスワードハッシュのダンプ、pass-the-ticket/pass-the-hash– PsExec.exe• 遠隔でコマンドを実行– PwDump7.exe• パスワードハッシュのダンプ– timestomp.exe• タイムスタンプの変更– sdelete.exe• フォルダ・ファイルの上書き削除– stone.exe• トンネリングツール– plink.exe• SSHクライアント

2012/10/05 17:35:40
psexec実行2012/10/09 19:05:09
sdelete実行– woot.exe/woot_x64.exe•• ？

実際にツールが使われたか？
– AppCache内には実行痕跡が存在していない• 無い場合もそれが実行されていないとは限らないので注意が必要– SysInternalsのツールはDEFAULTレジストリにEULAを承諾したデータが入る（キー生成
時刻＝初回実行時刻）– wce.exeは実行の度にwceaux.dllをspawnする– キーワード検索で総当り的に探す（SIFTのsrch_strings_wrap）
60

wce.exeとは• パスワードハッシュのダンプやpass-the-hash, pass-theticketなどの機能を持つ– パスワード自体の抽出も可能– Pass-the-Hash Toolkitの後継（同じ作者）• ハッシュのダンプやパスワードの抽出には管理者権限が必要• dll（wceaux.dll）を動的に生成して利用する– 運が良ければその痕跡を見つけられることも61本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの詳細解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

62

攻撃者ツール(woot.exe)の解析• Stringsコマンドで特徴的な文字列
kernel32.dll
IsWow64Processntdll.dll
NtQueryIntervalProfile
NtAllocateVirtualMemory
NtDeviceIoControlFile
NtQuerySystemInformation
HalDispatchTable
PsInitialSystemProcess
PsReferencePrimaryToken
PsGetThreadProcess
127.0.0.1
cmd.exe
open

赤：kernel exploitでよく用いられる
関数、変数
緑:特徴的な文字列63

攻撃者ツール(woot.exe)の解析(Cont.)• 検索キーワード: NtQueryIntervalProfile NtQuerySystemInformation
HalDispatchTable PsInitialSystemProcess PsReferencePrimaryToken
127.0.0.1

MS11-046 or MS11-080?

64

攻撃者ツール(woot.exe)の解析(Cont.)• MS11-046– この時点でサポートされていたすべてのバージョンのWindowsに脆弱性が存在– 要点• このセキュリティ更新プログラムは、一般で公開された 1 件のMicrosoft Windows Ancillary Function ドライバー (AFD) の脆弱性を解決します。この脆弱性により、攻撃者がユーザーのシステムにログオンし、特別に細工されたアプリケーションを実行した場合、特権が昇格される可能性があります。これらの脆弱性が悪用されるには、有効なログオン資格情報を所持し、ローカルでログオンできることが攻撃者にとっての必要条件となります。
– http://technet.microsoft.com/ja-jp/security/bulletin/ms11-046

65

攻撃者ツール(woot.exe)の解析(Cont.)• MS11-080

この脆弱性の対象がXP, 2003のみなので、Windows7で動作するMS11-046の方が有力

http://technet.microsoft.com/ja-jp/security/bulletin/ms11080
66

攻撃者ツール(woot.exe)の解析(Cont.)• MS11-046– 前項までの情報をもとに、パッチ適用の有無で脆弱性が発動するかを確認するか、もしくは・・・– 検索結果から、いくつかのコードを読むと以下のことがわかる• NtDeviceIoControlFile で指定するdwIoControlCode が0x12007（
AfdConnect）の時、その戻り値（４バイト）を任意のアドレスに書き込める• これを使って任意のコードのアドレスをHalDispatchTable + 4に書き込む• NtQueryIntervalProfile（HalDispatchTable+4）を呼び、任意のコードを実行

コードレベルでExploitの挙動を確認する

67

攻撃者ツール(woot.exe)の静的解析• 補足：静的解析による大まかな挙動の把握– アドレス１(ページ０に切り捨て)にシェルコード用の領域を確保• シェルコードはSystemプロセスのトークンを現在のプロセスにセットするコード– NtDeviceIoControlFileのコードのメモリ属性を変更、フックのインストー
ル• フック先ではIoControlCodeをチェック– 12007hの場合、出力バッファをHalDispatchTable + 4を上書きするようセット– 戻り値を０にすることでページ０をHalDispatchTable + 4が指すようにする– connectを呼び出してNtDeviceIoControlFileを間接的に実行– NtQueryIntervalProfile（HalDispatchTable+0x4）をコール、シェルコ
ードを実行

フックのインストール
フック先の処理68

本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

69

感染後の影響範囲に関する調査結果•

ツールの種類やファイルシステムのタイムスタンプ、漏洩したファイルの内容やタ
イムスタンプ、ファイルサーバのログ等から、以下の行動が推測できる– 2012/10/5 17:10:33• ツールのアップロード– ？（ツールのアップロードからpsexec実行までの間）• CVE-2011-1249を悪用するプログラムとwceを用いて、感染端末内のパスワードやハッシュを取得– 2012/10/05 17:35:40頃• psexec/wce等を使い、pass-the-ticket？でなりすましを行い、他の端末に侵入– 2012/10/05 18:35:44頃• 取得した情報を圧縮ファイルa.7zにまとめ、ダウンロード？
• a.7zに含まれるハッシュ取得のログやDBファイルから、ドメイン管理者権限を取得された可能性大– 2012/10/09 17:40以降（ファイルサーバのイベントログ）• 重役アカウントでのファイルサーバへのアクセス– 2012/10/09 18:07:45頃• 取得した情報を圧縮ファイルb.7zにまとめ、ダウンロード？

– 2012/10/09 19:05:09頃• アンチフォレンジックとしてツールのタイムスタンプ変更、圧縮ファイルの完全削除を実施•

他の端末にいつ頃侵入したか等については、他の端末やサーバを調査しなければ正確に把握できない– 認証系のイベントログ– psexecの実行痕跡（PSEXESVC）• 削除ファイル（psexesvc.exe + リモートで実行されたexe）• レジストリの削除領域（サービスの登録）、ページファイル内の実行ファイルパス, etc..
70本ケースの解析内容• タイムラインの作成• 感染原因に関する解析– 自動起動設定プログラムの調査（ハンズオン#1）– マルウェアの登録時刻の特定– タイムラインの解析（ハンズオン#2）– 悪性文書ファイルの解析（ハンズオン#3）– シェルコード・マルウェアの解析– 調査結果• 感染後の影響範囲に関する解析– その後の活動の調査– 未知のバイナリの解析– 調査結果• まとめ– インシデントのタイムライン

71インシデントのタイムライン

72

最後に
• インシデントレスポンスではフォレンジック解析・マ
ルウェア解析を組み合わせて以下を明らかにしていく– マルウェア感染の有無、種別、機能– 感染原因– 被害範囲• 実際のディスクイメージはよりカオスなので、数をこなして経験値を上げていく– AVや管理者による検疫・削除、設定変更– 大量のデータ、用途不明なプログラム群– 調査開始までのタイムラグ• フリーのツールでもある程度までの解析は可能– より効率的にやりたい場合は商用ツールを使う• IDA Pro
• EnCase/X-Ways Forensics• etc..
73

参考URL•

フォレンジック解析–

SANS SIFT Forensic Workstation••

http://computer-forensics.sans.org/community/downloads
Digital Forensic Framework•

log2timeline-siftで、タイムライン生成時に$fn（$filename）属性タイムスタンプも含めるための変更箇所•

vshadowmountを用いたVolume Shadow Copyボリュームのマウント手順

–
–

–

–

AutoRuns

http://www.digital-forensic.org/
http://list-archives.org/2012/07/10/dfir-lists-sans-org/log2timeline-vs-log2timeline-sift/f/4359338113
http://code.google.com/p/libvshadow/wiki/Mounting•

http://technet.microsoft.com/ja-jp/sysinternals/bb963902.aspx•

http://accessdata.com/support/product-downloads•

http://www.digitalforensicssolutions.com/registrydecoder/•

http://computer-forensics.sans.org/blog/2010/02/12/prefetch-parser-v1-4/•

https://github.com/mandiant/ShimCacheParser•

http://www.mandiant.com/resources/download/web-historian•

http://www.woanware.co.uk/?page_id=266•

http://www.mandiant.com/resources/download/redline/•

http://www.eventlogxp.com/•

http://archive.msdn.microsoft.com/vhdtool•

http://redrocktx.blogspot.jp/p/shadowkit.html•

http://www.sleuthkit.org/–

FTK Imager–

Registry Decoder–

Prefetch Parser–

ShimCacheParser–

Web historian–

JumpLister–

Redline–Event Log Explorer–

vhdtool–

ShadowKit

–

TSK

74

参考URL (Cont.)•

マルウェア解析–

FileInsight••

http://www.mcafee.com/us/downloads/free-tools/fileinsight.aspx
FileInsightで利用できるドキュメントマルウェア解析用プラグイン–

https://github.com/nmantani/FileInsight-plugins–

REMnux–

OfficeMalScanner–•

http://zeltser.com/remnux/•

http://www.reconstructer.org/code.html•

http://sandsprite.com/blogs/index.php?uid=7&pid=57•

http://labs.adobe.com/technologies/swfinvestigator/•

http://www.hex-rays.com/products/ida/support/download_freeware.shtml•

http://www.ollydbg.de/•

http://debugger.immunityinc.com/•

http://libemu.carnivore.it/•

http://processhacker.sourceforge.net/•

http://www.honeynet.org/node/315•

http://sourceforge.net/projects/regshot/•

http://practicalmalwareanalysis.com/fakenet/•

http://www.ntkernel.com/w&p.php?id=15

PDF Stream Dumper–

SWFInvestigator–

IDA Pro Free–

OllyDbg–

Immunity Debugger–

libemu–process hacker–

captureBAT–

regshot–

FakeNet–NT Kernel Resources: PsExec Internals

75

参考URL (Cont.)• Exploit– CVE-2012-1535• http://contagiodump.blogspot.jp/2012/08/c
ve-2012-1535-samples-and-info.html• http://contagio.deependresearch.org/docs/
CVE-2012-1535-Adobe-Flash-PlayerInteger-Overflow-Vulnerability-Analysis.pdf• http://labs.alienvault.com/labs/index.php/2
012/cve-2012-1535-adobe-flash-beingexploited-in-the-wild/– CVE-2011-1249 (MS11-046)• http://www.exploit-db.com/wpcontent/themes/exploit/docs/18712.pdf

76

お勧め文献• フォレンジック解析– File System Forensic Analysis– Windows Forensic Analysis DVD Toolkit– Mastering Windows Network Forensics and Investigation• マルウェア解析– アナライジングマルウェア– Rootkits: Subverting the Windows Kernel– The Rootkit Arsenal– Malware Analyst's Cookbook and DVD– Practical Malware Analysis• その他– はじめて読む486– IDA Pro Book
– Windows Internals（インサイド Microsoft Windows）– Reversing: Secrets of Reverse Engineering– 解析魔法少女美咲ちゃん
77