SAccesor:デスクトップPCのための安全なファイルアクセス制御
Download
Report
Transcript SAccesor:デスクトップPCのための安全なファイルアクセス制御
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
ユーザ空間