クロスサイトスクリプティングの仕組みとは?5つの対策法を解説

クロスサイトスクリプティングの仕組みとは?5つの対策法を解説のアイキャッチイメージ

クロスサイトスクリプティングとはどんな攻撃手法?

クロスサイトスクリプティングとは、ユーザーが書き込むことが出来るWebサイト(SNSや掲示板など)に、攻撃者が作成した悪意のあるスクリプトを埋め込むことで、Webサイトの利用者を標的として、別のサイトに情報を送信する攻撃手法です。例えば、攻撃者が悪意のあるスクリプトを埋め込み、それを利用者が閲覧し実行してしまった場合、利用者は偽サイトに移動(クロスサイト)したことに気が付かずに、情報を入力してしまう危険性があります。

クロスサイトスクリプティング被害の影響3つ

クロスサイトスクリプティングによって、主に被害を受けるのはWebサイトの管理者ではなく、利用者です。日常的に、SNSや掲示板を利用している人であれば、誰もがクロスサイトスクリプティングの標的となります。攻撃の標的とならない為にも、クロスサイトスクリプティングによって、どのような被害があるかを知っておきましょう。

被害の影響1:ウェブサイト改ざん

クロスサイトスクリプティングによって、Webサイトが改ざんされてしまう危険性があります。クロスサイトスクリプティングによって、表示する画像の切り替えや、元の文字列の表示を消して、まったく別の意味を持つ情報に書き換わっている可能性もあります。攻撃者は、このようにHTMLなどを改ざんし、悪意のあるプログラムを実行やダウンロードさせるサイトへ誘導したりしています。

被害の影響2:フィッシング詐欺

クロスサイトスクリプティングによって、フィッシング詐欺の標的となる危険性があります。フィッシング詐欺とは、正当なメールやWebサイトを装って、個人情報やパスワードなどの情報を入力させる手法です。クロスサイトスクリプティングによって、Webサイトを改ざんされたWebサイトにアクセスしてしまいスクリプトが実行されると、本物とそっくりな偽サイトに転送され、気が付かない利用者は様々な情報を偽サイトに入力してしまう可能性があります。

被害の影響3:セッションハイジャック

クロスサイトスクリプティングによって、セッションハイジャックされる危険性があります。セッションハイジャックとは、セッションIDやcookie情報を不正に取得して、本人に成り代わって通信を行うという攻撃手法です。セッションIDやcookie情報は、ユーザーに対して円滑なサービスを提供するために、個人認証として扱われているので、これを不正に取得すれば本人ではなくても、本人だと偽ることが出来るという訳です。

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

クロスサイトスクリプティングで、Webサイトに悪意のあるスクリプトを埋め込むことによって攻撃者は情報を盗み取れ、悪意のあるマルウェアをダウンロードさせるなどの仕組みを作っています。クロスサイトスクリプティングで、どのような仕組みを作って行っているのか5つご紹介します。

仕組み1:ウェブサイトのXSS脆弱性を利用している

攻撃者は、XSSの対策が不十分なWebサイトを標的として、クロスサイトスクリプティングを仕込みます。XSSの対策が不十分であり、クロスサイトスクリプティングが行える環境ということなので、攻撃者は容易に悪用してしまいます。

仕組み2:掲示板サイトを利用している

掲示板サイトやSNSを利用して、クロスサイトスクリプティングが行われています。XSS脆弱性を持つ掲示板サイトやSNSは、現在のWeb上でも多数存在しているので、日常的に利用している掲示板サイトやSNSはもちろんのこと、普段利用していない掲示板サイトやSNSを活用する際は特に注意が必要となります。有名な掲示板サイトであっても、XSS脆弱性を持っていないとは言い切れません。

仕組み3:cookie情報で不正アクセスする

攻撃者は、クロスサイトスクリプティングによって取得したセッションIDやcookie情報で、不正アクセス(セッションハイジャック)をします。セッションハイジャックに成功した攻撃者は、元のセッションIDを持っていた利用者になりすまして、悪行をはたらきます。

仕組み4:偽ページへの誘導

攻撃者は、クロスサイトスクリプティングで、掲示板やSNSの利用者を偽ページへ誘導をします。偽ページは、フィッシング詐欺として扱われ、セッションジャック後のカモフラージュとして扱われている事例もあります。セッションハイジャック後に、元の利用者が通常どおりにページ遷移をしようとした時、cookie情報やセッションIDの不整合が起きてしまい、攻撃者が思うように操作できなかったり、利用者に気が付かれたりするためです。

仕組み5:スクリプト付のリンクを使ってくる

クロスサイトスクリプティングでスクリプト付きのリンクを使用することで、利用者がアクセスした際に、利用者が意図せずに不正なプログラムが実行される恐れがあります。これにより、悪意のあるマルウェアをダウンロードされるなどの企みがあります。

HTML埋め込み形スクリプト

HTML上に悪意のあるスクリプトを埋め込まれた場合、利用者の意思とは関係なく、Webページが開かれたと同時に実行してしまう可能性がある特徴があります。これが、クロスサイトスクリプティングのやっかいな点といわれています。

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

クロスサイトスクリプティングは、有名サイトなので対策されているので安心ということはありません。有名サイトであっても、クロスサイトスクリプティングの攻撃を受け、実際に被害が出てしまっている事例があります。クロスサイトスクリプティングによる被害事例を2つご紹介します。

被害事例1:Twitterワーム拡散

ワームとは、自身を複製して、他のシステムに拡散するマルウェアです。Twitterで2010年頃に拡散されたワームは、マウスカーソルが悪意のあるツイート上に重なるだけで、悪意あるメッセージを被害者自身のフォロワーに対して送信してしまうものでした。この事件は、マウスカーソルを合わせるだけで実行されるスクリプトが埋め込まれてしまったことによって、爆発的にワームが広がってしまいました。

被害事例2:YouTube不正アクセス

YouTubeで2010年頃に起こったYouTube不正アクセス事件は、YouTubeのコメント欄で使用されていたアプリケーションにXSS脆弱性があり、被害が出ました。この事件では、ショッキングなデマやゴシップが拡散されましたが、YouTubeはこれに対して2時間ほどで対処して解決しました。しかし、YouTubeのセキュリティに対する信用が揺らぐ結果となってしまいました。

クロスサイトスクリプティングへの対策法5つ

クロスサイトスクリプティングは、Webサイト管理者でなくとも、ユーザーを無差別に標的とする攻撃手法なので、Webサイトを管理する側で、しっかりと対策をしなければ、Webサイトから大量の被害が出てしまう恐れがあります。クロスサイトスクリプティングによる被害を抑えるための、対策方法を5つご紹介します。

対策法1:入力値の制限をサーバ側で実行する

入力値の制限を設けることによって、クロスサイトスクリプティングによる攻撃を防ぐことが出来ます。例えば、電話番号や郵便番号のような入力欄であれば、数値以外の入力を制限することで、書き換えに必要な文字を使用させないように出来ます。そして、その対策はサーバ側で実行しなければ、クロスサイトスクリプティングによって入力制限すら書き換えられてしまうので、クロスサイトスクリプティングの対策としては意味を成しません。

対策法2:サニタイジング対策を施す

サニタイジングにより、クロスサイトスクリプティングを無効化出来ます。サニタイジングとは、プログラム上で特別な意味を持つ文字を無害化させる処理を行うことです。クロスサイトスクリプティングには、スクリプトを実行させるために、スクリプト実行に必要な文字を入力しなければならないので、その文字を対象にサニタイジングすることで、クロスサイトスクリプティングによる攻撃を防ぐことが出来ます。

文字変換例

サニタイジングでは、特定の文字を、別の文字に変換することによって、プログラム上で意味を持たない文字列にします。例えば、HTMLで使用される「<」、「>」、「’」、「””」を、「$」、「!」、「@」、「&」という風に変換すれば、攻撃者が「<script type=””text/javascript””>」と入力すると、プログラム上で「$script type=&text/javascript&!」という風に変換され、攻撃者の意図していない文字列になります。

対策法3:ブラウザのアップデート

ブラウザをアップデートすることによって、利用者はクロスサイトスクリプティングによる被害を抑えることが出来ます。ブラウザ自体に備わっているセキュリティ機能によって、自動的に実行されようとしたマルウェアを実行しないようにすることが出来ます。ブラウザのアップデート自体は簡単なものなので、クロスサイトスクリプティングを含め、様々な攻撃から自分のコンピュータを守るために、常に最新状態にしておきましょう。

対策法4:セキュリティソフトを導入する

セキュリティソフトを導入することで、クロスサイトスクリプティングによる被害を抑えることが出来ます。たとえ、クロスサイトスクリプティングによって悪意のあるマルウェアが埋め込まれたWebサイトを開いてしまっても、セキュリティソフトによって警告表示や、マルウェアをブロックしてくれます。セキュリティソフトの導入は、クロスサイトスクリプティングだけに限らず、様々な脅威から、あなたのコンピュータを守ってくれます。

対策法5:メールやアクセスのブロック

セキュリティ対策ソフトを活用し、不審なWebサイトへのアクセスやメールをブロックすることで、クロスサイトスクリプティングによる被害を抑えることが出来ます。悪意のあるメールに記載されたURLをクリックしてしまうと、クロスサイトスクリプティングが仕込まれたWebベージに移動させられ、悪意のあるプログラムが実行されてしまう危険性があります。セキュリティソフトによってブロックや、警告表示されていないメールであっても、URLをクリックする際は注意しましょう。

クロスサイトスクリプティングからの対策を施そう

クロスサイトスクリプティングは、主な標的はWebサイトそのものでなく利用者です。Webサイト管理者が対策をするのは当然ですが、対策をしているWebサイトでもセキュリティホールが無いとは言い切れません。クロスサイトスクリプティングの被害を抑えるためにも、本記事でご紹介した対策を参考にして、いつ踏んでしまうか分からないクロスサイトスクリプティングに備えましょう。

インフラエンジニア専門の転職サイト「FEnetインフラ」

FEnetインフラはサービス開始から10年以上『エンジニアの生涯価値の向上』をミッションに掲げ、多くのエンジニアの就業を支援してきました。

転職をお考えの方は気軽にご登録・ご相談ください。