STITストラテジスト試験 午前Ⅰ

平成26年度秋期 ITストラテジスト 午前Ⅰ 問14

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

問題

Web アプリケーションにおけるセキュリティ上の脅威と対策の適切な組合せはどれか。

選択肢

  1. ア
    OS コマンドインジェクションを防ぐために,Web アプリケーションが発行するセッション ID を推測困難なものにする。
  2. イ
    SQL インジェクションを防ぐために,Web アプリケーション内でデータベースへの問合せを作成する際にバインド機構を使用する。
  3. ウ
    クロスサイトスクリプティングを防ぐために,外部から渡す入力データを Web サーバ内のファイル名として直接指定しない。
  4. エ
    セッションハイジャックを防ぐために,Web アプリケーションからシェルを起動できないようにする。
解き方のヒントを見る

脅威と対策の対応を考える視点

選択肢を読むときは、個別の用語の印象だけで判断せず、想定される影響をどの対象に対して抑えようとしている対策なのかという対応の軸を一つずつ確認しましょう。意識すると、説明同士のつながりを落ち着いて比べられます。

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

確認する観点は、脅威が生じたときに守る対象と、対策が働きかける対象が同じ課題を向いているかです。名称の類似や単独の印象ではなく、目的の対応だけを丁寧に見取りましょう。

視点

脅威と対策を結び付ける際は、用語の暗記よりも、何を守るための説明か、どの課題に対する働きかけかという関係を意識します。選択肢ごとの説明を同じ観点で読み、対応の筋道が自然かを確かめてください。

確認ポイント

  • その記述が前提としている守る対象を、短い言葉で整理する
  • 対策の目的が、記述された課題と同じ方向を向いているか確認する
  • 用語の似ているかではなく、脅威と対策の関係が説明としてつながるかを見る
正解と解説を見る

正解

イ

解説

Webアプリケーションの脅威ごとに、攻撃対象と対策の作用点は異なる。SQLインジェクションでは、入力値がSQL文の構造として解釈されないように問合せを分離して扱うことが重要です。

理由

SQLインジェクションは、入力値がSQL文の一部として解釈されることで発生する。データベース問合せのパラメータをバインド機構で値として扱えば、入力値によるSQL文の構造変更を防ぎやすい。したがって、脅威と対策の組合せとして適切です。

比較

セッションIDの推測困難化はセッション情報の不正利用への対策であり、OSコマンドインジェクションとは対象が異なる。ファイル名の直接指定を避ける対策は、XSSの中心であるブラウザへのスクリプト出力とは一致しない。シェル起動制限もセッションハイジャックの対策ではありません。

選択肢ア

これは不正解だよ。セッションIDを推測困難にする対策は、攻撃者が他人のセッションを利用する問題への対策である。一方、OSコマンドインジェクションは、外部入力がOSコマンドとして実行されることが問題なので、両者は防御対象が異なる。

選択肢イ(正解)

これは正解だよ。SQLインジェクションは、入力値がデータベース問合せのSQL構文として解釈されることで発生する。問合せ作成時にバインド機構を使うと、SQL文の構造と入力値を分離して扱えるため、入力値による問合せの改変を防止できる。

選択肢ウ

これは不正解だよ。外部入力をWebサーバ内のファイル名として直接指定しない対策は、ファイル参照やパス操作に関する問題への対策として考えられる。クロスサイトスクリプティングは、入力内容がWebページに出力され、ブラウザでスクリプトとして実行されることが問題である。

選択肢エ

これは不正解だよ。Webアプリケーションからシェルを起動できないようにすることは、外部入力によるOSコマンド実行の防止に関係する。セッションハイジャックはセッション情報を不正に利用する脅威なので、シェル起動制限では直接防げない。

学習のポイント

脅威の種類と、それに直接作用する対策技術を対応づけて覚える。

出典:独立行政法人 情報処理推進機構(IPA)平成26年度秋期 ITストラテジスト試験 午前Ⅰ 問14(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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