忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】閲覧者のブラウザを乗っ取る!「XSS」の全貌|情報処理問題1000本ノック

攻撃の矛先はサーバーではなく、サイトを見に来た「あなた」。ブラウザという身近な場所で起こる深刻な被害を攻略しましょう。

1. 【 問題 】:XSS(クロスサイトスクリプティング)の被害

【 問題 】 Webアプリケーションの脆弱性を利用し、閲覧者のブラウザ上で不正なスクリプトを実行させる「クロスサイトスクリプティング(XSS)」によって引き起こされる被害として、適切なものはどれでしょうか?

① 閲覧者のブラウザに保存されているクッキー(セッション情報)が盗まれる
② 閲覧者のブラウザ上で、偽の入力フォームが表示され情報が入力させられる
③ 閲覧者の権限を利用して、Webサイト上で意図しない操作を行わされる
④ 上記のすべて

2. 正解:Webセキュリティに関する正解

正解: ④ 上記のすべて

3. 解説:なぜ「すべての被害」が起こるのか?

XSSの本質は、攻撃者が用意した「悪意のあるJavaScript」を、被害者のブラウザに「そのサイトの正規のプログラム」だと思い込ませて実行させることにあります。

【図解:被害のバリエーション】

■ クッキー(Cookie)の奪取
・ログイン状態を管理するセッションIDが盗まれ、攻撃者にアカウントを乗っ取られます。

■ 画面の改ざん(フィッシング)
・正規のサイトの一部を書き換えて「エラーです。再度パスワードを入力してください」といった偽のフォームを出し、情報を盗みます。

■ 意図しない操作の強制
・被害者が気づかないうちに、掲示板への書き込みや商品購入などのリクエストを勝手に送信させます。
[ 防御の決定打 ]
エスケープ処理(サニタイジング)<script>などのタグを、単なる文字列(&lt;script&gt;)として表示するように変換します。これが最も根本的な対策です。

1. 理解のコツ: サイトそのものが毒されているのではなく、サイトを訪れた人の「目の前の画面」に毒を盛る攻撃です。したがって、被害者は常に「そのサイトを見ている一般ユーザー」になります。
2. 試験対策の視点: 「ブラウザ上で実行」「JavaScript」「Cookie奪取」ときたらXSSです。OSコマンドインジェクション(サーバー攻撃)やSQLインジェクション(DB攻撃)と、「どこが攻撃対象か」を比較して覚えると完璧です。


4. まとめ

「閲覧者のブラウザを操作し、Cookieを奪ったり偽画面を出したりする」。これがクロスサイトスクリプティング(XSS)です。Webサイトを運営する側は、ユーザーを守るために徹底したエスケープ処理を実装する責任があります。


PR