San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
San Antonio API Security Summit 2025 に参加しよう!
閉じる
プライバシー設定
ウェブサイト運営に必要なCookieや類似技術を使用しています。追加のCookieは貴社の同意がある場合のみ利用されます。同意は「Agree」をクリックすることでいただけます。どのデータが収集され、どのようにパートナーと共有されているかの詳細は、Cookieポリシープライバシーポリシーをご確認ください。
Cookieは、貴社デバイスの特性や、IPアドレス、閲覧履歴、位置情報、固有識別子などの特定の個人情報を取得、解析、保存するために使用されます。これらのデータは様々な目的で利用されます。分析Cookieによりパフォーマンスを評価し、オンライン体験やキャンペーンの効果向上に役立てます。パーソナライズCookieは、利用状況に応じた情報やサポートを通じ、貴社専用の体験を提供します。広告Cookieは、第三者が貴社のデータをもとにオーディエンスリストを作成し、ソーシャルメディアやネット上でのターゲット広告に使用します。貴社は各ページ下部のリンクから、いつでも同意の許可、拒否、または撤回が可能です。
ご送信ありがとうございます。内容を受け付けました。
申し訳ありません。フォーム送信時にエラーが発生しました。
/
/
Attacks

パストラバーサル攻撃

はじめに

例えば、会員管理を利用して www.magazine.com/accounts/data/news/commentary.html のファイルにアクセスしたとします。その後、URL内の他の場所、例えば www.magazine.com/accounts/data/news や www.magazine.com/accounts/information にもアクセスして、隠された情報を探します。このガイドでは、パストラバーサルの脆弱性とその攻撃手法について説明します。

著者
パストラバーサル攻撃

パストラバーサル攻撃とは

パストラバーサル攻撃(ディレクトリクロッシングとも呼ばれる)の目的は、ウェブルート外に保存されたファイルやフォルダにアクセスすることです。攻撃者は、ファイルパス内の「../」パターンや直接のファイルパスを操作することで、サーバ上にあるアプリのソースコードや設定ファイルなど、さまざまなファイルやフォルダに到達できる可能性があります。ただし、オペレーティングシステムのアクセス制御によって、ファイルの利用が制限される場合もあります(例:Microsoft Windowsでファイルがロックされている場合など)。

攻撃者はどのようにパストラバーサルを利用するか

攻撃者は、パストラバーサルに対して脆弱なシステムを利用し、ルートフォルダから脱出してサーバ内の他の領域にアクセスします。これにより、本来隠されているファイルの閲覧が可能になり、さらなる攻撃に利用できる情報を得る恐れがあります。

攻撃者は、サイトのアクセス設定に合わせてクライアントを装いながらコマンドを実行します。そのため、攻撃はサイトクライアントに許可されたシステム内でのみ行われます。

Path Traversal Example
Path Traversal Example

ディレクトリトラバーサルの例

  1. ディレクトリトラバーサル攻撃のWebアプリコード例

動的ページを持つWebアプリでは、ソフトウェアがGETやPOSTリクエストなどで入力を受け取ります。以下は、HTTP GETリクエストのURL例です。

GET http://test.webarticles.com/show.asp?view=oldarchive.html HTTP/1.1

対象: test.webarticles.com

ソフトウェアは、このURLとともにパラメータ view に oldarchive.html の値を送り、サーバ上の主要なページである show.asp を要求します。show.asp はサーバのファイルシステムから oldarchive.html を取得し、表示してソフトウェアに返す仕組みです。show.asp がファイルシステムにアクセスできる前提で、攻撃者は以下のようにURLを変更します。

GET http://test.webarticles.com/show.asp?view=../../../../../Windows/system.ini HTTP/1.1

対象: test.webarticles.com

主要なページは、ファイルシステムから system.ini を取得して表示します。通常、../ という表記は1階層上のフォルダへ移動する指示です。攻撃者は、Windowsのルートフォルダに到達するために必要な階層数を試しながら見極めます。

  1. HTTPサーバを狙ったディレクトリトラバーサル攻撃の例

ソフトウェアの脆弱性に加え、HTTPサーバ自体にもディレクトリトラバーサル攻撃の脆弱性が存在する場合があります。この問題は、HTTPサーバソフトウェアやサーバ上に配置されたデフォルトのコンテンツファイルに見られます。

最新のHTTPサーバソフトウェアでは修正されていますが、旧バージョンのIISやApacheが稼働しているサーバでは、依然としてパストラバーサル攻撃に対して脆弱なケースがあります。また、Webホスティングソフトウェアで問題が解決されていたとしても、開発者向けの基本的なデフォルトスクリプトフォルダが存在することがあります。

例えば、IISのコンテンツディレクトリを利用してフォルダを一覧し、リクエストを実行するURLが作成される場合があります。

GET http://server.com/scripts/../Windows/System32/cmd.exe?/c+dir+c: GET http://server.com/scripts/../Windows/System32/cmd.exe?/c+dir+c: HTTP/1.1

server.com はサイトのホストです。

cmd.exeというシェルコマンドを実行し、シェル上で「dir c:」を実行することで、Cドライブ内の全ファイル一覧がクライアントに返されます。URL内で使われる %5c は、特殊文字を管理するHTTPサーバのエスケープコードです。ここでは、そのコードが利用されています。

最新のウェブサーバソフトウェアは、これらのエスケープコードを検出し通過させないようになっています。しかし、あらかじめ設定された一部のルートディレクトリにはこの制御が及ばず、攻撃者が利用するケースがあります。

Directory Traversal Attack

パストラバーサルに関する脆弱性はどうチェックするか

パストラバーサル攻撃に対してWebサイトやWebアプリが脆弱かどうか調べる最適な方法は、Web脆弱性スキャナを使用することです。Web脆弱性スキャナはサイト全体をチェックし、ファイル参照に関する問題を検出します。検出された脆弱性とその対策方法を提示してくれます。また、アプリのスキャナは、SQLインジェクションやクロスサイトスクリプティングなどの他のWeb攻撃も一緒に検出します。

安全を確保する方法

脆弱性を把握する

  • システムが渡されたファイル名をどのように処理するか確認する。
  • 重要な設計書類は、ウェブルート外に保管するのが望ましい。
  • Windows IISサーバでは、ルートディレクトリがシステムドライブ上にないようにし、上層フォルダへの再帰的な移動を防ぐ。

パストラバーサル攻撃を防ぐには

堅牢なアプリでは、開発ライフサイクル(SDLC)全体で、クライアントからの入力検証が必須です。開発初期から担当エンジニアやテストチームがこれらの脆弱性を認識し、対策を講じる必要があります。パストラバーサル攻撃を防ぐ方法は以下の通りです。

  • ファイルシステムを操作する際は、クライアント入力に依存しない。
  • やむを得ずクライアント入力に依存する場合は、そのデータやパスを実行前に正規化し、先頭部分が許可されたフォルダと一致するかを再確認する。
  • ファイルやフォルダのURIリクエストを作成する際、リクエストが直接ファイルアクセスにならないよう処理し、該当ファイルやフォルダの完全パスを構築、全ての文字を正規化する(例:%20をスペースに変換する)。
  • HTTPサーバ上のシステムと主要なアプリファイルは分離して保管し、機密ファイルを公開フォルダに置かない。こうすることで、問題発生時のリスクが軽減される。
  • 管理者やスーパーユーザーのアカウントは、必要最小限のファイル権限以外でHTTPサーバの運用に用いるべきではなく、サーバ自体がファイルに書き込むことは避け、すべてのクライアントデータは別のデータベースに保存する。

Wallarmはどのように貴社を助けられるか

Wallarmは、SQLインジェクションクロスサイトスクリプティング、ディレクトリトラバーサル、APIセキュリティなど、さまざまなWebの脆弱性を検査してサイトを守ります。ログイン画面、ショッピングカート、フォーム、動的コンテンツなどのパスワードの安全性も確認します。スキャン完了後、検出された脆弱性の詳細情報を提供します。

FAQ

参考資料

最新情報を購読

更新日:
February 25, 2025
学習目標
最新情報を購読
購読
関連トピック