クロスサイトスクリプティングの仕組みとは?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を運営しているネプラス株式会社はサービス開始から10年以上
『エンジニアの生涯価値の向上』をミッションに掲げ、
多くのインフラエンジニア・ネットワークエンジニアの就業を支援してきました。
ネプラス株式会社はこんな会社です
秋葉原オフィスにはネプラス株式会社をはじめグループのIT企業が集結!
数多くのエンジニアが集まります。

-
インフラ業界に特化
ネットワーク・サーバー・データベース等、ITインフラ業界に特化。Cisco Systemsプレミアパートナーをはじめ各種ベンダーのパートナー企業です。
業界を知り尽くしているからこそ大手の取引先企業、経験豊富なエンジニアに選ばれています。
-
正社員なのにフリーランスのような働き方
正社員の方でも希望を聞いたうえでプロジェクトをアサインさせていただいており、フリーランスのような働き方が可能。帰社日もありません。
プロジェクト終了後もすぐに次の案件をご紹介させていただきますのでご安心ください。
-
大手直取引の高額案件
案件のほとんどが大手SIerやエンドユーザーからの直取引のためエンジニアの皆様へに高く還元できています。
Ciscoをはじめ、Juniper、Azure、Linux、AWS等インフラに特化した常時300件以上の案件があります。
-
スキルアップ支援
不要なコストを削減し、その分エンジニアの方へのスキルアップ支援(ネットワーク機器貸出、合格時の受験費用支給など)や給与で還元しています。
受験費用例)CCNP,CCIE:6-20万円、JNCIS:3-4万円、AWS:1-3万円など
※業務に関連する一定の資格のみ。各種条件がありますので詳しくは担当者へにお尋ねください。
-
現給与を保証します!※
前職の給与保証しており、昨年度は100%の方が給与アップを実現。収入面の不安がある方でも安心して入社していただけます。
※適用にはインフラエンジニアの業務経験1年以上、等一定の条件がございます。
-
インセンティブ制度
ネットワーク機器の販売・レンタル事業等、売上に貢献いただいた方にはインセンティブをお支払いしています。
取引先企業とエンジニア側、双方にメリットがあり大変好評をいただいています。
-
社会保険・福利厚生
社員の方は、社会保険を完備。健康保険は業界内で最も評価の高い「関東ITソフトウェア健康保険組合」です。
さらに様々なサービスをお得に利用できるベネフィットステーションにも加入いただきます。
-
東証プライム上場企業グループ
ネプラスは東証プライム上場「株式会社夢真ビーネックスグループ」のグループ企業です。
安定した経営基盤とグループ間のスムーズな連携でコロナ禍でも安定した雇用を実現させています。
ネプラス株式会社に興味を持った方へ
ネプラス株式会社では、インフラエンジニアを募集しています。
年収をアップしたい!スキルアップしたい!大手の上流案件にチャレンジしたい!
オンライン面接も随時受付中。ぜひお気軽にご応募ください。


新着案件New Job
-
【高額年収】/【CCNA取得者歓迎】/ネットワークの構築/BIG-IP/東京都千代田区/【WEB面談可】/在宅ワーク/20代~30代の方活躍中
年収540万~540万円東京都千代田区(神保町駅) -
東京都中央区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収600万~600万円東京都中央区(小伝馬町駅) -
【高額年収】/インフラ構築支援/東京都港区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/在宅ワーク
年収960万~960万円東京都港区(新橋駅) -
ガバナンス推進、セキュリティ基盤支援/東京都港区/【WEB面談可】/在宅ワーク/20代~40代の方活躍中
年収780万~780万円東京都港区(新橋駅) -
カー用品販売会社の情報システム運用/東京都千代田区/【WEB面談可/インフラサーバ経験者/20~40代の方活躍中】/テレワーク
年収576万~576万円東京都千代田区(水道橋駅) -
ネットワーク構築、検証/東京都渋谷区/【WEB面談可】/テレワーク/20代~40代の方活躍中
年収540万~540万円東京都渋谷区(渋谷駅)