【問111】情報・サイバーセキュリティ管理士 練習問題|ディレクトリトラバーサル
サイバー攻撃と防御 問11/25難易度C(難しい)
問題文
ディレクトリトラバーサル攻撃への対策として、最も適切なものはどれか。
- 1.入力されたパスワードを一方向ハッシュ関数で変換して保存するようにする
- 2.外部から受け取った文字列をそのままシェルに渡して実行するようにする
- 3.外部から与えられたファイル名を検査し、パス指定を含む文字を排除する
- 4.利用者の入力をHTMLに出力する際に、特殊文字をエスケープするようにする
解説
正解は3。ディレクトリトラバーサル攻撃とは、ファイル名を指定するパラメータに相対パス表記を含む文字列を与え、公開領域の外にある設定ファイルやパスワードファイルを読み出す攻撃である。対策の基本は、外部から与えられたファイル名にディレクトリを示す文字を含めないよう検査し、あらかじめ用意した識別子と実ファイルの対応表を用いて間接的に指定する方式に改めることである。1は誤り。パスワードのハッシュ化は漏えい時の被害軽減策であり、ファイルの読出し自体は防げない。2は誤り。外部からの文字列をそのままシェルに渡す実装はOSコマンドインジェクションを招く危険な実装であり、対策ではない。4は誤り。出力時のエスケープはクロスサイトスクリプティングの対策である。本試験では、脆弱性ごとに対策を対応付ける形で問われる。