「この入力欄、ディレクトリトラバーサル(Directory Traversal)の対策ができていないよ」

セキュリティ診断の結果を見て、先輩が眉をひそめました。私は「ディレ……? トラ……? なんだか、監督(Director)が旅(Traverse)でもするのかな? 映画のロケハンの話?」と、壮大な旅物語を想像していました。

とりあえず 「良い旅になるといいですね!」 と笑顔で答えましたが、周囲からは「……いや、サーバーの裏側を覗かれる攻撃のことだよ」と呆れられ、またしても「シネマ脳」な勘違いに赤面する羽目に(笑)。

これ、実はWebサイトの裏側にある 「見せてはいけない秘密のファイル」 を、強引にこじ開けられてしまう、とっても危険な攻撃のことです。今回は、お城の 「裏口探し」 に例えて、その正体をやさしく解説します!

ディレクトリトラバーサルとは? 一言でいうと「サーバー内の『隠し部屋』へ強引に移動する攻撃」

結論から言うと、ディレクトリトラバーサル(別名:パストラバーサル)とは、「Webサイトのファイル名を指定する機能を悪用して、本来公開されていないサーバー内のファイル(設定ファイルや個人情報など)を不正に閲覧する攻撃」 のことです。

お城での 「観光」 に例えてみましょう。

  • 公開ページ:観光客に開放されている「大広間」や「庭園」。
  • サーバーの奥:お城の「宝物庫」や「王様の寝室」。
  • 攻撃「案内図にない『隠し通路(../)』を使って、強引に立ち入り禁止エリアへ忍び込むこと」。

例えば、URLに「../../etc/passwd」といった 「一つ上の階層に戻る(../)」 という記号をたくさん書き込むことで、サイトの「公開フォルダ」から脱出し、サーバーの心臓部へと横歩き(トラバーサル)していく。これが名前の由来です。

ビジネスの現場でディレクトリトラバーサルという言葉が出る場面

Webサイトの開発や、サーバーの脆弱性対策シーンで頻繁に登場します。

1. 「ファイル指定の入力値をチェックして、トラバーサル攻撃を防ごう」

意味:
「ユーザーが『隠し通路の記号(../)』を書き込んでいないか厳重に荷物検査をして、もし怪しい記号を見つけたらお城(サーバー)の奥へは通さないようにしよう」ということです。

2. 「サーバーの権限設定(パーミッション)を最小限にして、被害を抑えよう」

意味:
「万が一、裏口を見つけられても、大事な『金庫室(システムファイル)』には鍵が掛かっていて開けられないように、最初からガードを固めておこう」ということです。

3. 「脆弱なプラグインが原因で、ディレクトリトラバーサルの被害に遭うサイトが多いね」

意味:
「自分たちで壁を作っても、後から入れた『便利な自動ドア(外部ツール)』に最初から裏口が開いていたせいで、そこから泥棒に入られちゃうケースがよくあるから気をつけよう」ということです。

この攻撃で見られてしまうもの

どんな「秘密」が狙われるのか、リスクを整理しました。

狙われるもの内容たとえ話
設定ファイルデータベースのパスワードなどお城の すべての鍵のマスターキー
OSの重要ファイルユーザー一覧やシステム情報国の 最高機密文書
ソースコードプログラムの設計図秘伝の レシピ集

これらが一つでもバレてしまうと、お城(サーバー)は完全に泥棒の支配下に入ってしまいます。

まとめ

この記事のポイントは次のとおりです。

  • ディレクトリトラバーサルは、公開されていないファイルを盗み見る攻撃
  • 「../」のような記号を使って、サーバーの階層を勝手に移動される
  • 設定ファイルの漏洩など、致命的な被害に繋がるため、入力チェックが必須

今すぐできる確認方法

ITの「階層」という概念を、少しだけ意識してみましょう。

  1. フォルダの階層: PCのフォルダをダブルクリックして開くとき、あなたは今「お城の部屋」を移動しています。
  2. 「上へ」ボタン: フォルダの「上へ」という動作が、ITの世界では 「../」 という記号で表されることを知っておく。
  3. URLの観察: もしURLに file=image.jpg のような文字があったら、「あ、ここに悪い記号を入れられたら裏口を探されちゃうかも?」と、セキュリティ意識をチラッと働かせてみる。

「ディレクトリトラバーサル」という言葉を知るだけで、Webサイトが「単なる平面の画面」ではなく、奥行きと秘密を持った「立体的なお城」のように見えてきませんか?