なぜPHPアプリにセキュリティホールが多いのか?
第1回 CVEでみるPHPアプリケーションセキュリティ
PHPアプリケーションの脆弱性は本当に多いのか?
アプリケーションの脆弱性を調べるには,
CVEとは,
通常どおりPHPアプリケーションの脆弱性が目立ちます。特にこの日は同じアプリケーションで複数の脆弱性が登録されていたものがいくつかありました。
同じアプリケーションだけでなく,
PHPアプリケーションでの特徴的な脆弱性
これらのPHPアプリケーションの脆弱性の中でも注目すべき脆弱性があります。
「リモートファイルインクルード脆弱性」
require($_GET['base_dir'].'/file_to_include.php');
等のコードがあると,
この脆弱性だけで,
- データの漏洩
(SQLデータデータベースのデータをすべて盗まれる, ファイルを盗まれれる等) - データの改ざん
(不正アカウントの作成, ページの改ざん等) - 不正サーバの実行
(HTTPプロキシ, IRCプロキシ等) - ほかのサイトへの攻撃
「リモートファイルインクルード脆弱性」
register_ globalsの罠
12月31日にも8件のリモートファイルインクルード脆弱性が登録されていますが,
これは,
OSCommerce自体はregsiter_
例えばアプリケーション中に
require($base_dir.'/file_to_include.php');
のようなコードがあると
require($_GET['base_dir'].'/file_to_include.php');
と記述しているのと同じなってしまう場合があります。
対策
このような脆弱性の場合,
PHPアプリケーションを公開する場合,
if (ini_get('resiger_globals')) {
trigger_error('このアプリケーションはregister_globals=onでは動作しません', E_UESR_ERROR);
exit; // 確実に実行を終了する
}
この記事に関連する書籍
-
Webアプリセキュリティ対策入門〜あなたのサイトは大丈夫?
本書は,Webサイトのセキュリティ確保のために必要な基礎知識と,安全なコードを書くために必要な基礎知識を解説しています。Webアプリケーションは比較的簡単に作成で...
-
はじめてのPHP言語プログラミング入門
Webアプリケーション構築ツールとしてPHPを取り上げた書籍は数多くありますが,言語の解説・入門書としての書籍はあまりありません。 本書は,プログラミング言語として...
バックナンバー
なぜPHPアプリにセキュリティホールが多いのか?
- 第46回 セキュリティ対策を考える上で欠かせないコンテクスト
- 第45回 入力バリデーションはセキュリティ対策
- 第44回 セキュリティ対策が確実に実施されない2つの理由
- 第43回 PHP 5.3のcrypt関数の問題
- 第42回 PostgreSQL 9.0に見るSQLインジェクション対策
- 第41回 PHP 5.3.4におけるセキュリティ上重要な仕様変更
- 第40回 MOPS:安全性の高いパスワードハッシュ作成ツール - phpass
- 第39回 MOPS:静的PHPソースコード脆弱性スキャナ RIPS
- 第38回 MOPS:PHPにおけるコード実行(2)
- 第37回 MOPS:PHPにおけるコード実行(1)