ITパスポート 2015年 春期 問84
問題文
クロスサイトスクリプティングに関する記述として、適切なものはどれか。
選択肢
ア:Webサイトの運営者が意図しないスクリプトを含むデータであっても、利用者のブラウザに送ってしまう脆弱性を利用する。(正解)
イ:Webページの入力項目にOSの操作コマンドを埋め込んでWebサーバに送信し、サーバを不正に操作する。
ウ:複数のWebサイトに対して、ログインIDとパスワードを同じものに設定するという利用者の習性を悪用する。
エ:利用者に有用なソフトウェアと見せかけて、悪意のあるソフトウェアをインストールさせ、利用者のコンピュータに侵入する。
🔒 解説は解答すると表示されます
クロスサイトスクリプティングに関する記述【ITパスポート 解説】
正解の理由
クロスサイトスクリプティング(XSS: Cross-Site Scripting、他サイト間スクリプティング)は、Webページに悪意のあるスクリプト(通常はJavaScript:ウェブページを動かすプログラミング言語)を埋め込み、閲覧者のブラウザ上でそのスクリプトを実行させる攻撃です。選択肢の中では、ア「Webサイトの運営者が意図しないスクリプトを含むデータであっても、利用者のブラウザに送ってしまう脆弱性を利用する。」がこの定義に合致します。
ポイントは「Webサーバや運営者の意図に反して、利用者のブラウザでスクリプトが実行される」点です。攻撃者は入力欄やURLなどを介して悪意あるスクリプトを送り、被害者のブラウザで不正な動作(クッキー窃取や画面改ざんなど)をさせます。
ポイントは「Webサーバや運営者の意図に反して、利用者のブラウザでスクリプトが実行される」点です。攻撃者は入力欄やURLなどを介して悪意あるスクリプトを送り、被害者のブラウザで不正な動作(クッキー窃取や画面改ざんなど)をさせます。
解法ステップ
- 問題文のキーワードを確認:「クロスサイトスクリプティング」「スクリプト」「ブラウザ」。
- XSSの本質を思い出す:攻撃対象は利用者のブラウザであり、サーバ上でOSコマンドが直接実行される攻撃ではない。
- 選択肢を1つずつ対照する:
- スクリプトが利用者のブラウザで実行される記述を探す → アが一致。
- サーバのOS操作、パスワードの使い回し、マルウェア配布はそれぞれ別の攻撃(後述)なので除外。
- 以上よりアが正しいと判断する。
選択肢別の誤答解説
- ア:正解。「運営者が意図しないスクリプトを含むデータ」をそのまま利用者に返してしまう脆弱性を突く攻撃で、利用者のブラウザでスクリプトが実行されます。これがXSSの定義です。
- イ:誤り。Webページの入力項目にOSの操作コマンドを埋め込んでサーバを不正操作する攻撃は、OSコマンドインジェクションやコマンド実行の脆弱性に該当します。XSSは「ブラウザでのスクリプト実行」が特徴で、直接サーバOSを操作するものではありません。
- ウ:誤り。複数サイトで同じID/パスワードを使う習性を悪用する攻撃は「クレデンシャルスタッフィング」や「パスワードの使い回し」による不正ログインです。XSSとは目的や手法が異なります。
- エ:誤り。利用者に偽の有用ソフトをインストールさせる手口は「マルウェア配布」や「トロイの木馬/ソーシャルエンジニアリング」に分類されます。XSSはブラウザ上でスクリプトを実行させる点が違います。
よくある誤解
- 「XSSはサーバを壊す攻撃だ」
誤解です。XSSの主な被害は利用者側(ブラウザ)の情報盗難やページの見た目・動作改ざんであり、サーバ自体を直接破壊するものではありません。 - 「HTTPSならXSSは防げる」
HTTPSは通信の盗聴や改ざんを防ぎますが、サイト自身が悪意あるスクリプトを返してしまう脆弱性(XSS)を防ぐものではありません。入力の扱い方が重要です。 - 「サニタイズ(無害化)だけで完全に安心」
入力の無害化(サニタイズ)や出力時のエスケープ(特殊文字を安全に変換する処理)は重要ですが、脆弱な箇所を見落とすと防げない場合があります。多層防御が必要です。
補足コラム
- XSSの種類(簡単な説明)
- ストアドXSS(保存型):攻撃スクリプトがサーバ側に保存され、閲覧者全員に配信される。掲示板やコメント欄で危険。
- リフレクトXSS(反射型):攻撃スクリプトがURLやフォームに含まれ、特定のリクエストでのみ実行される。メールや偽リンクで誘導されることが多い。
- DOMベースXSS:ページ上のJavaScriptが入力を直接扱う際に起きる。ページ内の動的処理に原因がある。
- 防御の基本対策(用語説明を含む)
- 入力検証(バリデーション):入力データが期待どおりかチェックすること。
- 出力エスケープ(エスケープ処理):HTMLでは特殊文字を安全な形に変換して表示すること(例:< を < にする)。
- コンテンツセキュリティポリシー(CSP: Content Security Policy、ページで許可するスクリプトやリソースを制限する仕組み)を設定する。
- 実例(単純な攻撃例)
- 攻撃者がコメント欄に次のようなタグを投稿すると、閲覧者のブラウザでスクリプトが実行されます。
<script>alert('XSS')</script> - 運営側がこの入力をそのままページに表示すると、閲覧者のブラウザでアラートが出ます。実際の攻撃はこれよりずっと悪質です(クッキー窃取や誘導など)。
- 攻撃者がコメント欄に次のようなタグを投稿すると、閲覧者のブラウザでスクリプトが実行されます。
FAQ
Q1: XSSで盗まれる情報は何ですか?
A1: よく狙われるのはブラウザで管理されるクッキー(ログイン情報など)や、ページ上の個人情報、フォーム入力内容です。盗んだ情報で不正ログインや詐欺に使われます。
A1: よく狙われるのはブラウザで管理されるクッキー(ログイン情報など)や、ページ上の個人情報、フォーム入力内容です。盗んだ情報で不正ログインや詐欺に使われます。
Q2: 開発者として何をすればよいですか?
A2: 入力は検証し、出力時に適切なエスケープを行うこと。さらにCSPを導入し、多層で対策することが重要です。
A2: 入力は検証し、出力時に適切なエスケープを行うこと。さらにCSPを導入し、多層で対策することが重要です。
Q3: 一般ユーザとしてできる対策は?
A3: 不審なリンクをクリックしない、信頼できないサイトにログイン情報を入力しない、ブラウザと拡張機能を最新に保つことが有効です。加えて、サイトに入力する際は内容を確認する習慣を持つとよいです。
A3: 不審なリンクをクリックしない、信頼できないサイトにログイン情報を入力しない、ブラウザと拡張機能を最新に保つことが有効です。加えて、サイトに入力する際は内容を確認する習慣を持つとよいです。
関連キーワード: クロスサイトスクリプティング、XSS、入力検証、出力エスケープ、CSP、ストアドXSS、リフレクトXSS、DOMベースXSS、サニタイズ、マルウェア、コマンドインジェクション、クレデンシャルスタッフィング

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

