X

また作りを知らない人が…

(Last Updated On: )

「PHP Open_BaseDir Security Restriction Bypass Vulnerability」と言うbug truckのエントリを作っている人がいますね…. 何年も前から何度もソフトウェアのデザイン上の間違いではない事は解説されているのですけどね….

最近のPHPマニュアルには「open_basedir」も「safe_mode」もスクリプトを書く人からの不正なファイルアクセスを防止する為のセキュリティ対策ではない事、完全な(安全な)アクセス制御を行う仕組みでは無いことは明記してあります。
# 「It is architecturally incorrect to try to solve this
# problem at the PHP level」
# http://www.php.net/manual/en/features.safe-mode.php
# 「アーキテクチャ的にはこの問題をPHPレベルで解決しようと
# するのは正しくありまえせんが」と記述してあります。

たとえばPostgreSQLのラージオブジェクト関数を使うとWebサーバがアクセス可能なファイル全てにアクセスできます。SQL文でファイルをロードできる物もあります。外部のライブラリやシステムを利用するプログラムがファイルアクセスを完全に制御できないのは*当たり前*の事なのです。

だからといって「open_base_dir」や「safe_mode」が無意味かというとそうではありません。例えば、プログラムミスによりディレクトリ遷移バグが入ってしまった場合などには「open_base_dir」は非常に役に立ちます。ログを自動チェックするようにしていればサーバが攻撃された際にディレクトリ遷移バグがあることと攻撃されている事が判別することができます。

Tags: PHP
yohgaki:
Related Post
Leave a Comment