クロスサイトスクリプティングの脅威とは?対策をわかりやすく解説

セキュリティ

クロスサイトスクリプティングとは、ユーザー環境を破壊しかねない悪質な攻撃手法の一つです。
複数のサイトにまたがり巧みに騙してスクリプトで攻撃してくる手法のため、「クロスサイト+スクリプティング」と呼ばれています。実は、エンドユーザー環境だけではなく、スクリプトを仕込まれるサイトの脆弱性が問題で多大な損害を被ることも多いです。

ここでは、クロスサイトスクリプティングの脅威について実例を交えながらご紹介します。サイトの脆弱性につけこまれないように、サイトのセキュリティを今一度確かめて対策していきましょう。

1. クロスサイトスクリプティングとは?

クロスサイトスクリプティングとは、攻撃者が動的ページを生成するサイト(掲示板など)にクロスサイトスクリプティングを作り込むことから始まります。
クロスサイトスクリプティングが仕込まれたサイトにアクセスすると、スクリプト情報を持ったまま脆弱性のあるWebサイトにクロスサイトしてアクセスしてしまいます。その後、ユーザー環境でさまざまなスクリプトが実行されることが、クロスサイトスクリプティングです。

問題になるのはクロスサイトした後の動作です。アクセスされた企業内のWebサーバー上から偽サイトにアクセスしたり、表示された攻撃対象のサイト(脆弱サイト)の画面に文字列を入力することで個人情報を持ち出したりできてしまいます。さらに、スクリプトの内容によっては、ユーザー環境がマルウェアに感染することもありますので、注意が必要です。

1-1. クロスサイトスクリプティングの仕組み

クロスサイトスクリプティングは、攻撃者が直接攻撃をしているわけではなく、脆弱サイトが悪さをしているように見せかける悪質な攻撃手法です。クロスサイトスクリプティングの被害の仕組みを流れとともに紹介します。
クロスサイトスクリプティングの仕組み

①攻撃者は掲示板などの動的ページ作成サイトにクロスサイトスクリプティングを仕込みます。
②動的ページ利用者はWebサイトにアクセスし、罠が仕込まれたスクリプトを実行してしまいます。
③スクリプト情報を持ったまま利用者はリンクなどで誘導され脆弱サイトにアクセスすることになります。
  脆弱サイト内では悪意あるスクリプトは実行されません。
④脆弱サイトにアクセスすることで利用者にはスクリプトを含んだページが表示されます。
⑤利用者のパソコンやスマホ等の環境で悪意あるスクリプトを実行する結果になります。
  スクリプトが利用者環境で実行されることによりマルウェアに感染する可能性があります。
  最悪のケースではOSが破壊されたり、誘導された偽サイトに個人情報を入力してしまい、
大事な情報を盗まれる結果につながるでしょう。

このような仕組みでクロスサイトスクリプティングは実行され、被害が発覚するのです。注目すべきは、悪意ある攻撃者ではなく脆弱サイトが攻撃したように見せかける手法だということです。

利用者が被害に気がついた際、本来は攻撃をしていない脆弱サイトに被害を受けたと勘違いをし、二度とその脆弱サイトを利用しなくなる危険性があります。また、脆弱サイトを訴える危険性もはらんでいます。脆弱サイトを運用していた企業にとっては大きな被害になることでしょう。

 

2. クロスサイトスクリプティングによって生まれる脅威

では、クロスサイトスクリプティングによって生まれる脅威を具体例とともにいくつかご紹介します。

2-1. エムゲームジャパン事件(2009年)

オンラインゲームソフトにもクロスサイトスクリプティング被害が報告されています。2009年にエムゲームジャパンでアカウント乗っ取りが相次いだのです。
調査の結果、cookie情報を盗まれたことによるセッションハイジャックだと判明しました。ユーザーのアカウントが乗っ取られていたとのことです。

2-2. youtube事件(2010年)

2010年には動画再生アプリのyoutubeがクロスサイトスクリプティングの脆弱性のために被害を受けています。
コメント欄の暗号化処理に脆弱性があり、cookie情報が盗まれたのです。これによってユーザー環境で不正スクリプトが実行され、デマ情報のポップアップが表示されたり、コメントが閲覧できなかったりなどの被害が拡大しました。

2-3. Twitter事件(2010年)

Twitterの脆弱性によって不正リツイートが頻繁に行われたことはご存知の方も多いでしょう。
実はTwitter事件もクロスサイトスクリプティングの脆弱性が原因です。幸い悪意ある攻撃者に悪用はされず、興味だけでいたずらをした少年による犯行でした。Twitterはすぐさま脆弱性の修正を行い、実害は出なかったと発表しています。

2-4. PayPal事件(2015年)

2016年にはPayPalにクロスサイトスクリプティングの脆弱性が発見されています。幸い被害には遭いませんでしたがもしも脆弱性が悪用されていたなら多大な被害に発展した恐れがあります。
具体的には、HTMLに脆弱性があったためにスクリプトでフォームを書き換え入力された情報を盗み取ることができました。最悪のケースでは、攻撃者が用意したショッピングサイトなどでPayPalの支払いを要求し、法外な金銭を騙しとることができたというわけです。
すぐに脆弱性の報告を受けたためにPayPalの利用者に損害は出ませんでした。発見が遅れていた場合や対応が遅れていたなら大きな損害につながっていたでしょう。

クロスサイトスクリプティングの脅威

以上のようにクロスサイトスクリプティングの脆弱性が原因で、悪意ある攻撃者につけ込まれてしまい、被害が大きくなるケースが多々あります。もしもクレジットカード情報などが盗まれてしまうと、脅威は甚大なものになるでしょう。

今の時代、Webサイトの構築・運用には細心の注意が必要です。一つのミスが大きな被害につながりかねません。開発担当者はそれを踏まえ、最新の注意を払ってシステム開発をしていると思います。しかし、それでも脆弱性が報告されるケースは後を絶ちません。

クロスサイトスクリプティングの被害から自社のサイトを守るためにはアプリケーションの脆弱性をなくすだけではなく、万が一に備えてネットワークでも不正アクセスを許さないサイト構築が必要でしょう。

 

3. クロスサイトスクリプティングを防御するための対策

では、これらのクロスサイトスクリプティングの攻撃を防御するための対策について見ていきましょう。

3-1. クライアント側

パソコンやスマートフォン、タブレットを利用中のユーザーは、どのサイトに悪意あるクロスサイトスクリプティングが仕込まれているのかがわかりません。そのため、常にブラウザを最新バージョンに更新しておくことが重要です。

その上で、ブラウザの設定でスクリプトの実行を無効化することや、日ごろからメールやサイトの不正リンクを踏まない努力も必要です。少しでもおかしいと感じたら、触らないことが賢明です。

また、セキュリティソフトを端末にインストールし、定期的にアップデートするようにしましょう。

3-2. サーバー管理者

サーバー管理者はアプリケーションに脆弱性があるかもしれないことを想定し、そもそもクロスサイトスクリプティング被害のターゲットに遭わない工夫をする必要があります。
具体的にはWebアプリケーションファイアウォール(WAF)を導入し、ユーザーのリクエスト内容をチェックできるセキュリティ環境をネットワークとして構築しておきましょう。

そうすれば、ユーザーが偽サイトにアクセスすることが防げますし、不正なスクリプトを遮断できます。
また、ファイアウォールを強化することで、脆弱性があるWebサーバーが不正なサイトにアクセスしようとしている場合に遮断ができます。内部から外部にアクセスする場合のセキュリティ強化もクロスサイトスクリプティングを防ぐためには有効です。

ただし、どんなに注意していてもアプリケーションに脆弱性が報告されることはしばしばあります。定期的なサーバーの脆弱性診断を忘れないことも大切です。

 

4. クロスサイトスクリプティングを仕込まれた場合の対策

では、クロスサイトスクリプティングが仕込まれてしまった場合の対策はどうしたらいいのでしょうか。WAFをくぐり抜けて仕込まれた場合の対策です。

問題が発覚したら、まずは被害が拡大する前に対象のサーバーを隔離する必要があるでしょう。
また同時にアプリケーション担当者に脆弱ポイントの修正を依頼してください。具体的には特殊文字列をエスケープしスクリプトを実行できない環境にすることです。いわゆるサニタイジングです。

入力制限を設けるなどもクロスサイトスクリプティングの対策には効果があるでしょう。

こうした対策を講じるためにも、ネットワーク管理者はすぐさま攻撃対象のサーバーを切り離しても通信には影響のでないようなネットワーク環境を構築しておく必要があります。

 

5. まとめ

クロスサイトスクリプティングではセッションハイジャックやページの改ざん、個人情報の流出など被害は計り知れません。
もちろん、脆弱性のないサイト構築が望まれますが、万が一に備えてネットワーク環境でもWAFやファイアウォールなどの対策をしておくことが重要です。

自社に甚大な被害が起こる前にネットワーク環境を含めたセキュアな環境を構築しておきましょう。

6. お役立ち資料

関連記事

Juniper導入実績多数のスペシャリストが
最新情報をみなさまにお届けしています

Juniper社認定資格者