目次

この記事の目次です。

1. ディレクトリリスティングとは
2. ディレクトリリスティング攻撃
3. ディレクトリリスティングを無効にする方法

更新履歴

1. ディレクトリリスティングとは

ディレクトリリスティングは、URLでWebディレクトリを指定したときに、インデックスファイルがない場合にディレクトリのファイル一覧を表示する機能です。 意図せずにディレクトリリスティングを有効にしている場合も多く、それを悪用したサーバー攻撃の手法のことを指す場合もあります。

たとえば、ユーザがファイル(index.html、index.php、default.aspなど)を指定せずにwww.acunetix.comを要求すると、Webサーバはこの要求を処理し、そのディレクトリのインデックスファイルを返し、ブラウザにWebサイトが表示されます。 この時に、インデックスファイルが存在せず、ディレクトリ一覧が有効になっている場合は、代わりにディレクトリの内容が返されます。

この設定を知らないで利用している場合も多く、見えないと思って非公開なファイルを置いてしまうユーザもいるため、それを狙ったサーバー攻撃の手法をディレクトリリスティングという場合もあります。

2. ディレクトリリスティング攻撃

ディレクトリリスティング攻撃は、ディレクトリ一覧を表示して情報を窃取する手法です。

上述のディレクトリリスティング機能が無効になっている場合でも、攻撃者はWebサーバの脆弱性を発見して悪用し、ディレクトリの参照を実行する可能性があります。 たとえば、古いApache Tomcatの脆弱性では、nullバイト (%00) とバックスラッシュ (\) の不適切な処理によってディレクトリリスティング攻撃を受けやすくなっていました。

攻撃者は、オンラインデータベースに格納されているキャッシュデータまたは履歴データを使用してディレクトリリスティングを検出することもあります。 たとえば、Google検索のキャッシュには、以前にディレクトリリスティングが有効になっていたターゲットの履歴データが含まれている場合があります。 攻撃者は、このようなデータようなデータを集めることもあります。

3. ディレクトリリスティングを無効にする方法

ディレクトリリスティングを無効にするには、Webサーバの設定を変更する必要があります。

Apache HTTP Server

Apache HTTP Serverの場合は、httpd.confファイルで次の行を追加して、Optionsディレクティブを設定すると、ディレクトリリストを無効にできます。 「-Indexes」が無効で「Indexes」が有効の指定になります。

<Directory <禁止するディレクトリのパス>>Options -Indexes</Directory>

このディレクティブを.htaccessファイルに追加することもできますが、選択したディレクトリだけでなく、サイト全体のディレクトリリストをオフにした方が無難です。 また、httpd.confには、デフォルトで複数箇所で有効の指定があるので注意が必要です。

Nginx

Nginxは、ディレクトリインデックスはデフォルトで無効になっているため、何も設定する必要はありません。 以前に有効にしていた場合は、nginx.confで、autoindex onをautoindex offに変更することで無効にできます。

ディレクトリリスティングを無効にした後の動作

ディレクトリリスティング機能が無効になっているところにディレクトリ名でアクセスした場合は、403 Forbiddenとなります。

関連記事

関連記事です。

403 Forbiddenとは

403 Forbiddenとは、閲覧禁止を意味するエラーです。ご自身が公開しているホームページであれば閲覧禁止となる原因を確認すれば、解決もしくは回避できます。 ここでは403 Forbiddenの解決をテーマに、ワードプレス(WordPress)、ロリポップ(lolipop!)、などのエラー対処方法をまとめています。

詳細

更新履歴

更新履歴になります。

トップ技術データベースディレクトリリスティング