Intel SGXを用いた仮想マシンの 安全な監視機構 九州工業大学 情報工学部 機械情報工学科 光来研究室 14237058 中野 智晴
侵入検知システム(IDS) IaaS型クラウドが普及している IDSを用いてVMを監視する必要がある 仮想マシン(VM)を提供する VM内でIDSを動かすと侵入時に無効化される恐れ VM インターネット IDS 侵入 ユーザ 攻撃 攻撃者 クラウド
IDSオフロード 監視対象VMの外でIDSを実行する手法 監視対象VMに侵入されてもIDSは無効化されな い IDSは監視対象VMのメモリを解析し、OSデータを取 得して監視 例:プロセス一覧を取得し、不正なプログラムの実 行を検知 監視対象VMに侵入されてもIDSは無効化されな い 監視対象VM 監視 IDS 侵入 攻撃者
オフロードしたIDSへの攻撃 まだIDSが攻撃を受ける可能性がある IDSが取得したVM内の機密情報を盗まれる恐れ 外部の攻撃者によって攻撃される可能性 IDSが取得したVM内の機密情報を盗まれる恐れ 攻撃 Google管理者によるプライバシ侵害 [TechSpot '10] サイバー犯罪の28%は内部犯行 [PwC '14] 管理者の35%は機密情報をのぞき見したことがある [CyberArk '09] 監視対象VM 攻撃者 監視 IDS 攻撃 悪意のある 管理者
従来手法の問題 オフロードしたIDSを安全に実行するための従 来手法には問題がある 信頼するハイパーバイザ内で実行 [Oyama et al. ’12] 高機能なIDSを開発するのが難しい ユーザにしかアクセスできない専用VM内で実行 [Butt et al. ’12] そのVMが攻撃を受ける可能性 ハイパーバイザの説明 ユーザ専用VM 監視対象VM IDS IDS 監視 監視 ハイパーバイザ
提案:SGmonitor Intel SGXを用いてオフロードしたIDSを実行し、VM内の情報を安全に取得 Intel SGX:プログラムの安全な実行を保証するCPU の機構 IDSの改ざんやVM内の機密情報の漏洩を防ぐ ハートビートを用いてIDSの正常な動作を確認 ハートビートの説明 ハートビート 監視 監視対象VM IDS リモートホスト ハイパーバイザ 保護 CPU SGX 監視対象ホスト
SGXを用いたIDSの安全な実行 エンクレイヴと呼ばれる保護領域でIDSを実行 実行開始時に電子署名を検査 メモリの整合性を保証 メモリを暗号化 IDSが取得したVM内の情報の漏洩を防ぐ SGXアプリケーション エンクレイヴ IDS
VM内のOSデータの取得 ハイパーバイザ経由でVM内のOSデータを取得 OCALLを用いてSGmonitorライブラリを呼び出す OCALL:エンクレイヴが外部関数を安全に呼び出す ためのSGXの機構 ハイパーコールを用いてハイパーバイザを呼び出す ハイパーバイザがVMのメモリにアクセス エンクレイヴ 監視対象VM IDS OCALL SGmonitor ライブラリ 仮想アドレス ハイパーコール データ取得 ④ 変換 仮想アドレス 物理アドレス OSデータ ハイパーバイザ
OSデータの暗号化 途中でVM内の情報が漏洩しないように取得し たOSデータを暗号化 ハイパーバイザが暗号化し、エンクレイヴ内で復号 それぞれにAES暗号を実装 ハイパーバイザは信頼する SGmonitorライブラリやOSなどは信頼しない エンクレイヴ SGmonitor ライブラリ IDS 復号 OSデータ OSデータ 暗号化 OSデータ OSデータ ハイパーバイザ
暗号鍵の安全な共有 エンクレイヴはハイパーバイザとOSデータを 暗号化するための暗号鍵を共有 生成した暗号鍵をハイパーバイザの公開鍵で暗号化 ハイパーバイザだけが秘密鍵で復号可能 信頼できる第三者機関による電子署名も確認 正しいIDSのみが暗号鍵を登録可能 エンクレイヴ IDS 暗号化 OCALL SGmonitor ライブラリ 公開鍵 第三者機関 ハイパーコール 復号 ハイパーバイザ 秘密鍵
実験 目的 SGmonitorを用いたIDSの動作確認 VM内のOSデータを取得する時間の測定 SGmonitor(データ暗号化の有無)、SGXを用いない 従来手法を比較 ホスト CPU Intel Xeon E3-1225 v5 メモリ 8GB 仮想化システム SGXをサポートしたXen 4.7 監視対象VM 仮想CPU数 2 メモリ 2GB OS Linux 4.4 Intelが提供しているSGXをサポートしたXen 4.7の使用
IDSの動作確認 監視対象VM内のプロセス一覧を取得して表示 するIDSを作成 プロセスIDとプロセス名が正しく取得できているこ とを確認 166プロセス IDSの検知方法
OSデータの取得時間 プロセス一覧を取得するのにかかる時間を測定 暗号化を行わない場合は従来手法より8%だけ増加 OCALLによるオーバヘッドのため 暗号化を行う場合は従来手法の2.3倍の時間がか かった CPUのAES-NI機能により削減可能
関連研究 HyperGuard [Rutkowska et al.'08] Flicker [McCune et al.'08] CPUのSMMというモードでIDSを安全に実行 SMMは性能が低く、実行中はシステム全体が停止 Flicker [McCune et al.'08] Intel TXTを用いてIDSを安全に実行 実行中は他のCPUコアが停止 V-Met [Miyama et al. '17] ネストした仮想化を用いて、仮想化システムの外側 でIDSを安全に実行 VMの実行オーバヘッドが大きい
まとめ Intel SGXを用いてIDSを保護し、VMを安全に監視するシステムSGmonitorを提案 今後の課題 AES-NIを用いた暗号化オーバヘッドの削減 暗号鍵の共有の実装を完成させる リモートホストからのハートビートを実装