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

平成22年度春期 情報処理安全確保支援士 午前Ⅰ 問14

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

問題

SQLインジェクションの説明はどれか。

選択肢

  1. ア
    Webアプリケーションに悪意のある入力データを与えてデータベースの問合せや操作を行う命令文を組み立てて、 データを改ざんしたり不正に情報取得したりする攻軸
  2. イ
    悪意のあるスクリプトが埋め込まれたWebページを訪問者に閲覧させて、 別のWebサイトで、 その訪問者が意図しない操作を行わせる攻撃
  3. ウ
    市販されているデータベース管理システムの騰静性を利用して、 宿主となるデータベースサーバを探して自己伝染を繰り返し、 インターネットのトラフィックを急増させる攻撃
  4. エ
    訪問者の入力データをそのまま画面に表示するWebサイトに対して、 悪意のあるスクリプトを埋め込んだ入力データを送り、 訪問者のブラウザで実行させる攻撃
解き方のヒントを見る

入力フォームに「SQLの命令」をこっそり混ぜて、裏側のデータベースをハッキングする

代表的なWeb攻撃「SQLインジェクション」の問題だよ。入力フォームに「 OR '1'='1' 」のような特殊な文字を入れることで、システムが裏側で自動組み立てするSQLデータベースの命令文をバグらせ、本来は見えないデータを盗み出したり、消去したりする攻撃なんだ。プログラムが入力値を「単なる文字列」ではなく「SQLの命令」として実行しちゃうのが原因だよ。

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

ブラウザ上で動く「XSS(クロスサイトスクリプティング)」や「CSRF」とは違って、「サーバーのデータベースシステム(DBMS)に対して、悪意ある命令(SQL)を直接実行させる攻撃」であることを見抜こう。

SQL インジェクションの本質

攻撃者は入力欄に SQL 構文を混ぜ込み、アプリケーションに意図しない問合せや更新を実行させます。ブラウザでスクリプトを動かす攻撃や、利用者を別サイト操作に誘導する攻撃とは対象が違います。

入力値 -> SQL 文へ混入\nDB が意図しない問合せ/更新を実行

確認ポイント

  • ブラウザで悪意あるスクリプトを実行させる説明は XSS です。
  • 利用者に意図しない操作をさせる説明は CSRF に近いです。
  • データベースへの問合せや更新命令文を組み立てる点に注目しましょう。
正解と解説を見る

正解

イ

出典

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

選択肢ア

これが正解だよ。SQLインジェクションは、Webアプリの入力欄に普通の名前や検索語ではなく、データベースへの命令文をこっそり混ぜる攻撃だよ。窓口の申込用紙に「ついでに金庫も開けて」と書いて、係の人がそのまま命令として処理してしまう感じだね。データの改ざんや不正取得につながるので、この説明がぴったりだよ。

選択肢イ(正解)

これは不正解だよ。これはクロスサイトリクエストフォージェリ(CSRF)の説明だね。ログイン中の人に、知らないうちに別サイトの注文ボタンを押させるようなイメージだよ。本人のブラウザを利用して意図しない操作をさせる攻撃で、データベース命令を直接混ぜ込むSQLインジェクションとは別物だよ。

選択肢ウ

これは不正解だよ。これはDBMSの弱点を使って次々に別のサーバへ広がるワームのような攻撃の説明だね。風邪が人から人へうつって街全体に広がるイメージだよ。SQLインジェクションは、Webアプリの入力欄からデータベースへの命令をねじ込む攻撃なので、自己伝染する話ではないよ。

選択肢エ

これは不正解だよ。これはクロスサイトスクリプティング(XSS)の説明だね。掲示板に貼られたメモをそのまま店内に掲示したら、実はそのメモに「見た人をだます指示」が書いてあった、みたいな攻撃だよ。問題が聞いているSQLインジェクションはデータベースをだます攻撃なので、ブラウザでスクリプトを動かすこの説明とは違うよ。

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

関連する過去問一覧

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