第2回 ディレクトリ非表示の意味をもう一度見つめ直す


辻 伸弘
NTTデータ先端技術株式会社
2007/8/22


 第1回では、Webサーバ“Apache”のセキュリティ設定によるバナー情報の隠ぺい方法について紹介した。第2回となる今回もApacheのセキュリティ設定でできることをお届けする。今回はおそらく誰もが行っているであろう、ディレクトリ非表示設定についてもう一度チェックしてみたい。


 Webサーバのディレクトリリスティングとは

 ディレクトリリスティングというのは、Webサーバが持つ便利な機能の1つで、読んで字のごとく、サーバのディレクトリ内容をリスト表示するものである。

 Apacheの設定ファイル(デフォルトではhttpd.conf)には、「DirectoryIndex」という設定項目があり、ここではインデックスとなるファイルを設定する。

DirectoryIndex index.html index.php
リスト1 DirectoryIndex設定の例

 これは、最後が「/(スラッシュ)」で終わるリクエストをWebサーバが受け取った場合、表示するファイルを優先順に記述する個所である。

 リスト1で示した例では、アクセスされたディレクトリ内にindex.htmlが表示される。index.htmlがなく、index.phpが存在する場合はそちらが表示される。優先順位は左が高いので、両方存在する場合は、index.htmlが表示されることとなる。

図1 ディレクトリ構造例

 例えば「www.target-example.jp」というドメインのサイトがあり、図1のようなディレクトリ構造であったとしよう。DirectoryIndexでindex.htmlが設定されている場合、「http://www.target-example.jp/test/index.html」としなくとも、「http://www.target-example.jp/test/」とするだけで同じようにアクセスすることが可能である。

 この機能が存在することで、サイト公開側は、トップページを含む特定のディレクトリにアクセスされたとき、ユーザーに見せるページを選択することができ、ユーザーは最後のファイル名まで記述することなくページにアクセスすることができるのである。

 あなたの「便利」は攻撃者にも「便利」

 それでは、このDirectoryIndexに記述されているインデックス・ファイルになるべきものが存在しないディレクトリへアクセスした場合はどうなるのだろうか。先ほど例に挙げたディレクトリ構造の場合からindex.htmlが存在しない状態でアクセスしたブラウザの画面を見てみよう。

図2 インデックス・ファイルIndex.htmlがないディレクトリの画面表示

 読者の皆さんも、このようなページに出くわしたことがあるのではないだろうか。これは、静的なコンテンツを公開するときに便利な機能である。

 例えば、写真などの画像ファイルやダウンロードファイルを多数格納しているディレクトリで索引となるページを作成しなくとも図2のようにファイル一覧を表示することができるのである。

 外部から閲覧されても別段問題のないファイルばかり格納されているディレクトリの中身を公開するために使用する分にはまったく問題はないが、そのディレクトリに格納されているファイルの中に機密情報の含まれるデータファイルが存在する場合はどうだろうか。すぐさま情報漏えい事件となってしまうことだろう。現に、これが原因で情報漏えいが発生した事例も過去に存在している。

1/3

Index
ディレクトリ非表示の意味をもう一度見つめ直す
Page1
Webサーバのディレクトリリスティングとは
あなたの「便利」は攻撃者にも「便利」
  Page2
ファイル名が知られるということの意味
まずは“対策”――ディレクトリリスティングを制限する
  Page3
攻撃者の視点とその手法――検索エンジンも武器になる
対岸の火事ではない組み込み機器
対策する意味を考えれば、セキュリティへの理解も深まる


セキュリティ対策の「ある視点」 連載インデックス

TechTargetジャパン

Security&Trust フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH