情報セキュリティ

基本情報技術者試験ディレクトリトラバーサル」の問題

情報セキュリティ情報セキュリティ難易度:hard
T社のWebアプリは、利用者が指定したファイル名を受け取り、サーバ上の公開フォルダ内の文書を表示する。診断で『ファイル名に親ディレクトリを示す文字列を含めると、公開対象外のシステムファイルが読み取れる』脆弱性が指摘された。アプリ側で講じる対策として、最も適切なものはどれか。
表示処理の応答時間を短くし、利用者の待ち時間を改善する。
読み取った文書の内容を表示の直前にすべて暗号化して保護する。
文書を開く前にログインを求め、未認証の者を画面から排除する。
指定値を直接使わず、許可済み文書を識別子から対応付けて開く。
正解
指定値を直接使わず、許可済み文書を識別子から対応付けて開く。

脆弱性の原因は『利用者指定のファイル名を検証せずファイルアクセスに使う』点にある。指定された文字列を直接パスに用いず、あらかじめ許可した文書を識別子(番号など)から内部で対応付けて開く設計にすれば、親ディレクトリ指定など範囲外への参照が成立せず、ディレクトリトラバーサルによる不正な読み取りを防げる。

?選択肢ごとの解説

ア ×応答時間の短縮は性能改善であり、ファイルパスの不正操作という脆弱性とは無関係で対策にならない。
イ ×表示前の暗号化は内容の機密性に関わる処理で、そもそも範囲外のファイルが読み取られてしまう参照経路を塞がない。
ウ ×ログイン必須化は無認証の悪用を減らすが、認証後の正規利用者や奪取アカウントから範囲外参照が可能なままで根本対策にならない。
エ ○脆弱性の原因は『利用者指定のファイル名を検証せずファイルアクセスに使う』点にある。指定された文字列を直接パスに用いず、あらかじめ許可した文書を識別子(番号など)から内部で対応付けて開く設計にすれば、親ディレクトリ指定など範囲外への参照が成立せず、ディレクトリトラバーサルによる不正な読み取りを防げる。
この問題の「深掘り・誤答の完全解説・試験のコツ・覚え方」はアプリで。

基本情報技術者試験の全問を、一問ごとにAIの8-ways解説つきで。SRS暗記カード・全真模試・弱点診断まで。まずは無料で。

無料ではじめる →

作成・校閲:ukamiru編集部 · 基本情報技術者試験 過去問 · fe-b-sec-0020

【基本情報技術者試験】ディレクトリトラバーサルの問題と解答・解説|ukamiru 過去問