Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
仮想マシン内のシステムコール制御
 とアプリケーションのデータ保護


尾上 浩一*   大山 恵弘**   米澤 明憲*

   * 東京大学   ** 電気通信大学
アプリケーションの保護
• セキュリティシステムの適用が一般に普及
 – サンドボックスシステム
 – 侵入検知・防止システム(IDS・IPS)
 – アンチウィルスシステム
                              機密データ



     セキュリティ        アプリケーション
              制御
      システム



               OSカーネル
セキュリティシステムも攻撃され得る!
• 他のアプリケーションと同じ実行空間で稼働



            アプリケーション1
            が乗っ取られた!
                                         機密データ
アプリケーション1


             セキュリティ          アプリケーション2
                        制御
              システム



                  OSカーネル
仮想マシンモニタ(VMM)を
    利用することが効果的
• VM単位の隔離
                 アプリケーション    アプリケーション
 – たとえあるVMが
   奪取されても、          OS          OS
   VMMや他のVMを      (ゲスト OS)    (ゲスト OS)
   奪取することは困難      仮想マシン       仮想マシン
                   (VM)        (VM)
• VMの物理メモリや
  ディスクなどの物理計
  算資源への操作を制御        仮想マシンモニタ (VMM)
 – VMMはVMよりも高い
   特権レベルで稼働              ハードウェア
本研究の目標
• VMの外側からアプリケーションの安全性を
  向上させたい
 – VMMとセキュリティシステムを協調させ、
   アプリケーションの振る舞い制御とアプリケーショ
   ンに関連するデータ保護を実現したい
                   制御対象VM
    制御VM


                   アプリケーション
    セキュリティ
     システム

             VMM
本研究のアプローチ
• 制御対象VMの外側からアプリケーションが発行した
  システムコールの実行を制御
 – アプリケーションプロセス単位で実行を制御
• VMMと制御VMが、アプリケーションに関連する
  メモリ・ファイル操作を制御
 – メモリ上、仮想ディスク上のアプリケーションに
   関連するデータの漏洩・不正改竄の防止

 利用者が指定したアプリケーションのみ実行を制御

準仮想化を利用した Xen を用いて提案システムを構築
制御対象VMの外側からの
システムコールの実行制御
セキュリティシステムの運用比較

             VMを使わない   VMの外側で
             場合        稼働させる場合

                ×         ○
セキュリティシステム
               容易         困難
   への攻撃

                ○         ×
セキュリティシステム
  の制御単位       OSレベル    ハードウェアレベル
システムコールの実行制御の目標

             VMを使わない      VMの外側で
             場合           稼働させる場合

                ×                  ○
セキュリティシステム
   への攻撃        容易                  困難

                ○                  ×
セキュリティシステム
  の制御単位       OSレベル       ハードウェアレベル
                    Semantic gap

              本研究の目標
本研究のアプローチ
• VMの外側からシステムコールの実行を制御
 – ゲスト OS カーネルの情報を利用
• セキュリティポリシーに基づいた制御


                         制御対象VM
          制御VM
 セキュリティ
  ポリシー
                         アプリケーション
          セキュリティ
           システム

                   VMM
アプリケーションの実行状態の取得
• VMMが捕捉時に取得できるイベント・実行状態
 – イベント :特権命令、割り込みなど
 – 実行状態:レジスタ、メモリ上の値

       Semantic gap

• セキュリティシステムが必要とする情報
 – イベント :システムコール
 – 実行状態:プロセス、システムコール番号など
本研究におけるセキュリティポリシー
• システムコール名と引数情報を
  用いたパターンマッチ
     ...
     open default: allow
         fileEq(“/etc/passwd”)
         or filePrefixEq(“/etc/cron.d”)
             deny(EPERM)
     ...
アプリケーションに関連する
 メモリ・ファイル操作制御
アプリケーションデータ保護の目標

• 制御対象のアプリケーション(制御対象)の
  データの漏洩・不正改竄の防止
 – ptraceやカーネルモジュールなどを利用した攻撃

             メモリ
                           仮想ディスク
   制御対象     制御対象の
             データ
                              制御対象の
                              機密データ
     不正改竄

                         漏洩
            アプリケーション
 OSカーネル
              VM
                       乗っ取られたプログラム
本研究のアプローチ
• 制御対象のメモリ・ディスク上の実体を制御対象
  外のプログラム(制御対象外)から隠蔽
 – OSカーネルも制御対象外に含まれる

• メモリ上のデータ
 – コード、データ、スタック領域など
 ➔制御対象の物理メモリ領域を多重化
• ディスク上のデータ
 – 実行ファイル、設定ファイルなど
 ➔異なるVMで管理
OSによるメモリ管理
仮想アドレス空間            物理アドレス空間
            OSによる
           アドレス変換

                    アプリケーション

アプリケーション
VMMによるメモリ管理
                                    VMMの
制御対象VMの    制御対象VMの
仮想アドレス空間   物理アドレス空間               物理アドレス空間
                          gPA →
  (gVA)      (gPA)                   (hPA)
                           hPA

           アプリケーション

                                  アプリケーション
アプリケーション



              gVA → hPA




           VMMによるアドレス変換
                                         17
本研究におけるメモリ上のデータ保護
       (1/2)
• カーネルレベル・ユーザレベルで
  異なる物理アドレス領域を見せる
                                     VMMの
制御対象VMの             制御対象VMの
仮想アドレス空間            物理アドレス空間       物理アドレス空間
  (gVA)               (gPA)           (hPA)

                    アプリケーション
                                   Dummy
アプリケーション

                                   アプリケーション

                           ユーザレベルでの実行中に参照可能な領域
                           カーネルレベルでの実行中に参照可能な領域

 – Overshadow[Chen et al., 2008]
 – [Rosenblum et al.,2008]
本研究におけるメモリ上のデータ保護
       (2/2)
• 制御対象アプリケーションに関する
  カーネルレベル・ユーザレベル間の切り換え
  が発生したとき、ページテーブルを切り換える
 – 例外・割り込み処理
 – システムコール処理
本研究におけるディスク上の
      データ保護(1/5)
• 異なるVMで制御対象ファイルの実体を管理
 – 実行ファイル、設定ファイル、
   データベースファイルなど
 – 制御対象はセキュリティポリシーで指定

            制御VM       制御対象VM
セキュリティ
 ポリシー    セキュリティシステム   アプリケーション
                            設定ファイル
             設定ファイル
                          実行ファイル
          実行ファイル

                              VMM
本研究におけるディスク上の
  データ保護(2/5)


   制御VM        制御対象VM
             メモリ
セキュリティシステム
                   設定ファイル
                    の読込
  設定ファイル
              アプリケーション



                     VMM
本研究におけるディスク上の
  データ保護(3/5)


   制御VM                   制御対象VM
                        メモリ
セキュリティシステム

             read を捕捉
  設定ファイル
                         アプリケーション



                                VMM
本研究におけるディスク上の
       データ保護(4/5)


 read の    制御VM      制御対象VM
エミュレート
                   メモリ
     セキュリティシステム

          設定ファイル
                    アプリケーション



                           VMM
本研究におけるディスク上の
  データ保護(5/5)


   制御VM                 制御対象VM
                      メモリ
セキュリティシステム

  設定ファイル read の実行結果
              を通知      アプリケーション



                              VMM
まとめ
• VMの外側からアプリケーションを保護する
  セキュリティシステムの提案
 – アプリケーションの振る舞いの制御
  • システムコールの実行制御
 – メモリ・ディスク上のデータ保護
  • メモリ上のデータ:VMMによる物理メモリ領域の多重化
  • ディスク上のデータ:異なるVMで管理
終

More Related Content

XS Japan 2008 App Data Japanese