Transcript slides
Hussa: スケーラブルかつセキュアな サーバアーキテクチャ ~セキュアOSの適用と評価~ 電気通信大学 情報工学科 原 大輔 中山 泰一 2009/9/18 JSSST2009@松江 1 アジェンダ • 背景 - 個人でウェブサイトを公開するユーザの増加 - ウェブサーバ共有の弊害 - 実行権限に関する既存技術 • Hussa: スケーラブルかつセキュアなサーバアーキテクチャ - 課題:root権限が奪取された場合の影響局所化 • 既存のセキュリティ機構 - セキュアOS - POSIX capabilities • Hussaへのセキュリティ機構の適用 • まとめ 2 背景 • 個人でウェブサイトを公開するユーザの増加 - Weblogサービス • 手軽、無料 • 例:Blogger, はてなダイアリー、ココログ - ホスティングサービス • 自由度が高い/好みのツールをインストール、 有料(月額数百円~) • サービス例:XREA, さくらインターネット、OCN • ツール例: - Weblog: Movable Type, WordPress, tDiary - Wiki: PukiWiki, Hiki, MediaWiki, MoinMoin - CMS: XOOPS, Plone, Zope, 島根県CMS 3 ホスティングサービス • 専有型と共有型 概念図 専用型 共用型 一戸建て 集合住宅 ※凡例 ウェブサーバプログラム サイト 計算機 サイト:ウェブサーバ:計算機 ・・・ … 基礎 基礎 基礎 N:1:1 ※N = 数百~千程度 1:1:1 利用可能な計算機リソース (メモリ・ディスク等) ○(独占) △(全サイトでウェブサーバを共用) 利用料金 ×(月額数万円~) ○(月額数百円~) •個人の利用に適している •本研究のターゲット 4 ウェブサーバ共用の弊害(1/2) • ウェブサーバプログラムのプロセス構成(例:Apache) - 親プロセス(1個):80番ポートのバインド等 ⇒ root権限で動作 - サーバプロセス(複数個):リクエスト処理 ⇒ 専用の一般ユーザ(専用ユーザ)の権限で動作 (例:apache, www-data, www等) • 各サイトのコンテンツファイルのパーミッション - 専用ユーザがアクセス可能である必要有 ⇒ UNIXのパーミッションモデル”owner/group/other”の otherにread/write/executeパーミッションを付与 5 ウェブサーバ共用の弊害(2/2) (0) ファイルパーミッション • rw-/---/r-- (静的コンテンツ(例:HTML、画像)) • rw-/---/rw- (ログ、wikiのデータファイル等) • rwx/---/r-x (CGIスクリプト) (1) HTTPリクエスト受信 ウェブサーバ ウェブブラウザ www A Malicious user www www B (3) レスポンス送信 www … … … C (2) リクエスト処理 計算機を共用する他のユーザからファイルを盗視・改竄される危険性有 www: 実行権限 HTTP コマンドラインツール ユーザ アカウント コンテンツ ファイル サーバ プロセス 6 実行権限に関する既存技術(1/2) Security in Server Basic Performance (Throughput/Latency) Site-number Scalability poor Generality poor Container /VM excellent excellent (仮想化オーバ ヘッド) PHP safe mode good excellent excellent suEXEC & POSIX ACL good poor (fork&exec各2回) excellent good (Apache) poor excellent excellent good (kernel修正) poor (PHPのみ) セキュリティ、性能、スケーラビリティ、汎用性を 全て満足する既存技術は存在しない 7 実行権限に関する既存技術(2/2) ~コンテナ/VM~ • コンテナ:OSレベルの仮想化技術 - サーバソフトを実行するコンテナを同一OS上で複数同時に動作 ⇒ サイト毎にコンテナを割り当てることで 擬似的な専用サーバを構築可能 - 問題点:仮想化のオーバヘッド・カーネル修正 • OS当たりに収容可能なコンテナ数は数百程度に限定 • 仮想計算機(VM) - 同一計算機上で複数のOSを同時に動作 - 問題点:仮想化のオーバヘッド・カーネル修正 • 200MB/ゲストOS※ (※)Carl A. Waldspurger: Memory Resource Management in VMware ESX Server, Proc. OSDI 2002, pp.181–194 (2002). 8 Hussa: スケーラブルかつセキュアなサーバ アーキテクチャ(1/3) ~実行権限変更~ • サーバのプロセスをroot権限で起動 Sambaと 同様の方式 1. リクエストされたサイトを所有するユーザの 実行権限に遷移 - seteuid(), setegid()システムコール 2. リクエスト処理&ブラウザにレスポンス送信 3. root権限に遷移 - seteuid(), setegid()システムコール ファイルパーミッションをownerのみに付与した状態での サービス提供が可能 ⇒ セキュリティ確保 seteuid(), setegid()システムコール利用 ⇒ 性能・遅延面で有利 9 Hussa(2/3) ~ユーザスクリプトによる実行権限変更制限~ • CGI/組込みスクリプト - setuid(), setgid()系のシステムコールを実行可能 ⇒ 悪意のあるユーザにroot権限を奪取される危険性有 • 解決策 - スクリプトが実行するsetuid(), setgid() 系のシステム コールをフックして無効化 ⇒ setuid(), setgid()系のシステムコール実行を 本システムのみに制限 10 Hussa(3/3) ~動作概要~ (0) ファイルパーミッション • rw-/---/--- (静的コンテンツ(例:HTML、画像)) • rw-/---/--- (ログ、wikiのデータファイル等) • rwx/---/--- (CGIスクリプト) (1) HTTPリクエスト受信 ウェブブラウザ Hussa root A Malicious user root root C ユーザ アカウント … コマンドラインツール … HTTP C … www: 実行権限 (4) レスポンス送信 root B (2) seteuid(C) & setegid(C) (3) リクエスト処理 (5) seteuid(0) & setegid(0) コンテンツ ファイル サーバ プロセス 11 課題 • サーバプロセスのroot権限での動作 •ユーザスクリプトのsetuid() 系システムコール無効化 •IDS/IPS連携(外部攻撃) にて対応可能 <課題> • root権限を奪取されないこと • root権限が奪取された場合の影響局所化 本発表の報告対象 ⇒ 本システムへのセキュリティ機構の適用 12 既存のセキュリティ機構(1/2) ~セキュアOS~ • 強制アクセス制御 - 全てのユーザとプロセスに例外なくアクセス制御を実施 • 最小特権 - ユーザとプロセスに動作上必要最小限の権限を付与 • root権限の制限が可能 ⇔ 従来のUNIX系OSはroot権限によりOSの全ての操作が可能 - サーバソフトウェアのセキュリティホールや設定誤り等により root権限が奪取された場合の被害を最小化 13 既存のセキュリティ機構(2/2) ~POSIX capabilities~ • 特権(=従来のroot権限)の細分化 ⇒ 不必要な特権を放棄してプロセスを動作させる (最小特権) - CAP_NET_BIND_SERVICE: well-known portのバインド - CAP_SETUID, CAP_SETGID: setuid()系システムコールの実行 等 POSIX capabilities一覧 14 Hussaへのセキュリティ機構の適用(1/2) • SELinux: サーバプロセスがアクセス可能な範囲を局所化 - Apache※のプログラム、コンフィグ、ログ、コンテンツ等 root権限が奪取された場合に ファイルシステムの他の部分への被害を防止 • POSIX capabilities: 不必要な特権をサーバプロセスから 排除 - CAP_SETUID, CAP_SETGIDのみを付与 root権限が奪取された場合に 特権動作による被害を局所化 (※)本システムのベースとして利用 15 Hussaへのセキュリティ機構の適用(2/2) ファイルシステム全体 SELinux の適用 CAP_SETUID CAP_SETGID root権限奪取の際の 影響局所化 CAP_CHOWN CAP_DAC_OVERRIDE CAP_DAC_READ_SEARCH CAP_FOWNER Apacheの動作範囲 CAP_MAC_OVERRIDE CAP_MAC_ADMIN サ ー フバ ァプ イロ ルセ シス スが テア ムク のセ 範ス 囲可 能 な POSIX capabilities の適用 ・・・ サーバプロセスが 実行可能な特権動作の範囲 まとめ • UNIX系OSの実行権限に関する問題点を明確化 ⇒ 問題解決のため、スケーラブルかつセキュアなサーバ アーキテクチャHussaを提案 • Hussaの課題を抽出 - root権限が奪取された場合の影響局所化 ⇒ セキュリティ機構の適用を検討し、 課題解決の見込みを得た • 今後の課題 - 実アプリケーションを用いた性能評価 - 他のサーバプログラムへの適用の検討 17 ご清聴ありがとうございました。 18