仮想計算機を用いたファイルアクセス制御の二重化

SAccessor :
デスクトップPCのための安全なファ
イルアクセス制御システム
東京工業大学
滝澤 裕二 光来健一 柳澤佳里
千葉滋
1
デスクトップPCへの攻撃

オペレーティングシステムが守るはず



ウィルスメール
P2P
OS自体が攻撃される例もある

パッチなしOS



パッチを当てると動かなくなるアプリがある
ユーザのセキュリティ意識が低い
ゼロデイアタック
2
誤解

アクセス制御機構をOSの外にも用意


ポリシーを工夫すれば守れるはず
VM,HDD,NIC
アクセス制御機構を用意するだけでは、具体的
に安全なシステムを作るのは難しい
3
例:特定ユーザだけが読める
ファイル

VM,HDDによるアクセス制御

OSからは一切情報をもらわない


HDDやVM単体では、今どのユーザのプロセスが
アクセスしようとしているか不明
OSから今アクセスしているユーザ情報を通知

OSがクラックされているかもしれないので、信用で
きない
4
提案:SAccessor

ファイルアクセス制御をOSから分離

実用的に使えるような機構を提供



安全なユーザ認証
認証方法に適したファイルシステムの拡張
OSがクラックされても以下は守れる


ファイルアクセスのための認証をしなければ、ユー
ザのファイルへの不正アクセスはない
システムファイルの不正書き換えはできない

クラックされたOSも、
再起動すればクラックの影響を取り除ける
5
SAccessorのアーキテクチャ

ファイルは全て作業OS外のファイルサーバにおく


ローカルファイルシステムは一切なし
ファイルサーバ

同一マシンの別VM上の認証OSで動作
アクセス制御を実施

クラックの危険性を最小に設定


例:リモートからのアクセスを制限
VM
認証OS
FILE
VM
NFS
作業OS
ユーザは作業VMに
ログインして作業
APP
ポリシ
VMM
6
ファイルアクセスの手順


作業OSから認証OSへア
クセス要求
認証OSがユーザを認証


作業OS
認証OS
認証されるのはユーザ
ファイルアクセスできるよう
になるのは作業OS
2.
ファイルアクセス APP
APP
ディスク
3.
ユーザ認証
1.ログインして
作業
ユーザ
7
ユーザファイルの不正アクセス
の防御

認証OSがユーザ認証をおこなう


認証するまでは、不正アクセスが不可能
段階的なアクセス保護

ファイルやディレクトリをまとめたグループごとに認証


一度の認証で関連するファイルもまとめて許可
認証に有効期間を設定

認証の有効期間内は認証を省略
ユーザファイル
一部のファイルに
のみ一定時間アク
セス許可
8
SAccessorのユーザ認証


認証OSの画面
認証OSが認証ダイアログを表示
ユーザ名とパスワードによる認証

認証OSがユーザと直接やりとり
作業OSの画面
9
SAccessorのユーザ認証


認証OSの画面
認証OSが認証ダイアログを表示
ユーザ名とパスワードによる認証

認証OSがユーザと直接やりとり
認証ダイアログ
作業OSの画面
10
画面構成

作業OSの画面も認証ダイアログもウィンドウ


作業OSの画面はVNCで表示して最大化
認証ダイアログは作業OSの上に重ねて表示


ダイアログは認証OSが管理
作業OSから出されたように自然に見える
Xサーバ
ディスプレイ
認証OS
VNC
作業OS
11
認証ダイアログ

ダイアログのタイトルにシークレット文字列を表
示

認証OSにあらかじめ登録しておく


作業OSの攻撃者にはわからない
攻撃者の出す偽のダイアログと区別
シークレット文字列
アクセスしようと
しているファイル
12
認証ダイアログの利点

シームレスな認証が可能


VMを用いて一台のマシン上で実現
作業OSを介さないので安全

作業OSにいる攻撃者は認証できない


作業OSからは認証ダイアログにアクセスできない
作業OSにパスワードが渡らない

たとえ内部犯がいたとしても認証を成功させるの
は難しい
13
アクセス制御ポリシ例

ウェブブラウザに関するファイルだけにアクセス
許可をだす

悪意のあるサイトにアクセスした場合


被害はウェブブラウザグループのみ
メールの内容を盗まれることはない
<ウェブブラウザ>[3600]
/home/takizawa/.mozilla/firefox/* (rw)
認証の有効期間とパーミッション
<メーラー>[600]
/home/takizawa/.thunderbird/* (rw)
14
作業OSのキャッシュ

認証の有効期間の切れたファイルキャッシュはフ
ラッシュさせる


作業OSにあるファイルキャッシュは認証なしでアクセ
スできてしまう
作業OSを改造しフラッシュ機能を実装


作業OS側でopenしたファイル名とinode構造体を覚えておく
TCP/IP通信で認証OSからファイル名を受け取る
認証の有効期間
の切れたファイル
を作業OSへ通知
認証OS
作業OS
ファイル名
File
cache
受け取ったファイル
名のキャッシュをフ
ラッシュ
15
システムファイルの保護

Read only



PIDなどの一部のファイルを除く
ログファイルだけ追記のみ許可
書き換えが必要なとき

安全な基本書き換え操作を
認証OSがサービスとして提供

作業OSはそのサービスをRPCで起動



これ以外の方法では書き換えできない
基本書き換え操作ごとにプログラムを
認証OS側に用意
サービス起動時にダイアログによるユーザ認証
16
例: Set-UID コマンド
Passwd コマンド



一般ユーザがパスワード変更のため使用
作業OS側の passwd コマンド


RPCで認証OS側のサービスを起動
認証OSは passwd コマンドを実行

システムファイ
ルの書き換え
認証OSのpasswd コマンドへのキー入力は、認証OSが
だすウィンドウからおこなう
認証OS
system
file
作業OS
passwd
サービス
呼び出し
APP
passwdファイルを
書き換えたい
17
実装

VMMとしてXen、ゲストOSはLinuxを使用


Linuxカーネル内NFSDv3を改造



ドメイン0:認証OS、ドメインU:作業OS
NFSリクエストを監視してアクセス権をチェック
追記は書き込みのオフセットを検査
作業OSのキャッシュフラッシュ


作業OSのカーネルを改造
認証OSとTCP/IP通信によりフラッシュさせるファイル
名の受け渡し
18
実験

システムの起動から終了までのファイルアクセス
パターンを調査

大半のファイルは読み込みのみ


書き込みはログファイルとPIDばかり



約500ファイル
約30ファイル
ログファイルは追記
認証ダイアログでユーザ認証しなくてはならない
回数は少なくてすむ
Fedora Core5の場合
19
実験(オーバーヘッドの測定)

読み書きの性能を測定


データブロックサイズ512,1024,2048Bytes
比較対象



ローカルファイルシステム
VMM+NFS
SAccessor

実験環境
PentiumD 3.0Ghz
Memory:1G
Xen3.0.4
GuestOS:Linux2.6.13.33
ポリシ数0,100,500行
20
実験(オーバーヘッドの測定)
読み込み性能
読み込み


書き込み



VMM+NFS:約57%
SAccessor:約54%

50
40
30
20
10
0
512
VMM+NFS:約36%
SAccessor:約25%
考えられる原因

throughput(MB/sec)

60
バックエンドにNFSを使って
いること
NFSDと認証ダイアログ間
のスイッチのオーバーヘッ
ド
1024
2048
Data Block Size(Bytes)
書き込み性能
300
throughput(MB/sec)

250
200
150
100
50
0
512
1024
2048
Data Block Size(Bytes)
21
関連研究

Proxos[OSDI’06 Richard Ta-Min et al.]

アプリケーションを隔離されたVMで実行


SVFS[SISW’05 Xin Zhao et al.]

VMによって異なるアクセス権を与える


プログラマがシステムコールレベルのポリシを記述しなけら
ばならない
重要ファイルへの書き込みは特別なVMへログインが必要
Plan9[Bell Labs]

管理者のファイルはファイルサーバーに物理的に接
続されたコンソールからのみ

守るのは管理者のファイルだけ
22
まとめ

SAccessorを提案

ファイルシステムを攻撃対象のOSから分離

OSがクラックされても機能




システムファイルの不正書き換えを防ぐ
ユーザが認証していないファイルの保護
認証ダイアログによる安全なユーザ認証
ダイアログ認証に適したアクセス制御


グループ毎に認証
認証に有効期間を設定
23
今後の課題
ファイルキャッシュのフラッシュ

作業VMのファイルキャッシュのフラッシュ

Xenの機能を利用した実装


認証OSから作業OSのファイルキャッシュを直接操作
 作業OSのOSカーネルの改造が不要
 作業OSが乗っ取られても機能する
SUIDコマンドの自動転送

作業OSのLibcを改造

SUIDされたプログラムを識別して自動で認証OSのサービス
を起動
24
25
26
27
28
29
画面構成(ボツ)
認証OSの画面
作業OSの画面
認証ダイアログ
認証OSの画面
Xサーバ
認証OSが表示する作業OSの画面
ディスプレイ
認証OS
VNC
作業OS
30