ディレクトリ・トラバーサルとは何か?

ディレクトリ・トラバーサル攻撃とは?

ディレクトリ・トラバーサル攻撃は、Webアプリケーションの脆弱性を悪用し、本来アクセスできないファイルやディレクトリにアクセスする攻撃手法です。攻撃者は、Webブラウザなどを通して不正なパス情報を送信することで、意図的にサーバー上のファイルを読み取ったり、改ざんしたり、削除したりすることが可能です。

攻撃の手口

ディレクトリ・トラバーサル攻撃は、主に以下の2つの方法で実行されます。

1. 相対パスの利用

Webアプリケーションは、ユーザー入力を受け取ってファイルパスを生成する場合があります。攻撃者は、この入力に「../」のような相対パスを含めることで、本来アクセスできない上位ディレクトリにアクセスしようとします。

例:

  • 正常なパス:/images/logo.png
  • 攻撃的なパス:../../../../etc/passwd

2. 特殊文字の利用

一部のWebアプリケーションは、ファイルパスに特殊文字を使用できないように制限しています。しかし、攻撃者は、エンコードされた特殊文字などを使用することで、この制限を回避しようとします。

例:

  • 正常なファイル名:index.html
  • 攻撃的なファイル名:%2E%2E%2F%65%74%63%2F%70%61%73%73%77%64 (エンコードされた../passwd)

攻撃の影響

ディレクトリ・トラバーサル攻撃によって、以下のような被害が発生する可能性があります。

  • 機密情報の漏洩:パスワードファイルや顧客情報など、本来アクセスできないファイルが読み取られる可能性があります。
  • ファイルの改ざん:Webサイトのコンテンツやプログラムファイルが改ざんされ、不正な動作を引き起こされる可能性があります。
  • システムの乗っ取り:脆弱性が悪用され、サーバーの制御権が奪われる可能性があります。

攻撃対策

ディレクトリ・トラバーサル攻撃を防ぐためには、以下の対策が有効です。

  • 入力チェックの強化:ユーザー入力を受け取る際には、許可されていない文字やパスが含まれていないか厳密にチェックする必要があります。
  • 出力エンコーディングの適切な設定:ファイルパスを出力する際には、特殊文字が適切にエンコードされていることを確認する必要があります。
  • 安全なファイルパーミッションの設定:アクセス権限を適切に設定することで、攻撃者がアクセスできるファイルを制限することができます。
  • Webアプリケーションファイアウォールの利用:Webアプリケーションファイアウォール(WAF)などのセキュリティ対策ツールを導入することで、攻撃を検知してブロックすることができます。

まとめ

ディレクトリ・トラバーサル攻撃は、Webアプリケーションの脆弱性を悪用する攻撃手法です。攻撃を防ぐためには、入力チェックの強化、出力エンコーディングの適切な設定、安全なファイルパーミッションの設定などの対策を講じる必要があります。

参考資料