「この入力欄、ディレクトリトラバーサル(Directory Traversal)の対策ができていないよ」
セキュリティ診断の結果を見て、先輩が眉をひそめました。私は「ディレ……? トラ……? なんだか、監督(Director)が旅(Traverse)でもするのかな? 映画のロケハンの話?」と、壮大な旅物語を想像していました。
とりあえず 「良い旅になるといいですね!」 と笑顔で答えましたが、周囲からは「……いや、サーバーの裏側を覗かれる攻撃のことだよ」と呆れられ、またしても「シネマ脳」な勘違いに赤面する羽目に(笑)。
これ、実はWebサイトの裏側にある 「見せてはいけない秘密のファイル」 を、強引にこじ開けられてしまう、とっても危険な攻撃のことです。今回は、お城の 「裏口探し」 に例えて、その正体をやさしく解説します!
ディレクトリトラバーサルとは? 一言でいうと「サーバー内の『隠し部屋』へ強引に移動する攻撃」
結論から言うと、ディレクトリトラバーサル(別名:パストラバーサル)とは、「Webサイトのファイル名を指定する機能を悪用して、本来公開されていないサーバー内のファイル(設定ファイルや個人情報など)を不正に閲覧する攻撃」 のことです。
お城での 「観光」 に例えてみましょう。
- 公開ページ:観光客に開放されている「大広間」や「庭園」。
- サーバーの奥:お城の「宝物庫」や「王様の寝室」。
- 攻撃:「案内図にない『隠し通路(../)』を使って、強引に立ち入り禁止エリアへ忍び込むこと」。
例えば、URLに「../../etc/passwd」といった 「一つ上の階層に戻る(../)」 という記号をたくさん書き込むことで、サイトの「公開フォルダ」から脱出し、サーバーの心臓部へと横歩き(トラバーサル)していく。これが名前の由来です。
ビジネスの現場でディレクトリトラバーサルという言葉が出る場面
Webサイトの開発や、サーバーの脆弱性対策シーンで頻繁に登場します。
1. 「ファイル指定の入力値をチェックして、トラバーサル攻撃を防ごう」
意味:
「ユーザーが『隠し通路の記号(../)』を書き込んでいないか厳重に荷物検査をして、もし怪しい記号を見つけたらお城(サーバー)の奥へは通さないようにしよう」ということです。
2. 「サーバーの権限設定(パーミッション)を最小限にして、被害を抑えよう」
意味:
「万が一、裏口を見つけられても、大事な『金庫室(システムファイル)』には鍵が掛かっていて開けられないように、最初からガードを固めておこう」ということです。
3. 「脆弱なプラグインが原因で、ディレクトリトラバーサルの被害に遭うサイトが多いね」
意味:
「自分たちで壁を作っても、後から入れた『便利な自動ドア(外部ツール)』に最初から裏口が開いていたせいで、そこから泥棒に入られちゃうケースがよくあるから気をつけよう」ということです。
この攻撃で見られてしまうもの
どんな「秘密」が狙われるのか、リスクを整理しました。
| 狙われるもの | 内容 | たとえ話 |
|---|---|---|
| 設定ファイル | データベースのパスワードなど | お城の すべての鍵のマスターキー |
| OSの重要ファイル | ユーザー一覧やシステム情報 | 国の 最高機密文書 |
| ソースコード | プログラムの設計図 | 秘伝の レシピ集 |
これらが一つでもバレてしまうと、お城(サーバー)は完全に泥棒の支配下に入ってしまいます。
まとめ
この記事のポイントは次のとおりです。
- ディレクトリトラバーサルは、公開されていないファイルを盗み見る攻撃
- 「../」のような記号を使って、サーバーの階層を勝手に移動される
- 設定ファイルの漏洩など、致命的な被害に繋がるため、入力チェックが必須
今すぐできる確認方法
ITの「階層」という概念を、少しだけ意識してみましょう。
- フォルダの階層: PCのフォルダをダブルクリックして開くとき、あなたは今「お城の部屋」を移動しています。
- 「上へ」ボタン: フォルダの「上へ」という動作が、ITの世界では 「../」 という記号で表されることを知っておく。
- URLの観察: もしURLに
file=image.jpgのような文字があったら、「あ、ここに悪い記号を入れられたら裏口を探されちゃうかも?」と、セキュリティ意識をチラッと働かせてみる。
「ディレクトリトラバーサル」という言葉を知るだけで、Webサイトが「単なる平面の画面」ではなく、奥行きと秘密を持った「立体的なお城」のように見えてきませんか?