sg security_general threat_vulnerability unauthorized_access data_leakage sg-security-overview
まず結論
クロスサイトスクリプティング(XSS)は、Webサイトに不正なスクリプトを埋め込み、利用者のブラウザで実行させる攻撃です。
SG試験では「スクリプトが実行されるかどうか」で見分けるのが重要です。
直感的な説明
イメージとしては、
- 普通のWebページに見える
- しかし裏で「仕込まれたプログラム」が動く
- 利用者の情報が盗まれる
という状態です。
例:
- コメント欄に悪意あるコードが書かれる
- それを見た人のブラウザで自動実行
- Cookieなどが盗まれる
👉 ページを開いただけで被害が起きるのが特徴です
定義・仕組み
クロスサイトスクリプティング(XSS)は、
- Webアプリの入力チェック不備などを利用して
- 悪意あるスクリプトをページに埋め込み
- 他の利用者のブラウザで実行させる攻撃
です。
仕組みの流れ
- 攻撃者がスクリプトを仕込む(入力フォームなど)
- サーバがそのまま表示してしまう
- 利用者がページを閲覧
- ブラウザでスクリプトが実行
- Cookieや入力情報が送信される
主な被害
- Cookieの盗取(セッション乗っ取り)
- 偽画面の表示(フィッシング誘導)
- 不正な操作の実行
どんな場面で使う?
起きやすい場面
- 入力内容をそのまま表示する機能
- 掲示板
- コメント欄
- 検索結果表示
- HTMLエスケープが不十分なWebアプリ
現場での対策の考え方
- 入力値の無害化(エスケープ処理)
- 出力時のサニタイズ
- Content Security Policy(CSP)の導入
👉 「スクリプトを実行させない」ことが本質
よくある誤解・混同
❌ CSRFと混同する
- XSS:スクリプトを実行させる
- CSRF:リクエストを送らせる
👉 SG試験では
「不正なスクリプト実行」と書かれていたらXSS
❌ サーバが直接攻撃されると思う
- 実際は「利用者のブラウザ」が攻撃対象
👉 攻撃対象はクライアント側
❌ クリックしないと起きないと思う
- ページ表示だけで実行される場合もある
👉 「閲覧だけで発動」が重要
確認問題(SG試験対策)
次のうち、最も適切なものはどれか。
A. XSSは、利用者のブラウザで不正スクリプトを実行させ、情報を盗むなどの被害を生じさせる攻撃である。
B. XSSは、ログイン済み利用者になりすまして正規サイトへ不正リクエストを送らせる攻撃である。
C. XSS対策は、CSRFトークンを埋め込めば十分である。
D. XSSは、送信元IPアドレスの偽装を防止すれば根本的に解決できる。
答えと解説を見る
正解:A
解説
- A:正しい。XSSはブラウザ上で悪意あるスクリプトを実行させる攻撃です。
- B:誤り。これはCSRFの説明で、XSSとは攻撃の仕組みが異なります。
- C:誤り。CSRFトークンはCSRF対策であり、XSSには出力時エスケープや入力値の適切な扱いが必要です。
- D:誤り。IP偽装対策は別論点で、XSSの直接対策にはなりません。
👉 判断ポイント
「ブラウザでスクリプトが実行されるかどうか」でXSSを見抜く。
まとめ(試験直前用)
- XSS=スクリプトを利用者のブラウザで実行させる攻撃
- 被害はCookie盗取やセッション乗っ取り
- CSRFは「リクエスト悪用」、XSSは「スクリプト実行」
- 選択肢で「スクリプト」「ブラウザ実行」があればXSSを疑う
🔗 関連記事
- 攻撃者の種類とは?目的と特徴で整理する【情報セキュリティマネジメント】
- 認証方式とは?3要素と多要素認証を整理【SG試験】
- ブラックリストとホワイトリストの違いとは?判断基準を整理【情報セキュリティマネジメント】
- ブロック暗号とストリーム暗号の違いとは?暗号方式を整理【SG試験】
- ボットとは?遠隔操作される仕組みを理解する【情報セキュリティマネジメント】