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