平成27年度 春期 午前 問46
セキュリティ
ディレクトリトラバーサル攻撃
ディレクトリトラバーサル攻撃はどれか。
- アOS の操作コマンドを利用するアプリケーションに対して,攻撃者が,OS のディレクトリ作成コマンドを渡して実行する。
- イSQL 文のリテラル部分の生成処理に問題があるアプリケーションに対して,攻撃者が,任意の SQL 文を渡して実行する。
- ウシングルサインオンを提供するディレクトリサービスに対して,攻撃者が,不正に入手した認証情報を用いてログインし,複数のアプリケーションを不正使用する。
- エ入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して,攻撃者が,上位のディレクトリを意味する文字列を入力して,非公開のファイルにアクセスする。
答えと解説を見る
✓ これが正解エ入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して,攻撃者が,上位のディレクトリを意味する文字列を入力して,非公開のファイルにアクセスする。
解説
上の階層をたどって公開範囲の外を読む攻撃です。
設問は、ディレクトリトラバーサル攻撃がどれかを選ばせています。トラバーサルとはたどるという意味で、名前のとおり、ファイルを置いた木の構造をたどって、公開する気のなかった場所まで出てしまう攻撃です。鍵になるのは、上位のディレクトリを意味する文字列です。入力された文字列をそのままファイル名の一部として組み立てる作りになっていると、指定する名前の前に上へ戻る記号を並べるだけで、本来の置き場所より上へ抜け出せます。ですから、入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して、上位のディレクトリを意味する文字列を入力して、非公開のファイルにアクセスするという記述が当てはまります。要求の形はふつうの閲覧と変わらないので、記録を眺めても気づきにくいところが厄介です。防ぐには、入力をファイル名として使わず番号などから表で引く、上へ戻る記号を含む入力を受け付けない、Webサーバの権限を必要最小限にする、といった手当てを重ねます。
ほかの選択肢はなぜ違うのか
- アOS の操作コマンドを利用するアプリケー…:渡した文字列がOSへの命令として解釈される型の話で、狙いは機器の上で好きな処理を走らせることです。組み立てた先が命令なのかファイルの位置なのかが、分かれ目になります。
- イSQL 文のリテラル部分の生成処理に問題…:渡した文字列がデータベースへの問合せ文として解釈される型で、SQL インジェクションと呼ばれます。取り出されるのは表の中身であって、公開範囲の外に置かれたファイルではありません。
- ウシングルサインオンを提供するディレクトリ…:盗んだ認証情報でシングルサインオンの仕組みにログインし、複数の機能を使う話です。ディレクトリという語が同じだけで、渡した文字列は資格情報として扱われ、階層をたどる動きはありません。
この問題の用語
- ディレクトリトラバーサルパス名を使ってファイルを指定し、見せる気のないファイルを読む攻撃です。命令文を送り込んで実行させるSQLインジェクションとは別です。
- 認証名乗ったとおりの本人か、通信の相手が本物かを確かめる手続き。ここを経ずに入り込む裏口があると、後の許可の仕組みが働きません。
- ログいつ誰が何をしたかを、機器やソフトウェアが自動で残していく記録です。あとから出来事をたどれるので、事故の調査や不正の発見に使われます。
出典:平成27年度 春期 応用情報技術者試験 午前 問46
同じ用語が出る問題
- 令和7年度 春期 午前 問38:OCSPを利用する目的(認証)
- 令和6年度 秋期 午前 問46:エクスプロイトコードの説明(認証)
- 令和6年度 秋期 午前 問39:ディープフェイクに関する問題(認証)
- 平成30年度 春期 午前 問38:ディレクトリトラバーサル攻撃(ディレクトリトラバーサル)
- 平成21年度 春期 午前 問42:ディレクトリトラバーサルの問題(ディレクトリトラバーサル)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)