ホーム > 情報処理安全確保支援士試験 > 2014年 春期
情報処理安全確保支援士試験 2014年 春期 午前2 問15
Webアプリケーションの脂弱性を悪用する攻撃手法のうち,Perlのsystem関数やPHPのexec関数など外部プログラムの呼出しを可能にするための関数を利用し、不正にシェルスクリプトや実行形式のファイルを実行させるものは、どれに分類されるか。
ア:HTTPヘッダインジェクション
イ:OSコマンドインジェクション
ウ:クロスサイトリクエストフォージェリ
エ:セッションハイジャック(正解)
解説
Webアプリケーションの脆弱性を悪用する攻撃手法【午前2 解説】
要点まとめ
- 結論:外部プログラム呼び出し関数を悪用し不正にシェルや実行ファイルを実行させる攻撃は「OSコマンドインジェクション」である。
- 根拠:Perlのsystem関数やPHPのexec関数はOSコマンドを実行するため、入力値を適切に検証しないと攻撃者に任意コマンドを実行される。
- 差がつくポイント:攻撃手法の特徴を正確に理解し、HTTPヘッダ操作やセッション乗っ取りなど他の攻撃と混同しないことが重要である。
正解の理由
問題文で示された「Perlのsystem関数やPHPのexec関数など外部プログラムの呼出しを可能にする関数を利用し、不正にシェルスクリプトや実行形式のファイルを実行させる」攻撃は、まさにOSコマンドインジェクションに該当します。
これらの関数はOSのコマンドを直接実行するため、ユーザー入力を適切に検証しないと攻撃者が任意のコマンドを注入し、システムを乗っ取る危険があります。
したがって、正解はイの「OSコマンドインジェクション」です。
これらの関数はOSのコマンドを直接実行するため、ユーザー入力を適切に検証しないと攻撃者が任意のコマンドを注入し、システムを乗っ取る危険があります。
したがって、正解はイの「OSコマンドインジェクション」です。
よくある誤解
- セッションハイジャックはセッション情報の盗用であり、コマンド実行とは無関係です。
- HTTPヘッダインジェクションはHTTPヘッダ操作の脆弱性であり、OSコマンド実行とは異なります。
解法ステップ
- 問題文のキーワード「system関数」「exec関数」「外部プログラムの呼出し」を確認する。
- これらの関数がOSコマンドを実行するための関数であることを思い出す。
- 「不正にシェルスクリプトや実行形式のファイルを実行させる」という記述から、OSコマンド実行の脆弱性を示すと判断する。
- 選択肢の中から「OSコマンドインジェクション」を選ぶ。
選択肢別の誤答解説
- ア: HTTPヘッダインジェクション
HTTPヘッダの改ざんや挿入を狙う攻撃であり、OSコマンドの実行とは関係がありません。 - イ: OSコマンドインジェクション
正解。外部プログラム呼び出し関数を悪用し、任意のOSコマンドを実行させる攻撃です。 - ウ: クロスサイトリクエストフォージェリ
ユーザーの意図しないリクエストを第三者が送信させる攻撃で、コマンド実行とは異なります。 - エ: セッションハイジャック
セッションIDを盗用し不正ログインする攻撃で、コマンド実行とは無関係です。
補足コラム
OSコマンドインジェクションは、Webアプリケーションの入力値検証が不十分な場合に発生します。
対策としては、入力値の厳格な検証やホワイトリスト方式の採用、外部コマンドの実行を極力避ける設計が推奨されます。
また、PHPの
対策としては、入力値の厳格な検証やホワイトリスト方式の採用、外部コマンドの実行を極力避ける設計が推奨されます。
また、PHPの
exec
やsystem
関数の代わりに安全なAPIを利用することも重要です。FAQ
Q: OSコマンドインジェクションとSQLインジェクションはどう違いますか?
A: OSコマンドインジェクションはOSのコマンドを実行させる攻撃、SQLインジェクションはデータベース操作の不正実行を狙う攻撃です。
A: OSコマンドインジェクションはOSのコマンドを実行させる攻撃、SQLインジェクションはデータベース操作の不正実行を狙う攻撃です。
Q: クロスサイトリクエストフォージェリはどのような攻撃ですか?
A: ユーザーが意図しない操作を第三者が強制的に実行させる攻撃で、主にWebフォームやAPIを悪用します。
A: ユーザーが意図しない操作を第三者が強制的に実行させる攻撃で、主にWebフォームやAPIを悪用します。
関連キーワード: OSコマンドインジェクション, system関数, exec関数, Webアプリケーション脆弱性, セキュリティ対策