了解しました。ご依頼は「ディレクトリトラバーサル攻撃に該当するものはどれか」という問いの特定と説明だと解釈します。最新性を踏まえつつ、日本語で分かりやすく解説します。 結論
- ディレクトリトラバーサル攻撃に該当するものは、Webアプリケーションが受け取るパラメータ(特にファイル名やパスを表す入力)を利用して、通常はアクセスできないディレクトリ階層を横断し、サーバ上の機密ファイルや設定ファイルへ不正にアクセス・取得・改ざんを試みるケースです。具体例としては、相対パスの「../」や絶対パス指定「/etc/passwd」などを不適切に処理することで、本来アクセス権限のないファイルへアクセスできてしまう状況が該当します。
背景とポイント
- アプリケーション層の問題: ユーザーからの入力をそのままファイルパスとして利用する、あるいはファイルダウンロード機能や画像表示機能でパスの検証が甘い場合に発生します。
- 想定外のファイルアクセス: サーバの設定ファイル、ログ、データベースのバックアップ、機密情報を含むファイルなど、通常は公開すべきでない情報へアクセスされるリスクがあります。
- 脆弱性の典型例: 相対パスの参照を許すパラメータを適切に検証・正規化していない場合、リモートから特定のファイルを列挙・取得されることがあります。
該当しやすいパターンの例
- ユーザー入力を直接ファイル名として扱い、任意のファイルを読み出そうとするリクエスト。
- ダウンロード機能で、ファイル名を検証せずに指定されたパスを開く実装。
- アップロード機能後の処理で、アップロード先を相対パスで決定し、想定外のディレクトリに展開・保存してしまうケース。
- ログ閲覧機能などで、パス情報を含むクエリを厳密にサニタイズせず、ファイル参照に利用するケース。
対策の要点
-入力検証と正規化:
- ユーザー入力をファイルパスとして使用する場合でも、許可するディレクトリを明確に限定するホワイトリスト方式を採用。
- 相対パスの解決後の実行パスを常に検証し、アクセス可能な範囲を厳格に絞る。
- 最小権限の原則:
- アプリケーションが読み出せるファイルと書き込み先を最小限に限定。
- webサーバやアプリケーション実行ユーザーの権限を必要最小限に設定。
 
- 例外・エラーハンドリングの強化:
- 情報漏洩を招く詳細なエラーメッセージをクライアントへ返さない。
- ファイル存在チェックやアクセス権限チェックを堅牢に実装。
 
- パス配列の検証とセキュアなAPI利用:
- ファイル取得機能はファイル名単位で許可リストを用いる、あるいはサーバ側で固定のディレクトリを事前に決定。
- 可能であればOSの機能(シンボリックリンクの抑制、ディレクトリトラバーサル対策ライブラリ)を活用。
 
まとめ
- 該当するものは、ファイル名やパスを外部入力として受け取り、それを用いてサーバ内の非公開ファイルへアクセスしようとするリクエストや処理です。相対パスの「..」や不適切なパス結合を利用して、通常アクセスできないファイルを閲覧・取得・改ざんする動作が含まれます。
- 対策としては、入力の検証・正規化、アクセス権限の最小化、適切なエラーハンドリング、そして安全なファイル取得・展開の実装が基本です。
必要であれば、具体的なケース(例:コード断片、対策チェックリスト、脆弱性診断の観点)を挙げて詳しく解説します。
