[PHP-users 4903] [SECURITY]:PHP4 session spoofing exploit

R OKADA php-users@php.gr.jp
2002年1月23日 02:58:02 +0900


岡田@テューンビズ(PHPカンファレンスセキュリティ担当)です。
誰か流すかなーと思ってみていたんですが、どなたも流されないようなので
情報を流しておきます。後述するBUGTRAQからの記事よりの抜粋情報を日本語
でお書きしますね。
少なくとも、PHPの以下のバージョンにおいては、サーバのセッションIDが
ハイジャックされる危険があります。
PHP 4.0.4
PHP 4.0.5
PHP 4.0.6
PHP 4.1
PHP 4.1.1
セッション情報は /tmp ディレクトリに格納されます。これらのファイルは、
セッションIDを含む名前を付与されています。サーバのローカルユーザ(アタ
ッカ)はそれらの内容を /tmp で見て、セッションIDを使うことにより、現在
のWEBサイトユーザのセッションをハイジャックするかもしれません。
すべてのセッションは以下のような一時ファイルに格納されます。
 sess_g35g5g54gg45wg85
この、"g35g5g54gg45wg85" の部分が session-ID です。これらのファイルを
見ることにより、誰でもこれらのセッションを悪用して簡単にスプーフィング
(なりすまし)をすることがきでます。PHPはモジュールとして動かされるこ
とが普通ですから、当然、apacheのユーザ権限を継承した範囲で読み書きでき
るファイルを使用します。
対処法はいろいろと議論されているところですが、簡単なものとしては、
以下の方法が手っ取り早いようです。
1.php.ini で、session.save_path (デフォルト /tmp)を、例えば、 
 /tmp/sessionids に替える。
2.そのディレクトリを、apacheの動作ユーザのみがディレクトリ参照
 ならびに書き込みのみディレクトリにする。
	# chown www-data /tmp/sessionids
	# chmod 700 /tmp/sessionids 
	(or # chmod 300 /tmp/sessionids )
3.根本的なことですが、ローカルユーザexploitですから、ローカル
 ユーザをですね、...(以降省略)
情報源:
http://www.securityfocus.com/bid/3873
http://www.zend.com/manual/ref.session.php
p.s.
PHPセキュリティ環境構築、監査、コンサルティング、ZENDプロダクトに
ついてのご相談はわたしまで。:-)
________________________________________________________
 R I O T A R O O K A D A
 riotaro@tunebiz.net
 @linux.or.jp
 http://tunebiz.net/
 http://slashdot.jp/~okdt/journal/
 http://allabout.co.jp/computer/linux/
________________________________________________________

AltStyle によって変換されたページ (->オリジナル) /