最終更新日:
ディレクトリトラバーサルとは、ファイル名を指定する値の扱いの不備を突いて、サーバーの中の公開していないファイルを読み出したり書き換えたりする攻撃と、その原因となる脆弱性です。
Webアプリケーションの中には、表示や取り出しをするファイルを、外から渡される値で指定するものがあります。この値に「../」のような上の階層をたどる文字列を入れられると、決めておいた場所の外にあるファイルまで開けてしまうことがあります。IPAの「安全なウェブサイトの作り方」では「パス名パラメータの未チェック/ディレクトリ・トラバーサル」として説明されています。
悪用されると、設定ファイルやプログラムの中身、重要な情報が漏れたり、ファイルが改ざん・削除されたりするおそれがあります。IPAは根本的な対策として、外からの値をそのままファイル名に使わない作りにすること、ファイルを開くときは決まったディレクトリを使い、渡された値からはファイル名の部分だけを取り出すことを挙げています。
補う対策としては、Webサーバーのファイルの権限を正しく設定すること、「/」や「../」を含む値を拒むことが挙げられています。値がURLの形で符号化されている場合もあるため、検査はデコードした後の値で行います。
関連する用語
- OSコマンドインジェクション外部から入力された値の扱いの不備を突いて、Webサーバーの上でOSのコマンドを不正に実行させる攻撃と、その原因となる脆弱性です。
- 脆弱性ソフトウェアや設定にある、攻撃に悪用されうるセキュリティ上の弱点です。
- セキュアコーディング脆弱性を作り込まないように、決まった書き方や確かめ方に沿ってプログラムを書くことです。
- 脆弱性診断システムに脆弱性がないかを、専用の道具や技術者の手で調べることです。