HOME >> 情報セキュリティ >> 脆弱性対策 >> 知っていますか?脆弱性 (ぜいじゃくせい) >> 4. パス名パラメータの未チェック/ディレクトリ・トラバーサル

4. パス名パラメータの未チェック/ディレクトリ・トラバーサル

2007年7月12日 掲載

イントロダクション

Z社ではコミュニティサイトを運営しています。
担当者Nさんは毎日ユーザからの問合せの回答や、コンテンツの追加、ウェブサイト内を巡回して問題がないかチェックをしていました。

N氏 「最近、顧客情報の流出とか、情報セキュリティに問題があるってニュースが多いなぁ…。」
「でも、うちはユーザのデータファイルは公開ディレクトリには格納していないから問題ないはずだよね。」

おじさん 「コミュニティサイトのメンバーから、個人情報が漏れたらしいとの報告が来たぞ!」

N氏 「なんで???」
「困ったな。研究所の博士に聞いてみよう。」
「博士、いったいどうしてこんなことになってしまったの?」

博士 「これは、ディレクトリ・トラバーサルのようじゃな。」

“トラバーサル”=“横断(Traversal)”の意味


パス名パラメータの未チェック/ディレクトリ・トラバーサルとは?

博士
「この問題を図書館で例えてみようかのう。」
「この図書館には、部屋R1〜R3があり、部屋R1からは部屋R2、R3に行くことができるのじゃ。」
「部屋R2は、一般の方に公開されており、また、部屋R2とR3の間を行き来するには、部屋R1を経由することで行き来することができるのじゃ。部屋R1、R3は非公開の部屋じゃ。」
「公開されている部屋R2には、本AとBがあり、非公開の部屋R3には、貸出禁止の本Cがあるのじゃ。」
「R3という部屋と、Cという本の名前は、簡単に推測できるものとしよう。」
「司書は、一般の方からの依頼を受けて、部屋R2内の本を貸し出すのじゃ。」
「だから、公開されている部屋R2にはない本Cは、一般の方には貸し出さないんじゃ。」

図書館に例えたイメージ

博士 「しかし、司書に問題があり、図書館内を歩き回れると、
部屋R2からR1を経由して、部屋R3のCという本を貸してくださいと言うと、」

攻撃者 「部屋R2からR1を経由して、部屋R3のCという本を貸してください。」

司書に問題があり貸し出してしまったイメージ

N氏 「あ、貸出禁止の本なのに貸し出してしまった…。」

博士 「そうじゃ。これがディレクトリ・トラバーサルじゃ。」


パス名パラメータの未チェック/ディレクトリ・トラバーサルの具体的な攻撃例

博士 「図書館の各部屋はディレクトリで、本はそれぞれのファイル、司書はウェブサイト上で動作しているウェブアプリケーションと言えるのじゃ。」

本=ファイルのイメージ

博士
「ウェブサイト内のファイル名(本の名前)を指定して動作するウェブアプリケーションでは、注意が必要じゃ。」
「問題があるウェブサイトでは、「ディレクトリ(部屋)R2からR1を経由して、ディレクトリR3にあるファイル(本)C」のように、ファイル名(本の名前)を指定してしまうと、ファイル(本)の内容を閲覧できてしまうのじゃよ。」

N氏 「順調にメンバーが増えていたのに、コミュニティの信頼も失われてしまったかな…。」

博士 「もう二度と問題が起こらんようにちゃんと対策せんとの。」

博士 「対策は、IPAのウェブサイトの脆弱性ごとの対策ページを参照するのじゃ。」