クロスサイトスクリプティングとは?攻撃の仕組みや対策方法を解説
クロスサイトスクリプティングとは、正規のWebサイト上で偽ページに誘導し、不正に情報を抜き取る代表的なサイバー攻撃の一種です。今回は、クロスサイトスクリプティングについて被害例や対策方法などをわかりやすく解説します。
目次
クロスサイトスクリプティングは、Webサイト上で偽ページに誘導しユーザーの情報を盗む、代表的なサイバー攻撃です。古くからある攻撃方法で、近年でもサイバー攻撃被害として最も多い手口でもあります。
被害に遭い情報を抜き取られると、アカウントを乗っ取られたり、盗まれたクレジットカード情報で不正利用されたりする可能性があります。
今回は、クロスサイトスクリプティングについて注意が必要なWebページや、攻撃の仕組みについてわかりやすく解説します。また、実際にあった被害事例や開発側とユーザー側それぞれの対策法なども紹介するので、ぜひ参考にしてみてください。
クロスサイトスクリプティングとは?

クロスサイトスクリプティングとは、Webサイトに罠を仕掛けユーザーを偽ページに誘導する、代表的なサイバー攻撃です。英語表記「Cross Site Scripting」の略称「XSS」と表記する場合もあります。
具体的には、Webサイトのセキュリティ上の欠陥を突き(脆弱性)、悪意のあるコードを埋め込み罠を仕掛けます。その後、ユーザーがWebサイトを閲覧した際に、悪意のあるスクリプト(簡単に実行できるプログラム)を実行させ、偽ページに誘導し個人情報やCookie情報などを盗みます。
IPAへの届出件数が最も多い
情報セキュリティやIT促進などの施策を行う公的機関のIPA(情報処理推進機構)は、2022年と2023年の脆弱性に関する届出の中で、クロスサイトスクリプティングが最も多いと公表しています。
また、脆弱性が発見され修正する際には、即日で対応できるケースが少なく、数日〜年単位でかかる場合が多いです。
参照:ソフトウェア等の脆弱性関連情報に関する届出状況
注意が必要なWebページ
Webサイトには、静的サイトと動的サイトがあります。クロスサイトスクリプティングに注意が必要なのは、脆弱性が生じやすい動的サイトです。
動的サイトは、ユーザーのWeb上の行動を元にユーザー毎に興味がありそうなコンテンツを表示するタイプで、近年多く作られています。例えば以下が挙げられます。
- ECサイトなど、ログインが必要なサイト
- アンケートサイト
動的サイト内で脆弱性が生じやすいページは以下です。
- 会員登録(ログイン)ページ
- お問い合わせフォーム
- 予約フォーム
特に個人情報を入力するページは狙われやすく、攻撃されないよう注意が必要です。
クロスサイトスクリプティング攻撃の仕組み

クロスサイトスクリプティングの攻撃は以下の流れで行われます。
- 脆弱性のあるWebサイトに罠をしかける
- ユーザーがWebページを閲覧
- リンクをクリックして偽ページへ偏移
- 悪意のあるスクリプトの実行
それぞれ詳しく解説します。
1.脆弱性のあるWebサイトに罠をしかける
攻撃者がセキュリティ上の欠陥を突いて、罠ページをWebサイトに仕掛けます。ここで仕掛ける罠は、偽ページの組み込みです。偽ページに誘導するため、正規のWebサイト上に偽ページへのリンクを貼ります。
また、悪意のある人が送信したメールの中に、偽ページを仕込む場合もあります。
2.ユーザーがWebページを閲覧
ユーザーが正規のWebサイトを閲覧します。正規Webサイト上に、巧妙に偽ページへのリンクが貼られているため、ユーザーが気付くのは難しいです。
3.リンクをクリックして偽ページへ遷移
罠に気付かずリンクをクリックしてしまうと、偽ページへ飛んでしまいます。
4.悪意のあるスクリプトの実行
悪意のあるスクリプトとして表示された偽ページ上のログイン画面などで、IDやパスワードを入力してしまうと、攻撃者に情報を盗まれます。
偽ページの表示だけでなく、Cookieを盗まれる場合もあります。
クロスサイトスクリプティングを受けると起きること

クロスサイトスクリプティング攻撃を受けた際に想定できる被害としては以下の2つです。
- 正規サイト上に偽ページが表示される
- Cookie情報の漏洩
詳しく説明します。
正規サイト上に偽ページが表示される
クロスサイトスクリプティングは、正規のWebサイト上に偽ページを表示させる攻撃です。ユーザーは気付かぬうちに、偽ページに情報を入力してしまい、個人情報を盗まれる可能性があります。
以下が、クロスサイトスクリプティングの被害例です。
- SNSアカウントが乗っ取られる
- 個人情報やカード情報が盗まれダークウェブ上に流出する
- ネット銀行と偽り不正送金などをさせる
クロスサイトスクリプティングは、正規サイト上に偽ページを表示させるため、ユーザーも管理者も気付くのが難しいです。
Cookie情報の漏洩
クロスサイトスクリプティングを受けるとCookie情報が盗まれることがあり、保存した情報が漏洩してアカウントを乗っ取られるなどの被害につながります。
Webサイトを閲覧する際によく見るCookieとは、ブラウザ上で閲覧履歴や入力情報などを保存するテキストファイルです。Cookieを利用すると、同じWebサイトに訪問した際に、ログイン情報を入力する手間が省け、利便性が向上します。
Cookieはユーザーに便利な機能ですが、攻撃を受けた際は標的にされる可能性があります。
情報漏洩したデータがダークウェブ上で取引されていないかを不安な場合は、情報漏洩管理ツールのダークウェブアイをお試しください。
クロスサイトスクリプティングの被害事例

クロスサイトスクリプティング攻撃に遭うとどのような被害を被るのか、ここでは以下2つの事例を紹介します。
- Saasサービスの43万件の個人情報が漏えい
- 大手衣料品小売のAndroidアプリへの攻撃
Saasサービスの43万件の個人情報が漏えい
2021年9月、株式会社ジーアールが運営するECサイト構築サービス「オムニEC」の2台のサーバーに不正アクセス(クロスサイトスクリプティング攻撃)され、43万件のクレジットカード情報を含む個人情報が漏洩しました。
スーパーマーケットなどの流通大手11社が被害を受けた事例です。
株式会社ジーアールは対策として、不正アクセスがあった2台のサーバーだけでなく、全サーバーに安全対策を追加したことを発表しています。
参考:「オムニECシステム®」一部サーバーへの不正アクセスについて
大手衣料品小売のAndroidアプリへの攻撃
2020年9月、株式会社ユニクロがAndroidで提供している「ユニクロアプリ」に脆弱性があることが報告されました。報告したのは、脆弱性の対策情報などを収集、蓄積するための脆弱性対策情報データベース(JVN iPedia)です。
JVN iPediaからの注意喚起でユニクロは早期に対策が行え、幸いなことに実際の被害はありませんでした。
クロスサイトスクリプティングはWebサイトのみではなく、アプリケーションにも攻撃してきます。
参考:JVNDB-2020-000065 Android アプリ「ユニクロアプリ」における複数のアクセス制限不備の脆弱性
クロスサイトスクリプティングへの対策法

クロスサイトスクリプティングは、正規サイト上に偽ページを表示させるため、非常に気付きにくいのが特徴です。しかし、以下の対策を行うことで、被害を最小限にする効果が見込めるでしょう。
- 対策①スクリプトの無害化(サニタイジング)
- 対策②入力値の制限
- 対策③WAFを導入
- 対策④httpやhttpsスキームのみを許可
- 対策⑤最新の環境を保つ
詳しく解説していきます。
対策①スクリプトの無害化(サニタイジング)
スクリプトの無害化(サニタイジング)とは、悪意のあるスクリプトの文字列を実行させないために、有害な文字列を無害化する処理のことです。
代表的なのが、エスケープ処理です。Webページを作成する言語であるHTMLで特別な意味を持つ記号などを、単なる文字列に置き換える手法です。
例えば、HTMLの記号である「<」を、HTMLエンティティの「<」に置き換えるなどです。エスケープ処理は、有効な対策としてよく行われます。
対策②入力値の制限
ユーザーが入力する画面ページに入力値の制限をすることで、クロスサイトスクリプティングの被害を少なくする効果が見込めます。
例えば、郵便番号入力欄は数字のみや、名前のふりがなはひらがなのみなどの制限をかけることです。もし、文字の種類の制限ができない場合は、〇文字までと文字数制限をするなども有効です。
入力値を制限することで、想定外の文字列の入力ができず、罠を仕掛けにくくします。
対策③WAFを導入
Webサイトの通信を監視するWAF(Web Application Firewall)の導入も、クロスサイトスクリプティングの攻撃から守る手段の一つです。
WAFはセキュリティ強化ツールです。ユーザーの通信内容を監視し、不正アクセスや攻撃を検知した場合、通信を遮断する機能があります。ただし、WAFはセキュリティツールのため、Webサイトの脆弱性を抑えるものではありません。
対策④httpやhttpsスキームのみを許可
Webサイトのリンク先のURLが「javaspript:」で始まるものだと、不正なスクリプトが埋め込まれている可能性があり、リスクが上がります。
リンクや画像などのURLを表示する際は、httpやhttpsで始まるURLのみを受け入れて許可することで、悪意あるスクリプトの実行を防止できます。
対策⑤最新の環境を保つ
ユーザー側の対策として、使用しているブラウザなどWebサイトを利用する全ての環境を、常に最新版にアップデートしておくと良いでしょう。
クロスサイトスクリプティングだけでなく、他のサイバー攻撃なども日々進化しています。ブラウザだけでなくWebサイト、アプリケーションに脆弱性が発見されれば、運営側は早急に対策をします。対策されたバージョンのサービスを使うだけでも最新のサイバー攻撃対策になるため、アップデートは常にしておきましょう。
まとめ

クロスサイトスクリプティングは、Webサイトで罠を仕掛け、偽ページに誘導して情報を盗む代表的なサイバー攻撃の一種です。「XSS」と略される場合もあります。
古くからあるサイバー攻撃の手法で、近年になってもサイバー攻撃被害が最も多い手口でもあります。
クロスサイトスクリプティングの特徴は、正規のWebサイト上に巧妙な偽ページが表示されるため、ユーザーも管理側も気付きにくいことです。クロスサイトスクリプティングの被害に遭うと、ブラウザに保存されているCookieや、偽ページと気付かず入力してしまった個人情報などが漏洩する可能性があります。
今回紹介した、開発側とユーザー双方が行える対策をぜひ参考にしてみてください。
情報漏洩が心配な場合は、情報漏洩監視ツールを利用すると被害を最小限に抑えられる可能性があります。
情報漏洩監視ツールのダークウェブアイは、無料でメールアドレスが漏洩していないかチェックできるため、ぜひお試しください。

