SAccesor:デスクトップPCのための 安全なファイルアクセス制御システ ム 数理・計算科学専攻 千葉研究室 滝澤 裕二 指導教員: 千葉 滋 OSカーネルに対する攻撃の脅 威 OSカーネルがファイルアクセス制御を行っている しかしOSカーネルにも脆弱性が存在 パッチ未適用 ゼロデイアタック OSカーネルが攻撃を受けるとファイルアクセス制 御が無効化されてしまう 一般ユーザがウィルスを実行 ウィルスがOSの脆弱性をついて特権と取得 認証をバイパス アクセス制御の無効化 任意のファイルへアクセスされる OS外のアクセス制限による保護 Kerberos+ファイルサーバ 認証サーバ パスワード 認証チケット サービス 認証チケット クライアント ファイルサーバ OS外のアクセス制限による保護 Kerberos+ファイルサーバ 認証サーバ 認証 チケット クライアント パスワード キーロガー トロイの木馬 認証 チケット パスワード 秘密鍵の漏洩 ファイルサーバ サービス 攻撃者 OS外によるアクセス制御の保護 VMM,HDDでファイルアクセス制御 低い抽象度のインターフェイス ブロック番号 OSがクラックされた後のユーザ情報は信用で きない 管理者です APP ファイル名 OS ブロック番号 VMM アクセス制御 提案:SAccessor OSクラックされた状況においてもファイル アクセス制御を維持するシステム VMMとファイルサーバを組み合わせてアクセ ス制御を分離したときの問題を解決 システムファイルの不正書き換えはない OSを再起動することでクラックの影響を除去可能 ログインしていなければユーザファイルの不 正アクセスはない アーキテクチャ VMMを使い1台のマシン上に2つのOSを動作 作業OS:ユーザがログインして作業 ローカルファイルシステムなし 認証OS:ファイルサーバ アクセス制御を実施 外部からのアクセスを制限 TCB ファイル アクセス サーバ コントローラ(NFSD) 認証OS VMM(Xen) APP APP 作業OS システムファイルのアクセス制御 基本的にREAD ONLY xxx.pidやutmpなど一部例外は書き込み可 システム起動時に上書きされるので問題ない ログファイルは追記のみ許可 認証OSがシステムファイル書き換えサービスを 提供 作業OSはそのサービスをRPCで起動 これ以外の方法では書き換えられない サービス起動時に認証を実施 基本操作ごとにサービスを用意 例:setuidコマンド(passwd,...) サービス例:passwd 認証OS 作業OS passwdを実行 認証ダイアログ 認証 プロセス 書き換え サービス サービスの 呼び出し 実行 passwd ディスク /etc/passwd ウィンドウ Glibc execve() SAccessorにおける認証 認証OSが作業OSの画面に重ねて認証ダイアロ グを表示 作業OSの画面はVNCウィンドウとして全画面表示 Xサーバは認証OS上で動作 認証OSがユーザと直接やり取り 作業OS上の攻撃者はダイアログにアクセスできない 認証OSを意識させない シームレスな認証が可能 VNC 認証OS 作業OS SAccessorにおける認証 認証OSが作業OSの画面に重ねて認証ダイアロ グを表示 作業OSの画面はVNCウィンドウとして全画面表示 Xサーバは認証OS上で動作 認証OSがユーザと直接やり取り 作業OS上の攻撃者は認証ダイアログにアクセスできない 認証OSを意識させない シームレスな認証が可能 VNC 認証OS 作業OS 認証ダイアログの安全性 タイトルにシークレット文字列を表示 認証OSにあらかじめ登録しておく 作業OSからはみることができない ユーザはこの文字列を見て偽のダイアログと区別 認証ダイアログへのキー入力を盗まれることはない シークレット文字列 TCB X11 認証OS VNC サーバ 作業OS VMM ハードウェア キー入力 ユーザファイルのアクセス制御 ファイルアクセス時に認証ダイアログで認証 認証に成功するまではアクセス不可能 段階的なアクセス制御 ファイルやディレクトリをまとめたグループごとに認証 一度の認証で関連するファイルもまとめて許可 認証に有効期間を設定 認証の有効期間内は認証を省略 ファイルシステム 一度の認証でファイル システムの一部分を 期限付きで公開 ユーザの秘密鍵を守るポリシ例 メーラに関するファイルだけにアクセス許 可をだす ウィルスメールを受信した場合 被害はメーラグループのみ ユーザの秘密鍵を盗まれることはない <メーラ>[600] /home/takizawa/.thunderbird/* (rw) </メーラ> 有効期間(秒) <ssh>[10] /home/takizawa/.ssh/id_rsa (r) </ssh> パーミッション 作業OSのキャッシュクリア 認証の有効期間の切れたファイルキャッ シュはクリアさせる 作業OSにあるファイルキャッシュは認証なしで アクセス可能 認証OSから作業OSのメモリを直接操作 VMM(Xen)の機能を利用 作業OSのメモリ空間を認証OSのメモリ空間にマップ 作業OSの変更不要 キャッシュクリアの実装 作業OSのCPUレジスタの値から 実行中のプロセスの情報を取得 ファイル名とプロセスのルート ディレクトリから対象ファイルの inode構造体を探す nfs_inodeのcache_validityの値 を変更 キャッシュを使わずサーバに問 い合わせるようになる radix_treeからページキャッシュ を探しゼロクリアする 実験 SAccessorの性能測定 キャッシュクリアにかかる時間 Bonnie++ 実験環境 ext3(native) VM+NFS SAccessor CPU:PentiumD 3.0GHz メモリ:1GB Xen:3.0.4 認証OSに512MB 作業OSに384MBのメモリ割り当 て 両OS:Linux 2.6.16.33 認証OS上で実行するsetuidプログラムの数 キャッシュクリアの性能 クリアにかかる時間は ファイルサイズに比例 メモリマップ1回にかか る時間は約0.4ミリ秒 1ページ(4KB)のキャッ シュをクリアするのに3 回メモリマップが必要 VMM内で実装することで 削減可能 ファイル読み込み性能 nativeと比較して約33% のオーバーヘッド VM+NFSと比較すると約 7%のオーバーヘッド 7%がSAccessorでアクセス 制御のために追加した分 のオーバーヘッドと考えら れる 書き込み性能 ブロック単位/文 字単位 文字単位 nativeと比べ約42%の オーバーヘッド VM+NFSは同等 ブロック単位 SAccessorのほうが良い NFSを使っているため、実 際にディスクに書き込む のを待たずに測定終了し ているため ダイアログの出現頻度 Linuxのsetuidプログラムの数33個(FC5の場合) 認証OS上で実行すべきもの11個 passwd,crontab,chfn,chsh etc 任意のプログラムを実行できるため認証OS上で実行 すべきでないもの7個(sudo etc) ネットワークを使うので認証OS上で実行すべきでない もの5個(rsh etc) 作業OSで実行するべきもの10個(mount etc) 認証ダイアログの出現頻度は少ない passwd,chshなどは1日に一回も使わない 関連研究 Plan9 [Bell Labs ‘95] SVFS [Xin Zhao et al SISW’05] 管理者のファイルへのアクセスはファイルサーバのコ ンソールからのみに限定 VM毎に異なるアクセス権 別VMにログインしなおして作業する必要 Proxos [Richard et al OSDI’06] プロセスをVMに隔離して実行 プログラマがシステムコールレベルのポリシを記述 まとめ・今後の課題 OSがクラックされてもファイルアクセス制御 を強制するSAccessorの提案 以下が守れる 実行ファイル、設定ファイル、ライブラリの書き換え ユーザファイルへのアクセス 再起動することでクラックの影響を取り除ける 被害を限定 今後の課題 キャッシュフラッシュの実装をVMM内で行う オーバーヘッドの削減 以上です 脅威モデル デスクトップPCを対象 攻撃者がOSレベルの特権を取得 ファイルの改ざん 実行ファイル、設定ファイル、ライブラリ ユーザの機密ファイルへアクセス 攻撃者はリモートにいる マシンへの物理的なアクセスはない 実装 認証OS 認証ダイアログ 作業OS 書き換えサービス 実行 認証 プロセス setuidコマンド ユーザ空間 Glibc execve() カーネル空間 アクセス コントローラ Xen ディスク カーネル空間 NFS NFSD ユーザ空間
© Copyright 2024 ExpyDoc