応用情報技術者 2015年 春期 午前2 問46
問題文
ディレクトリトラバーサル攻撃はどれか。
選択肢
ア:OSの操作コマンドを利用するアプリケーションに対して、攻撃者が、OSのディレクトリ作成コマンドを渡して実行する。
イ:SQL文のリテラル部分の生成処理に問題があるアプリケーションに対して、攻撃者が、任意のSQL文を渡して実行する。
ウ:シングルサインオンを提供するディレクトリサービスに対して、攻撃者が、不正に入手した認証情報を用いてログインし、複数のアプリケーションを不正使用する。
エ:入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して、攻撃者が、上位のディレクトリを意味する文字列を入力して、非公開のファイルにアクセスする。(正解)
ディレクトリトラバーサル攻撃はどれか【午前2 解説】
要点まとめ
- 結論:ディレクトリトラバーサル攻撃は、入力値に「../」などの上位ディレクトリを示す文字列を含めて、意図しないファイルにアクセスする攻撃です。
- 根拠:攻撃者はファイルパスの組み立て処理の脆弱性を突き、非公開ファイルやシステムファイルにアクセス可能となります。
- 差がつくポイント:OSコマンドインジェクションやSQLインジェクション、認証情報の不正利用と混同せず、ファイルパス操作に関する攻撃であることを正確に理解することが重要です。
正解の理由
選択肢エは、入力文字列からファイル名を組み立てる際に「../」などの上位ディレクトリを示す文字列を悪用し、非公開ファイルにアクセスする攻撃を説明しています。これがディレクトリトラバーサル攻撃の典型的な手法であり、正解です。
よくある誤解
ディレクトリトラバーサル攻撃は、OSコマンドの実行やSQL文の操作ではなく、ファイルパスの不正操作に関する攻撃である点を誤解しやすいです。
解法ステップ
- 問題文の「ディレクトリトラバーサル攻撃」の意味を確認する。
- 各選択肢の攻撃手法を理解し、ファイルパス操作に関するものを探す。
- 「上位ディレクトリを意味する文字列を入力して非公開ファイルにアクセスする」説明が該当する選択肢を選ぶ。
- 他の選択肢はOSコマンドインジェクション、SQLインジェクション、認証情報の不正利用であることを確認し除外する。
選択肢別の誤答解説
- ア: OSコマンドインジェクションの説明であり、ディレクトリトラバーサルとは異なります。
- イ: SQLインジェクションの説明で、データベース操作に関する攻撃です。
- ウ: 不正認証情報を用いたアクセスであり、認証の問題でディレクトリトラバーサルではありません。
- エ: ファイルパスの不正操作によるディレクトリトラバーサル攻撃の正しい説明です。
補足コラム
ディレクトリトラバーサル攻撃は、Webアプリケーションのファイルアクセス処理で特に注意が必要です。入力値の検証不足により、攻撃者が「../」などを使ってサーバーのルートディレクトリ外のファイルにアクセスし、機密情報を盗み出すリスクがあります。対策としては、入力値の正規化やホワイトリストによる検証、ファイルアクセスの権限管理が重要です。
FAQ
Q: ディレクトリトラバーサル攻撃とOSコマンドインジェクションの違いは何ですか?
A: ディレクトリトラバーサルはファイルパスの不正操作でファイルアクセスを狙う攻撃、OSコマンドインジェクションはOSコマンドの不正実行を狙う攻撃です。
A: ディレクトリトラバーサルはファイルパスの不正操作でファイルアクセスを狙う攻撃、OSコマンドインジェクションはOSコマンドの不正実行を狙う攻撃です。
Q: なぜ「../」がディレクトリトラバーサル攻撃で使われるのですか?
A: 「../」は上位ディレクトリを示す相対パスで、これを使うことで本来アクセスできないディレクトリやファイルに移動できるためです。
A: 「../」は上位ディレクトリを示す相対パスで、これを使うことで本来アクセスできないディレクトリやファイルに移動できるためです。
関連キーワード: ディレクトリトラバーサル、ファイルパス操作、OSコマンドインジェクション、SQLインジェクション、セキュリティ脆弱性、Webアプリケーションセキュリティ

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

