クロスサイトスクリプティング(XSS)とは、Webサイトに利用されるアプリケーションの脆弱性もしくはその脆弱性を悪用した攻撃のこと。特にWeb閲覧者側が制作することのできる動的サイト(例:TwitterなどのSNS、掲示板等)に対して、その脆弱性を利用して悪意のある不正なスクリプトを挿入することによりその発生するサイバー攻撃です。
少し難しい名前なので、専門的な知識が必要と思われがちですが、このページに整理する対策を行えば大丈夫。今回はクロスサイトスクリプティングについて、その概要から対策方法まで幅広くご紹介いたします。
クロスサイトスクリプティングとは?
クロスサイトスクリプティングは、Webサイト閲覧者側がWebページを制作することのできる動的サイト(例:TwitterなどのSNSや掲示板等)に対して、自身が制作した不正なスクリプトを挿入することにより起こすサイバー攻撃です。直接的な被害は標的サイトではなく、サービスを利用しているエンドユーザーに及ぶ攻撃で、標的になったサイトとは別のサイトに情報を送信(クロス)することから、この名前で呼ばれるようになりました。
初期に発見されたクロスサイトスクリプティングでは脆弱性のあるサイトと攻撃者のサイトを「サイト横断的」に利用して攻撃を実行する事から名づけられましたが、クロスサイトスクリプティングの定義は新しいタイプの攻撃が見つかるたびに拡張され、サイト横断的なものでなくともXSSと呼ぶようになりました。
攻撃の流れ
以下はクロスサイトスクリプティングの代表例を図に整理しました。
- 攻撃者CがXSSに対して脆弱性のあるA社を発見し、A社に興味を持ちそうなユーザーのいる掲示板サイトBに罠を仕掛ける(例:スクリプト付リンクを貼る)。
- ユーザーが掲示板サイトBを閲覧する。
- 掲示板サイトB内でスクリプト実行
- ユーザーはスクリプト情報を持ったままA社のページに移動(クロスサイト)する。
- スクリプトの効果により「A社のサイトとして」表示された偽サイトにジャンプする。
- 騙されたユーザーが情報を入力した結果、スクリプトが悪さをする
- 攻撃者Cの手により、ユーザーに対して様々な被害が発生(マルウェア感染・攻撃者Cへの情報漏洩など)。
攻撃の原因
クロスサイトスクリプティングの根本的な原因は、文字通り攻撃者が不正なスクリプトを挿入することができる環境を与えてしまうことにあります。つまり、クロスサイトスクリプティングに対して脆弱性を持つ動的サイトの放置です。
スクリプト文章にはエンドユーザー側が保有する個人情報を、標的サイトとは別のサイトに送信するように設定されており、これが直接的な被害を生み出します。
攻撃被害の影響
クロスサイトスクリプティングによる攻撃は、標的サイトのエンドユーザーが被害を受けることで発生します。スクリプトの内容によって被害内容が異なる点が特徴で、代表的な被害例は下記の通りです。
- cookie情報を利用した不正アクセス(セッションハイジャック)
- HTMLタグを使った入力フォームによる情報収集
- 偽サイトを使ったフィッシング詐欺
被害事例
クロスサイトスクリプティングによる攻撃で最も警戒すべきポイントは、いつ自身の提供するサービスが悪事に利用されるかわからない点です。過去「YouTube」や「Twitter」も同様の被害に遭っており、危険な事案だと指摘されています。
Youtube不正アクセス事件
動画共有サイトの米YouTubeを狙った攻撃が発生し、ショッキングなデマが流れたり、コメントが表示されなくなるなどの影響が広がりました。この攻撃ではYouTubeのコメントシステムに存在するクロスサイトスクリプティングの脆弱性が悪用されました。
この影響でコメントが表示されなくなったり、画面に著名人に関するデマやゴシップがポップアップ表示されるなどの被害が広がりました。ほかにも不正なポップアップが出たり、悪趣味なWEBサイトにリダイレクトされたりするケースが相次いだといわれています。
Twitterワーム拡散事件
クロスサイトスクリプティングに対する脆弱性をついたワーム(ロールオーバーした文章を自動でリツイートしてしまう性質を持つ)が拡散し、爆発的な勢いで混乱が拡大しました。
攻撃されないための対策
クロスサイトスクリプティングは、その脆弱性を利用されることにより発生します。サービスの提供者とユーザーの双方がセキュリティ対策を実施することが大切です。
ユーザー側に求められる対策
- 最新のブラウザにアップデートする
- スクリプトの実行設定を無効化する
- セキュリティソフトを導入し、不正なスクリプトをブロックする
企業のIT管理者に求められる対策
- エンドポイントへの総合的なセキュリティソフトの導入
- 不正なサイトへの誘導と思われるメールをブロックする
- ネットワーク内部から不正サイトへのアクセスをブロックする
WEB制作者・管理者側に求められる対策
- クロスサイトスクリプティングに対応したWEBアプリケーションを構築する
- WEBサーバやアプリケーションを最新の状態に保つ
- クロスサイトスクリプティングに対するフィルタ機能を持つWAFの導入
クロスサイトスクリプティングの脆弱性は、開発者側がソースコードを確認することで、脆弱性をチェックすることも可能です。
脆弱性を作りこまないように開発するために、IPAが公開している、「安全なウェブサイトの作り方」や「IPA ISEC セキュア・プログラミング講座」を参考にした上、必要な安全対策を実施し、開発を委託する場合にも、自社で開発する場合と同様に、上記の対策を実施することをおすすめします。
参考安全なウェブサイトの作り方
参考IPA ISEC セキュア・プログラミング講座
まとめ
クロスサイトスクリプティングが非常に危険なサイバー攻撃であることは、過去の大規模な不正アクセス事件からも明らかです。個人情報の収集を目的とした攻撃者により実行されると、甚大な被害を及ぼすこととなるでしょう。
根本的な対策は設計時のスクリプトから見直す必要があるため非常に難しい問題ですが、サイト制作者はしっかりと情報を調査した上での作り込みが必要です。さらにその他のサイバー攻撃と同じように、サイトユーザー側はしっかりとエンドポイントのセキュリティソフトを導入しておくなど、基本的なセキュリティ対策は行なっておくことが重要です。

クロスサイトスクリプティングは、スクリプトを利用したサイバー攻撃です。
使用されるスクリプトには様々なものがありますが、なかでも「javascript」及び「htmlタグ」は頻出と言える言語。とくにできることの範囲が広いjavascriptを用いた攻撃は、著しい被害を及ぼす傾向にあるため、警戒が必要だと言えます。