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
ユーザ空間