menu background

クロスサイトスクリプティング(XSS)とは?攻撃の仕組みや被害事例と対策を紹介!

クロスサイトスクリプティング(XSS)とは、脆弱性のあるWebサイトに、不正なスクリプトを埋め込むサイバー攻撃です。現在でも、多くの個人情報の流出や、多額の金銭被害をもたらす、クロスサイトスクリプティング攻撃の、仕組みや被害事例、対策を紹介します。

目次

  1. クロスサイトスクリプティング(XSS)とは
  2. クロスサイトスクリプティング(XSS)攻撃の仕組み
  3. クロスサイトスクリプティング(XSS)の被害事例
  4. クロスサイトスクリプティング(XSS)対策
  5. クロスサイトスクリプティング(XSS)まとめ

クロスサイトスクリプティング(XSS)とは

クロスサイトスクリプティング(XSS)とは、脆弱性のあるWebサイトに、スクリプトと呼ばれるプログラムを埋め込み、Webサイトを閲覧したユーザに、不正なスクリプトを実行させるサイバー攻撃のことです。

閲覧したWebサイトにアクセスすると、不正なスクリプトが実行され、偽のWebサイトに遷移(クロス)させることから、「クロスサイトスクリプティング」と呼ばれます。

古くからある攻撃手法ですが、IPA(情報処理推進機構)の「ソフトウェア等の脆弱性関連情報に関する届出状況」によると、過去2年間の累計で「クロスサイトスクリプティング」が 58%を占めており、依然として多くの被害を出しています。

「ソフトウェア等の脆弱性関連情報に関する届出状況」2-2-3. 脆弱性の種類・影響別届出件数 P18参照

ソフトウェア等の脆弱性関連情報に関する届出状況

クロスサイトスクリプティング(XSS)で受ける被害

クロスサイトスクリプティング(XSS)は、個人情報の流出や、多額の金銭被害などが発生する、非常に危険な攻撃です。攻撃による影響範囲も非常に広く、ユーザが利用している他のサービスやWebサイト、管理している機密情報までもが危険にさらされる可能性があります。

ここでは、クロスサイトスクリプティングによる被害を5つ紹介します。

金銭被害

クロスサイトスクリプティングにより、なりすましや、ランサムウェア等の危険なマルウェア感染、個人情報の流出が発生し、以下の金銭被害が発生する可能性があります。 

  • クレジットの不正利用
  • 不正な送金
  • 個人情報の流出による損害賠償
  • 機密情報の流出による機会の損失
  • 多額な身代金の要求

個人情報の流出

クロスサイトスクリプティングにより、盗まれた氏名や住所、クレジット情報、ユーザID、パスワードといった個人情報が、第三者へ売却され、流出するおそれがあります。また、流出したユーザIDやパスワードを利用して、他のWebサイトにアクセスを試みる「パスワードリスト攻撃」により、他のサービスやWebサイトに被害が広がる可能性があります。

セッションハイジャック

セッションハイジャックとは、Webサイトにアクセスする際に発行される、セッションIDを盗み、正規のユーザになりすますサイバー攻撃です。

なりすましによって、掲示板やSNSへ不適切な内容を投稿し、信用の失墜を招くおそれがあります。また、ユーザ本人の権限が使えるため、サービスの変更や退会といった被害や、クレジットの不正利用、不正送金といった金銭被害の危険もあります。

マルウェア感染

ランサムウェアのような、危険なマルウェアに感染し、機密情報の流出や改ざん、バックアップデータの削除といった被害に発展するおそれがあります。また、トロイの木馬のようなマルウェアにより、バックドアを作られ、攻撃の踏み台にされる可能性もあります。

Cookie情報の流出

Cookieとは、Webサイトにアクセスする際に、パソコンと、Webサイトとのアクセス情報を保管するファイルです。Cookieにはユーザやパスワード、買い物かごに入れた商品情報などが保存されています。

Webサイトにアクセスした後、再度Webサイトにアクセスすると、前回情報が残っているのは、Cookieに情報が保存されているためです。さまざまなWebサイトで広く使われています。

Cookieの流出により、なりすましが発生するおそれがあります。なりすましにより、セッションハイジャックと同様の被害を受ける可能性があります。さらに、ユーザの趣味嗜好といった機微な情報が流出し、信用の失墜や損害賠償といった二次被害が発生する危険があります。

クロスサイトスクリプティング(XSS)攻撃の仕組み

クロスサイトスクリプティング攻撃は、攻撃者が脆弱性のあるWebサイトに、罠(不正なスクリプト)を仕掛けることから始まります。 ここでは、クロスサイトスクリプティング攻撃の仕組みを、4つ紹介します。

  • 仕組み1:Webサイトに罠を仕掛ける
  • 仕組み2:Webサイトへアクセス
  • 仕組み3:使用者のブラウザで不正スクリプトが実行
  • 仕組み4:情報流出やマルウェア感染

仕組み1:Webサイトに罠を仕掛ける

攻撃者は、脆弱性のあるWebサイトに罠(不正なスクリプト)を仕掛けます。罠を仕掛けるために、Webサイトを乗っ取ったり、改ざんしたりする必要はありません。Webサイトの入力フォームに、スクリプトを動かすためのソースコードを入力することで、罠を仕掛けます。

仕組み2:Webサイトへアクセス

ユーザが、不正スクリプトが埋め込まれたWebサイトへ、アクセスします。Web検索からだけではなく、攻撃者からのメールやSNSを通じて、不正スクリプトが埋め込まれたWebサイトへ誘導される場合もあります。

仕組み3:使用者のブラウザで不正スクリプトが実行

Webサイトへアクセスすると、使用者のブラウザで不正なスクリプトが実行されます。不正なスクリプトにより、自動的に悪意のある別のWebサイトに遷移したり、不適切なポップアップが表示されます。

元のWebサイトと、全く同じデザインの偽Webサイトを準備して、気づかれないように偽装する場合もあります。

仕組み4:情報流出やマルウェア感染

遷移先のサイトで、ユーザIDやパスワード等を入力させ、盗み出したり、Cookie情報を盗み出したり、マルウェアに感染させたりします。盗み出した情報を元にして、金銭被害個人情報の流出といった被害が発生します。

クロスサイトスクリプティング(XSS)の被害事例

クロスサイトスクリプティング攻撃により、現在までにさまざまな個人情報の流出や金銭被害が発生しています。ここでは影響の大きかった被害事例を5つ紹介します。

国内ITベンダーの被害事例

2021年9月に発覚した、個人情報を含むクレジット情報が流出した事例です。クレジットの不正利用が確認されたことで発覚しました。国内ITベンダーがSaaSとして提供していた、ECシステムサーバ2台に脆弱性があり、SaaSを利用してECサイトの運営していたWebサイトから個人情報が流出しました。

流出した可能性のある個人情報を含むクレジット情報43万件以上、影響はのべ11社という大きな被害が発生しました。この事例では、SaaSを提供する側の対策不足により、SaaSを利用していた側が被害を受けています。

通信販売会社の被害事例

2022年5月に発覚した、個人情報を含むクレジット情報が流出した事例です。オープンソースのショッピングサイト構築システムに脆弱性があり、当該システムを使用して構築されたWebサイトから、クレジット情報が流出しました。最大で2930件ものクレジット情報が流出した可能性があります。

オープンソースのシステム(無償)を使っていたため、ショッピングサイト構築システムの事業者は、修正プログラムを提供するだけで、脆弱性対策そのものは、Webサイトを構築した事業者が行う必要がありました。

ユニクロの被害事例

2020年9月に発覚した、ユニクロのAndroidアプリ(ユニクロアプリ)に複数の脆弱性が発覚した事例です。脆弱性対策情報データベース(JVN iPedia)で注意喚起がなされました。脆弱性がありましたが、ユニクロの対応が迅速だったため、被害は確認されていません。

Twitter(現X)の被害事例

2010年9月に発覚した、不適切投稿の事例です。Twitter(現X)に脆弱性があり、ツイートにマウスカーソルを載せるだけで、リツイートされるという攻撃が行われました。脆弱性の発見者が、攻撃に使用したソースコードを公開したため、さまざまな亜種が発生し、不適切な投稿が大量に発生しました。

YouTubeの被害事例

2010年7月に発生した、YouTubeへのクロスサイトスクリプティング攻撃により、以下の様な被害が発生しました。

  • ショッキングなデマが表示される
  • コメント欄が表示されなくなる
  • 不適切なWebサイトに遷移する

以上のように大きな被害が発生するだけでなく、脆弱性の対策や、被害の影響度を調査するために、インターネットからの隔離が必要な場合があります。これに伴ってサービスの停止機会の損失といった二次被害も起こっています。

クロスサイトスクリプティング(XSS)対策

前述の被害事例に代表されるように、クロスサイトスクリプティング攻撃は、大きな被害をもたらします。クロスサイトスクリプティング攻撃を防止するために、有効な対策を7つ紹介します。

サニタイジング(スクリプトの無害化)

サニタイジングとは、Webサイトに入力された不正なコードを無害化することです。

クロスサイトスクリプティング攻撃において、攻撃者はWebサイトの入力フォームに罠(不正なスクリプト)を仕掛けます。具体的には、不正なスクリプトが実行されるように、Webサイトの入力フォームへ不正なソースコードを入力します。

サニタイジングでは、入力された文字をチェックして、不正なソースコードがあった場合は、無害な文字に置き換えます。ソースコードを置き換えることで、不正なスクリプトが実行されなくなります

常時セキュリティを最新状態にする

 Webサイトで利用している、ソフトウェアやサーバに、脆弱性があった場合は、速やかに最新状態にアップデートすることが必要です。その為には、自社のWebサイトがどのような構成物や構成要素を持っているのかを把握する必要があります。

さまざまな構成要素が必要になりますが、構成要素の例を以下に記します。

構成物

構成要素

Webサイト 

ソフトウェア

CMS

フレームワーク

Webサーバ 

OS

ソフトウェア

ミドルウェア

ネットワーク 

ファイアウォール

通信機器

ソフトウェア

これらは、メーカのWebサイトや下記の脆弱性対策情報データベース(JVN iPedia)を確認して、脆弱性がないかを、適宜チェックする必要があります。

脆弱性対策情報データベース(JVN iPedia)

入力値の制限

Webサイトの入力フォームに、不正なソースコードが入力されないよう、入力値を制限することも有効です。例えば、郵便番号であれば「数字のみで8桁」、住所や氏名であれば「全角の文字列で30文字まで」といった制限を付けて、ソースコードの入力ができないようにします。

URL出力の制限

ユーザの入力した内容により、Webサイトに表示されるリンク先や画像のURLが動的に作られる場合、不正なスクリプトを埋め込まれるおそれがあります。そのため、httpやhttpsで始まるURLのみ出力を許可し、不正なスクリプトが埋め込まれなくすることが有効です。

WAFの導入

WAF(Web Application Firewall)とは、Webサイトをサイバー攻撃から守るセキュリティ対策の1つです。Webサイトとインターネットの間に設置され、通信内容を監視し、攻撃を検知、防御します。

WAFを導入し、クロスサイトスクリプティング攻撃を検知、防御することが有効です。

Webアプリケーションの脆弱性診断

脆弱性診断では、Webアプリケーションを構成するソフトウェアやミドルウェアなどに、脆弱性がないかをチェックします。脆弱性の診断ツールや、診断サービスを用いて、脆弱性診断の定期的な実施が有効です。

セキュリティに詳しくない場合は、診断ベンダーといったセキュリティの専門家に脆弱性診断を依頼して、脆弱性を洗い出してもらうことが有効です。

クロスサイトスクリプティング攻撃の対策については、情報処理推進機構(IPA)の「安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング」に公開されています。

安全なウェブサイトの作り方 - 1.5 クロスサイト・スクリプティング

セキュリティの教育と訓練

クロスサイトスクリプティング攻撃も、新たな脆弱性を発見したり、新たな技術を利用したりして、日々進化を続けています。セキュリティの教育と訓練を、継続的に行い、クロスサイトスクリプティング攻撃を起こさせない仕組みづくりが有効です。

クロスサイトスクリプティング(XSS)まとめ

クロスサイトスクリプティング攻撃の仕組み、被害事例、対策を紹介しました。

クロスサイトスクリプティング攻撃は、過去の被害状況から見ても、非常に危険なサイバー攻撃です。一旦、攻撃を受けてしまうと、甚大な被害となる恐れがあります。

クロスサイトスクリプティングの対策を行い、脆弱性のない仕組みを構築し、維持していくことが大切です。

コンサルティングのご相談ならクオンツ・コンサルティング

コンサルティングに関しては、専門性を持ったコンサルタントが、徹底して伴走支援するクオンツ・コンサルティングにご相談ください。

クオンツ・コンサルティングが選ばれる3つの理由

①大手コンサルティングファーム出身のトップコンサルタントが多数在籍
②独立系ファームならではのリーズナブルなサービス提供
③『事業会社』発だからできる当事者意識を土台にした、実益主義のコンサルティングサービス

クオンツ・コンサルティングは『設立から3年9ヶ月で上場を成し遂げた事業会社』発の総合コンサルティングファームです。
無料で相談可能ですので、まずはお気軽にご相談ください。

関連記事

多層防御とは?仕組みや多重防御との違いと導入メリットを解説!

サイバーセキュリティ

多層防御とは?仕組みや多重防御との違いと導入メリットを解説!

多層防御とは入口だけでなく、侵入された後の経路でも防御を施策する手法です。不正アクセスされたとしても、出口を対策することで情報漏洩のリスクが防げます。本記事では、多層防御の仕組みや具体的な対策内容を紹介するので、ぜひ参考にしてください。

アンチウイルスとは?被害防止の仕組み・機能や必要性と選び方を解説!

サイバーセキュリティ

アンチウイルスとは?被害防止の仕組み・機能や必要性と選び方を解説!

アンチウイルスとは、悪意あるプログラムから自社を守るための対策全般を指します。ウイルスに感染すると、金銭被害や情報漏洩、信用の失墜といった重大な損失を被り、企業活動ができなくなるおそれがあります。アンチウイルスは、現代において必須ともいえる対策です。

ダークウェブとは?アクセスの危険性・違法性と仕組みや対策を解説!

サイバーセキュリティ

ダークウェブとは?アクセスの危険性・違法性と仕組みや対策を解説!

ダークウェブは匿名性の高い特殊なインターネット空間です。言論の自由の場であると同時に、違法な活動や犯罪行為の温床としても知られています。ダークウェブへのアクセスの危険性と違法性やダークウェブの仕組みを理解し、十分な対策を行うことが重要です。

エンドポイントセキュリティとは?種類ごとの特徴や対策の仕組みを解説!

サイバーセキュリティ

エンドポイントセキュリティとは?種類ごとの特徴や対策の仕組みを解説!

エンドポイントセキュリティは、ネットワークに接続するエンドポイント(パソコン、スマートフォンなど)の保護対策です。データ漏洩やサイバー攻撃の増加に伴い、エンドポイントセキュリティの主な種類や特徴、仕組みについて詳しく解説します。

ボットネットとは?仕組みや感染経路と被害にあわないための対策を解説!

サイバーセキュリティ

ボットネットとは?仕組みや感染経路と被害にあわないための対策を解説!

本記事では、ボットネットについて解説しています。仕組みや感染経路、被害にあわないための対策を詳しく説明しています。サイバー犯罪が複雑化する現代において、企業のセキュリティ対策の参考になる内容となっていますので、ぜひ役立ててください。

IPスプーフィングとは?IPアドレス偽装攻撃の仕組みや被害事例と対策を解説!

サイバーセキュリティ

IPスプーフィングとは?IPアドレス偽装攻撃の仕組みや被害事例と対策を解説!

IPスプーフィングとは、本来のIPアドレスを偽造して、別のIPアドレスになりすます違法行為です。正常な送信元IPアドレスになりすますため、フィルタリングの検知を回避して攻撃します。本記事では、IPスプーフィングの仕組み、被害事例、対策について解説します。

ワームとウイルスの違いとは?ワームの被害事例や対策方法も解説!

サイバーセキュリティ

ワームとウイルスの違いとは?ワームの被害事例や対策方法も解説!

この記事では、ワームの特徴や被害、予防策について解説しています。ワームは自己複製して、操作不要で迅速に拡散するマルウェアです。本記事ではワームに対する具体的な予防対策を提案しており、これにより大規模なセキュリティリスクの防止が可能です。

BlueBorne(ブルーボーン)とは?Bluetoothから乗っ取り遠隔操作する攻撃の特徴と対策を解説!

サイバーセキュリティ

BlueBorne(ブルーボーン)とは?Bluetoothから乗っ取り遠隔操作する攻撃の特徴と対策を解説!

BlueBorneとは、Bluetoothに関する脆弱性を総称したものです。BlueBorneを悪用されると端末の乗っ取りや遠隔操作の被害にあう可能性があり、身近なサイバー攻撃です。本記事では、BlueBorneの特徴や被害、対策についてわかりやすく解説します。

ゼロトラストとは?セキュリティの仕組みや7要素と導入メリットを解説!

サイバーセキュリティ

ゼロトラストとは?セキュリティの仕組みや7要素と導入メリットを解説!

この記事ではゼロトラストについて説明しています。セキュリティの仕組みや7つの要素、導入するメリットについて詳しく解説しています。企業のセキュリティ対策に役立つ内容となっていますので、ぜひ参考にしてください。

ドライブバイダウンロードとは?攻撃の仕組みや被害事例と対策を解説!

サイバーセキュリティ

ドライブバイダウンロードとは?攻撃の仕組みや被害事例と対策を解説!

ドライブバイダウンロードの攻撃は、ウェブサイトの閲覧時、自動的にパソコンへマルウェアをダウンロードさせる仕組みです。この攻撃により個人情報の盗難や金銭被害などのリスクがあります。これらの手口や有効な対策について、事例を用いて解説します。