情報セキュリティの基礎

Webアプリケーションが、URLのパラメータで指定されたファイル名を、公開用のフォルダの名前とつなげて読み出して表示している。ファイル名に ../ を含む値を指定されると、公開用のフォルダの外にある設定ファイルなどを読み出されてしまう。この攻撃の名前と対策の組み合わせとして正しいものはどれか。

  1. Aクロスサイトスクリプティング。出力するときに < や > をエスケープする
  2. Bディレクトリトラバーサル。ファイルの名前を長くして推測されにくくする
  3. Cディレクトリトラバーサル。ファイル名を外部から直接指定させない設計にするか、パスを正規化したうえで公開用のフォルダの中にあることを確かめる
答えと解説を見る

正解:C. ディレクトリトラバーサル。ファイル名を外部から直接指定させない設計にするか、パスを正規化したうえで公開用のフォルダの中にあることを確かめる

ディレクトリトラバーサル(パストラバーサル)は、../ のような「1つ上のディレクトリ」を表す記号を使って、アプリケーションが想定したフォルダの外にあるファイルを読み出したり書き換えたりする攻撃です。外部から受け取った値をそのままファイルのパスに使っていることが原因です。対策は、まず、ファイル名を外部から直接指定させず、決められた番号やIDからサーバの側でファイルを選ぶ設計にすることです。外部の値を使う場合は、パスを正規化して(../ などを解決して)、結果が許可したフォルダの中にあるかを確かめます。さらに、アプリケーションを動かすアカウントの権限を最小にして、読めるファイルを限っておけば、万一のときの被害を小さくできます。ファイル名を長くしても、../ でフォルダの外へ出られることは変わりません。

  • A. ../ でフォルダの外のファイルを読む攻撃はXSSではなく、エスケープでは防げません。
  • B. 名前は正しいですが、ファイル名を長くしても、../ でフォルダの外に出られることは変わりません。
  • C. 正しい。外部の値でパスを作らない設計にするか、正規化したパスが許可したフォルダの中にあることを確かめます。
この分野を解く 分野ページへ

関連する計算ツール

情報セキュリティの基礎の参考書を探す PR

Amazonの検索結果へのリンクです。Amazonのアソシエイトとして、半導体教室は適格販売により収入を得ています。

情報セキュリティの基礎のほかの問題

  1. Webアプリケーションで、ログインの前と後で同じセッションIDを使い続けていると、攻撃者があらかじめ用意したセッションIDを利用者に使わせ、利用者がログインした後にそのIDで利用者になりすますおそれがある。この攻撃への対策として最も適切なものはどれか。
  2. DDoS攻撃の説明として正しいものはどれか。
  3. ゼロデイ攻撃の説明として正しいものはどれか。
  4. 脆弱性の管理で使われるCVEとCVSSの説明の組み合わせとして正しいものはどれか。
  5. 社員のPCで、ファイルの拡張子が次々に変わり、身代金を要求する画面が表示された。この社員がまず行う対応として最も適切なものはどれか。