IPA


開発成果一覧へ





2005年度上期 未踏ソフトウェア創造事業  採択案件評価書


 



1.担当PM

   並木 美太郎 (東京農工大 学 大学院共生科学技術研究部 助教授)



2.採択者氏名


開発代表者

原 大輔 (電気通信大学大学院 電気通信学研究科 情報工学専攻 博士前期課程)

共同開発者

なし


3.プロジェクト管理組織


  株 式会社びぎねっと



4.委託金支払額


  5,650,492



5.テーマ名


  Hi-sap: 安全で速いウェブサーバ



6.関連Webサイト


  http://chess.cs.uec.ac.jp/~hara-d/ 、  http://www.hi-sap.net/



7.テーマ概要


 本プロジェクトでは、共有型ホスティングサービスなどの大規模環境を対象とした、セキュアかつ高性能なウェブサーバシステムの開発を行なった。既存の共 有型ホスティングサービスでは、サーバを共有する利用者間のセキュリティと、ブログや Wiki などの動的コンテンツに対する処理性能が問題となる。本プロジェクトでは、コンテンツアクセススケジューラによりURLごとにパーティションを割当て、 パーティションに対して各種実行権限を定義することにより安全性を確保している。また、多数の動的コンテンツをクライアントに提供できるようにサーバプロ セスの実行制御とスケジューリングを行っている。本システムを用いることで安全で高品質なサーバ環境を提供することができる。



8.採択理由


 高性能で安全なWebサーバを構築するために、ApacheとSELinuxを用いて、組込みモジュール並みの性能を持つApacheモジュールを開発 する申請である。他方式に比べ、圧倒的に有利な理由などが不十分という面はあるが、想定する応用に対して実用性もあり、それなりの準備状況であると考え る。



9.開発目標


 本プロジェクトで対象とする共有ホス ティングサービスは、1台のサーバに数百から数千程度の個人サイトがあるものとし、近年要求の高い、Wikiやブログなどの動的コンテンツのためのWeb アプリを実行することを想定している。
 Webサーバのソフトウェアとしては、広く利用されているApacheを使用する。Apacheでは従来suExecなどにより実行権限を制御してきた が、制御できる項目が少ないこと、性能などが芳しくないなどの問題がある。そこで、本プロジェクトでは、セキュアなサーバを実現するために、サーバが格納 するWebのオブジェクトを複数のパーティションに分割し、パーティションごとにworkerと呼ばれる専用のサーバを割り当てて異なるユーザ権限でプロ セスを実行する構成とした。また、サーバに格納するパーティション数に対してスケーラビリティを確保するために、メモリ確保を優先するworkerの実効 制御を行う。
 以上により、
  ・高セキュリティ:サーバプロセスをパーティション毎に異なるユーザ権限で実行
  ・高性能:異なるユーザ権限で動作するサーバプロセスをプール
  ・高スケーラビリティ:サーバプロセスを動的に生成・終了
の3点を確保することを目標としている。
 実装については、ApacheとSELinuxをベースにし、管理ツールを作成することにより、システム管理者の管理を容易にする。



10.進捗概要


 途中、構成などの設計の変更があった が、着実に開発を進めていた。2005/11にソフトウェア科学会WIT、2006/1に情報処理学会のプログラミングシンポジウムで発表し、内容の成果 報告を行っている。



11.成果


 本プロジェクトでは、SELinuxとApacheにより、高セキュアで高性能なWebサーバの構築を行うサーバソフトウェアを実現した。 dispatcherとworkerによるWebサーバのアーキテクチャにより、
 (1) dispatcherにおいて、URL中のオブジェクトに対して割り当てるworkerを制御するコンテンツアクセススケジューラを実行し、コンテンツや リクエストの特性を考慮したwokerプロセス制御を行いスケーラビリティを確保
 (2) workerにより実行権限を制御する機構を導入し、セキュリティを確保
することができた。
 この結果、ホスティングや社内サーバの部門毎にパーティショニングすることでセキュアなサーバにできること、Webオブジェクトごとに資源利用状況など のアカウンティング情報の取得が容易なため課金したり利用制限できること、WebDAV 経由で作成したファイルの所有者が各サイトオーナーになれる、認証情報に応じてサーバプロセスの実行権限を変えるようなWebサーバの構築が可能となる。



12.プロジェクト評価


 ブログやWikiの流行により、Webサーバ上でこれらのサービスを提供する局面は増えている。ブログやWikiについては多くの実装があるが、 Apache上でCGIないしは言語モジュールにより既存のWebアプリを実行できれば簡単だが、セキュリティと性能はトレードオフになる。本プロジェク トでは、dispatcher上のコンテンツアクセススケジューラによりアクセス要求中のパスにしたがって、worker と呼ばれるコンテンツごとのサーバプロセスに要求を割り振るアーキテクチャを採用し、セキュリティとスケーラビリティの両面を確保している。
 dispatcherを介して負荷分散を行う方式は過去にもあるが、workerで実行権限を変えることで、セキュリティ確保に用いるのはどのような結 果が得られるか興味深い。SELinuxにより資源のアクセス制御を行うこともできる点も一つの方向である。OSの専門家としては、サンドボックスやVM のような汎用的なアプローチをしたくなるが、応用層でWebに特化して良好な結果が得られることを期待した。
 要求数に対しての各種評価データはこれらの期待が間違っていなかったことを示している。また、大学のセキュリティ実験などに本システムを用いて評価して みた点も興味深い。ホスティングへの適用による実証実験、または実運用データに基づく検証、また設定ツールなどによる運用経験などを期待したいが、それら は今後の課題とである。



13.今後の課題


 (1) workerの起動・終了コストの低減
  メモリ利用率を向上させるために worker を動的に起動・終了するが、遅延の増加と制御のオーバーヘッドが存在
する。
 (2) dispatcherの軽量・高速化
  サーバに対する要求は一度dispatcherが受領する。したがってアクセスが集中する場合dispatcherの性能が
システム全体の性能に大きく影響する。dispatcherについては Apacheの逆プロクシではなく、さらに軽量な独 自の実装が望まれる。
 (3) 実証実験または実データからの評価
  各種評価を行っているが、実サイトでの運用ないしは運用データに基づく検証により本システムの有効性を確認する
ことが必要である。


  ページトップへ   






  Copyright(c) Information-technology Promotion Agency, Japan. All rights reserved 2004