全体ミーティング 03/04

28
全全全全全全 03/04 全全 全全

Upload: matty

Post on 23-Feb-2016

102 views

Category:

Documents


0 download

DESCRIPTION

全体ミーティング 03/04. 澤崎 純也. 紹介する論文. Stealthy Malware Detection Through VMM-based "Out-of-the-Box" Semantic View Reconstruction[ Xuxian Jiang et al., CCS'07] 卒論で関連研究として取り上げた論文. 卒論の内容 ( 概略 ). VMM 側で Linux2.6 の fork(),exec() を Kernel 修正なしに検出する手法 具体的には Page Table の特徴を利用して検出. exec の時の - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 全体ミーティング  03/04

全体ミーティング 03/04

澤崎 純也

Page 2: 全体ミーティング  03/04

紹介する論文• Stealthy Malware Detection Through VMM-

based "Out-of-the-Box" Semantic View Reconstruction[Xuxian Jiang et al., CCS'07]– 卒論で関連研究として取り上げた論文

Page 3: 全体ミーティング  03/04

卒論の内容 ( 概略 )

• VMM 側で Linux2.6 の fork(),exec() を Kernel修正なしに検出する手法• 具体的には Page Table の特徴を利用して検出

fork の時のpage directory

exec の時のpage directoryPage Table Page Table

Page 4: 全体ミーティング  03/04

本論文の対象• ステルス性を持った malware, bot への対策– Anti-malware software を無効化してしまうような malware, bot が多数存在する

• Anti-malware software を VM の外側に配置して攻撃耐性を高めたい– ところがそううまくはいかない

Page 5: 全体ミーティング  03/04

In-the-box Approach

• 従来の Anti-malware software の手法• VM の内側 (OS 内 ) から検出、駆除• malware から攻撃された場合の耐性は低い• 参照できる情報– プロセス、ファイル、カーネルモジュール等

Page 6: 全体ミーティング  03/04

Out-of-the-box Approach• VM の外側から検出、駆除などを行う• malware からの攻撃耐性は高い• 参照できる情報– メモリ、レジスタ、ディスクブロックなど、低レベルの情報のみ

Page 7: 全体ミーティング  03/04

Semantic Gap

• VM の内側と外側からでは取得できる情報が異なる– VM の外側からは OS 内部の情報 ( プロセスなど ) は直接は参照できない

• 従って In-the-box から Out-of-the-box へのApproach の移行がスムーズでない

Page 8: 全体ミーティング  03/04

Guest view casting

• VM の内側の情報を外側で再構築する• これにより、前述の Semantic gap を埋める• 具体的には、 Guest OS が利用するデータの構造をテンプレートとして用い、

VM の外側で解釈してしまう

Page 9: 全体ミーティング  03/04

実装方針• VM 内のシステムに対して干渉しない– 低レベルの情報を用いることで malware に対して Anti-malware software の活動を認知させない

• Semantic gap の縮小– VM の外側からでも Anti-malware software が動作できるようにしたい

• 様々な VMM に適用できること– 完全 / 準仮想化の両方式で動作すること– close-source の VMM でも動作すること

Page 10: 全体ミーティング  03/04

実装• Semantic gap を埋める VMwatcher というシステムを筆者らは提案、その prototype を以下の VM 上に実装した– VMware Server– QEMU– Xen– UML

• 対象 Guest– Windows 2000/XP– Red Hat Linux 7.2/8.0/9.0– Fedora Core 1/2/3/4

Page 11: 全体ミーティング  03/04

Semantic View Reconstruction (1/5)

• Disk 情報を再構成する• VM 内部の Disk のファイルシステムが分かっていればそれを読み込むだけでよい• Windows 上では ext2/ext3 filesystem を読み込めないので筆者らは ext2/ext3 用 driverを実装した

Page 12: 全体ミーティング  03/04

Semantic View Reconstruction (2/5)

• メモリ情報の再構成• ここでは 32bit Linux に限定する• Windows の場合は後述

Page 13: 全体ミーティング  03/04

Semantic View Reconstruction (3/5)

• Linux では各プロセスの情報を task_struct 構造体によって管理している• 各構造体は連結リストで辿ることができる• 構造体リストの先頭アドレス (init_task_union)はファイルとして保存されている (System.map)• Kernel 空間 (0xC0000000 以降 ) は物理メモリの

0 番地以降にストレートマッピングされている• 以上からプロセスの情報が復元できる

Page 14: 全体ミーティング  03/04

Semantic View Reconstruction (4/5)

Page 15: 全体ミーティング  03/04

Semantic View Reconstruction(5/5)

• Windows の場合は Linux のように明示的なアドレスが分からないので、メモリのフルスキャンを行うことによりプロセス情報を取得する• 特定の値を signature として用いる– GREPEXEC: Grepping Executive Objects from Pool

Memory[bugcheck, 2006]

Page 16: 全体ミーティング  03/04

評価 1-1 : プロセス隠蔽型 rootkit

• Windows/Linux 用の rootkit 各 10 種を導入• rootkit によって隠蔽されたプロセス、ファイルを VM の外側から検出できた• 次ページの図は Windows 用 rootkit

(kernel-level FU rootkit) の検出例– タスクマネージャから任意のプロセスを参照できないようにしてしまう

Page 17: 全体ミーティング  03/04

図 :FU rootkitVM の外側から見たプロセスリスト(PID=336 は見える )

VM の内側から見たプロセスリスト(PID=336 が隠蔽済 )

VM 内でPID=336 を隠蔽

Page 18: 全体ミーティング  03/04

評価 1-2 : ファイル隠蔽型rootkit

• ファイルを隠してしまう rootkit(Hacker Defender, NTRootkit) を WindowsXP 上に導入

• VM 内の Anti-malware software は隠蔽された rootkit を見逃してしまう• VMwathcer を経由して VM の外側から

Anti-malware software を走らせることで隠蔽された rootkit を検出できた

Page 19: 全体ミーティング  03/04

ファイルが隠されているのでVM の内側の Anti-Virus software では検出できなかった

VM の外側から Anti-Virus software を実行すると検出できた

Page 20: 全体ミーティング  03/04

評価 1-3 : Linux kernel rootkit

• カーネル上の関数ポインタを書き換えることでファイル、プロセスを隠蔽するrootkit(adore-ng) を導入

• 同様に隠蔽されたファイル、プロセスを検出できた

Page 21: 全体ミーティング  03/04

VM の外側 VM の内側"backdoor" のファイル、プロセスを隠蔽

Page 22: 全体ミーティング  03/04

評価 2 : "Out-of-the-box"malware detection

• VM の外側から Anti-malware software を実行、 VM 内の rootkit の検出実験を行った• Windows 版 Symantec AntiVirus が VM 内

(Linux) の rootkit を検出できた– Windows/Linux 版が存在するから

• MS Windows Defender では rootkit を検出できなかった– Windows 向けに特化しているから

Page 23: 全体ミーティング  03/04

評価 3-1 : 検出 Performance(1)• 7 種の anti-virtus software を VM の内側と外側から実行した場合の時間を比較

• 外側から実行した方が速かった

Page 24: 全体ミーティング  03/04

評価 3-1 : 補足Anti-virus software VM Host

Symantec AntiVirus,MS Windows Defender,MS Malicious Software Removal Tool

WindowsXPMem:256MBDisk:6GB

WindowsXPMem:2GBDisk:120GB

Kaspersky AntiVirus Red Hat 8.0Mem:1GBDisk:4GB

Scientific Linux 4.4Mem:2GBDisk:180GB

F-PROT AntiVirus Debian 3.1 Linux(Xen)

Scientific Linux 4.4Mem:4GBDisk:330GB

McAfee AntiVirus Scan,Sophos Anti-Virus

Red Hat 7.0Mem:128MBDisk:512MB(UML)

Red Hat Enterprise 4Mem:2GBDisk:135GB

Page 25: 全体ミーティング  03/04

評価 3-2 : 検出 Performance(2)

• メモリイメージに対してウィルスチェックを実行• Linux に対してはメモリサイズに関わらず

0.5秒程度で終了した– メモリの意味的構造を復元できているため

• Windows に対してはメモリサイズに対して線形に処理時間が増加– Close-source なので現状メモリ構造を復元できていないため

Page 26: 全体ミーティング  03/04

課題• rootkit が独自の Scheduler, 独自の Process list を管理するようになった場合は対処できない– OS の Scheduler, Process list を仮定しているため– Scheduler の変更自体は Hash 等を利用することで検出はできる– より広範な監視が必要 ( システムコールテーブル ,IDTなど )

• rootkit が VM 上で実行されていることを検出、挙動を変えるような可能性– VM の挙動をより実機に近いものに似せるなどの対策が必要

Page 27: 全体ミーティング  03/04

関連研究• 侵入検知– Livewire system [T. Garfinkel et al, USENIX'02]– IntroVirt [A. Joshi et al, SOSP 2005]

• 仮想化を悪用した malware– SubVirt [King et al, IEEE Symposium on Security

and Privacy, 2006]– Blue Pill [Rutkowska et al, Blackhat 2006]– Vitriol [D. D. Zovi, Blackhat 2006]

Page 28: 全体ミーティング  03/04

まとめ• VM の外側から malware を検出するため、

VMWatcher を複数の VMM 上に実装しSemantic gap を解決した

• VM の外側に Anti-malware software を配置することで、 Anti-malware software に対する攻撃耐性を高めることができた