令和5年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問1
テクノロジ/セキュリティWeb アプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち,入力した文字列が PHP の exec 関数などに渡されることを利用し,不正にシェルスクリプトを実行させるものは,どれに分類されるか。
出典:令和5年度 秋期 情報処理安全確保支援士試験 午前Ⅱ 問1
- アHTTP ヘッダインジェクション
- イOS コマンドインジェクション
- ウクロスサイトリクエストフォージェリ
- エセッションハイジャック
正解:イ
解説
利用者が入力した文字列が,PHP の exec 関数や system 関数などの外部コマンド実行機能に渡される場合,攻撃者は「;」や「|」などのシェルのメタ文字を含む文字列を入力することで,意図しない OS コマンドやシェルスクリプトを実行させることができます。これを OS コマンドインジェクションといいます。対策としては,シェルを起動する関数の使用を避けること,やむを得ず使う場合は入力値のエスケープやホワイトリストによる検証を行うことが挙げられます。
選択肢ごとの解説
- ア誤り。HTTP ヘッダインジェクションは,レスポンスヘッダに出力される値に改行コードを混入させ,任意のヘッダやボディを挿入する攻撃です。
- イ正しい。入力文字列がシェル経由で実行される関数に渡されることを悪用し,任意の OS コマンドやシェルスクリプトを実行させる攻撃が OS コマンドインジェクションです。
- ウ誤り。クロスサイトリクエストフォージェリは,ログイン中の利用者に意図しないリクエストを送信させ,本人の権限で処理を実行させる攻撃です。
- エ誤り。セッションハイジャックは,セッション ID を推測・盗聴・強制することで他人のセッションを乗っ取る攻撃です。