Top Banner
emit 命命をををを XEN ををををををを ををををををををををををを をををををををを 安安安安 安安安安安安安安 安安 安安安安 安安安安 安安安安安安安安安 を 146 を ををををををををををををををを 52 をををををををををををををををををををを 1 2 3
23

Csec52 45 Ruo Ando

Aug 21, 2015

Download

Engineering

Ruo Ando
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Csec52 45 Ruo Ando

emit命令を用いた XEN 仮想マシン上のセキュリティインシデントの

可観測化と可視化

安藤類央情報通信研究機構

高橋一志東京大学

須崎有康産業技術総合研究所

第 146 回 マルチメディア通信と分散処理・第 52 回コンピュータセキュリティ合同研究発表会

1

2 3

Page 2: Csec52 45 Ruo Ando

概要  _emit 擬似命令を用いたVM active monitor

■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセキュリティインシデントの能動的観測と可視化手法を提案する。

■ 提案手法では、フィルタドライバによるレジストリアクセスを _emit 擬似命令を用いてハイパーバイザー側へ通知し、可視化を行う。

■ 可視化(次元削減)には、自己組織化マップを用いた。

■ 仮想 Windows OS をレジストリが定義するステートマシンとすると、各種ソフトウェアのインストール、マルウェア感染などの状態遷移可視化は直感的な結果となった。

Page 3: Csec52 45 Ruo Ando

仮想化 vs Malware

■仮想化技術を用いたマルウェアの挙動の動的解析

[ccs 2008] Ether: Malware Analysis via Hardware Virtualization Extensions [ACSAC 2009]MAVMM: Lightweight and Purpose Built VMM for Malware Analysis

[NDSS 2011] Practical Protection of Kernel Integrity forCommodity OS from Untrusted Extensions

Page 4: Csec52 45 Ruo Ando

関連研究 セマンティック・ギャップ仮想マシンのイベントをいかに捕捉するか?

■ セマンティック・ギャップとは:仮想マシンのイベントは、仮想マシンモニタ側では IO 要求として発行される。

■ 仮想マシンモニタ側では、上でなにがおきているのか通常はわからない。

セマンティックギャップを埋める研究①Lionel Litty, H. Andrés Lagar-Cavilla, David Lie: Hypervisor Support

for Identifying Covertly Executing Binaries. USENIX Security Symposium 2008: 243-258

②Lares: An Architecture for Secure Active Monitoring Using Virtualization 2008 IEEE Symposium on Security and Privacy table of contents Bryan D. Payne, Martim Carbone, Monirul Sharif, Wenke Lee

受動的観測⇒スナップ解析は計算時間、コストがかかるので、 Active Monitor 方式を選択した。

Page 5: Csec52 45 Ruo Ando

Classification of cloud computingon-premise, HaaS, PaaS and SaaS

Four deployment style

1 On-Premise

2 HaaS Hardware | OSCreating service

3 PaaS Platform | AppCreating backend application (DB)

4 SaaS App | ScriptCreating frontend application (Web, etc)

Private CloudOwn and manage all laysers

Page 6: Csec52 45 Ruo Ando

Classification of Virtualizations (structural)

There are 5 kinds of virtualization methods.

[1][2]Logical / physical partition: Multiboot. Operating systems cannot run in at the Same time.Grub bootloader, BIOS firmware

[3][4]VM / VMM OS or VM runs virtually at the same time.Qemu, VMWare, Virtual BoxXEN, Kernel Virtual Machine

[5]HOSTING / virtual OS Multiprogramming. Application and virtulized OS runs on the same kernel at same the time.OpenVZ, Application Proxy,

VMM is new in the point that a thin layer is inserted below the operating system. VM and resource monitor is constructed on OS.

HaaS is deployed on [3][4].

Page 7: Csec52 45 Ruo Ando

提案手法(概要)

We monitor and visualize Windows OS behavior using virtual machine montitor.

Page 8: Csec52 45 Ruo Ando

提案手法(詳細)

ログ文字列を1文字ずつ送信1文字を ASCII コードとしてレジスタに格納EMIT 命令で HYPERCALL を仮想 Windows 側から生成XEN 側の do_hypercall (hvm.c) で仮想レジスタから ASCII コード取り出し

Page 9: Csec52 45 Ruo Ando

提案手法(シーケンス図 :XEN Hypervisor )

XENハイパーバイザーがホスト OSLinux の下で稼動

手順①仮想 Windows OS 内の DLL ・フィルタドライバ内で構築したログ情報・ハッシュ値を仮想 CPU のコンテキストに格納。その後、Hypercall を発行

手順②XEN 内の HYPECALLハンドラで仮想 CPU のコンテキストから通知を捕捉・ログ情報を取得。

Page 10: Csec52 45 Ruo Ando

EMIT 命令( _emit Pseudoinstructionインラインアセンブラで非対応の命令を使う方法

■ __asm{ mov eax, X : ACSII code of log string _emit 0x0f _emit 0x01 _emit 0xc1 }Hypercall 呼び出し

_emit Pseudoinstructionhttp://msdn.microsoft.com/en-us/library/

1b80826t.aspx

Page 11: Csec52 45 Ruo Ando

Windows OS as huge state machine

SDT

・ ・ ・

・ ・ ・

ZwCreateKey

ZwDeleteKey

ZwDeleteValueKey

ZwEnumerateKey

ZwEnumerateValueKey

ZwQueryKey

ZwQueryValueKey

ZwSetValueKey

・ ・ ・

・ ・ ・

Registry access table

Registry value Represents state of Windows OS

Page 12: Csec52 45 Ruo Ando

Windows レジストリアクセス API のダンプ

ZwCreateKeyB8 29 00 00 00 mov eax,29h <- eax にインデックスをコピー8D 54 24 04 lea edx,[esp+4]9C pushfd6A 08 push 8E8 30 1C 00 00 call 00407631 <- システムコール呼び出しC2 1C 00 ret 1Ch

ZwQueryKeyB8 A0 00 00 00 mov eax,0A0h8D 54 24 04 lea edx,[esp+4]9C pushfd6A 08 push 8E8 E4 12 00 00 call 00407631C2 14 00 ret 14h

ZwQueryValueKeyB8 B1 00 00 00 mov eax,0B1h8D 54 24 04 lea edx,[esp+4]9C pushfd6A 08 push 8E8 90 11 00 00 call 00407631C2 18 00 ret 18h

Page 13: Csec52 45 Ruo Ando

Windows レジストリアクセスフック

■windows/system32/ntoskrnl.exe にある SDT (service descriptor table) のレジストリ部分を修正する。

■#define SYSCALL_INDEX(f)*(PULONG)((PUCHAR)(f)+1)SDT でのシステムコールテーブルインデックスを求めるためのマクロを用いる

■#define SYSTEMSERVICE(f)KeServiceDescriptorTable->ServiceTable[SYSCALL_INDEX(f)]システムコールコードへのアドレスを返すマクロ。この値をフック関数のアドレスへ置き換える。

Page 14: Csec52 45 Ruo Ando

自己組織化マップ

■ クラスタリング・次元削減のための教師なし学習アルゴリズムのひとつ

Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))

D(t): 入力  Wt: 重み係数Θ(t):BMU からの近傍半径  α(t): 学習係数 

■k-mean 等に比べ、クラスタ数を与件としない、データ間のトポロジーが変わらない等の特徴がある。

Page 15: Csec52 45 Ruo Ando

レジストリアクセス取得データと前処理

単位時間( SEC) あたりの上記10フィルタの頻度カウントを入力 :D(t) とする。Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))

Page 16: Csec52 45 Ruo Ando

Visualizing states of Windows OSmalware Data for (before) SOM processing

通常状態 normal state Zeus-wsnpoem (BotNet)

Klez (worm) Sassar (worm)

Page 17: Csec52 45 Ruo Ando

Visualizing Windows behaviorusing SOM

INSTALLING APPLICATION(text editor)

INSTALLING Device driver(video card)

MALWAREINFECTION

Page 18: Csec52 45 Ruo Ando

Visualizing Windows behaviorusing SOM

Running P2P application

Installing Application(text editor)

Malware infection

Page 19: Csec52 45 Ruo Ando

Visualizing Windows behaviorusing SOM

Running P2P application

Running InternetExplorer

Malware infection

Page 20: Csec52 45 Ruo Ando

結論  _emit 擬似命令を用いたVM active monitor

■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセキュリティインシデントの能動的観測と可視化手法を提案した。

■ 提案手法では、フィルタドライバによるレジストリアクセスを _emit 擬似命令を用いてハイパーバイザー側へ通知し、可視化を行った。

■ 可視化(次元削減)には、自己組織化マップを用いた。

■ 仮想 Windows OS をレジストリが定義するステートマシンとすると、各種ソフトウェアのインストール、マルウェア感染などの状態遷移可視化は直感的な結果となった。

Page 21: Csec52 45 Ruo Ando

負荷測定比較( XEN,KVM)  ファイルアクセス

Unzip による測定を行った。

大量のファイルアクセスが発行する場合、

KVM はリソース消費量が安定しないものの、XEN より良好なパフォーマンスを示した。

結論: P2P 観測には KVM の方が適切。

Page 22: Csec52 45 Ruo Ando

負荷測定比較( XEN,KVM) HTTPD

Apache による測定を行った。

XEN はリソース消費量が安定せず、IO 仮想化周りでパフォーマンスが落ちる。

しかし、大量のストリームをゲスト側で処理する場合(レジストリ処理など)、 KVM ベースのシステムは仮想メモリ不具合が発生する。

Page 23: Csec52 45 Ruo Ando

負荷測定比較(提案システムと ProcMon)