Cross-Site Scripting (XSS) - Tipos y prevenciónとは
Lectura de 2 min aprox.
クロスサイトスクリプティング (XSS: Cross-Site Scripting) とは、Web ページに 悪意あるスクリプトを注入する攻撃手法です。攻撃者が仕込んだ JavaScript が 被害者のブラウザで実行され、Cookie の窃取、セッションハイジャック、 フィッシングページへのリダイレクトなどが行われます。 2024 年の OWASP Top 10 でもインジェクション攻撃の一種として上位に位置しており、 Web アプリケーションの脆弱性の中で最も一般的なものの一つです。
現場での使用例
「お問い合わせフォームの入力値がサニタイズされておらず、格納型 XSS が 見つかりました。管理画面で問い合わせ内容を表示する際にスクリプトが実行され、 管理者のセッション Cookie が外部に送信される状態でした。」
XSS 攻撃のフロー
XSS の種類
反射型 XSS は URL パラメータに含まれたスクリプトがそのままページに反映される型です。 格納型 XSS はデータベースに保存されたスクリプトが他のユーザーに表示される型で、 掲示板や SNS のコメント欄が狙われやすく、より深刻な被害をもたらします。 DOM ベース XSS はクライアントサイドの JavaScript の処理に起因する型で、 サーバーを経由しないため検出が困難です。XSS と Web セキュリティの書籍 (Amazon)で詳しく学べます。
具体的な被害シナリオ
よくある誤解は「XSS は見た目を変えるだけの軽微な攻撃」というものです。 実際には、格納型 XSS を使って EC サイトの商品レビュー欄に悪意あるスクリプトを 埋め込み、レビューを閲覧した全ユーザーのセッション Cookie を窃取する といった深刻な攻撃が可能です。窃取された Cookie を使えば、攻撃者は 被害者のアカウントで商品を購入したり、登録情報を変更したりできます。 また、フィッシングと組み合わせて、 正規サイト上に偽のログインフォームを表示させる手口も確認されています。
ユーザーとしての対策
ブラウザを最新に保ち、不審なリンクをクリックしないことが基本です。 パスつく.com で生成したユニークなパスワードをサービスごとに使い分けることで、 XSS 攻撃でセッションが乗っ取られても他のサービスへの被害拡大を防げます。 ブラウザの拡張機能で JavaScript の実行を制限することも有効な対策です。ブラウザセキュリティの書籍 (Amazon)も参考になります。