今週の進捗

Similar documents
bitvisor_summit.pptx

大月勇人, 若林大晃, 瀧本栄二, 齋藤彰一, 毛利公一 立命館大学 名古屋工業大学

ソフトウェアセキュリティ研究チーム ポスター・デモ紹介

BitVisor Updates in 2016

PowerPoint プレゼンテーション

ET2011 SPセッション C7 08

( 億 種 ) マルウェアが 急 速 に 増 加! 短 時 間 で 解 析 し, マルウェアの 意 図 や 概 略 を 把 握 したい マルウェアを 実 行 し, 挙 動 を 観 測 することで 解 析 する 動 的 解 析 が 有 効 しかし, マルウェアの 巧 妙 化 により, 観 測 自 体

テスト

Microsoft PowerPoint - sp ppt [互換モード]

Alkanet[1, 2] Alkanet CPU CPU 2 Alkanet Alkanet (VMM) VMM Alkanet Windows Alkanet 1 Alkanet VMM BitVisor[3] BitVisor OS ユーザモード カーネルモード マルウェア観測用 PC VM

Computer Security Symposium October 2015 プロセス情報不可視化のための仮想計算機モニタよるメモリアクセス制御 佐藤将也山内利宏谷口秀夫 岡山大学大学院自然科学研究科 岡山県岡山市北区津島中 {sato, ya

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS02.pptx

71-78.indd

Microsoft PowerPoint - OS02.ppt

04-process_thread_2.ppt

スライド 1

第6期末セミナー2006-1rev1.ppt

Computer Security Symposium October ,a) API API API Alkanet IDA MWS API Proposal of static analysis assistance method utilizi

untitled

セキュアVMの アーキテクチャ概要

メモリ管理

ダンプ取得機能強化サポートオプション Enterprise Edition

Microsoft PowerPoint - OS07.pptx

Microsoft PowerPoint - 鵜飼裕司講演資料shirahama_egg.ppt [互換モード]

KSforWindowsServerのご紹介

10-vm1.ppt

Microsoft PowerPoint - os ppt [互換モード]

情報処理学会研究報告 IPSJ SIG Technical Report Vol.2014-DPS-159 No.31 Vol.2014-MBL-71 No /5/16 仮想化環境における読込み書込み比率を考慮した動的 VM メモリ割り当て 1 坂本雅哉 1 山口実靖 近年, サーバの

WannaCry とは WannaCry はランサムウェアの一種 WannaCry は ランサムウェアと呼ばれる身代金要求型のマルウェアです WannaCryptor WanaCrypt Wcry といった呼ばれ方もします 一般的にランサムウェアに感染すると 以下のようなデータを使用できないように暗

Xen 3.0 のすべて 内部実装詳解 VA Linux Systems Japan K.K. 山幡為佐久 Linux Kernel Conference

プレゼンテーション

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

計算機システム概論

Microsoft PowerPoint - sp ppt [互換モード]

System Center Virtual Machine Manager 2008 R2の留意事項一覧


Microsoft PowerPoint - OS02.pptx

160311_icm2015-muramatsu-v2.pptx

PowerPoint プレゼンテーション

Microsoft PowerPoint - No3.ppt

Microsoft PowerPoint - No15›¼‚z‰L›¯.ppt

VMware VirtualCenter: Virtual Infrastructure Management Software

電子情報通信学会ワードテンプレート (タイトル)

Microsoft PowerPoint - No6note.ppt

延命セキュリティ製品 製品名お客様の想定対象 OS McAfee Embedded Control 特定の業務で利用する物理 PC 仮想 PC や Server 2003 Server 2003 ホワイトリスト型 Trend Micro Safe Lock 特定の業務で利用するスタンドアロン PC

Operating System 仮想記憶

やってきたこと BitVisor ベースのちょっと変なハイパバイザを学生とともに考えてきた 災害警報を表示するハイパバイザ 青少年に見せられない部分を黒塗りするハイパバイザ 広告を表示するハイパバイザ 旧バージョンの SSL 通信に警告するハイパバイザ アクセスしたディスクブロックやネットワークパケ

X-MON3

侵入挙動の反復性によるボット検知方式

HP製コンピューターでのWindows® 7 XPモードの使用

Monthly Research / セキュアハードウェアの登場とその分析

Microsoft PowerPoint - OS09.pptx

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

インストール先 PC 推奨環境 Intel Virtualization Technology 対応 CPU Windows 7 以降 64 bit メモリ 4 GB 以上 ハードディスク空き容量 20 GB 以上 インターネット接続 ( アップデートを うため ) ( 動作を保証するものではありま

1 BitVisor [3] Alkanet[1] Alkanet (DLL) DLL 2 Alkanet Alkanet Alkanet VMM VMM Alkanet Windows [2] マルウェア 観 測 用 VM SystemCall Windows System

スライド 1

Microsoft PowerPoint - bh-japan-08-Murakami.ppt [互換モード]

ユーティリティ 管理番号 内容 対象バージョン 157 管理情報バッチ登録コマンド (utliupdt) のメッセージ出力に対し リダイレクトまたはパイプを使用すると メッセージが途中までしか出 力されないことがある 267 転送集計コマンド (utllogcnt) でファイル ID とホスト名の組

メモリについて考えてみよう_REL_

PowerPoint プレゼンテーション

スライド 1

Microsoft Word - DS50-N A.doc

GHS混合物分類判定システムインストールマニュアル

出 アーキテクチャ 誰が 出 装置を制御するのか 1

情報セキュリティ研究センター活動紹介

BitVisor 2017年の主な変更点

メモリ管理

Microsoft Word - Android_仮想デバイスマネージャーの使い方

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

カスペルスキー法人向け製品希望小売価格表 エンドポイント対策 2019 年 04 月 02 日現在 製品名 Kaspersky Endpoint Security for Business - Select( クライアント ) ライセンス数

Microsoft PowerPoint - Android+TPMによるセキュアブート_KDDI研_後日配布用

自己紹介 湯浅陽一 1999 年より Linux kernel 開発に参加 MIPS アーキテクチャのいくつかの CPU へ Linux kernel を移植

1. はじめに (1) 本書の位置づけ 本書ではベジフルネット Ver4 の導入に関連した次の事項について記載する ベジフルネット Ver4 で改善された機能について 新機能の操作に関する概要説明 ベジフルネット Ver4 プログラムのインストールについて Ver4 のインストール手順についての説明

C プログラミング 1( 再 ) 第 5 回 講義では C プログラミングの基本を学び演習では やや実践的なプログラミングを通して学ぶ

スライド 1

PowerPoint-Präsentation

デスクトップ仮想化の理解

Microsoft Word - UniversalShield_Hitachi.doc

CLUSTERPRO MC ProcessSaver 2.3 for Windows 導入ガイド 第 5 版 2018 年 6 月 日本電気株式会社

仮想化基礎演習テキスト Ⅰ 第 1.0 版 演習で学ぶ仮想化基礎 ( クライアント仮想化編 ) 九州ラーニングネット株式会社 特定非営利活動法人パソコン整備士協会

Microsoft PowerPoint - OS11.pptx

脆弱性を狙った脅威の分析と対策について Vol 年 7 月 21 日独立行政法人情報処理推進機構セキュリティセンター (IPA/ISEC) 独立行政法人情報処理推進機構 ( 略称 IPA 理事長 : 西垣浩司 ) は 2008 年度におけ る脆弱性を狙った脅威の一例を分析し 対策をまと

MMUなしプロセッサ用Linuxの共有ライブラリ機構

命令セットの構成例 a) 算術 演算命令 例 )ADD dest, source : dest dest + source SUB dest, source : dest dest - source AND dest, source : dest dest AND source SHR reg, c

Microsoft PowerPoint - kougi7.ppt

PowerPoint Presentation

NetworkVantage 9

SAMBA Stunnel(Windows) 編 1. インストール 1 セキュア SAMBA の URL にアクセスし ログインを行います xxx 部分は会社様によって異なります xxxxx 2 Windows 版ダウンロード ボ

PowerPoint プレゼンテーション

Microsoft PowerPoint - DEXCS2015_Salome_Installation pptx

プリンタステータス監視モニタ説明書

TFTP serverの実装

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

PowerPoint プレゼンテーション

改版履歴 Ver. 日付履歴 1.0 版 2014/5/30 新規作成 目次 0 はじめに 本文中の記号について Hyper-V 2.0 をインストールするための準備 インストール前に確認が必要なもの Hyper-V 2.0 の

Microsoft PowerPoint - os ppt [互換モード]


OS

組込み Linux の起動高速化 株式会社富士通コンピュータテクノロジーズ 亀山英司 1218ka01 Copyright 2013 FUJITSU COMPUTER TECHNOLOGIES LIMITED

Transcription:

Virtualize APIC access による APIC フック手法 立命館大学富田崇詠, 明田修平, 瀧本栄二, 毛利公一 2016/11/30 1

はじめに (1/2) マルウェアの脅威が問題となっている 2015年に4 億 3000 万以上の検体が新たに発見されている マルウェア対策にはマルウェアが持つ機能 挙動の正確な解析が重要 マルウェア動的解析システム : Alkanet 仮想計算機モニタのBitVisorの拡張機能として動作 システムコールをプロセス スレッド単位でトレースしマルウェアの挙動を観測 マルウェア観測用 PC ユーザモード カーネルモード BitVisor VM SystemCall Windows SystemCall Analyzer Alkanet システムコールをフックし, 情報取得 ログログ IEEE1394 ロギング用 PC LogAnalyzer 表示保存 Logger Symantec: 2016 年インターネットセキュリティ脅威レホ ート第 21 号 (2016). 2016/11/30 2

はじめに (2/2) 他プロセスへコード挿入を行うマルウェアが存在する マルウェアに起因するシステムコールの識別が困難 ブランチトレース機能を用いたシステムコール呼出し元アドレス取得手法 User Kernel Branch Trace Store(BTS) により取得した分岐元アドレス 分岐先アドレスからシステムコール発行時の関数呼出し階層を特定 マルウェアプロセス injection 被感染プロセス 発行されたシステムコールがマルウェアに起因するものか識別が可能 call System call メモリ空間 ( 非感染領域 ) ( 感染領域 ) API ( 非感染領域 ) Windows Kernel call call 2016/11/30 3

BTS を用いた分岐記録 BTS の記録は BTS Buffer 内に記録される バッファあふれが発生する場合がある システムコール発行前の分岐を全て記録できない マルウェアに起因するシステムコール発行を識別できない BTS の割込み機能を用いた継続的な分岐記録 BTS Buffer に限界まで記録が蓄積した時に割込みを発生させる 割込み発生毎に記録を退避させる from: 40051c to : 400500 BTS による記録 BTS Buffer いっぱいまで蓄積 BTS Buffer 2016/11/30 4

BTS の割込み制御 BTSの割込みを制御するには APIC 内のLVT(Local Vector Table) を変更する必要がある 割込みベクタ番号 割込みのマスクなどの制御 ゲストOSに変更されるとBTSの割込みが正常に動作しない可能性がある APIC へのアクセスをフックしゲスト OS による変更を防ぐ 2016/11/30 5

BitVisor 上での APIC フック手法 BitVisor内の関数を用いたMMIOフック EPT Violationを用いたフック手法 mmio_register関数でフック対象を指定できる BitVisorで利用されている Intel VTのVirtualize APIC accessを用いたフック APICページへのアクセス時にVM Exitを発生させる BitVisorでは利用されていない 2016/11/30 6

BitVisor での MMIO フック EPT Violationによってフックを実現されている Intel VT-xのアドレス空間仮想化機構 フック対象をマップしないことでEPT Violationを起こす APICのMMIO 領域をフック対象に指定 0xFEE0 0340(LVT PC) をフックする必要がある 2016/11/30 7

Virtualize APIC access を用いたフック VM Execution Controls Virtualize APIC 自体の有効化 APIC access address APIC page の物理アドレスを指定 APIC-access VM Exit(Exit Reason 44) 時に実行される処理の追加 cpu_interpreter 関数を実行 VM VMM ゲスト OS アクセス APIC access page 物理アドレス指定 APIC-access Address in VMCS VM Exit 2016/11/30 8

Virtualize APIC access を用いた場合と MMIO フックを用いた場合の起動時間 (1/2) BitVisor内の関数を用いたMMIOフック LVTに限定してフックした場合 APIC全体をフックした場合 Intel VTのVirtualize APIC accessによるフック これらの起動時間を確認 各条件で3 回ずつ計測 Windows XPで起動 GrubでのOS 選択からデスクトップ画面表示までを計測 2016/11/30 9

Virtualize APIC access を用いた場合と MMIO フックを用いた場合の起動時間 (2/2) BitVisor内の関数を用いたMMIOフック LVTに限定してフックした場合 平均 4 分 6 秒 APIC全体をフックした場合 平均 4 分 8 秒 Intel VTのVirtualize APIC accessによるフック 平均 4 分 10 秒 起動時間に大きな差は出なかった 2016/11/30 10

フック手法による比較 両手法とも起動時間に大きな差はなかった 両方 APICページ全体をフックしているためか BitVisorのMMIOフック機能 EPT Violationを応用した機能のため, これ以上のオーバヘッド削減方法がなさそう Intel VT-xのVirtualize APIC access VM Exit回数削減のための機能がある オーバヘッド削減の余地がある 2016/11/30 11

Virtualize APIC access を利用 オーバヘッド削減のための機能が存在する Virtualize APIC accessを採用 APICレジスタへのアクセスを仮想化しVM Exit 回数の削減 TPR Shadow TPRへのアクセスを仮想化 APIC Register Virtualization TPR以外のレジスタ (EOI,IRR,ISRなど) を仮想化 フックが必要なLVTへアクセスした時のVM Exitも削減されてしまう TPR Shadow を用いて動作を確認する 2016/11/30 12

TPR TPR の値と割込みの優先度を比較し, マスクするか判断される 割込みの優先度はベクタ番号から決定される 割込み優先度 = ベクタ番号 /16 Windows の起動時に発生する APIC アクセスのほとんどが TPR TPR = a CPU 優先度 a 以上 優先度 a 未満 2016/11/30 13 13

TPR Shadow を用いた VM Exit 削減 TPRレジスタへのアクセスを仮想化 VMCS内のVM Execution Controlsのビットを変更し有効化 その 他に必要な設定 Virtual APIC page TPR Threshold 2016/11/30 14

その他の必要な設定 Virtual APIC page の設定 メモリを確保し その物理アドレスを指定 TPR の値を格納する場所として用意 TPR Threshold TPR への書込み時に, VM Exit を起こすかどうかの閾値 書込まれた TPR の値が TPR Threshold 以下なら VM Exit VM Guest OS VMM VM Exit BitVisor read/write APIC Page Virtual APIC Page 2016/11/30 15

TPR Threshold の変更 (1/2) Xen のソースコードを参考に処理を追加 TPR Threshold の変更 割込みがブロックされた時に値を変更する ブロックされた割込みと同じ優先度を設定する 動作例 LAPIC TPR = 5 TPR Threshold = 0 優先度 4 の割込み LAPIC TPR = 5 VM Exit TPR=3 の書込み TPR Threshold = 4 2016/11/30 16

TPR Threshold の変更 (2/2) IRR( 割込み要求レジスタ ),ISR( インサービスレジスタ ) から APIC が受信している割込みベクタ番号を取得できる 追加した関数 check_tprblock 以下 2 つの関数を実行し, その結果から TPR Threshold を変更する vlapic_has_pending_irq ISR,IRR の値を read interrupt_blocked TPR の値と ISR,IRR の値を用いてブロックの原因を識別 2016/11/30 17

TPR Shadow 動作検証 (1/2) Virtualize APIC access,tpr Shadowを有効にし起動 TPRアクセスによるVM Exit 発生時にログ出力 TPRによるVM Exitが削減されているかを確認するため 正常に起動するか確認 ゲストOSとしてWindows XPを実行 2016/11/30 18

TPR Shadow 動作実験 (2/2) TPR アクセスによる VM Exit 時のログは出なかった VM Exit の削減に成功している TPR Shadow 自体は動作している ロゴ画面が表示された瞬間に停止 起動までは確認できず 動作停止の原因は調査中 2016/11/30 19

おわりに Virtualize APIC accessを利用したapicフックを確認 MMIOフックとVirtualize APIC accessで起動時間に大きな差はなかった Virtualize APIC accessには VM Exit 回数を削減できる機能がある TPR Shadowを試したが起動中に停止 今後の予定 動作停止について調査 TPR Shadowを用いた場合の起動時間計測 2016/11/30 20