お役立ち情報

ブログ

  • 2023.02.13. XSS(クロスサイトスクリプティング)とは?仕組み・被害・対策も



    サイバー攻撃は多様化しており、攻撃手法によって被害や対策方法が異なります。そして、企業や団体は攻撃の標的とされることが特に多いため、どのようなサイバー攻撃の手法があるかを理解し、常に適切な対策を講じておかなければなりません。


    数あるサイバー攻撃手法の中でも、被害件数が極めて多い攻撃が「XSS(クロスサイトスクリプティング)」です。今回は、XSSの概要や仕組みから、XSS攻撃の被害例、対策方法まで徹底的に解説します。サイバー攻撃を防ぎたい・万一の被害を最小限に抑えたいという方は、ぜひ参考にしてください。

     

      

     

    1. XSSとは?

    XSS(クロスサイトスクリプティング)とは、ユーザーの入力情報に応じて動的にページ生成をするWebサイト・Webアプリケーションの脆弱性を利用して、悪質なスクリプトを埋め込むというサイバー攻撃です。


    標的サイトに訪問したユーザーを、別の悪意あるWebサイトへと誘導することから、この名称がつきました。「クロスサイトスクリプティング攻撃」とも呼ばれています。

     

     

    1-1. 情報セキュリティ専門の部署を設立する

    XSSの攻撃者は、掲示板サイトやECサイトなど動的Webページを生成するサイトを主な攻撃対象としています。攻撃の仕組みや具体的な流れは、下記の通りです。



    1

    攻撃者が、Webサイト上の入力フォームに悪質なスクリプトのついたリンクを含む文字コードを入力する

    2

    サイト訪問者が、罠が仕掛けられたWebサイトを閲覧・利用する

    3

    サイト訪問者が、攻撃者の仕掛けたリンクをクリックする

    4

    マルウェア感染の入口となるWebサイトに遷移し、攻撃用スクリプトが実行される



    遷移される別のWebサイトは、遷移前のWebサイトと非常に似たデザインで表示される傾向にあります。そのため、攻撃用Webサイトと気付かず、入力フォームに個人情報などの重要な情報を入力してしまう方も多くいるでしょう。結果として、ただWebサイトを閲覧しているだけでもデバイスにマルウェアが感染したり、個人情報を抜き取られたりします。

     

     

    1-2. XSSの種類

    XSSとひとくちに言っても、具体的な攻撃手法には「Reflected XSS」「Stored XSS」「DOM Based XSS」の3種類があります。


    Reflected XSS

    偽のWebサイトやメールに悪質なスクリプトを含んだリンクを組み込んでユーザーに脆弱性のあるWebサイトにリクエストさせ、レスポンスしたWebページに攻撃用スクリプトを実行するXSSです。「反射型XSS」とも呼ばれています。

    Stored XSS

    Webサイト・アプリケーションの内部に直接悪質なスクリプトを保存し、ユーザーが閲覧するたびにそのスクリプトを実行させるXSSです。「格納型XSS」とも呼ばれています。

    DOM Based XSS

    JavaScriptの脆弱性を利用して、Webサイトを動的に操作したユーザーに対して攻撃用スクリプトを実行させるXSSです。

     

    1-3. SQLインジェクションとの違い

    XSSとよく似た攻撃手法には、「SQLインジェクション」が挙げられます。


    XSSとSQLインジェクションは、いずれもWebサイト・Webアプリケーションの脆弱性を利用したサイバー攻撃で、ECサイトなどが主なターゲットとなります。


    しかし、XSSは基本的にJavaScriptを操作する攻撃であり、個人情報の盗用・悪用やフィッシング詐欺を目的としています。一方で、SQLインジェクションはデータベースを操作する攻撃であり、Webサイトの改ざんやデータの消去・盗用が目的です。


    このように、XSSとSQLインジェクションはよく似た手法であるものの、具体的な仕組みと目的が異なることを覚えておきましょう。

     

     

     

    2. XSS攻撃による被害の例

    XSS攻撃は、あらゆる被害を受ける要因となります。しっかりと対策するためには、XSS攻撃によって具体的にどのような被害が想定されるかを理解しておかなければなりません。


    XSS攻撃による代表的な被害例は、「情報漏洩」「セッションハイジャック」「Webサイトの改ざん」が挙げられます。ここからは、それぞれの被害について詳しく説明します。

     

     

    2-1. 情報漏洩

    XSS攻撃による主な被害例の1つが、情報漏洩です。ユーザーが罠サイトに遷移していると知らずに個人情報を入力・送信すると、それらの重要な情報は攻撃者側に搾取されてしまいます。


    ECサイトであれば、クレジットカード情報といった重要な情報を入力するケースも多々あります。このような情報を盗まれると、クレジットカード情報を不正に使って高額な商品を購入されるなどの被害も起こり得ます。最悪の場合、ダークウェブサイトなどの情報リストとして売られ、標的型攻撃の対象となるなどさらなる被害を生む可能性もあるでしょう。

     

     

    2-2. セッションハイジャック

    セッションハイジャックとは、ネットワーク通信におけるセッションを不正に乗っ取られるという攻撃です。個別のセッションIDやcookieを使って、正規ユーザーになりすまして通信するという方法となっています。


    セッションハイジャック攻撃をされると、正規ユーザー・クライアントになりすましてサーバに侵入した攻撃者に機密情報が盗まれたり、登録情報の漏洩・改ざんをされたりする可能性があります。ECサイトであれば、ユーザーのクレジットカード情報の不正利用といった被害にも及ぶでしょう。

     

     

    2-3. Webサイトの改ざん

    XSS攻撃を仕掛けた攻撃者がネットワーク内のサーバに侵入すると、Webサイトが改ざんされる可能性があります。改ざんの内容は多種多様で、いたずら目的にWebサイトのデザインを大幅に変えるだけの単純な改ざんから、閲覧者にウイルスを感染させるような被害拡大を目的とした改ざんまであるでしょう。


    情報漏洩やセッションハイジャック、Webサイトの改ざんは、実際にさまざまな企業で被害事例があります。



    「EXOセキュリティ」無料トライアルはこちら

      

    3. XSS攻撃への対策4選

    XSSによって、Webサイトの改ざんや情報窃取をはじめとしたあらゆる被害を受ける可能性があります。企業であれば顧客からの信用度やブランドの低下に大きくつながるおそれがあるため、徹底した攻撃対策が必要です。


    XSS対策をするうえでは、脆弱性を突かれないようにする、つまり脆弱性を最大限なくすことがポイントと言えるでしょう。最後に、XSS攻撃への対策に有効な方法を4つ紹介します。

     

     

    3-1. 情報セキュリティ専門の部署を設立する

    サニタイジング(エスケープ)処理とは、HTMLにおいて区切り・タグなどの意味をもつ文字を、意味をもたない文字列に置き換えてXSS攻撃を無効化する処理方法です。


    タグの一部としてブラウザに認識される「<, >」などの文字列を「<」や「>」に置き換えれば、HTMLではなく単なる文字列として表示させられます。そのため、スクリプトが意図せず挙動することを防ぐことが可能です。

     

     

    3-2. バリデーション処理備

    バリデーション処理とは、ユーザーが操作する入力フォームのシステムにおいてバリデーション、いわゆる入力値の制限をかけるという処理方法です。


    例えば、パスワードの入力欄には「全角が含まれた7文字以上の英数字」を、電話番号の入力欄には「数字のみ」などと制限をかけます。そうすることで、想定外の値が入力されません。結果として、XSS攻撃を防ぐことにつながります。

     

     

    3-3. 社員研修の実施

    WAFとは、「Web Application Firewall」の略称であり、Webアプリケーションの脆弱性を利用した攻撃に特化するセキュリティ対策の一種です。


    WAFを設置すれば、ネットワーク通信を常に監視できるようになります。攻撃と判断された通信は遮断できるため、XSS攻撃を防ぐことが可能です。常にすべての脆弱性を把握して迅速に修正するのは困難なため、XSS攻撃を最大限防ぐためにも導入すべきソリューションと言えるでしょう。


    また、WAF製品には「クラウド型WAF」「ホスト型WAF」「ゲートウェイ型WAF」の3種類の設置形態があります。製品によって機能が異なるため、自社に適した製品選びをすることが大切です。

     

     

    3-4. 定期的なテストやセキュリティチェックリストの実施

    URLは「http://」や「https://」から始まるものが一般的ですが、中には「javascript:」から始まるURLも存在します。ユーザーが入力したURLが外部からの入力に依存する形で動的に生成されるケースでは、「javascript:」から始まる文字列を指定された際に悪質なスクリプトが実行される可能性もあります。


    このような原因による被害を防ぐためにも、リンク先のURLは「http://」や「https://」から始まる文字列のみを許可することがおすすめです。

     

     

     

    まとめ

    XSSとは、ユーザーの入力情報に応じて動的にページ生成をするWebサイト・Webアプリケーションの脆弱性を利用して、悪質なスクリプトを埋め込む攻撃手法であり、被害件数の多さが特徴です。


    XSS攻撃を受けると、情報漏洩やセッションハイジャック、さらにWebサイトの改ざんといったあらゆる被害が生じる可能性があるため、常にサニタイジング処理・バリデーション処理などの対策を講じておきましょう。


    「EXOセキュリティ」は、ITやセキュリティ知識の少ない方でも直感的に操作できるエンドポイントセキュリティソリューションです。月額5,000円から(上限ライセンス50)と低価格で導入できる点も魅力となっています。無料トライアル期間も設けているため、「セキュリティ対策をしたい」と考えている企業の担当者様はぜひお気軽にお問い合わせください。