SlideShare a Scribd company logo
emit 命令を用いた XEN 仮想マシン上
の
セキュリティインシデントの
可観測化と可視化
安藤類央
情報通信研究機構
高橋一志
東京大学
須崎有康
産業技術総合研究所
第 146 回 マルチメディア通信と分散処理・
第 52 回コンピュータセキュリティ合同研究発表会
1
2
3
概要  _emit 擬似命令を用いた
VM active monitor
■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセ
キュリティインシデントの能動的観測と可視化手法を提
案する。
■ 提案手法では、フィルタドライバによるレジストリアク
セスを _emit 擬似命令を用いてハイパーバイザー側へ通
知し、可視化を行う。
■ 可視化(次元削減)には、自己組織化マップを用いた。
■ 仮想 Windows OS をレジストリが定義するステートマシ
ンとすると、各種ソフトウェアのインストール、マル
ウェア感染などの状態遷移可視化は直感的な結果となっ
た。
仮想化 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 for
関連研究 セマンティック・ギャップ
仮想マシンのイベントをいかに捕捉するか?
■ セマンティック・ギャップとは:仮想マシンのイベントは、仮想マ
シンモニタ側では 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 方式を選択した。
Classification of cloud computing
on-premise, HaaS, PaaS and SaaS
Four deployment style
1 On-Premise
2 HaaS Hardware | OS
Creating service
3 PaaS Platform | App
Creating backend
application (DB)
4 SaaS App | Script
Creating frontend
application (Web, etc)
Private Cloud
Own and manage all
laysers
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 Box
XEN, 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].
提案手法(概要)
We monitor and visualize Windows OS behavior using virtual machine montitor.
提案手法(詳細)
ログ文字列を1文字ずつ送信
1文字を ASCII コードとしてレジスタに格納
EMIT 命令で HYPERCALL を仮想 Windows 側から生成
XEN 側の do_hypercall (hvm.c) で仮想レジスタから ASCII コード取り出し
提案手法
(シーケンス図 :XEN Hypervisor )
XEN
ハイパーバイザーがホスト OS
Linux の下で稼動
手順①
仮想 Windows OS 内の DLL ・
フィルタドライバ内で
構築したログ情報・ハッシュ値
を仮想 CPU のコンテキストに
格納。その後、
Hypercall を発行
手順②
XEN 内の HYPECALL
ハンドラで仮想 CPU の
コンテキストから通知を捕捉・
ログ情報を取得。
EMIT 命令( _emit Pseudoinstruction
インラインアセンブラで非対応の命令を使う方法
■ __asm{
mov eax, X : ACSII code of log string
_emit 0x0f
_emit 0x01
_emit 0xc1
}
Hypercall 呼び出し
_emit Pseudoinstruction
http://msdn.microsoft.com/en-
us/library/1b80826t.aspx
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
Windows レジストリアクセス API のダンプ
ZwCreateKey
B8 29 00 00 00 mov eax,29h <- eax にインデックスをコピー
8D 54 24 04 lea edx,[esp+4]
9C pushfd
6A 08 push 8
E8 30 1C 00 00 call 00407631 <- システムコール呼び出し
C2 1C 00 ret 1Ch
ZwQueryKey
B8 A0 00 00 00 mov eax,0A0h
8D 54 24 04 lea edx,[esp+4]
9C pushfd
6A 08 push 8
E8 E4 12 00 00 call 00407631
C2 14 00 ret 14h
ZwQueryValueKey
B8 B1 00 00 00 mov eax,0B1h
8D 54 24 04 lea edx,[esp+4]
9C pushfd
6A 08 push 8
E8 90 11 00 00 call 00407631
C2 18 00 ret 18h
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)]
システムコールコードへのアドレスを返すマクロ。
この値をフック関数のアドレスへ置き換える。
自己組織化マップ
■ クラスタリング・次元削減のための教師なし学
習アルゴリズムのひとつ
Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
D(t): 入力  Wt: 重み係数
Θ(t):BMU からの近傍半径  α(t): 学習係数 
■k-mean 等に比べ、クラスタ数を与件としない、
データ間のトポロジーが変わらない等の特徴が
ある。
レジストリアクセス取得データと前処理
位時間( SEC) あたりの上記10フィルタの頻度カウントを入力 :D(t) とする。
v(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t))
Visualizing states of Windows OS
malware Data for (before) SOM processing
通常状態 normal state Zeus-wsnpoem (BotNet)
Klez (worm) Sassar (worm)
Visualizing Windows behavior
using SOM
INSTALLING
APPLICATION
(text editor)
INSTALLING
Device driver
(video card)
MALWARE
INFECTION
Visualizing Windows behavior
using SOM
Running P2P
application
Installing
Application
(text editor)
Malware
infection
Visualizing Windows behavior
using SOM
Running P2P
application
Running Internet
Explorer
Malware infection
結論  _emit 擬似命令を用いた
VM active monitor
■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセ
キュリティインシデントの能動的観測と可視化手法を提
案した。
■ 提案手法では、フィルタドライバによるレジストリアク
セスを _emit 擬似命令を用いてハイパーバイザー側へ通
知し、可視化を行った。
■ 可視化(次元削減)には、自己組織化マップを用いた。
■ 仮想 Windows OS をレジストリが定義するステートマシ
ンとすると、各種ソフトウェアのインストール、マル
ウェア感染などの状態遷移可視化は直感的な結果となっ
た。
負荷測定比較( XEN,KVM)  ファイルアクセス
Unzip による測定を行った。
大量のファイルアクセスが発行する場合、
KVM はリソース消費量が安定しないものの、
XEN より良好なパフォーマンスを示した。
結論: P2P 観測には KVM の方が適切。
負荷測定比較( XEN,KVM)   HTTPD
Apache による測定を行った。
XEN はリソース消費量が安定せず、
IO 仮想化周りでパフォーマンスが落ちる。
しかし、大量のストリームをゲスト側で処理する
場合(レジストリ処理など)、 KVM ベースの
システムは仮想メモリ不具合が発生する。
負荷測定比較(提案システムと ProcMon)

More Related Content

Similar to Csec52 45 Ruo Ando

Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Ruo Ando
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
Kuniyasu Suzaki
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)Takahiro Shinagawa
 
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指してディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指して
Kazuhiko Kato
 
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
System x 部 (生!) : しすなま! @ Lenovo Enterprise Solutions Ltd.
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine
Asuka Nakajima
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Kuniyasu Suzaki
 
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだSCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
wind06106
 
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティJITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
Kuniyasu Suzaki
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
junichi anno
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
NTT DATA Technology & Innovation
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
junichi anno
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんやTakuya ASADA
 
私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会
Kuniyasu Suzaki
 
Arch rinko
Arch rinkoArch rinko
Arch rinko
masatora atarashi
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
axsh co., LTD.
 

Similar to Csec52 45 Ruo Ando (20)

Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
Split device driver による仮想マシンモニタ上のセキュアOSの機能拡張
 
仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点仮想化技術によるマルウェア対策とその問題点
仮想化技術によるマルウェア対策とその問題点
 
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
2010-11-02 第1回クラウドコンピューティング基盤シンポジウム(品川)
 
ディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指してディペンダブルなクラウドコンピューティング基盤を目指して
ディペンダブルなクラウドコンピューティング基盤を目指して
 
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
第21回「Windows Server 2012 DeepDive!! Hyper-V と VDI を徹底解説」(2012/10/18 on しすなま!)...
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護Bitvisorをベースとした既存Windowsのドライバメモリ保護
Bitvisorをベースとした既存Windowsのドライバメモリ保護
 
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだSCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
 
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティJITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
JITA(日本産業技術振興協会)講演会資料:クラウドコンピューティングにおける仮想マシンのセキュリティ
 
Windows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMIWindows スクリプトセミナー WMI編 VBScript&WMI
Windows スクリプトセミナー WMI編 VBScript&WMI
 
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
1891件以上のカーネルの不具合修正に貢献した再現用プログラムを自動生成するsyzkallerのテスト自動化技術(NTT Tech Conference ...
 
Bhyve Internals
Bhyve InternalsBhyve Internals
Bhyve Internals
 
System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理System Center Operations Managerによる仮想環境の高度な管理
System Center Operations Managerによる仮想環境の高度な管理
 
BHyVeってなんや
BHyVeってなんやBHyVeってなんや
BHyVeってなんや
 
私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会私立大学情報教育協会大学 情報セキュリティ研究講習会
私立大学情報教育協会大学 情報セキュリティ研究講習会
 
Goudo m
Goudo mGoudo m
Goudo m
 
Arch rinko
Arch rinkoArch rinko
Arch rinko
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
Wakame-VDC / Open Source Conferense 2012 - Cloud (JP)
 

More from Ruo Ando

KISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdfKISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdf
Ruo Ando
 
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Ruo Ando
 
解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf
Ruo Ando
 
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
Ruo Ando
 
解説#83 情報エントロピー
解説#83 情報エントロピー解説#83 情報エントロピー
解説#83 情報エントロピー
Ruo Ando
 
解説#82 記号論理学
解説#82 記号論理学解説#82 記号論理学
解説#82 記号論理学
Ruo Ando
 
解説#81 ロジスティック回帰
解説#81 ロジスティック回帰解説#81 ロジスティック回帰
解説#81 ロジスティック回帰
Ruo Ando
 
解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リスト
Ruo Ando
 
解説#76 福岡正信
解説#76 福岡正信解説#76 福岡正信
解説#76 福岡正信
Ruo Ando
 
解説#77 非加算無限
解説#77 非加算無限解説#77 非加算無限
解説#77 非加算無限
Ruo Ando
 
解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス
Ruo Ando
 
解説#78 誤差逆伝播
解説#78 誤差逆伝播解説#78 誤差逆伝播
解説#78 誤差逆伝播
Ruo Ando
 
解説#73 ハフマン符号
解説#73 ハフマン符号解説#73 ハフマン符号
解説#73 ハフマン符号
Ruo Ando
 
【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法
Ruo Ando
 
【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free
Ruo Ando
 
ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料 ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料
Ruo Ando
 
ファジングの解説
ファジングの解説ファジングの解説
ファジングの解説
Ruo Ando
 
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
Ruo Ando
 
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
Ruo Ando
 
Intel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st WorkshopIntel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st Workshop
Ruo Ando
 

More from Ruo Ando (20)

KISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdfKISTI-NII Joint Security Workshop 2023.pdf
KISTI-NII Joint Security Workshop 2023.pdf
 
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
Gartner 「セキュリティ&リスクマネジメントサミット 2019」- 安藤
 
解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf解説#86 決定木 - ss.pdf
解説#86 決定木 - ss.pdf
 
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~SaaSアカデミー for バックオフィス アイドルと学ぶDX講座  ~アイドル戦略に見るDXを専門家が徹底解説~
SaaSアカデミー for バックオフィス アイドルと学ぶDX講座 ~アイドル戦略に見るDXを専門家が徹底解説~
 
解説#83 情報エントロピー
解説#83 情報エントロピー解説#83 情報エントロピー
解説#83 情報エントロピー
 
解説#82 記号論理学
解説#82 記号論理学解説#82 記号論理学
解説#82 記号論理学
 
解説#81 ロジスティック回帰
解説#81 ロジスティック回帰解説#81 ロジスティック回帰
解説#81 ロジスティック回帰
 
解説#74 連結リスト
解説#74 連結リスト解説#74 連結リスト
解説#74 連結リスト
 
解説#76 福岡正信
解説#76 福岡正信解説#76 福岡正信
解説#76 福岡正信
 
解説#77 非加算無限
解説#77 非加算無限解説#77 非加算無限
解説#77 非加算無限
 
解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス解説#1 C言語ポインタとアドレス
解説#1 C言語ポインタとアドレス
 
解説#78 誤差逆伝播
解説#78 誤差逆伝播解説#78 誤差逆伝播
解説#78 誤差逆伝播
 
解説#73 ハフマン符号
解説#73 ハフマン符号解説#73 ハフマン符号
解説#73 ハフマン符号
 
【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法【技術解説20】 ミニバッチ確率的勾配降下法
【技術解説20】 ミニバッチ確率的勾配降下法
 
【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free【技術解説4】assertion failureとuse after-free
【技術解説4】assertion failureとuse after-free
 
ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料 ITmedia Security Week 2021 講演資料
ITmedia Security Week 2021 講演資料
 
ファジングの解説
ファジングの解説ファジングの解説
ファジングの解説
 
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
AI(機械学習・深層学習)との協働スキルとOperational AIの事例紹介 @ ビジネス+ITセミナー 2020年11月
 
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
【AI実装4】TensorFlowのプログラムを読む2 非線形回帰
 
Intel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st WorkshopIntel Trusted Computing Group 1st Workshop
Intel Trusted Computing Group 1st Workshop
 

Csec52 45 Ruo Ando

  • 1. emit 命令を用いた XEN 仮想マシン上 の セキュリティインシデントの 可観測化と可視化 安藤類央 情報通信研究機構 高橋一志 東京大学 須崎有康 産業技術総合研究所 第 146 回 マルチメディア通信と分散処理・ 第 52 回コンピュータセキュリティ合同研究発表会 1 2 3
  • 2. 概要  _emit 擬似命令を用いた VM active monitor ■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセ キュリティインシデントの能動的観測と可視化手法を提 案する。 ■ 提案手法では、フィルタドライバによるレジストリアク セスを _emit 擬似命令を用いてハイパーバイザー側へ通 知し、可視化を行う。 ■ 可視化(次元削減)には、自己組織化マップを用いた。 ■ 仮想 Windows OS をレジストリが定義するステートマシ ンとすると、各種ソフトウェアのインストール、マル ウェア感染などの状態遷移可視化は直感的な結果となっ た。
  • 3. 仮想化 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 for
  • 4. 関連研究 セマンティック・ギャップ 仮想マシンのイベントをいかに捕捉するか? ■ セマンティック・ギャップとは:仮想マシンのイベントは、仮想マ シンモニタ側では 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 方式を選択した。
  • 5. Classification of cloud computing on-premise, HaaS, PaaS and SaaS Four deployment style 1 On-Premise 2 HaaS Hardware | OS Creating service 3 PaaS Platform | App Creating backend application (DB) 4 SaaS App | Script Creating frontend application (Web, etc) Private Cloud Own and manage all laysers
  • 6. 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 Box XEN, 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].
  • 7. 提案手法(概要) We monitor and visualize Windows OS behavior using virtual machine montitor.
  • 8. 提案手法(詳細) ログ文字列を1文字ずつ送信 1文字を ASCII コードとしてレジスタに格納 EMIT 命令で HYPERCALL を仮想 Windows 側から生成 XEN 側の do_hypercall (hvm.c) で仮想レジスタから ASCII コード取り出し
  • 9. 提案手法 (シーケンス図 :XEN Hypervisor ) XEN ハイパーバイザーがホスト OS Linux の下で稼動 手順① 仮想 Windows OS 内の DLL ・ フィルタドライバ内で 構築したログ情報・ハッシュ値 を仮想 CPU のコンテキストに 格納。その後、 Hypercall を発行 手順② XEN 内の HYPECALL ハンドラで仮想 CPU の コンテキストから通知を捕捉・ ログ情報を取得。
  • 10. EMIT 命令( _emit Pseudoinstruction インラインアセンブラで非対応の命令を使う方法 ■ __asm{ mov eax, X : ACSII code of log string _emit 0x0f _emit 0x01 _emit 0xc1 } Hypercall 呼び出し _emit Pseudoinstruction http://msdn.microsoft.com/en- us/library/1b80826t.aspx
  • 11. 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
  • 12. Windows レジストリアクセス API のダンプ ZwCreateKey B8 29 00 00 00 mov eax,29h <- eax にインデックスをコピー 8D 54 24 04 lea edx,[esp+4] 9C pushfd 6A 08 push 8 E8 30 1C 00 00 call 00407631 <- システムコール呼び出し C2 1C 00 ret 1Ch ZwQueryKey B8 A0 00 00 00 mov eax,0A0h 8D 54 24 04 lea edx,[esp+4] 9C pushfd 6A 08 push 8 E8 E4 12 00 00 call 00407631 C2 14 00 ret 14h ZwQueryValueKey B8 B1 00 00 00 mov eax,0B1h 8D 54 24 04 lea edx,[esp+4] 9C pushfd 6A 08 push 8 E8 90 11 00 00 call 00407631 C2 18 00 ret 18h
  • 13. 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)] システムコールコードへのアドレスを返すマクロ。 この値をフック関数のアドレスへ置き換える。
  • 14. 自己組織化マップ ■ クラスタリング・次元削減のための教師なし学 習アルゴリズムのひとつ Wv(t + 1) = Wv(t) + Θ(t)α(t)(D(t) - Wv(t)) D(t): 入力  Wt: 重み係数 Θ(t):BMU からの近傍半径  α(t): 学習係数  ■k-mean 等に比べ、クラスタ数を与件としない、 データ間のトポロジーが変わらない等の特徴が ある。
  • 16. Visualizing states of Windows OS malware Data for (before) SOM processing 通常状態 normal state Zeus-wsnpoem (BotNet) Klez (worm) Sassar (worm)
  • 17. Visualizing Windows behavior using SOM INSTALLING APPLICATION (text editor) INSTALLING Device driver (video card) MALWARE INFECTION
  • 18. Visualizing Windows behavior using SOM Running P2P application Installing Application (text editor) Malware infection
  • 19. Visualizing Windows behavior using SOM Running P2P application Running Internet Explorer Malware infection
  • 20. 結論  _emit 擬似命令を用いた VM active monitor ■ 本論文では、 _emit 擬似命令を用いた仮想マシン上のセ キュリティインシデントの能動的観測と可視化手法を提 案した。 ■ 提案手法では、フィルタドライバによるレジストリアク セスを _emit 擬似命令を用いてハイパーバイザー側へ通 知し、可視化を行った。 ■ 可視化(次元削減)には、自己組織化マップを用いた。 ■ 仮想 Windows OS をレジストリが定義するステートマシ ンとすると、各種ソフトウェアのインストール、マル ウェア感染などの状態遷移可視化は直感的な結果となっ た。
  • 21. 負荷測定比較( XEN,KVM)  ファイルアクセス Unzip による測定を行った。 大量のファイルアクセスが発行する場合、 KVM はリソース消費量が安定しないものの、 XEN より良好なパフォーマンスを示した。 結論: P2P 観測には KVM の方が適切。
  • 22. 負荷測定比較( XEN,KVM)   HTTPD Apache による測定を行った。 XEN はリソース消費量が安定せず、 IO 仮想化周りでパフォーマンスが落ちる。 しかし、大量のストリームをゲスト側で処理する 場合(レジストリ処理など)、 KVM ベースの システムは仮想メモリ不具合が発生する。