クロスサイトスクリプティング(XSS)とは。事例と対策を解説

クロスサイトスクリプティング(XSS)攻撃は、Webサイトの脆弱性を悪用したサイバー攻撃です。

昨今では、ECサイトを活用したオンラインショッピングやインターネットでの情報提供など、Webサイトを活用したビジネスが広がっています。

Webサイトの運営者も、フリーランスなどの個人が運営するケースも多くなっています。

このような状況を背景に、クロスサイトスクリプティングの被害も広がっています。

今回はWebサイトに対して仕掛けられる悪質なクロスサイトスクリプティングについて解説します。

WinserverVPSWAF導入可能
共用サーバーWAF導入済み
\2週間無料・丁寧な電話サポート/
WinserverVPSを無料で試す
Winserver共用サーバーを無料で試す

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

クロスサイトスクリプティングの概要や攻撃の仕組みについて確認しましょう。

クロスサイトスクリプティングの概要

クロスサイトスクリプティングの特徴は、以下の3点です。

  • Webサイトの脆弱性を悪用した攻撃である
  • ターゲットとなる利用者に悪質なサイトの訪問、あるいはファイルのダウンロード、実行などをさせる
  • 不正に情報の取得などを行う

クロスサイトスクリプティングにはいくつかの種類がありますが、概ねこのような特徴を持っています。

クロスサイトスクリプティングの仕組みとは

クロスサイトスクリプティングはどのような流れで行われるのでしょうか。

実際に攻撃が行われる場合、種類によって若干の違いはあるものの、以下のような流れで実行されます。

ここでは、「Reflected XSS型」と呼ばれる攻撃について解説します。

  1. 悪意あるリンクをユーザーに送る
  2. ユーザーが不正なリンクをクリックする。
  3. 悪意のあるスクリプトが実行される
  4. 攻撃者にユーザーからの情報が送られる

こうした流れを経て、ユーザーの端末にある情報が盗まれたり、改ざんされます。

クロスサイトスクリプティングの種類

クロスサイトスクリプティングには、大きく分けて以下の3つの種類があります。

  • Reflected XSS(反射型)
  • Stored/Persistent XSS(格納型/蓄積型/持続型)
  • DOM Based XSS

以下では、これら3つの種類について解説します。

Reflected XSS(反射型)

ターゲットとなるユーザーに、不正なリンクを含む偽メールを送ることや偽のサイトを閲覧させるもの。

リンクをクリックすることで、ユーザーの端末にマルウェアのダウンロードをさせたり、情報の盗み取ったりする。

Stored/Persistent XSS(格納型/蓄積型/持続型)

WebサイトのWebアプリケーション自体に悪意のあるスクリプトを組み込むことで、ユーザーがサイトを閲覧するたびにスクリプトを実行させて情報の取得などを行うもの

DOM Based XSS

DOMは、Webサイトで使われるHTMLやXMLドキュメント用のAPI。

DOM Based XSSは、端末上のブラウザで不正な文字列からDOMを構築して実行させるもので、上の2つとは違い、実行時にサーバーは必ずしも必要としない。

クロスサイトスクリプティングと他の攻撃との違い

クロスサイトスクリプティングは、他の攻撃とどのような違いがあるのでしょうか。

よく似た名前のクロスサイトリクエストフォージェリ(CSRF)や、最近よく耳にするSQLインジェクションとの違いを解説します。

クロスサイトリクエストフォージェリ(CSRF)との違い

クロスサイトリクエストフォージェリ(CSRF)とはどのようなものなのでしょうか。

まずは、クロスサイトリクエストフォージェリの概要について見ておきましょう。

  • WebアプリケーションなどWebシステムのセッション管理の脆弱性を悪用した攻撃手法
  • 攻撃用のWebサイトを準備して、サイトの閲覧者に正規のシステムに被害を与えるようなリクエストを行わせるもの
  • 攻撃を行うユーザー側は意図せず、攻撃を行わせられてしまう

このように、クロスサイトリクエストフォージェリはクロスサイトスクリプティングと同様にWebサイトやWebアプリケーションに関連したサイバー攻撃を行う手法ですが、「閲覧したユーザーに攻撃を行わせる」といった点が非常に恐ろしく悪質なものとなっています。

 

クロスサイトスクリプティングとクロスサイトリクエストフォージェリの違いはどのような点にあるのでしょうか。

 クロスサイトスクリプティング(XSS)クロスサイトリクエストフォージェリ(CSRF)
ターゲット脆弱性のあるWebサイトやWebアプリケーションWebアプリケーションのセッション管理の脆弱性
攻撃目的情報の取得、破壊、改ざんなど情報の取得、破壊、改ざんなど
攻撃主体悪意を持つ人物ユーザー(攻撃させられる)
プログラムの実行場所ユーザーのWebブラウザ(クライアント側)Webサーバー(サーバー側)
攻撃に遭う前提条件特になしユーザーがWebアプリにログインしていること

このように、クロスサイトリクエストフォージェリでは「CSRFの被害を受けたユーザーを加害者にする」という点が大きな違いです。

2012年に攻撃のターゲットとなり不正プログラムを仕込まれたパソコンが、掲示板「2ちゃんねる」に襲撃や殺人の犯罪予告を書き込み、パソコン操作された被害者が誤認逮捕される事例がありました。(パソコン遠隔操作事件)

こうした事件に繋がってしまう事例のように、被害者が意図しないまま加害者となってしまうことが起こりうるのがクロスサイトリクエストフォージェリの恐ろしさです。

SQLインジェクションとの違い

同じようにWebサイトやWebアプリケーションがターゲットとなる攻撃にSQLインジェクションと呼ばれるものがあります。

こちらはクロスサイトスクリプティングとは、何が違うのでしょうか。

SQLインジェクションは、同様にWebの脆弱性を悪用したものですが、リクエストに不正なSQLのコードを埋め込むものです。

それによってWebサイトやWebアプリケーションなどのデータベースに対して攻撃を行い、情報の取得や改ざんなどを行います。

したがって、データベースを持つシステムやWordPressのサイト、ECサイトなどがターゲットになります。

SQLインジェクションについては、こちらの記事で詳しく解説しています。

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

実際にクロスサイトスクリプティング攻撃によって被害を受けた事例にはどのようなものがあるのでしょうか。

以下では、具体的なケースをいくつか見ていきましょう。

事例1:通販サイトからの情報漏洩

2021年の事例で、健康機器の通信販売サイトへの注文時にクロスサイトスクリプティング(XSS)の記述を含む不正な通信が行われた結果、ログインID、パスワードやクレジットカードの情報など顧客情報507件が不正に抜き取られたもの。

事例2:YouTubeへのXSS攻撃

2010年には、YouTubeのコメントシステムが悪用され、コメントが表示されない、不正なポップアップが表示される、不正なWebサイトに飛ばされるなどの被害が起きた。

事例3:大手出版社の公式サイト改ざん

2014年に発生した事例で、大手出版社の公式サイトが改ざんされて不正なプログラムが仕込まれた件。

閲覧者に対してマルウェアに感染させる危険性があり、個人情報漏洩につながるものであった。

 

このように、クロスサイトスクリプティングによる被害事例は多く存在し、いずれも情報漏洩の危険があります。

クロスサイトスクリプティングを防ぐには

クロスサイトスクリプティング攻撃の被害事例にはさまざまなものがあることが理解していただけたのではないでしょうか。

ひとたび攻撃を受けると、情報漏洩やデータの改ざん・消去などが起こってしまう可能性があります。

では、こうした攻撃を防ぐためにはどのような方法があるのでしょうか。

<WAFの設置>

Web Application Firewall (WAF)を設置することで、不正なWebアクセスを防ぐ方法

<ソースコードでの対策(エスケープ処理)>

コード中の攻撃に使われるような「<」や「”」などの文字を無効化させて不正なプログラムが動かないようにする方法

<入力欄の文字種や文字数の制限>

パスワード入力欄やコメント欄等に入力できる文字種や文字数の制限を行う方法。

利用者各自が設定を変えられるブラウザでなく、サーバー上で行う。

<URLの制限>

URLとして入力されたものは、「http」もしくは「https」しか受け付けない設定にする

<ソフトウェアやOSを最新版にする>

ソフトウェア等を最新版にすることで、脆弱性の問題を解消する方法。

 

クロスサイトスクリプティングを防ぐ対策としては、こうしたものが有効となります。

WAFイメージ

WinserverでWAFを手軽に使おう

クロスサイトスクリプティングの対策として有効なWAFを手軽に使う方法はないのでしょうか?

そこでおすすめしたいのが、WinserverのVPSや共用サーバーです。

Winserver はWindows Server専門のレンタルサーバーで、20年以上の運用実績があります。

Windows VPS

Windows VPSは、仮想専用サーバーを利用できるサービスです。

Webサービスを保護するためのWAFをオプションで追加することができます。

導入できるWAFはJP-Secureが販売している「SiteGuard Server Edition」です。

WinserverVPSについて見る

共用サーバー

共用サーバーは、Webサイトの公開を簡単に行えるサービスです。

WAF導入済みのため、安心してご利用いただけます。

Winserver共用サーバーについて見る

 

「自分に合ったサービスがわからない」「セキュリティ対策について詳しく聞きたい」という方は、無料オンライン相談会をご活用ください。

Winserverの専門スタッフがお客様のお悩みをお伺いし、丁寧に回答いたします。

▼オンライン相談会についてはこちら▼Winserverオンライン相談会実施中

まとめ

急増するサイバー攻撃の中でもクロスサイトスクリプティング攻撃は、Webサイトに対して攻撃を行う、あるいは不正なWebサイトへ利用者を導くなどの手口で、情報の盗み取りや破壊、改ざんなどを行う巧妙かつ悪質なものです。

サイバー攻撃による被害は年々増えており、さまざまな被害が起こっています。

その中でも今回解説したクロスサイトスクリプティング、それに加えてクロスサイトリクエストフォージェリ、SQLインジェクションなどは特にWebサイトに対する攻撃事例が多いものです。

攻撃による被害を防ぐためにはいくつかとるべき対策があります。

こうした対策をしっかりと行うことで、かなりの部分を防ぐことができます。

WebサイトやWebアプリケーションの運用をしている場合は、今回の記事を参考にしてしっかりとした対策を行いましょう。

Winserver紹介資料

Winserver紹介資料

Windows Server専門のホスティングサービス「Winserver(ウィンサーバー)」の基本資料です。
各サービスの概要、特徴をまとめています。

Winserver紹介資料

Winserver紹介資料

Windows Server専門のホスティングサービス「Winserver(ウィンサーバー)」の基本資料です。
各サービスの概要、特徴をまとめています。

資料をダウンロードする

"VPS for 会計ソフト"

・コスパ◎ 会計ソフトが特別価格!
・テレワーク◎ 自宅から共同作業できる!

▶ プランを見る

関連記事

サーバーの基礎知識

TOP