サイト改ざん、情報漏えい対策|クロスサイトスクリプティング(XSS)の詳細と対策をわかりやすく解説

クロスサイトスクリプティング(XSS)攻撃とは

クロスサイトスクリプティング(XSS)は、Webサイトのセキュリティ弱点を突き、HTMLというプログラミング言語に危険なスクリプトを混入するという攻撃手法です。「Cross Site Scripting」の頭文字をとり「XSS」という略語でも知られています。

アンケートサイト、サイト内検索機能、ブログ、掲示板など、ユーザーの入力データを使ってWebページを作り出す場所や、FacebookやTwitterといったWebアプリケーションはXSS攻撃の主な標的になり得ます。サイトにあるフォームにユーザーが情報を入力し、送信するときに、悪意のあるHTMLスクリプトが起動されて、入力データとともにCookie情報等も攻撃者に向けて送信されます。

情報処理推進機構(以下、IPA)への脆弱性報告でも、クロスサイトスクリプティングの問題が常に上位にランクインしています。2023年第2四半期(4月から6月まで)の報告数では、クロスサイトスクリプティングが49件、インシデント全体の59%と最も多く寄せられました。

ソフトウェア等の 脆弱性関連情報に関する 届出状況 [2023年第2四半期(4月~6月)]

クロスサイトスクリプティング(XSS)攻撃の仕組み

クロスサイトスクリプティング(XSS)の攻撃は主に以下の3つの段階から成り立っています。

詳しく見ていきましょう。

1.攻撃者が、スクリプトを含んだリンクを含むデータを、問合せ・申込・決済等の入力フォームを通じてWEBアプリケーションに差し込む。

2.そのWEBアプリケーションをユーザーが閲覧・利用する

3.ユーザーがリンクを押すとスクリプトが起動し、違うWEBサイトにリダイレクト(クロス)し、悪質なアクション(スクリプト)が発動する

この結果として、悪意のあるWEBページが表示されたり、マルウェアの感染などが生じる可能性があります。突如として現れるポップアップ画面(Web画面)や入力フォームなどが提示された場合は警戒が必要です。これらは、利用者の個人情報を奪うために作成されており、個人情報が漏洩したり、マルウェアに感染したりするリスクがあります。表示されたページが明らかに悪意に満ちたページであれば騙されるユーザーも少ないですが、昨今は実在する決済画面と同じデザインを表示することでユーザーが気づかずそのまま入力してしまうことで個人情報やカード情報が漏えいしています。

このようなリスクが自社のサイトに発生する可能性があるので万全な対策をしなければいけません。

 

クロスサイトスクリプティング(XSS)攻撃を行われるサイトの5つの原因

クロスサイトスクリプティング、攻撃がどの様な流れで行われるかをお伝えした次は、サイトにどの様な原因があれば攻撃を仕掛けられるのかを見ていきましょう。

 

1. 入力値の検証不足

ユーザーからの入力をそのままウェブページに反映すると、悪意のあるスクリプト(例えば、<script>タグを含むHTMLコード)が注入される可能性があります。WEBサーバーはこのスクリプトを安全なものと認識し、そのままブラウザに送信します。

 

2. 出力値のエスケープ不足

ユーザーに表示するデータを適切にエスケープせずにそのまま表示すると、悪意のあるスクリプトが実行される可能性があります。これは、ユーザーへのデータ表示時にHTMLエンティティなどを適用してエスケープ処理を行わなかった場合に発生します。

 

3. Cookieのセキュリティ設定不足

例えば、セッションCookieをHTTPS接続時だけでなく、HTTP接続時も送信してしまうと、攻撃者はユーザーのセッション情報を盗むことができます。結果として、WEBサイトを装いユーザー名やパスワードを盗んだり、ユーザーの代わりに悪意のある行動を取ったりできます。

 

4. 不適切なコンテンツセキュリティポリシー

WEBページが読み込むことができるリソースの制限が不十分だと、攻撃者は悪意のあるスクリプトを第三者のサイトから読み込むことができる可能性があります。

 

5. HTTPヘッダーの不適切な設定

例えば、X-XSS-Protectionヘッダーが無効になっていると、最新のウェブブラウザのクロスサイトスクリプティング防御機能が働かず、その結果、攻撃者によるスクリプトの注入を許してしまいかねません。

これら全てはWEBサイトを制作したときの設定ミスによるものが多く、外部にサイトを制作してもらった事業者や専門知識のあるスタッフでないとなかなか発見することは出来ません。実際、多くの企業サイトやECサイトにはこれらの設定ミスが残ったままWEBサイトが公開されている状態です。

 

クロスサイトスクリプティング(XSS)攻撃を受けないための5つの対策

では具体的にクロスサイトスクリプティング攻撃を受けない為にするべきことについて記載します。攻撃を受けない為にするべきこととして内部で行う対策と外部リソースを使用して行う対策の2つがあります。以下に記載しておりますのでぜひ検討材料にしてください。

 

1.脆弱性診断ツールの導入

自動脆弱性スキャンサービス: ウェブアプリケーションの自動スキャンを行い、XSSやその他のセキュリティ脆弱性を検出します。メリットとしては、比較的安価で詳細なレポート機能によって問題をすばやく特定し、必要な修正を行うことができることです。

secuasは一般的に50〜100万円前後する脆弱性診断ツール業界の中において、年間12万円で毎日診断を実施。さらにサービス内には発見された脆弱性の修正方法まで記載しているコストパフォーマンスの高いサービスです。まずは無料診断でクロスサイトスクリプティングのリスクがあるか否かを確認してみてください。

secuasより引用

 

2. 外部のセキュリティ監査サービスの導入

専門的なセキュリティチームがカスタムコードを対象にしたXSS監査を行う。このサービスは定期的なセキュリティアップデートとパッチを提供し、既知または未知の脆弱性から保護します。

メリットはセキュリティエキスパートが手作業の監査を行い、特定の盲点を見つけ出すことができることです。1回数百万円前後のコストが一般的ですが、より深く透明性が高く、組織全体のセキュリティ強化を実現出来ます。

 

3. クラウドベースのWAF(Web Application Firewall)の導入

悪意のあるリクエストをフィルタリングし、SQLインジェクションやXSSなどのウェブ上の脆弱性を防止します。代表的なサービスとして「攻撃遮断くん」が有名です。メリットとしては安価で導入が可能であり、インフラストラクチャの変更なしで即座にセキュリティ強化が可能です。また、高度な設定や管理が必要ないため、気軽に導入が可能になります。

 

攻撃遮断くんより引用

 

4. 安全なコーディングトレーニングサービスの導入

開発者がXSSやその他のセキュリティ脆弱性を理解し、それらを未然に防ぐためのスキルを身につけることができます。時間はかかりますが、メリットとして社内のセキュリティ意識の高揚とノウハウを蓄積することが可能になります。

 

5.セキュリティ情報とイベント管理(SIEM)サービスの導入

ログ監視と分析、リアルタイムの脅威情報、インシデントへの迅速な対応などを提供します。

メリットとしては1ライセンス16.1万円/年間と比較的安価で迅速な脅威検出と問題解決、コンプライアンス遵守の支援などが可能です。

EventLog Analyzerより引用

 

比較的安価に実施出来る内容としては1.脆弱性診断ツールの導入3. クラウドベースのWAFの導入の二つが挙げられます。1.脆弱性診断ツールの導入は紹介した5つの原因を調査し、現在のサイトにリスクが有るかを確認します。

もちろん、これはツールを使わなくても出来ますがセキュリティエンジニアを採用する必要があります。採用が難しい場合は4. 安全なコーディングトレーニングサービスの導入などを行い教育する必要がありますので少し時間がかかってしまいます。攻撃者はあなたの会社が教育している時間、待ってくれるわけではありませんのでいち早く導入してリスクの有無を把握してください。

より深く調べる為には2. 外部のセキュリティ監査サービスの導入もいいと思いますが、高額になるケースが多いため実施を考える場合はしっかり予算を確保してから検討してください。3.クラウドベースのWAFの導入1.脆弱性診断ツールの導入で診断・対策を完了させた後にさらにセキュリティを強固にするために非常に有効な手段となります。この二つの組み合わせは自宅の鍵をしっかり掛け(1.脆弱性診断ツールの導入)た後に警備員に立ってもらう(3. クラウドベースのWAFの導入)イメージになります。

 

まとめ「WEBサイトはXSS攻撃の予防と対策を万全にする」

クロスサイトスクリプティング攻撃は十数年以上続いています。被害事例を見ると大手企業や有名企業だけが狙われているように勘違いされることもあるかと思いますがそんなことはありません。攻撃者は有名な企業を狙うわけではなく「セキュリティの甘い企業」を狙っております。

独立行政法人であるIPAもクロスサイトスクリプティングに対して注意するように喚起しています。

IPAからの引用:安全なウェブサイトの作り方 – 1.5 クロスサイト・スクリプティング

 

IPAの上記ページにも記載されていましたが、狙われやすいサイト・注意が必要なサイトを抜粋していますのでご自身のサイトが当てはまらないか今一度確認をお願いします。

XSS攻撃で狙われやすいサイト例

・Cookieを利用してログインセッションを管理しているサイト(会員サイト、情報サイト、他)

・ログイン画面や個人情報をの入力する画面を持つサイト(ECサイト、サービスサイト、申込ページ、他)

XSS攻撃で狙われやすい機能例

・入力内容を確認させる表示画面(会員登録、アンケート、決済システム)

・誤入力際に再入力画面を表示して、前の入力内容を表示するとき

・検索結果の表示

・エラー表示

・コメントの反映(ブログ、掲示板等) 等インターネット社会の現代において狙われない為、被害にあわない為には「予防と対策」が必須です。まずは自社のサイトにクロスサイトスクリプティング攻撃のリスクがないか無料で確認してみて下さい。

 

[この記事と関連する記事はコチラ]

カード情報漏えい事例|中小企業のECサイトが一時閉鎖になった原因