本文へスキップ

平成24年度 春期 ITパスポート試験 問77

この問題の解説と、これまでの解答の記録です。

問77
頻出度★★★

クロスサイトスクリプティングとは, Web サイトの脆弱性を利用した攻撃である。 クロスサイトスクリプティングに関する記述として, 適切なものはどれか。

出典 平成24年度 春期 ITパスポート試験 問77
解説

問 77

  • ア

    正解 正解はア。クロスサイトスクリプティング (XSS) は、利用者が入力した文字列をそのまま Web ページに出力してしまう「出力時のエスケープ処理不備」という脆弱性を突く攻撃である。攻撃者は掲示板の投稿欄や検索フォーム、確認画面などに、script タグを含む悪意あるスクリプトを紛れ込ませる。そのスクリプトはサイトが生成した HTML の一部として被害者のブラウザに届き、被害者のブラウザ上で「そのサイトのスクリプト」として実行される。その結果、同一サイトに対して発行されていたクッキー (セッション ID などを含む) が攻撃者のサーバへ送信され、なりすましや個人情報の窃取につながる。アの記述はこの「ユーザの入力データをそのまま表示するフォーム又は処理があるとき」という発生条件と、「第三者が悪意あるスクリプトを埋め込むことでクッキーなどのデータを盗み出す」という被害の形を、いずれも正確に述べている。なお被害を受けるのは主にサイト利用者 (閲覧者) 側であり、対策は入力値の検証と、出力時に HTML の特殊文字を無害化するエスケープ処理である。

  • 不正解イ

    セッションハイジャックの説明であり、XSS そのものではない。サーバとクライアントの間で確立済みの正規のセッションに割り込み、セッション ID を推測・盗用して正規利用者に成りすます攻撃を指す。スクリプトを Web ページに埋め込んで閲覧者のブラウザで実行させる、という XSS の本質的な仕組みが含まれていない点で誤り。XSS はセッション ID を盗む「手段」になり得るが、両者は別の攻撃分類である。

  • 不正解ウ

    SQL インジェクションの説明。データベースと連携する Web ページの入力欄に悪意ある SQL 文を注入し、アプリケーションが組み立てる SQL を改ざんしてサーバ側のデータベースを不正に読み書きする攻撃である。埋め込まれるのがスクリプトではなく SQL コマンドであり、実行される場所も閲覧者のブラウザではなくサーバ側のデータベースである点で XSS と異なる。

  • 不正解エ

    フィッシングの説明。電子メールなどで本物そっくりの偽サイトへ誘導し、利用者自身に ID・パスワードやクレジットカード番号を入力させて詐取する攻撃である。正規サイトの脆弱性を突くのではなく、利用者の思い違いを誘う「だます」手口が中心であり、悪意あるスクリプトの埋め込みという要素がないため XSS には当たらない。

ここがポイント
  • クロスサイトスクリプティング (XSS) の定義: 入力値をそのまま出力してしまう Web サイトの脆弱性を利用し、悪意あるスクリプトを閲覧者のブラウザ上で実行させてクッキーなどを盗む攻撃。対策は入力値の検証と出力時のエスケープ処理 (サニタイジング)。
  • 類似する Web 攻撃の切り分け: XSS (スクリプトを埋め込み閲覧者のブラウザで実行)、SQL インジェクション (SQL 文を注入しサーバのデータベースを不正操作)、セッションハイジャック (正規セッションを乗っ取り成りすまし)、フィッシング (偽サイトへ誘導して情報を詐取) を、「何を埋め込むか」「どこで実行されるか」「誰が被害を受けるか」で区別する。
用語

解答の記録