ここではクロスサイトスクリプティングと呼ばれるサイバー攻撃について調査。それにより企業はどういった被害を受けるのか、発生理由や対策など事例も交えながらご紹介します。
クロスサイトスクリプティング(XSS)とは、Webサイトの脆弱性を悪用したサイバー攻撃の一つです。攻撃者は掲示板などWebサイトの訪問者に入力を許すページに罠を仕掛け、悪質なサイトへ誘導。そのサイトを閲覧すると悪意のあるコードが実行されます。IPAによれば2020年のウェブサイトの脆弱性の種類別届出状況でクロスサイトスクリプティングの割合が58%を占めています。
クロスサイトスクリプティングにより別サイトに誘導され悪意のあるコードが実行されると、サイトを訪れたユーザーの個人情報を盗んだり、マルウェア感染させたりします。ユーザーは偽サイトに誘導されているとは気がつかずに、住所や名前、クレジットカード情報などの個人情報が搾取され、それが闇サイトで売買されたりします。
「クロスサイトスクリプティング」攻撃を仕掛ける場合には、メールやSNSなどを通じてスクリプト付きのリンクを送信したり、検索結果を表示するなどして、ユーザーがそのリンクをクリックするように誘導します。この場合、事前にWebサイトへの入力データとして不正なスクリプトが埋め込まれているため、そのWebサイトにアクセスしたユーザーのWebブラウザ上でスクリプトが実行されてしまうことにより、被害を受けるという流れになります。
このクロスサイトスクリプティング攻撃は、インターネット掲示板などのWebアプリケーションにおいて特に発生しやすい攻撃とされていますが、ユーザーのcookie情報が盗まれる、個人情報が漏洩する、偽のWebページが表示される、といった被害が発生する可能性があります。中にはこのような形で盗まれた個人情報を悪用し、SNSのアカウントが乗っ取られてしまったり、インターネットバンキングで不正に出金が行われてしまう、といったケースも考えられます。
Webブラウザやアプリケーションのバージョンが古い場合、クロスサイトスクリプティング攻撃をはじめ脆弱性を狙った攻撃を受ける可能性があります。そのため、使用しているブラウザやアプリケーションは最新のものにアップデートする習慣をつけておくことが大切です。もし更新があった場合には、面倒がらずにその都度アップデートしていくように心がけてください。
セキュリティソフトには、クロスサイトスクリプティング攻撃からPCを守るための機能が搭載されています。例えば不正なスクリプトを検出したり、不正なサイトへのアクセスをブロックしたりといった機能などがあり、攻撃への対策が行えますので、セキュリティソフトの利用を検討し、必要に応じてインストールすることにより対策になります。
不審なメールに記載されているURLや、Webサイトに表示されているURLなど、不審なURLを安易にクリックしない、という点も非常に大切です。例えば、メールで何らかのURLが送信されてきた場合には、すぐにクリックするのではなくWebサイトの安全性についてしっかりと確認してからクリックする、という対策が望ましいといえます。
ファイアフォールを設置することにより、Webアプリケーションの脆弱性を狙う攻撃からWebサイトを守れます。こちらの対策では、ネットワーク通信を監視する中で攻撃と判断した通信を遮断します。ただし、この方法ではWebサイトの脆弱性そのものを修正できるわけではない、という点には注意が必要です。
バリデーション処理は、入力値の制限により対策を行う方法です。例としては、生年月日を入力する場合には特定範囲の数値の入力、電話番号は数字のみの入力しか行えないようにしておくことで、スクリプトを埋め込めなくなります。また、文字数について「何文字以上・何文字以下」という制限をかけるといった対策も可能です。
このように想定外の文字の入力ができないような設定を用いて対策を行うことで、攻撃を受けにくくすることができます。
サニタイジング処理とは、簡単にいうとスクリプトを無害化するための処理です。こちらの方法では、スクリプトの構成要素である「<」「>」「&」「'」といった文字列のエスケープ(置換)処理を行ってスクリプトの無効化を行います。
この処理を行うことによって、スクリプトが入力された場合でも攻撃者が意図する内容では表示されないため、クロスサイトスクリプティング攻撃に対しては有効な対策とされています。
「反射型XSS」はクロスサイトスクリプティング攻撃の中で、最も基本的な手法といわれているものです。Webサイトなどに仕掛けられた不正なスクリプトを含むリンクをユーザーがクリックした際に、脆弱性のあるWebサイトに誘導します。その後ユーザー側にスクリプトが返ってきてユーザー側のブラウザ上で不正なスクリプトが実行されるという仕組みになっているため「反射型XSS」と呼ばれています。
WebアプリケーションやWebサイト内に悪意のあるスクリプトを登録しておくクロスサイトスクリプティング攻撃を「持続型XSS」と呼びます。この場合、ユーザーが該当ページにアクセスするだけでスクリプトが実行されることから、攻撃者はユーザーに罠を仕掛けたURLをクリックさせる必要がないという点が特徴となっています。そのため、継続的に攻撃を行えるという面があります。
HTMLやXMLを構成する要素をプログラム上で参照したり操作したりするための仕組みを「DOM(Document Object Model)」と呼びます。この攻撃はプログラミング言語のひとつであるJavaScriptの脆弱性を悪用しており、サーバ側ではなく、ブラウザ上で不正なスクリプトが実行される点が特徴となっています。
もし静的なHTMLの場合でも、そこでJavaScriptが用いられている場合には、DOMBasedXSSの攻撃対象となる可能性がある点に注意が必要です。
2010年にTwitterのタイムライン上に罠が仕掛けられユーザーがマウスオーバーするだけでスクリプトが実行されるクロスサイトスクリプティングの被害を受けました。これはTwitterクライアントアプリの脆弱性を悪用したもので、アカウント乗っ取りによる大量リツイートにより50万人が影響を受けたとされています。
2010年7月、米YouTubeがコメント欄の脆弱性を悪用されクロスサイトスクリプティングの被害を受けました。これによりコメントが表示されなくなったり画面上にデマ情報を表示、悪質なWebサイトにリダイレクトされるなどが起きました。出力データの暗号化処理に問題があり悪意のあるスクリプトが仕込まれたのが原因です。
2015年米PayPalのWebサイトのXSS脆弱性の修正を行いました。このXSS脆弱性を突くフィッシング目的の偽メールが拡散されたことで明らかになり、英サイバー犯罪対策会社により指摘されたことがきっかけです。この脆弱性については2年前に第三者によって報告されていましたが適切な対応が行われなかった可能性があります。
クロスサイトスクリプティングはWebサイトの脆弱性を突くサイバー攻撃ですが、被害はサイト運営者よりも先にユーザーに起きるという特徴があります。そのため運営者による脆弱性の対応が遅れるほど被害が拡大します。
何らかの不具合が生じてから運営者が気がつくケースが多く、サイバー攻撃に対する危機意識の欠如が被害を発生させる要因の一つ。Webサイトの運営者は日頃から脆弱性について目を光らせておく必要があります。
脆弱性診断(セキュリティ診断)とは?
目的や必要性について詳しく見る
一般的にクロスサイトスクリプティングはスクリプトの実行方法によって、反射型XSS、持続型XSS、DOM Based XSSの3つに分類されます。基本的な診断方法の一つとして、リクエストパラメータがレスポンスのどこにどう反映されるかを見ていきます。ただし、クロスサイトスクリプティングの分類やWebアプリケーションの作りによって柔軟な診断が求められるため、脆弱性診断員は専門的な技術を駆使して診断します。
クロスサイトスクリプティングの脆弱性が発生する原因は、攻撃者がレスポンスに任意のスクリプトを埋め込むことができてしまうこと、また、Webアプリケーションが不適切なDOM操作をしていることにあります。そのため、HTML、Javascriptの特殊文字を適切にエスケープ処理する、また、適切なDOM操作を行う等の対策が推奨されます。
本サイトの監修者であるアルファネットでは今回解説したクロスサイトスクリプティングの被害を受けないためのアドバイスや社員のセキュリティ教育を行っています。Webサイトを運営している会社は相談しておくことをおすすめします。
当ページの監修協力であるホワイトハッカーが所属する株式会社アルファネット。事務機器用品を中心とするカタログ通販サービス「たのめーる」が有名な大塚商会のグループ企業です。
大塚商会はコンピュータ・ネットワーク関連のシステムインテグレーション事業や、コンピュータ機器の保守、アウトソーシングのサービスも中核にしており、その中でアルファネットはサイバーセキュリティ対策の専門グループ企業として活躍しています。
巨大なデータベース・ネットワークを日々守り続けているのは、ホワイトハッカーの主導による正確な診断と、ツールによる包括的な診断によるもの。大塚商会のグループ企業や顧客を中心に、そのサービスを提供してきました。
またメール訓練など、社員育成の提供にも力を入れています。
ペネトレーションテスト(Webアプリケーション侵入試験)/標的型メール訓練サービス/情報セキュリティ教育/CSIRT構築/クラウド型WAFサービス/セキュリティ診断サービス/ランサムウェア対策調査サービス
任意のスクリプトを実行できる
Webサイトにクロスサイトスクリプティングの脆弱性があると、攻撃者が攻撃対象サイト内で任意のスクリプトを実行させることができます。スクリプトの実行により、不正なサイトへ誘導させられたり、悪意ある第三者に個人情報が転送される等、様々な危険性があり、多大な影響を及ぼす恐れがあります。