OWASP ZAPで検出されるディレクトリブラウジングの原因とApache設定による対策
目次
こんにちは。飯塚です。
システム開発の脆弱性検証として、OWASP ZAP を使うことがあります。検知された各脆弱性の理解のために記事にしました。
対応方法はシステムの要件によっても変わりますし、絶対に脆弱性を防げることを保証するものではありません。あらかじめご了承ください。
OS・Apache・OWASP ZAPのバージョン
| 項目 | バージョン |
|---|---|
| OS | Debian GNU/Linux 12 (bookworm) |
| Apache | 2.4.XX |
| OWASP ZAP | 2.15.0 |
ディレクトリブラウジング・ディレクトリリスティングとは
URLにディレクトリを指定することで、フォルダやファイルが閲覧可能になっている、という意味です。
例えば、https://example.com/account/regist.php というURLでアカウント登録画面が表示されたとします。このサイトで、https://example.com/account/ をURLに指定すると、account ディレクトリ配下のフォルダ・ファイルの一覧が見えてしまう、ということです。
ちなみに OWASP ZAP では「ディレクトリブラウジング」という名称で検知されますが、「ディレクトリリスティング」のほうが一般的なようです。
参考
【ZAP】Directory Browsing
ディレクトリリスティングのセキュリティリスクと攻撃手法
意図して公開している場合を除くと、下記のようなリスクが生まれます。
認証情報や接続先情報が書かれた設定ファイルが公開されることで悪用される
ディレクトリリスティングで閲覧可能なファイルはダウンロードも可能です。もし認証情報や接続先情報が書かれていると、簡単に悪用されます。
フォルダ構成の解析によって既知の脆弱性を突かれる
フォルダ構成やファイル名が分かれば、使用されているフレームワーク、ライブラリ、プラグインなどを特定しやすくなります。特定できれば、対応する既知の脆弱性を利用した攻撃が可能になります。
ディレクトリトラバーサル攻撃
フォルダ構成から重要な設定ファイルのパスを推測し「../」といった相対パス指定を行うことで、機密ファイルを取得可能になります。
【IPA】ディレクトリ・トラバーサル
Apacheでディレクトリリスティングを無効化する設定 Options -Indexes
Apache のフォルダ構成
/etc/apache2
|-- apache2.conf
Apache の対応
apache2.conf の Options を適切に設定します。以下、設定例です。
Options -Indexes
Options ディレクティブは、特定のディレクトリに対して どの機能が使用可能かを制御します。
Indexes は DirectoryIndex で指定したファイルがディレクトリ内に無ければ、ディレクトリ内の一覧を返す機能です。「-」をつけるとこの機能が削除されるので、ディレクトリリスティングが無効化されます。
要件と構成によって設定は異なるはずなので、詳細は Apache のドキュメントをご参照ください。
設定ファイルの変更なので、反映にはApacheの再起動が必要です。
systemctl restart httpd
まとめ
いかがでしょうか。
ディレクトリリスティングはWebサーバ設定の不備によって発生する代表的な情報漏えいリスクの一つです。特にApache環境では Options -Indexes の設定確認が基本的なセキュリティ対策となります。
単純な設定ですが、認証情報や接続先情報が漏れるリスクを知ると恐ろしいですよね。たった一行の設定ですが、疎かにしてはいけないと感じました。
OWASP ZAPで検知された他の脆弱性についても記事を今後書きます。参考になれば幸いです。
《関連記事》
アシスタントリーダー Iizuka 技術の入門・まとめ系を中心に書いてます。あとで読み返したいと感じていただける記事を目指しています。


