[PHP-users 4903] [SECURITY]:PHP4 session spoofing exploit
R OKADA
php-users@php.gr.jp
Wed, 23 Jan 2002 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/
________________________________________________________