私たちは日頃からインターネットを通じて、Webアプリケーションやサービスを利用し、その恩恵を受けています。その一方でWebサイトの改ざんや情報漏えいといった事件・事故が後を絶たないという実情もあり、Webサイトの運営者はセキュリティに対する正しい知識を身に付ける必要があります。
本稿では、Webサイトの利用者を罠にかけることで重要情報を盗み出したり、改ざんなどの攻撃をするクロスサイト・スクリプティングについて解説します。安心・安全なWebサイトを運営するために様々な攻撃手法についての知識を身に付けるようにしましょう。
クロスサイトスクリプティングとは
Webの利用者を脆弱な標的サイトにアクセスするように仕向けることで、ウェブサイトが本来想定していない機能(スクリプト実行など)をブラウザ側で実行させる攻撃のこと、またはその攻撃が可能な脆弱性がクロスサイトスクリプティング(XSS)です。
- 攻撃者がスクリプトを含んだリンクを用意するなどの罠を仕掛ける
- ユーザーがその罠にかかってしまうことで、標的サイト経由でクライアント上でスクリプトが実行されてしまう
- その結果、Cookieの値を盗まれて「なりすまし」に悪用されたり、書き換えられた画面から重要情報を入力してしまうなどの被害が生じる
攻撃者が用意する罠サイトと標的となる(脆弱な)サイトを横断することからクロスサイトスクリプティングと呼ばれており、XSSと省略されます。「何故、XSS?」と思われる方がいるかもしれません。クロスサイトスクリプティング(Cross Site Scripting)を「CSS」と略してしまうと、HTML文書の見栄えを整えるスタイルシート言語のCSS(Cascading Style Sheets)と同じになってしまうため、区別して「XSS」と表記することが多くなっています。
クロスサイトスクリプティングの届出の多さ
IPA/JPCERTコーディネーションセンターの脆弱性関連情報の届出に関する報告書(ソフトウェア等の脆弱性関連情報に関する届出状況[2020年第1四半期(1月~3月)])によると、Webサイトの脆弱性に関する届出が200件あり、そのうちクロスサイトスクリプティングが145件で最も多く、次いでSQLインジェクションが15件という結果になっています。累計でもクロスサイトスクリプティングが全体の58%を占めており、届出の数が非常に多いことが分かります。
クロスサイトスクリプティングは、WordPressなどのCMSやプラグインといった拡張機能の脆弱性においても数多く報告される傾向にあります。この傾向は当社でWordPressの脆弱性情報の収集を強化した2015年以降、現在も変わっておらず、今後も同様の傾向が続くと予想しています。
クロスサイトスクリプティングの攻撃手法としてよく紹介される内容には、前述のように攻撃者にとって「罠を仕掛ける」というステップがあり、その罠にかからなければ攻撃は成立しません。(反射型XSS)
そのためか、クロスサイトスクリプティングはよく知られた脆弱性であるにもかかわらず対策が軽視されることがあります。しかしながら、クロスサイトスクリプティングにはいくつかのタイプがあり、攻撃者が罠を用意せずに利用者が標的サイトを閲覧するだけで攻撃を実行できるタイプ(持続型XSS)も存在するので注意が必要です。
安心・安全なWebサイトを運営するためにも、Webサイトの運営者やアプリケーション開発者は、クロスサイトスクリプティングの脆弱性のないプログラミングを徹底する必要があります。
いかがでしょうか?クロスサイトスクリプティングがどのようなものかを解説しました。以下の記事ではクロスサイトスクリプティングの種類や開発面での対策、セキュリティ製品を活用した対策を紹介しています。クロスサイトスクリプティングについてより詳しく知りたい方は、ぜひ参考にしてください。
- カテゴリ:
- 用語
この記事に関する製品のご紹介
ホスト型WAF「SiteGuard Server Edition」
SiteGuard Server Editionは、ウェブサーバーのモジュールとして動作するホスト型WAF製品です。Webサーバー自体にインストールするため、専用ハードウェアが必要ありません。ネットワーク構成を変更せず、できるだけシンプルに導入したいお客様に最適な製品です。
詳細はこちら