仮想計算機を用いたファイルアクセス制御の二重化 滝澤裕二 光来健一 柳澤佳里 千葉 滋 (東京工業大学)
デスクトップPCへの攻撃 攻撃の手口 攻撃の被害 ウィルスメールの自動実行 P2P での攻撃ソフトの配布 機密情報の流出 銀行の暗証番号(パスワードなど) 顧客情報 実行ファイルの改ざん トロイの木馬の設置
OSのアクセス制御による防御 ユーザ認証 ファイルシステムによる制御 ログイン時にパスワード認証 ユーザIDとパーミッションによる制御 一般ユーザは管理者のファイルを書き換えられない 例:ウィルスが実行ファイルを書き換えるのを防げる ディスクの暗号化の話が入らない・・・
OSにも脆弱性が存在 脆弱性の例 パッチが適用されていない状況も・・・ Bluetoothスタックの脆弱性により一般ユーザが特権を取得 sendmsg関数でオーバーフローを起し任意のコードを実行可能 パッチが適用されていない状況も・・・ ゼロデイアタック パッチを当てると動かなくなるアプリがある ユーザのセキュリティ意識が低い OSの脆弱性は存在する。
OSの制御をバイパスされる OSが攻撃を受けるとアクセス制御が機能しなくなる ユーザ認証をバイパスされた場合 管理者に成りすまされる 管理者は全てのファイルにアクセスできる ファイルアクセス制御をバイパスされた場合 全てのファイルに無条件にアクセスされる OSを攻撃することで、制御機構が機能
提案:SAccessor 仮想計算機(VM)を用いてファイルアクセス制御を二重化 実用性を考慮した機能を提供 それぞれのVMのOSでアクセス制御 実用性を考慮した機能を提供 ファイルサーバを別のVMで動かすだけでは実用的にはならない
SAccessorのアーキテクチャ 1台のマシン上に2つのVMを用意 ファイルサーバを動作させる認証VM ユーザがログインする作業VM 認証VM(Dom0) 作業VM(DomU) ユーザは作業VMに ログインして作業 GuestOS(Linux) GuestOS(Linux) Xenを使って一台のマシン上に2つのVMを動作 ユーザは作業VMで作業をする 2つのVMで独立してアクセス制御を行う 認証VMがファイルを保持 認証VMではユーザが直接やりとりして認証も行う 作業VMが直接ファイルを触ることはできない。 認証VMには管理者しかログインできない 認証VMのリモートからのアクセスを制限しておく Network File System FILE APP APP VMM(Xen)
SAccessorのファイルアクセス制御 2つのVMが独立にファイルアクセス制御 認証VMはユーザと直接やりとりして認証 認証VMは認証した情報を使ってアクセス制御する 作業VMがクラックされてもバイパス不可能 作業VMは従来のOSによるファイルアクセス制御 作業VMがクラックされるまでは正常に機能 作業VMはNFSを使い認証VMと通信してファイルアクセス 認証VMが直接ユーザとやりとりして認証 作業VMがクラックされてもバイパス不可能 認証 認証VM(Dom0) 作業VM(DomU) GuestOS(Linux) ファイルアクセス 要求 GuestOS(Linux) FILE APP アクセス権 チェック アクセス権 チェック データ転送 APP
SAccessorにおける認証 認証VMが認証ダイアログを表示 ユーザ名とパスワードによる認証 作業VMを介さないので安全 認証ダイアログにアクセスできない 作業VMにパスワードを盗まれることがない
シームレスな認証ダイアログ VNCを用いて作業VMの画面を認証VMのウィンドウとして全画面表示 ユーザには作業VMの画面だけが見える 認証はダイアログにユーザ名とパスワードを入力させる 作業VMからのUIDは信用しない 攻撃と判断するときには認証を拒否する 認証VMの画面 認証VMが表示する 作業VMの画面 1台のマシン上で両VMを動かすことで シームレスに認証が行える
認証ダイアログの判別 ダイアログにシークレット文字列を表示 作業VMから偽ダイアログを表示される恐れ 認証VMにあらかじめ文字列を登録 アクセスされるファイル
認証頻度の制御 認証の頻度を抑えるポリシを記述可能 認証頻度が高くなると利便性が低下 ファイルやディレクトリをまとめたグループ毎に認証 認証ダイアログが大量に出される ファイルやディレクトリをまとめたグループ毎に認証 認証に有効期間を設定 認証の有効期間内では認証は省略 <DSW> [3600] /home/takizawa/DSW/main.tex (rw) /home/takizawa/DSW/intro.tex (rw) </DSW>
作業VMのキャッシュ 認証の有効期間の切れたファイルキャッシュはフラッシュさせる 作業VMにあるファイルキャッシュは認証なしでアクセス可能 有効期間内のファイルは認証なしでアクセス可 セキュリティの低下はない 作業VM 認証VM キャッシュのフラッシュを命令 ファイル キャッシュ File
setuidされたプログラムの扱いは困難 一般ユーザが管理者のファイルにアクセス 管理者のパスワードが必要 SAccessorでの対応 認証VMにsetuidされたプログラムの実行を依頼 作業VM上のプログラムを置き換えておく 一般ユーザのパスワードで認証 ファイルキャッシュが作業VMに残らない 標準入出力はSSH経由 作業VMのルートディレクトリにchrootして実行 ファイル入出力のため
システムファイルのアクセス制御 一般ユーザが判断するのが難しい 管理者のパスワードが必要なことも デフォルトのポリシを用意し認証は省略 実行ファイルは読み取りのみ ログファイルは追記だけ 実際に実行ファイルは読み込み、ログファイルは追記のみ 一般ユーザでは判断が難しい。 管理者のパスワードが必要になることもある。
ポリシの登録 認証VMからウィンドウを表示してポリシを編集 認証VMにポリシ編集用ウィンドウを表示 ポリシの内容をユーザに確認させてから認証 編集・確認 ポリシの 編集要求 認証VM 作業VM ポリシ APP ポリシ編集用 ウィンドウを表示
SAccessorの有効性 ユーザに機密ファイルを守る パーミッション 有効期間(秒) 顧客情報へのアクセスは認証が必要 ウェブブラウザが悪意のあるコードを実行しても顧客情報は守られる <仕事>[3000] ~takizawa/顧客情報.xls (rw) ~takizawa/資料.pdf (r) </仕事> <ウェブブラウザ> /usr/bin/firefox (r) /usr/firefox/* (r) </ウェブブラウザ> グループ名 グループに属するファイル
実行ファイルの書き換えを防ぐポリシ例 Emacsの書き換えのみダイアログを表示 通常使用ではダイアログはでない アップデート時以外の認証は拒否 攻撃と考えられる <emacs> /usr/bin/emacs (r) /usr/libexec/emacs/* (r) </emacs> <emacs>[60] /usr/bin/emacs (w) /usr/libexec/emacs/* (w) ポリシ例
Limitation 認証の有効期間内のファイルは守れない 作業VMのファイルキャッシュに偽の内容を書き込む攻撃 認証の有効期間内のファイルは認証なしでアクセス可能 作業VMのファイルキャッシュに偽の内容を書き込む攻撃 ファイルの改ざんと同じ被害を受ける可能性
関連研究 Proxos[OSDI’06 Richard Ta-Min et al.] システムコールを隔離されたVMで実行 プログラマがポリシを作成しなければならない SVFS[SISW’05 Xin Zhao et al.] VMによって異なるアクセス権を与える 重要ファイルへの書き込みは特別なVMへログインが必要 Plan9[Bell Labs] 管理者のファイルはファイルサーバーに物理的に接続されたコンソールからのみ 守るのは管理者のファイルだけ
まとめ・今後の課題 SAccessorを提案 今後の課題 ファイルアクセスの二重化 従来の二重化システムの問題点を解決 setuidされたプログラムの入出力を認証VMのウィンドウを通してできるようにする