クロスサイトスクリプティング(XSS)とは、Webアプリケーションに対するサイバー攻撃のことで、悪意のある第三者が、脆弱な入力フォームや掲示板などに悪質なスクリプトを埋め込んで、サイト閲覧者の個人情報などを盗み出します。クロスサイトスクリプティングは、深刻な被害をもたらす可能性があるため、適切な対策が必要です。この記事では、クロスサイトスクリプティングの仕組みや、攻撃の種類、代表的な被害事例、クロスサイトスクリプティングを防止するためにできる対策について解説します。
目次
クロスサイトスクリプティングとは、「攻撃側」のサイトから悪意のあるコードを、普通のサイトに注入するサイバー攻撃の手口です。そのため、クロスサイトスクリプティングという言葉が生まれました。
元々の用語は、JavaScriptのみを指すものでした。しかし、オリジナルの名称が作られてから数十年が経過した現在、XSSという用語は、ActiveX、Flash、HTMLなど、JavaScript以外のベクターを含むようになっています。
攻撃者や悪質なハッカーは、メールやSNSなどを通じて、ユーザーに罠が仕掛けられたリンクをクリックさせます。ユーザーがリンクをクリックすると、脆弱性のあるサーバーに転送され、悪意のあるスクリプトを含むWebページがユーザーのPCに返送されます。
そして、悪質なスクリプトが埋め込められたページを閲覧しているユーザーのPCで、悪意のあるスクリプトが実行されて、PCに保存されているCookie情報や個人情報が漏えいしたり、マルウェアに感染したりする可能性があります。
クロスサイトスクリプティングの主な原因は、攻撃者に悪意のあるスクリプトを挿入できる機会を与えてしまうことにあります。言い換えれば、脆弱性のある動的なサイトを放置することは攻撃者の思う壺なのです。
攻撃者が使うスクリプト文には、ユーザーが保有する個人情報を、悪質なサイトに送信するように設定されており、この仕組みが被害が生じる原因になっています。
ここからは、クロスサイトスクリプティングにはどのような種類があるか見ていきましょう。
XSS攻撃の中で最も一般的なタイプである反射型XSSは、ユーザーがウェブサイトのサーバーにリクエストを送信したときに起こります。ハッカーが埋め込んだ悪意のあるスクリプトは、サーバーで反射し、エラーメッセージや検索結果として被害者の画面に表示されます。
不幸にもマルウェアを受け取ってしまった被害者は、プロンプトボタンやリンクをクリックすることで、感染したコードを実行してしまいます。これは、被害者のブラウザが、上記のコードが信頼できるサーバーから送られてきたものであると錯覚してしまうために起こります。侵害されたサイトに入力されたすべての情報は、ハッカーに送信されます。
蓄積型XSSとも呼ばれている持続型XSSは、アプリケーションやWebサイトに悪意のあるスクリプトが持続的に埋め込まれており、そのHTTPレスポンスのすべてに感染している場合に起こるものです。
たとえば、ウェブサイトのコメント欄内にマルウェアが埋め込まれていて、クリックされると起動するような仕組みのものです。持続型XSSの危険性は、犯罪者はすでに罠を仕掛けているため、潜在的なターゲットを誘惑してリンクを踏ませる必要がないことです。ハッカーがすべきことは、エサを用意して待つことだけです。
Webページを開くと同時に作成されるDOM(Document Object Model)は、ユーザーがサーバーとやり取りすることなく、ページ上のすべてのコンテンツにアクセスできるようにするものです。DOM Based XSSがターゲットのブラウザに焦点を当てるのはそのためです。
反射型XSSと持続型XSSでは、危険を見極めるサインがレスポンスページのHTMLに現れています。DOM Based XSSにおける脅威は、サイトのコードを掘り下げない限り脆弱性を確認できない点にあります。ITに長けていない大多数のターゲットがこの被害に遭ってしまいます。普段リンクをクリックする前に、ウェブサイトのコードをダブルチェックすることはないですよね。
クロスサイトスクリプティング攻撃は、標的となるサイトのエンドユーザーが、仕掛けられた罠にかかることで発生します。クロスサイトスクリプティング攻撃は、スクリプトの内容によって被害が異なることが特徴で、代表的なクロスサイトスクリプティングの被害例は以下の通りです。
あなたがウェブサイトを訪れた際に、IDやパスワードなど、さまざまな個人情報を保存してくれるのがクッキー(Cookie)です。セッションハイジャックとは、このクッキーを盗む攻撃手法のことを指します。
本来、クッキーは、ユーザーがIDやパスワードを一度入力すると、2回目以降の入力を自動で行うなど、サイト利用におけるユーザーの利便性を高めることを目的としています。しかし、XSS攻撃によりスクリプトが埋め込まれたページにアクセスすると、このクッキーの情報が盗まれる可能性があります。
フィッシング詐欺も、XSSによる被害のひとつです。悪意のあるスクリプトが書かれたページにアクセスすると、公式サイトを真似た偽サイトにリダイレクトされ、それに気づかずにIDやパスワードを入力すると、その情報がハッカーによって盗まれてしまいます。そして、ハッカーは盗んだIDとパスワードを使って、ユーザーになりすまし、サイトを利用することができるのです。
たとえば、そのサイトがオンラインショッピングのサイトであれば、ハッカーは情報を盗んだユーザーのアカウントを利用して商品を購入することができます。場合によっては、ハッカーは公式SNSサイトにそっくりなページを偽装し、ユーザーに偽のメールを送ってアクセスを誘導することもあります。身近な存在である一方、SNSの危険性は年々高まっています。
XSS攻撃では、ターゲットとなったWebサイトの中身が書き換えられてしまうことがあります。改ざんの結果、サイトのサービスに支障をきたすだけでなく、マルウェアへの感染を目的とした別のWebサイトへユーザーを誘導するケースも少なくありません。
ここからは、過去に実際に発生したクロスサイトスクリプティング(XSS)関連の事件・被害事例を紹介します。
悪質なウェブサイトをブロックするNordVPNの脅威対策機能や、個人情報がダークウェブに流出した際に通知を受け取れるDark Web Monitorを利用して、サイバーセキュリティを強化しましょう。
詳細はこちら残念ながら、XSS攻撃から身を守ることは困難です。このマルウェアは、あなたが使っているデバイスではなく、あなたが訪れたウェブサイトを標的にします。
どのような種類のマルウェアであっても、被害に遭わないためにできる対策は、知識を深めることです。誤って悪意のあるコードを実行してしまう前に、危険なサインを認識できるように学ぶことは、オンライン活動の安全を確保したい人にとって優先事項です。ここからは、XSS対策のためのヒントをご紹介します。
今回は、クロスサイトスクリプティングの概要と、攻撃の種類、実際の被害例について紹介しました。クロスサイトスクリプティングに関する知識を深めることで、サイバーセキュリティを強化することができますが、完全に安全なわけではありません。万が一に備えて、トラフィックを暗号化することでデータを保護するVPNや、マルウェアや迷惑な広告をブロックする脅威対策機能などのサイバーセキュリティ対策ツールを、お使いのパソコンやスマホに導入することを検討しましょう。