サイバー攻撃

ディレクトリリスティングとは?リスクや無効化の方法を解説

Written by Aimee

ディレクトリリスティングとは?リスクや無効化の方法を解説

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする


ディレクトリリスティングとは、Webサーバーが特定のディレクトリに対するアクセスを許可することで、ディレクトリ内に保存される、本来見えないはずのファイルやサブディレクトリの一覧を表示する機能を指します。

たとえば、ブラウザで http://example.com/images/ のようなURLにアクセスすると、そのディレクトリ内の画像ファイルやHTMLファイル、CSSファイルなどが一覧として表示されることがあります。

この機能は便利である一方、攻撃者がディレクトリリスティングを悪用することで、公開ディレクトリ上に配置された重要情報を窃取したり、Webサーバーの構造を把握して、さらなる攻撃の足掛かりに利用したりする可能性があります。

よって不要な場合、ディレクトリリスティングはWebサーバーの設定より無効化することが推奨されます。ApacheやNginxといった主要なWebサーバーでは、設定ファイルを編集することで簡単に無効化できます。

またディレクトリリスティングの無効化に加えて、実施すべき対策は下記の通りです。

  • ・ 重要なファイルを公開ディレクトリ上に配置しない
  • ・ 各ファイルやディレクトリに、適切なアクセス権限を設定する
  • ・ ディレクトリリスティングの確認を含め、脆弱性診断を行う

この記事では、ディレクトリリスティングの概要、そのリスクや無効化する方法について詳しく解説いたします。

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


ディレクトリリスティングとは、Webサーバーが特定のディレクトリ(フォルダ)内に存在するファイルやサブディレクトリの一覧を表示する機能を指します。

この機能が有効になっている場合、ブラウザから該当ディレクトリにアクセスすると、その中に格納されたファイル名やフォルダ名が一覧として表示されます。

たとえば、http://example.com/images/ のようなURLにアクセスすることで、画像ファイルやHTMLファイルなど、そのディレクトリ内の構成を確認できる状態が発生します。

ディレクトリの基本概念

「ディレクトリ」とは、コンピューター内でファイルを整理・管理するためのフォルダの格納場所を指し、親ディレクトリと子ディレクトリによる階層構造を持つことができます。

この構造により、大量のファイルを効率的に管理することが可能です。

ディレクトリリスティングが有効な場合のメリット

ディレクトリリスティングが有効であれば、サイト管理者が新しいファイルのアップロードを確認したり、ディレクトリ構造の整合性を検証したりと管理効率を向上する際に役立ちます。

加えて、Webサイトの訪問ユーザーが、特定のファイルや必要な情報に、迅速にアクセスしやすいといった利便性もあります。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする

ディレクトリリスティングを有効にしている場合のリスク


ディレクトリリスティングが有効化されている場合、Webサーバー上に保存された設定ファイルやバックアップデータ、さらにはパスワードファイルなど、機密性の高い情報が外部に露出する危険性があります。

これにより、攻撃者が重要な情報に直接アクセスできるリスクが生じます。

また、ディレクトリリスティングによってWebサイトの構造やファイル配置が明らかになることで、攻撃者は脆弱性を特定しやすくなり、ディレクトリトラバーサル脆弱性やOSコマンドインジェクションといった攻撃の足掛かりを得られる可能性も高まります。

ディレクトリリスティングが有効になっているか確認する方法


ディレクトリリスティングが有効化されているかどうかは、以下の手法で確認可能です。
それぞれの方法には特性があり、目的やスキルレベルに応じて選択できます。

URL末尾にスラッシュを追加する方法

最も簡便な確認方法は、WebサイトのURL末尾にスラッシュ(/)を追加し、ブラウザを用いてアクセスする方法です。

具体的な手順は以下の通りです。
1.ブラウザでWebサイトにアクセス

2.URLの末尾にスラッシュやディレクトリを追加
(例 http://example.com/、http://example.com/test/、http://example.com/user/xxxx/)。※「test/」や「user/xxxx/」部分には実在するディレクトリを指定する

3.ファイルやフォルダの一覧が表示された場合、ディレクトリリスティングが有効となっていることが確認できる

4.対象ページが表示されない場合、ファイル一覧は確認できない

脆弱性スキャンツールや脆弱性診断を使用し、確認する方法

より包括的なアプローチとして、脆弱性スキャンツールや脆弱性診断を活用する方法があります。

ディレクトリリスティングの有効・無効に限らず、サーバー設定の問題やその他の潜在的なセキュリティリスクも検出可能です。

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


ディレクトリリスティングは利便性がある一方、セキュリティリスクを伴います。特に公開の必要がない情報がディレクトリ内に含まれる場合や、不要なファイル一覧を外部に表示させたくない場合、ディレクトリリスティングを無効化することが推奨されます。

以下に、ディレクトリリスティングを無効化する具体的な方法を解説します。

Apacheの設定ファイル(httpd.conf)の編集

Apacheの設定ファイルである httpd.conf を直接編集することで、ディレクトリリスティングを無効化できます。

▼手順

1. 設定ファイルを開く
例:/etc/httpd/conf/httpd.conf

2. ディレクトリの設定セクションを探す

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
</Directory>

3. Indexesオプションを削除

<Directory "/var/www/html">
    Options FollowSymLinks
</Directory>

4. 設定ファイルを保存し、Apacheを再起動

コマンド例
systemctl restart httpd

注意点として、設定ファイル内で複数箇所に同様の設定が存在する場合、すべての該当箇所を確認して修正する必要があります。

htaccessファイルを利用した制御

.htaccessファイルを使用することで、特定のディレクトリやサイト全体で、ディレクトリリスティングを制御することが可能です。

1.サイト全体で制限をかける場合
ドキュメントルートに.htaccessを配置し、以下を記述する。

Options -Indexes

2.特定のディレクトリのみ制限をかける場合
制限したいディレクトリ内に.htaccessを配置し、同様にOptions -Indexesを設定する。

サーバー全体ではなく、特定ディレクトリに対して柔軟に制御を設定することが可能です。

ディレクトリリスティングとディレクトリトラバーサルの関係性

ディレクトリリスティングとディレクトリトラバーサル攻撃は、Webサーバーのディレクトリに関連するセキュリティ上の課題であり、密接に関係しています。

ディレクトリリスティングは、Webサーバーが特定ディレクトリ内のファイル一覧を表示する機能です。有効化されていると、攻撃者にファイル名やディレクトリ構造の情報を与え、攻撃の足がかりとなる可能性があります。

一方、ディレクトリトラバーサルは、サーバーの脆弱性を悪用して「../(親ディレクトリ)」などを利用し、不正にディレクトリ外の機密情報にアクセスする攻撃手法です。

ディレクトリリスティングが有効だと、攻撃者がトラバーサル攻撃に必要な情報を得やすくなり、被害にあう可能性が高まります。これらを防ぐためには、ディレクトリリスティングの無効化や適切なアクセス制御などが重要です。

また定期的な脆弱性診断により、これらのリスクを早期に発見することが推奨されます。

関連ページ

ディレクトリトラバーサルとは?わかりやすく仕組みや対策・事例を解説

ディレクトリリスティングの無効化とあわせて行いたい対策


よりセキュリティを強固にするためにも、ディレクトリリスティングの無効化とあわせて、以下の対策を行うようにしましょう。

  • ・ 重要なファイルを公開ディレクトリ上に置かない
  • ・ ファイルへのアクセス権限を管理する
  • ・ 脆弱性診断を行う

1.重要なファイルを公開ディレクトリ上に配置しない

公開ディレクトリ上には、機密情報や公開を前提としていないファイルを配置しないことが重要です。
具体的には、以下のようなファイルを避けるべきです。

  • ・ 設定ファイル(例:config.php)
  • ・ データベースバックアップ
  • ・ ユーザー認証情報が含まれるファイル

これにより、攻撃者がディレクトリリスティングやその他の攻撃手法を通じて、重要な情報にアクセスするリスクを軽減できます。

2. ファイルのアクセス権限を適切に設定

重要なファイルへのアクセス権限を厳密に管理することは、情報漏洩やデータ改ざんを防ぐ上で不可欠です。

具体的な対策例

  • ・ 機密性の高いファイルには、管理者のみアクセス可能な権限を設定(例:Linuxのchmod 600)。
  • ・ Webサーバーの設定で特定のIPアドレスからのアクセスを許可する(例:ApacheのRequire ip設定)。

これにより、仮に攻撃者がWebサーバーのディレクトリ構造にアクセスできた場合でも、重要なファイルの閲覧や改ざんを防ぐことが可能です。

3. 定期的な脆弱性診断を実施

定期的な脆弱性診断は、Webサーバーやアプリケーションに潜むセキュリティホールを早期に発見し、対策を講じるために不可欠です。

診断手法

自動化ツールによるスキャン:簡易診断が可能で広範囲のチェックに適しています。ただし検出精度はツールの能力に依存するため、複雑な脅威や脆弱性の検出には限界があります。

プロフェッショナルによる手動診断:手動診断では、自社のセキュリティ要件に合わせて診断の範囲や深度を柔軟に調整可能。またツールでは検出困難な脆弱性の識別が可能です。

日常的な診断はツールを、年に数回の定期診断やリリース前の重要度の高い診断では、プロによるマニュアル診断を受けることを推奨します。

関連ページ

脆弱性診断とは?なぜ必要?やり方・費用などもカンタン解説

ディレクトリリスティング対策なら
「LANSCOPEプロフェッショナルサービス」の脆弱性診断

PFS ロゴ
ディレクトリリスティングの悪用をはじめとする、Webサイト / アプリケーションの脆弱性をついたサイバー攻撃対策なら、12,000件以上のサービス提供実績と90%以上のリピート率を誇る「LANSCOPE プロフェッショナルサービス」の脆弱性診断をご活用ください。

包括的なセキュリティ診断からコスト重視のオプションまで幅広いニーズに対応し、Webサイトのセキュリティ強化をサポートいたします。

Webアプリケーション脆弱性診断とは

当社の「Webアプリケーション脆弱性診断」では、経験豊富なスペシャリストが詳細な診断を行い、ディレクトリリスティング攻撃の要因となるWebアプリケーションの潜在的な脆弱性を特定。その上で、課題に対する具体的かつ実効性のある対策をご提案いたします。

改善すべき脆弱性やリスクに優先順位をつけ、対策案とあわせてご提案します。
詳細は以下をご覧ください。

関連ページ

LANSCOPE プロフェッショナルサービス の「Webアプリケーション脆弱性診断」はこちら

また、診断内容を重要項目に絞り、より低価格でWebアプリケーションの脆弱性診断を受けていただける「セキュリティ健康診断パッケージ」も提供しております。

関連ページ

低コスト・短期で診断を行う『セキュリティ健康診断パッケージ』の詳細はこちら

まとめ


本記事では「ディレクトリリスティング」をテーマに、その概要や対策について解説しました。

本記事の要点

  • ディレクトリリスティングとは
    Webサーバーが特定のディレクトリに対するアクセスを許可した際、ディレクトリ内に存在するファイルやサブディレクトリの一覧を自動的に表示する機能。
  • セキュリティリスク
    情報漏洩やデータの改ざん、攻撃者によるWebサイトの構造把握を招くリスクがあるため、不要な場合は無効化することが推奨される。
  • 併せて実施すべき対策
    公開ディレクトリ上に重要なファイルを保存しない、ファイルのアクセス権限を必要最小限に設定、脆弱性診断の実施などが有効。

ディレクトリリスティングは適切な管理が行われない場合、Webサーバーのセキュリティを大きく脅かす要因となります。公開するべきファイルと非公開のファイルを明確に区別し、セキュリティリスクを最小限に抑えましょう。

失敗しないための脆弱性診断実施のコツ

セキュアな開発・サービス提供に必須!はじめての脆弱性診断に関する、正しい進め方ガイド

資料をダウンロードする