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


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


 ファイル名が知られるということの意味

 無料で配布されているようなCGIなどのREADMEファイルには「データやパスワードなどの機密情報を格納するファイル名は変更するように」と書かれていることがある。これは、直接そのファイル名をリクエストされてしまった場合に外部から閲覧される恐れがあるからだ(これが原因で情報が漏えいした事例も過去に存在する)。

 重要な情報が格納されているファイルに対して、安易な名前を付けないという対策も大事かつ必要であるが、それを行っていてもディレクトリの中身が丸見えでは十分な対策とはいえない。

 そのように意図せずに情報が漏えいしてしまわないために、ディレクトリインデックスを取得できない設定方法を紹介しよう。

【注】
インデックス・ファイルを各ディレクトリに置いておけばという解決方法もあるのだが、置き忘れなどのミスが考えられるため、ここでは設定による対策を書かせていただく。

 まずは“対策”――ディレクトリリスティングを制限する

 Apacheの設定ファイル(/usr/local/apache/conf/httpd.confなど)をエディタで開き、その中に存在する“Indexes”というオプションを削除し、Apacheを再起動する。

<Directory "/usr/local/apache/htdocs">
Options Indexes Includes FollowSymLinks



<Directory "/usr/local/apache/htdocs">
Options Includes FollowSymLinks

 ただ、ここで気を付けないといけないのは<Directory>ディレクティブが複数存在する場合である。

 例えば、設定ファイル内に以下のような記述があった場合だ。

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

(略)

<Directory "/var/www/icons">
Options Indexes MultiViews

(略)

 この場合、それぞれのディレクティブでIndexesの指定を削除する必要がある。

 これにより、インデックス・ファイルの存在しないディレクトリにアクセスが行われたとしても、Indexesオプションを削除し、ディレクトリリスティングを禁止とする設定となっているため、以前のようにディレクトリリストは表示されず、図3右のように「Forbidden」となる。

図3 Indexesを削除した場合の表示例

2/3

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


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

TechTargetジャパン

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

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

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

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

@IT Sepcial
ソリューションFLASH