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