情報処理安全確保支援士試験 2023年 秋期 午前201


Webアプリケーションソフトウェアの脆弱性を悪用する攻撃手法のうち、入力した文字列がPHPのexec関数などに渡されることを利用し、不正にシェルスクリプトを実行させるものは、どれに分類されるか。
HTTPヘッダインジェクション
OSコマンドインジェクション(正解)
クロスサイトリクエストフォージェリ
セッションハイジャック

解説

Webアプリケーションの脆弱性を悪用する攻撃手法【午前2 解説】

要点まとめ

  • 結論:入力文字列をexec関数に渡し不正にシェルコマンドを実行させる攻撃は「OSコマンドインジェクション」です。
  • 根拠:exec関数は外部コマンドを実行するため、入力値を適切に検証しないと任意のコマンドが実行されてしまいます。
  • 差がつくポイント:攻撃の対象がOSのコマンド実行であることを理解し、他の攻撃手法と混同しないことが重要です。

正解の理由

「イ: OSコマンドインジェクション」が正解です。
PHPのexec関数はシェルコマンドを実行する関数であり、ユーザーからの入力を直接渡すと、悪意あるコマンドが実行される危険があります。これがOSコマンドインジェクション攻撃の典型例です。
他の選択肢はHTTPヘッダ操作やセッション乗っ取り、クロスサイトリクエストフォージェリなど異なる攻撃手法であり、exec関数のようなコマンド実行とは関係ありません。

よくある誤解

OSコマンドインジェクションとクロスサイトスクリプティング(XSS)を混同しやすいですが、XSSはブラウザ上のスクリプト実行を狙う攻撃です。
また、HTTPヘッダインジェクションはHTTPヘッダの改ざんを狙うもので、コマンド実行とは異なります。

解法ステップ

  1. 問題文の「PHPのexec関数に渡される」とある部分に注目する。
  2. exec関数はOSのコマンドを実行する関数であることを思い出す。
  3. 入力値を利用して不正にシェルスクリプトを実行する攻撃はOSコマンドインジェクションであると判断する。
  4. 他の選択肢の特徴と照らし合わせて、攻撃手法を正確に区別する。

選択肢別の誤答解説

  • ア: HTTPヘッダインジェクション
    HTTPヘッダの改ざんや不正挿入を狙う攻撃であり、OSコマンドの実行とは無関係です。
  • イ: OSコマンドインジェクション
    正解。入力値を通じてOSコマンドを不正実行させる攻撃手法です。
  • ウ: クロスサイトリクエストフォージェリ
    ユーザーの意図しないリクエストを第三者が送信させる攻撃で、コマンド実行とは異なります。
  • エ: セッションハイジャック
    セッション情報を盗んで不正ログインする攻撃であり、コマンド実行とは関係ありません。

補足コラム

OSコマンドインジェクションは、Webアプリケーションが外部コマンドを実行する際に入力値を適切に検証しない場合に発生します。
対策としては、入力値の厳格なバリデーションやホワイトリスト方式の採用、exec関数の使用回避や安全なAPIの利用が推奨されます。
また、Webアプリケーションの脆弱性は多岐にわたるため、攻撃手法の特徴を正確に理解することが重要です。

FAQ

Q: OSコマンドインジェクションとクロスサイトスクリプティングの違いは何ですか?
A: OSコマンドインジェクションはサーバー上でOSコマンドを実行させる攻撃、XSSはブラウザ上でスクリプトを実行させる攻撃です。
Q: exec関数を使う際の安全対策は?
A: 入力値の検証やエスケープ、可能ならばexec関数の使用を避けることが安全対策です。

関連キーワード: OSコマンドインジェクション, PHP exec関数, Webアプリケーション脆弱性, セキュリティ対策, シェルスクリプト実行
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ