SC情報処理安全確保支援士試験 午前Ⅱ

平成30年度秋期 情報処理安全確保支援士 午前Ⅱ 問13

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

Webアプリケーションの区紅性を悪用する攻撃手法のうち、 Webページ上で入力した文字列がPerlのsystem関数やPHPのexec関数などに渡されることを利用し、 不正にシェルスクリプトを実行させるものは、 どれに分類されるか。

選択肢

  1. ア
    。HTTPヘッダインジェクション
  2. イ
    0Sコマンドインジェクション
  3. ウ
    クロスサイトリクエストフォージェリエセッションハイジャック
  4. エ
    ー8一
解き方のヒントを見る

午前II 問13:入力値がOSコマンドに化ける攻撃を見抜こう

Web画面に入力した値が、裏側で system や exec みたいな処理に渡されて、そのままOSコマンドとして実行されてしまうなら、これは OSコマンドインジェクションだよ。たとえるなら、受付用紙に書いた一言が、なぜか工場の機械を直接動かす命令として読まれてしまうようなもの。HTTPヘッダを書き換える攻撃でも、CSRFでも、セッションハイジャックでもないよ。

この問題で問われていること

この問題では、ユーザーの入力値がシェル実行に流れ込んでしまう危険性を見て、攻撃の正体を正しく分類できるかが問われているよ。ポイントは「入力値がOSコマンドとして実行されるかどうか」に注目することだよ。

OS コマンドインジェクション

アプリが受け取った文字列を OS コマンドとして解釈させてしまう点が本質であり、Web アプリ内部でのコマンド実行に直結する。

入力値\n-> system / exec\n-> OS コマンド実行

確認ポイント

  • HTTP ヘッダインジェクションではありません。
  • CSRF は他サイトから意図しない操作をさせる攻撃です。
  • OS コマンドインジェクションを選ぶ。
正解と解説を見る

正解

イ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは不正解だよ。HTTPヘッダインジェクションは、HTTPレスポンスヘッダに改行などを混ぜて、余計なヘッダや本文を差し込む攻撃だよ。たとえるなら、郵便物の宛名欄に勝手な追記を入れて配送先や扱いを変えさせる感じ。今回のポイントはHTTPヘッダではなく、サーバ上のOSコマンドを実行させることなので違うよ。

選択肢イ(正解)

これは正解だよ。利用者が入力した文字がPerlのsystem関数やPHPのexec関数などに渡されて、サーバに余計な命令を実行させてしまう攻撃はOSコマンドインジェクションだよ。たとえるなら、受付の申込用紙に名前だけ書くはずなのに『ついでに金庫を開けて』という命令まで書き足して、係の人にそのまま実行させるようなものだね。

選択肢ウ

これは不正解だよ。クロスサイトリクエストフォージェリは、ログイン中の人をだまして、本人のつもりがない操作を別サイト経由で送らせる攻撃だよ。たとえるなら、本人の印鑑を持っている状態を利用して、知らないうちに申込書を窓口へ出させる感じ。サーバにOSの命令文を混ぜて実行させる話ではないよ。

選択肢エ

これは不正解だよ。セッションハイジャックは、ログイン状態を示す合鍵のようなセッションIDを盗んで、本人になりすます攻撃だよ。たとえばホテルの部屋のカードキーを盗んで勝手に入るイメージだね。今回のように入力欄からOSコマンドを実行させる攻撃とは別物だよ。

出典:独立行政法人 情報処理推進機構(IPA)平成30年度秋期 情報処理安全確保支援士試験 午前Ⅱ 問13(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針