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

Similar documents
今週の進捗

PowerPoint プレゼンテーション

SANS SEC401_PC設定の手引き

また RLF 命令は 図 2 示す様に RRF 命令とは逆に 各ビットを一つずつ 左方向に回転 ( ローテイト ) する命令である 8 ビット変数のアドレスを A とし C フラグに 0 を代入してから RLF A,1 を実行すると 変数の内容が 左に 1 ビットシフトし 最下位ビット (LSB)

利用ガイド

無線LAN JRL-710/720シリーズ ファームウェアバージョンアップマニュアル 第2.1版

セットアップユーティリティユーザガイド

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

OS

Zoiper User Guide

RR1soft.book

平成30年度 パソコン・ネットワークの設定について

OS の bit 数の確認方法 - Windows0 及び Windows8. Windows のコントロールパネルを開きます Windows0 の場合 スタート から Windows システムツール の コントロールパネル をクリックします Windows8. の場合 スタート から PC 設定

モニタリング画面を開く にチェックを入れる またはメニュー画面か らモニタリングアイコンをクリックします 全画面表示 設定画面 録画再生画面表示ページサーバー カメラツリ左からシングル / 4/ 6/ 8/ 9/ 10/ 12 分割画面です ここをクリックすると 16/ 20( )/ 2

CommCheckerManual_Ver.1.0_.doc

1 ログインとログアウト 1.1 ログイン ログイン画面で [ password ] 欄にパスワードを入力します (図 1) 図 1 ログイン画面 正しくログインができると Ubuntu のデスクトップ画面 図2 が表示されます 図2 Ubuntu デスクトップ画面 2

プログラマブル LED 制御モジュール アプリ操作説明書 プログラマブル LED 制御モジュール設定アプリ操作説明書 適用モジュール 改訂番号 エレラボドットコム 1

今月の呼びかけ 添付資料 ファイル名に細工を施されたウイルスに注意! ~ 見た目でパソコン利用者をだます手口 ~ 2011 年 9 月 IPA に RLTrap というウイルスの大量の検出報告 ( 約 5 万件 ) が寄せられました このウイルスには パソコン利用者がファイルの見た目 ( 主に拡張子

ESET Smart Security 7 リリースノート

Microsoft PowerPoint - install_NGSsokushu_windows(ver2.1).pptx

マルウェアレポート 2018年1月度版

マルウェアレポート 2017年9月度版

SNC-HM662 EdgeStorage manual J

遠隔授業操作マニュアル(長崎県)

スライド 1

スライド 1

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

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

テスト

システムコマンダー8を使用したWindows とLindowOS の共存方法

<4D F736F F D2089A1956C E815B837E B8A948EAE89EF8ED02E646F63>

目次 1.TypeA ご利用ソフト更新ツール概要 更新ツール実行における注意点 更新ツール実行時の注意点 管理者権限について Prox y 認証 更新ツールの実行 トラブルシューティ

H-R041-2_j

内容 MD00Manager とは?... MD00Manager をインストールする.... ソフトのインストール... MD00Manager の使い方.... 起動をする... 機能説明...7 機能説明 ( メニューバー )...8 機能説明 ( ステータスバー )...8 機能説明 ( コ

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

Microsoft Word - MAR Win10セットアップ_リカバリー手順_1802.docx

モデム コマンドに関するガイドライン

溶接学会 全国大会講演登録の流れ

05-scheduling.ppt

NGate_mac.book

USB AVI ファイルに変換して録画データーを移動する... 2 microsd カードの録画ファイルをコピーして移動する... 5 NAS の録画ファイルをコピーして移動する / 8

. はじめに はじめに みなと外国為替 WEBをご利用いただくにあたり ブラウザ ( インターネットに接続するソフト ) の設定作業は原則不要ですが お客さまのご利用環境によっては ブラウザの設定が必要となる場合があります お客さまの状況にあわせて手順をご確認ください ブラウザの設定を行う前にお客さ

Section1_入力用テンプレートの作成

重要更新作業を実施される前に必ずご確認ください OS の更新を実行するときはタブレット端末に AC アダプターを接続して使用してください AC アダプターを接続していないと OS の更新はできません 実行中は AC アダプターを抜かないでください OS の更新が正しく行えなくなり タブレット端末が正

Microsoft Word - qa-int.doc

Windows2000/XPインストール手順

マニュアル目次 1)eCore 概要 2) マスター作成方法 3) 初回起動方法 4)eCore デスクトップ画面の説明 5) ネットワーク接続方法 6) サーバー接続方法 7) よくある質問 1

PowerPoint プレゼンテーション

Inet-Builder Client 操作説明書

G800SE HTMLdocument update

無線 LAN JRL-710/720 シリーズ ファームウェアバージョンアップマニュアル G lobal Communications

aaaa

重要更新作業を実施される前に必ずご確認ください OS の更新を実行するときはタブレット端末に AC アダプターを接続して使用してください AC アダプターを接続していないと OS の更新はできません 実行中は AC アダプターを抜かないでください OS の更新が正しく行えなくなり タブレット端末が正

マルウェアレポート 2018年3月度版

最終更新日 :2019 年 2 月 26 日 Office365 Office 製品のインストール 茨城キリスト教大学 情報センター 目次 1. Office Pro Plusの概要 1-1 サービスの概要 1-2 利用対象者 1-3 利用可能台数 1-4 インストール可能なソフト 1-5 注意事項

CPUスケジューリング

目次 第 1 章はじめに 本ソフトの概要... 2 第 2 章インストール編 ソフトの動作環境を確認しましょう ソフトをコンピュータにセットアップしましょう 動作を確認しましょう コンピュータからアンインストー

idoperation SC のコンセプト idoperation SC は パソコンやサーバにインストールする 防犯カメラ ソリューションです パソコンやサーバのデスクトップ内でのユーザ操作をビデオで記録し 証跡として残します 録画 保管 再生 2017 NTT TechnoCross Corpo

ch2_android_2pri.indd

Windows XP から Windows 7 へのアップグレード

スライド 1

操作ガイド 用紙タイプ登録ツール

“nice to meet you”

目次 1. はじめに ユーザーアカウント制御の設定の一時無効化 プリンタの追加 設定 共有フォルダからのインストールプログラムの取得 バッチファイルの実行 プリンタ追加の確認 印刷方法..

スライド 1

智美塾 ゆもつよメソッドのアーキテクチャ

回路 7 レジスタ ( 同期イネーブル及び非同期リセット付 ) 入力データを保持するのに用いる記憶素子 使用用途として, マイクロプロセッサ内部で演算や実行状態の保持に用いられる Fig4-2 のレジスタは, クロック信号の立ち上がり時かつ 信号が 1 のときに外部からの 1 ビットデータ R をレ

LAeq(LX)を10分毎に24時間繰り返し測定し自動保存する

Microsoft PowerPoint - kougi7.ppt

Joi-Tab 端末管理システム最終更新日 2015 年 3 月 13 日

ネットワーク設置で困ったときには

ワイヤレスセンサモジュール取扱説明書

:30 18:00 9:30 12:00 13:00 17:00

<4D F736F F D2093AE89E6947A904D8E8B92AE837D836A B2E646F63>

鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル IC カードを利用しない応札者向け 第 1.7 版 平成 31 年 2 月鳥取県物品契約課 鳥取県物品電子入札システムセキュリティ ポリシー設定マニュアル Ver.01-07

PowerPoint プレゼンテーション

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - OS07.pptx

ネットワーク設置で困ったときには

Microsoft PowerPoint - DEXCS2015_Salome_Installation pptx

PowerPoint プレゼンテーション

NALC 活動管理システムインストール手順書 NALC 活動管理システムを利用するためには 以下の性能を持った PC が必要です システム要件 対応 OS 対応ブラウザ Windows7 / Windows8 8.1/windows10 Internet Explorer 8 以降 (Firefox

目 次 1. 概要 ホームアプリの主な機能 操作方法 初期設定 初期画面 診断 ( 車両情報選択画面 ) 車両情報の登録 編集 登録した車両を削除する...

達人Cube Mini MN収集(Android版) 運用ガイド

在宅せりシステム導入マニュアル

【ドコモあんしんスキャン】サービスマニュアル

VG シリーズ用ローカルファームアップ / 自動ファームウェア更新設定手順書 VG400aⅡ ローカルファームアップ / 自動ファームウェア更新設定手順書

Microsoft Word - 3Ware_RaidManual.doc

MS916 バッチ操作ガイド FW バージョン 0.52 向け バッチ操作の基本 MS916 のバッチ操作について バッチ操作では 読取ったバーコードデータはすべて 不揮発性のメモリ (1MB ROM JAN-13 約 50,000 件 ) に保存されます メモリに保存されたデータは任意のタイミング

SoftBank 202Z 取扱説明書

KDDI TeleOffice Ver3.0 へのバージョンアップについて 実施日 1. サーバーのバージョンアップ 2014 年 12 月 6 日 ( 土 )20:00 ~ 2014 年 12 月 7 日 ( 日 )06:00 上記時間帯において すべての機能がご利用いただけなくなります 2. ア

スライド 1

0. 目次 Ahkun EX Antimalware ソフト使用マニュアルデスクトップ上での操作方法 1. インストールについて P.3 2. 操作画面の起動方法 P.6 3. アップデートの手動実行 P.7 4. リアルタイム監視の操作 P.9 5. プログラム情報の表示方法 P ソフ

PowerPoint プレゼンテーション

ESET NOD32 アンチウイルス 6 リリースノート

bitvisor_summit.pptx

携帯電話を登録する 3 携帯電話で教員からのお知らせおよびレポート課題の情 報が得られます. 従来型携帯電話を利用するための情報登 録はパソコンを使って行います. スマートフォンユーザは スマートフォンユ ーザ向けガイド を参照してください. 携帯メールアドレスの登録 授業選択領域にて My Wor

画面について メイン画面 メイン画面 Logitec EXtorage Link を起動すると メイン画面が表示されます メイン画面の構成は 次のとおりです 1 メニュー 2 端末から外部ストレージへ 3 外部ストレージから端末へ 4 端末 5 外部ストレージ 6 カメラ機能 スマホやタブレットで使

Microsoft Word - XPC4ソフトマニュアル.doc

Transcription:

BitVisor による OS の見かけ上 10 倍速実行 大山恵弘筑波大学学術情報メディアセンター 2018年 11月 28日 BitVisor Summit 7 1

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

BitVisor に関してやっていること 筑波大学の教育用システムの全端末 (1000 台以上 ) で動く vthrii の運用 BitVisor Summit 6 で発表した 大学の教育研究用端末上でのベアメタルハイパバイザの運用 自分の部署の月例会で, ほぼ毎月,vThrii をどう安定的に運用するかの議論を続けている 3

今日の話 ゲスト OS の時間の流れを速くするための,BitVisor ベースのハイパバイザ OS が認識する時間の流れる速度を変えるだけ 計算の実際の速度は従来通り OS が計時に用いる TSC の増加幅を増やして実現 TSC = Time Stamp Counter RDTSC 命令が返す値を書き換える 4

作ったシステム あるキーを押すと, ゲスト OS が認識する時間の流れる速度が 10 倍になる ソフトウェアの状態が 10 倍程度速く変化する 別のキーを押すと,1 倍に戻る 10 倍 1 倍 10 倍 1 倍... と, 何度でも繰り返せる まずはデモ動画を見ていただくのがいいと思います 5

他に可能な操作 あるキーを押すと,N 倍速が N+1 倍速になる あるキーを押すと,N 倍速が N-1 倍速になる ただし N は 1 未満にはしない 2 倍や 60 倍にする 60 倍速にしても OS やアプリは落ちないことを確認ずみ 画面遷移速度や動画再生速度は 60 倍にはならない 意図通りの速度になるかどうかは, 処理が CPU などの資源バウンドか, 待ち時間バウンドかによる 6

動機 時間の流れを速く ( 遅く ) できる利点は多い 実行の様子を短時間で確認できる 変化が速すぎて人間がついていけない処理を, 低速にできる 長い待ち時間をスキップできる 長い時間の経過がトリガになって実行される処理 ( マルウェアの感染処理など ) を, すぐに実行させることができる まじめな研究の話をしますと... TSC を用いたマルウェアによる解析回避処理を無効化できる 7

考えられる拡張 速度変更のトリガを, キー入力ではない何かにする 特定の時刻になったら 特定のアプリケーションが立ち上がったら 例 : たるすぎるゲーム 特定の文字列が画面に表示されたら 例 : 5 秒後にスキップして動画へ進めます PC 付属のカメラが認識する顔が正規ユーザの顔でなかったら 端末を不正利用したユーザが驚いて退散する 8

実装 ゲスト OS による RDTSC 命令の実行を BitVisor がフック VT-x の機能を利用する Intel マニュアル Appendix C VMX Basic Exit Reasons を参照 Exit Reason 第 16 番が RDTSC (Exit Reason 第 51 番が RDTSCP) BitVisor の初期化処理で, これらの命令で VM exit が発生するようにしておく 返す TSC の値を偽装する 9

RDTSC 命令 TSC を読む命令 TSC 上位 32 ビット EDX レジスタ TSC 下位 32 ビット EAX レジスタ TSC とは? x86 CPU 内にある 64bit のカウンタ 一定時間ごとに 1 増えたり,1 クロックごとに 1 増えたりする 最近では,CPU 周波数の変化や命令実行のストールには関係なく, 一定のペースで増加 OS カーネルが経時に標準的に用いる Linux や Windows などの多くの OS で,HPET や PIT より優先 一般のユーザプログラムが経時に用いることもできる 10

TSC の値の偽装 RDTSC の最初の実行 : その時点での真の TSC の値 t を, その時点での偽の TSC の値 f とする 最初は両者は一致 10 倍速開始キーの入力 : その時点での真の TSC の値 u と偽の TSC の値 g を記憶 10 倍速中の RDTSC の実行 : その時点での真の TSC の値 v を取得 その時点での偽の TSC の値 h = g + (v - u) * 10 を返す 真 偽 t f 10x start! u g v h 11

CPUID が返す値の偽装 一部の CPU 機能のサポートを示すビットを落とす TSC deadline: TSC が所定の値になったら割り込みを発生させる機能 最近の Linux が計時に使っている? RDTSC を仮想化したのに,TSC deadline を仮想化しないと, TSC の辻褄が合わなくなる OS が固まる しかし,TSC deadline の仮想化の実装は面倒 実装するのやめた RDTSCP: out-of-order 実行されないことが保証された RDTSC 対応はできそうだが, 実装量を極限まで最小化するために偽装 TSC adjust や invariant TSC のビットはそのまま 12

ブート時の TSC calibration Linux はブート時に,1 秒あたりの TSC の増加幅を, 実際の測定値から求める PIT で測った一定時間内の TSC の増加幅を測定 ブート中は,TSC も PIT も偽装しないようにする 1 倍速時の PIT 速度と TSC 速度の比を正しく認識させる [ 0.000000] tsc: Fast TSC calibration using PIT [ 0.000000] tsc: Detected 3192.973 MHz processor [ 0.000064] Calibrating delay loop (skipped), value calculated using timer frequency.. 6385.94 BogoMIPS (lpj=12771892) 13

マルチコア対応 TSC はコアごとに存在し, それらの値は異なる よって, 今回の実装でも, コアごとに, 真の TSC の値と偽の TSC の値を管理 14

ソースコードの修正 修正した ( というか追加した ) 行数 : 約 230 行 極限まで手抜き実装した結果, ここまでコンパクトに 修正したファイルと行数 core/cpu_emul.c 5 行 core/io_iohook.c 22 行 core/vt_init.c 4 行 core/vt_main.c 約 200 行 15

ゲスト OS 側で必要な修正 OS の設定でインターネット時刻との同期をオフにする これをしないと時刻が頻繁に前に戻り, 時計アプリケーションが固まる Linux のブートオプションに tsc=reliable を付ける 時間の源 (clocksource) として常に TSC を使うようになる これがないと,OS が TSC のおかしさを検出し,clocksource を HPET などに切り替える Linux は,TSC の値の信頼性を PIT を使って定期的に検査している ( ような気がする ) 16

Windows ゲストの加速 / 減速 まだ成功してしない 10 倍速キーを押した瞬間, 画面真っ黒 以降は何をしても反応しない tsc=reliable に相当するオプションを与えていないのが原因か 探したが, 多分 Windows にはそういうオプションがない マウスカーソルが動くのみ 電源ボタン長押し マウスカーソルが動くのみ 電源ボタン長押し 17

人間の操作に 与える影響 キー操作が難しくなる リピート開始までの時間が 1/10 リピート速度が 10 倍 18

議論 タイムスライスやコンテキストスイッチはどうなる? 実質的なタイムスライスはおそらく 1/10 に変化 よって, 実質的なコンテキストスイッチ頻度は 10 倍に変化 コンテキストスイッチのオーバヘッドが際立つ 特定のプロセスだけ 10 倍速にすることはできるか? わからない どの RDTSC を偽装するかは難しい問題 そのプロセスのスケジューリング中だけ, カーネルが実行する RDTSC を偽装するようなことが可能か? clock_gettime や gettimeofday をどう偽装するのか問題もある 19

関連システム エミュレータの加速 / 減速機能 この機能を持つエミュレータは多い ベアメタルハイパバイザかエミュレータかという差分はあるが, やっていることは同じ 加速 / 減速機能を持つ音楽や動画の再生アプリ ポッドキャストアプリとか HyperSlow [Okamura et al., '12] 本研究の前身 仮想時間の流れを極端に速くしてマルウェアを動けなくする 20

うさみみハリケーン加速 / 減速機能 21

今後考えたいこと 有用な目的への適用 マルウェアの解析や制御 ソフトウェア開発の高速化 タイミングベース攻撃との相互作用の考察 Meltdown や Spectre など もっとちゃんと作り込む ハイレベル国際会議に通るならやりますけど... 22