1 / 16

Hussa: スケーラブルかつセキュアなサーバアーキテクチャ ~低コストなサーバプロセス実行権限変更機構~

Hussa: スケーラブルかつセキュアなサーバアーキテクチャ ~低コストなサーバプロセス実行権限変更機構~. 電気通信大学 情報工学科 原 大輔 中山 泰一. アジェンダ. 背景 個人でウェブサイトを公開するユーザの増加 ウェブサーバ共有の危険性 実行権限に関する既存技術 POSIX ACL, セキュア OS, コンテナ /VM, Harache/Hi-sap 設計 実行権限変更 ユーザスクリプトによる実行権限変更制限 基礎性能評価実験 まとめ. 背景. 個人でウェブサイトを公開するユーザの増加 Weblog サービス 手軽、無料

reina
Télécharger la présentation

Hussa: スケーラブルかつセキュアなサーバアーキテクチャ ~低コストなサーバプロセス実行権限変更機構~

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Hussa: スケーラブルかつセキュアなサーバアーキテクチャ~低コストなサーバプロセス実行権限変更機構~ 電気通信大学 情報工学科 原大輔中山泰一 FIT2009@仙台

  2. アジェンダ • 背景 • 個人でウェブサイトを公開するユーザの増加 • ウェブサーバ共有の危険性 • 実行権限に関する既存技術 • POSIX ACL, セキュアOS, コンテナ/VM, Harache/Hi-sap • 設計 • 実行権限変更 • ユーザスクリプトによる実行権限変更制限 • 基礎性能評価実験 • まとめ

  3. 背景 • 個人でウェブサイトを公開するユーザの増加 • Weblogサービス • 手軽、無料 • 例:Blogger, はてなダイアリー、ココログ • ホスティングサービス • 自由度が高い/好みのツールをインストール、有料(月額数百円~) • サービス例:XREA, さくらインターネット、OCN • ツール例: • Weblog: Movable Type, WordPress, tDiary • Wiki: PukiWiki, Hiki, MediaWiki, MoinMoin • CMS: XOOPS, Plone, Zope, 島根県CMS

  4. ホスティングサービス • 専有型と共有型 ウェブサーバプログラム サイト ・・・ … 計算機 基礎 基礎 基礎 • 個人の利用に適している • 本研究のターゲット

  5. ウェブサーバ共用の弊害(1/2) • ウェブサーバプログラムのプロセス構成(例:Apache) • 親プロセス(1個):80番ポートのバインド等⇒ root権限で動作 • サーバプロセス(複数個):リクエスト処理⇒ 専用の一般ユーザ(専用ユーザ)の権限で動作(例:apache, www-data, www等) • 各サイトのコンテンツファイルのパーミッション • 専用ユーザがアクセス可能である必要有⇒ UNIXのパーミッションモデル”owner/group/other”のotherにread/write/executeパーミッションを付与

  6. (1) HTTPリクエスト受信 ウェブサーバ共用の弊害(2/2) • 計算機を共用する他のユーザからファイルを盗視・改竄される危険性有 • (0) ファイルパーミッション • rw-/---/r--(静的コンテンツ(例:HTML、画像)) • rw-/---/rw-(ログ、wikiのデータファイル等) • rwx/---/r-x(CGIスクリプト) ウェブサーバ ウェブブラウザ www A www www Malicioususer B (3) レスポンス送信 www C … … … (2) リクエスト処理 www: 実行権限 HTTP ユーザアカウント コンテンツファイル サーバプロセス コマンドラインツール

  7. 実行権限に関する既存技術(1/4)~POSIX ACL~ • ユーザ単位でのアクセス制御を提供 • UNIXのパーミッションモデルを拡張 • コマンド攻撃(cp, rm, etc.) ⇒ 盗視・改竄を防止 • コンテンツファイルのread/write権限を専用ユーザに付与 • スクリプト攻撃(CGI) ⇒ 盗視・改竄を防止 • suEXECを併用し、CGIをサイト毎に異なるユーザ権限(≠専用ユーザ)で実行 • 問題点:低性能(動的コンテンツ) • suEXECはプロセス生成/プログラム実行を各2回必要 • 動的コンテンツ高速配信手法である組込みインタプリタ(mod_ruby, etc.)利用⇒ 盗視・改竄を防止できない www fork(), execve() setuid(),setgid() root⇒A fork(), execve() A To be terminated

  8. 実行権限に関する既存技術(2/4)~セキュアOS~実行権限に関する既存技術(2/4)~セキュアOS~ • 強制アクセス制御 • 全てのユーザとプロセスに例外なくアクセス制御を実施 • 最小特権 • ユーザとプロセスに動作上必要最小限の権限を付与 • root権限の制限が可能 ⇔ 従来のUNIX系OSはroot権限によりOSの全ての操作が可能 • サーバソフトウェアのセキュリティホールや設定誤り等によりroot権限が奪取された場合の被害を最小化 • コマンド攻撃(cp, rm, etc.) ⇒ 盗視・改竄を防止 • スクリプト攻撃(CGI, 組込みスクリプト)⇒ 盗視・改竄を防止できない

  9. 実行権限に関する既存技術(3/4)~コンテナ/VM~実行権限に関する既存技術(3/4)~コンテナ/VM~ • コンテナ:OSレベルの仮想化技術 • サーバソフトウェアを実行するコンテナを同一OS上で複数同時に動作⇒ サイト毎にコンテナを割り当てることで擬似的な専用サーバを構築可能 • 問題点:仮想化のオーバヘッド・カーネル修正 • OS当たりに収容可能なコンテナ数は数百程度に限定 • 仮想計算機(VM) • 同一計算機上で複数のOSを同時に動作 • 問題点:仮想化のオーバヘッド・カーネル修正

  10. 実行権限に関する既存技術(4/4)~Harache/Hi-sap~実行権限に関する既存技術(4/4)~Harache/Hi-sap~ root • 我々がこれまでに提案したシステム • Harache • suEXECのCGI実行性能を改善:最大1.7倍 • プロセス生成/プログラム実行を各1回に削減 • 問題点:組込みインタプリタの実行性能 • HTTPセッション毎にサーバプロセス終了 • Hi-sap • 組込みスクリプトの実行性能改善 • Apacheと比較して、平均2.0%の低下 • リバースプロキシ型の構成を取り、サーバプロセスを再利用 • 問題点:遅延時間 • Apacheと比較して、平均1.24倍 setuid(),setgid() A To be terminated Dispatcher forward A B C workers Reusable

  11. 設計~実行権限変更~ • サーバのプロセスをroot権限で起動(=Harache) • リクエストされたサイトを所有するユーザの実行権限に遷移 • seteuid(), setegid()システムコール(≠Harache) • リクエスト処理&ブラウザにレスポンス送信 • root権限に遷移 • seteuid(), setegid()システムコール • ファイルパーミッションをownerのみに付与した状態でのサービス提供が可能(=Harache/Hi-sap)⇒ セキュリティ確保 • seteuid(), setegid()システムコール利用(≠Harache)⇒ 性能・遅延面で有利

  12. 設計~ユーザスクリプトによる実行権限変更制限~設計~ユーザスクリプトによる実行権限変更制限~ • CGI/組込みスクリプト • setuid(), setgid()系のシステムコールを実行可能⇒ 悪意のあるユーザにroot権限を奪取される危険性有 • 解決策 • スクリプトが実行するsetuid(), setgid() 系のシステムコールをフックして無効化⇒ setuid(), setgid()系のシステムコール実行を 本システムのみに制限

  13. 基礎性能評価実験~条件~ • 環境 • 対象システム • 本システム Apache HTTP Server 2.2.10のモジュールとして実装 • Apache HTTP Server 2.2.10 • 対象コンテンツ • phpinfo()関数を呼び出すPHPスクリプト(データ転送量:約40KB/req) • サーバ計算機にインストールされているPHP処理系の各種情報を出力 • ベンチマークツール • httperfベンチマーク0.9.0

  14. 基礎性能評価実験~結果~ • Apacheと比較して平均0.5%、最大4.7%の性能低下⇒ 非常に小さなオーバヘッドであり、実用に耐え得る

  15. まとめ • UNIX系OSの実行権限に関する問題点を明確化 • 問題を解決するための実行権限変更機構を提案 • 基礎性能評価の結果、実用に耐え得る性能を達成 • 今後の課題 • セキュアOSの適用(JSSST第26回大会にて発表予定) • 実アプリケーションを用いた性能評価 • 他のサーバプログラムへの適用の検討

  16. ご清聴ありがとうございました。

More Related