仮想計算機を用いて OSを介さずに行う安全な ファイルアクセス制御 理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 02_1474_1 滝澤 裕二 「仮想計算機を用いてOSを介さずに行う安全なファイルアクセス制御」という題目で千葉研の滝澤が発表します。
従来セキュリティ機構の限界 従来手法では、OSカーネルへの攻撃に無力 Linuxカーネルにも脆弱性が存在 過去に発見された脆弱性: 過去に発見された脆弱性: 一般ユーザが管理者権限を得られる脆弱性(2004/02、2003/11) クラッシュする脆弱性(2004/06) ローカルからDoSを招く脆弱性(2005/09) 従来のセキュリティ機構が崩壊する恐れがあります。 というのも、多くのセキュリティ機構はOSによって実現されているからです。 そのセキュリティ機能をもったOS自体にバグが存在する場合には、そのセキュリティが機能しなくなる可能性があります。 Linuxカーネルにもいくつか脆弱性が見つかっています。 過去の例では、 2004年と2003年に一般ユーザーがルート権限を得られる脆弱性 2004年にクラッシュする脆弱性 2005年にそれから、ローカルからDoSを招く脆弱性が発見されています。 このように、最近でもOSの脆弱性がいくつか発見されています。
OSカーネルに依存しない アクセス制御が必要 例 一般ユーザー権限でクラッカーが不正侵入 OSカーネルの脆弱性を攻撃してクラッカーが管理者権限を奪取 任意のファイルへのアクセスを許可 アクセス制御機構の崩壊 悪意のあるソフトウェアをインストールを許す そこで、OSカーネルに依存しないアクセス制御が必要です。 先ほど例を挙げたとおり、OSカーネルの脆弱性が存在しうるということ。 その脆弱性を攻撃することで、自由なファイルアクセスができてしまうということ。 本発表で想定している脅威は、次のようなものです。 まず、一般ユーザー権限でクラッカーが不正侵入をします。 コンピュータに侵入したクラッカーはOSカーネルの脆弱性を攻撃して管理者権限を取得します。 この時点で、管理者権限をとられてしまっているので、ファイルアクセス制御が機能しなくなっています。 そうなると、任意のファイルへのアクセスを許してしまったり、悪意のあるソフトウェアをインストールされてしまいます。
SecureAccess:仮想計算機を用いたOSを介さないファイルアクセス制御 リモートからはアクセス不可 このような問題を解決するために、SecureAccessというしシステムを開発しました。 SecureAccessっていうのは、ファイルアクセス制御を行うシステムで、 ファイルアクセス用のOSを別に用意します。このOSは便宜上認証OSと呼んでいます。 認証OSもバーチャルマシンを用いて一台のマシン上で動作させます。 (ここからアニメーション) ファイルアクセス用のOSでは、ファイルアクセスのリクエストを受けると、ユーザーに認証を要求します。 この認証は、ローカルから、計算機に物理的に繋がれたキーボードからのパスワード入力により行います。 認証に成功した場合には、認証OSがファイル操作を行い、データを受け取ります。 ユーザーは作業OSで作業 ユーザに認証を要求 ファイルアクセスを依頼 タタタ・・・ パスワード 計算機 作業OS データ 認証OS ディスク
このシステムの安全性 認証の有効範囲を指定して、安全性を確保 時間的制限(認証時に指定) ファイルアクセスを許可する期間を限定 ユーザーが計算機にログインしていない場合には、作業OSが攻撃されてもファイルにアクセスできない 空間的制限(ポリシーファイルに記述) ファイルやディレクトリをまとめたグループごとにアクセス制御 グループ中の各ファイルやディレクトリに対して パーミッションを設定可能 ログイン中でも、ユーザーが使用しているグループのファイル以外はアクセスできない グループ名 SecureAccessでは、認証の有効範囲を指定することで安全の確保を行っています。 まず、時間的な範囲です。 これは、ファイルアクセスを許可する期間を限定するための機能です。 このファイルアクセスを許可する期間は、認証時に指定します。 時間の制限をつけることで、ユーザーが計算機にログインしていないときには、作業OSが攻撃されてもファイルにアクセスされません。 もう一つが、空間的な範囲です。 これは、ポリシーファイルに記述しておきます。 SecureAccessでは、ファイルやディレクトリをまとめたグループごとにアクセス制御を行います。 そして、それぞれのファイルとディレクトリに対して、パーミッションの設定が可能です。 (アニメーション) これは、ポリシーの記述例です。 (アニメーション終わり) この機能を使うと、ログイン中でも、クラッカーはユーザーが使用しているグループ内のファイル以外はアクセスできません。 <thesis> r: /home/takizawa/thesis/参考文献.PDF rw: /home/takizawa/thesis/論文.tex /home/takizawa/thesis/一章.tex パーミッション
認証方法 認証ダイアログを認証OSが直接出す ダイアログのタイトルには、 認証OSに登録しておいた文字列を表示 SecureAccessでは、認証OS上でXserverが起動していて、 作業OSの画面は、VNCを用いて、認証OS上のXserverに送って表示します。 (アニメーション) VNCを起動すると、初めはこのようにウィンドウになっています。 でも、このままだと見ずらいし、使いづらいので、きっと全画面表示にして使うと思います。 こうやって全画面で使っているときに、ファイルにアクセスするとします。 すると、認証OSが作業OSの画面の上にダイアログを出します。 これが、実際のダイアログです。 作業OSの画面上に出してしまうと、ダイアログが認証OSから出されたものであるのか、 作業OSで偽のダイアログを出されているのか、分からなくなってしまいます。 偽のダイアログを出して、パスワード盗んでやろうって悪い人がいますので、ダイアログが本物かどうか識別できなければなりません。 そこで、ダイアログのタイトルに、あらかじめ認証OSに登録しておいた、文字列を表示させています。 こうすることで、ユーザーはこの文字列をみて、ダイアログが本物であることを確認します。 認証ダイアログ スクリーン パスワード VNC 時間 認証OS 作業OS
認証OSのスクリーン 作業OSのスクリーン
実装 プロセスのシステムコールをptraceでトラップ 認証OSにシステムコール呼出を転送 認証OSにより パスワード認証 仮想計算機 仮想計算機 SACore プロセス Server 作業OS 認証OS 仮想計算機モニタXen 認証OSに直接 入力
実装 認証OSから作業OSへ返り値や読み込んだデータを転送 プロセスのメモリやレジスタにptraceでデータの書込み プロセスの処理を再開させる 仮想計算機 仮想計算機 SACore プロセス Server 作業OS 認証OS 仮想計算機モニタXen
実験 ファイルアクセスの 速度を比較 結果 write read Ptrace 1629 536 通信など 660 1314 (試行回数: 1万回) Writeシステムコール Readシステムコール 結果 実験環境 CPU: PentiumD 3.00GHz、 メモリー:1GB VMM: Xen 2.0.7、両OS:Fedora Core 4 SAのオーバーヘッドの内訳 write read Ptrace 1629 536 通信など 660 1314 実行時間の比較(ms) Write実行時間 Read実行時間 SA未使用 SA使用 20 2309 6 1856 実験100回の平均値
関連研究 SELinux 管理者権限を分割 クラッカーが侵入した場合に、得られる権限が微小 侵入を無効化(限られた権限内でのみ行動) OS自体に脆弱性がある場合に機能しない危険 Storage-based Intrusion Detection [’03 John D.Strunk et al.] ストレージデバイスがリクエスト監視機能を持つ 侵入を検知した場合は管理者に警告や ファイルのバージョニングを実行 侵入者のファイルアクセスは防げない
まとめと今後の課題 安全なファイルアクセス制御システムの提案 今後の課題 作業OSに異常が発生した場合にも機能 作業OSから認証不可 認証はファイルのあるマシンのキーボードのみ可能 作業OSから認証不可 認証の有効範囲を制限 アクセス期間の制限、空間の制限 今後の課題 オーバーヘッドの改善 Linuxの改造して ptraceによるオーバーヘッドを削減 Xenの機構を利用して、通信の高速化