Web制作

【Webサイトのセキュリティ対策】XSSのリスクを防ぐ方法

2019年01月07日、ドイツの政治家の個人データが大量にTwitterに流出していることが報道されました。被害者は数百人に上り、ドイツ首相のメルケル氏の情報も含まれるとされ、ハッキングで入手された可能性もあるため情報当局が捜査に乗り出しています。

それ以外にも、2018年は年明け早々コインチェックがハッキングされ、数百円相当の仮想通貨「NEM」が流出したり、2018年9月29日にはFacebook利用者の情報が不正利用されたりと、セキュリティ問題に注目が集まりました。

そこで、今回は代表的なハッキング手法の一つである「XSS(クロスサイトスクリプティング)」と、その対策方法をテーマにお届けします。

セキュリティ対策の重要性~XSS(クロスサイトスクリプティング)とは

ECサイトなどを運営する際には、単に便利なだけでなく、ユーザーが安心して利用できるサイトを作る必要があります。そのためには、セキュリティ対策を万全にすることが欠かせません。
ECサイトのようにユーザー自身もセキュリティを意識するサイトの場合、すでにしっかりとセキュリティ対策がされているでしょうが、そうでないサイトの多くにはリスクが残ったまま運営されています。

しかし、ハッキング手段が高度化し、ユーザーの意識も高まってきた今、基本的な対策もできていないサイトは、ユーザーに情報を届ける資格がない“失格サイト”といってしまっていいでしょう。

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

特に現在、注意しなければならないのはXSS(クロスサイトスクリプティング)というリスクがあります。
XSSとは、簡単にいえばWebサイトの脆弱性につけ込んだサイバー攻撃のことであり、情報の漏洩やユーザーへのフィッシング詐欺などの被害をもたらす可能性があります。

エンドユーザー(サイト利用者)が情報を書き込める、あるいは登録できる機能を持つサイトに不正なスクリプト(プログラム)を組み込み、そのサイトを利用したエンドユーザーの個人情報を抜き取ったり、フィッシングサイトへの誘導をしたりなどといった被害を及ぼします。

もしも自社のサイトにXSSが仕組まれてしまうと、ユーザーがお問い合わせフォームを送信した際に問い合わせ情報を抜き取ったり、サンクスページを悪質なサイトに入れ替えられたりしてしまいます。
支払い情報の入力機能があるECサイトではもちろん、ユーザーが何かを入力する機能を持つサイトにおいて、対策は必須のハッキング手法です。

XSSの不正スクリプトはWebサイトの脆弱な部分、つまり隙をついて組み込まれるものなので、きちんとセキュリティ対策を行えば防ぐことが可能です。
しかし、2019年現在も、完璧な対策を講じているWebサイトは全体の約6割にとどまるといわれています。2010年7月には、YouTubeですらXSSの攻撃を受けています。

2010年7月に起きたYouTubeを標的としたXSS攻撃

世界で10億超の利用者がいるYouTubeにXSS攻撃が仕掛けられ、動画に付いたコメントが表示されなくなったり、有名人のデマが表示されたり、フィッシングサイトへの誘導が行われたりといった被害が発生しました。

これはYouTube設置されたコメント機能のプログラムに脆弱性があったことが原因とされています。
Googleは攻撃発生から2時間ほどでXSSに対処したと報道しましたが、全世界で利用されているサイトであるため、非常に多くの人が被害を受けました。

XSSのリスクを回避する方法

不正スクリプトを組み込まれることなく安全なサイトを作るためには、何よりサイトのソースコードに脆弱な部分を作らないことが大切です。
その上でセキュリティソフトの導入などを行い、エンドユーザーの個人情報を保護して、サイト内に蓄積された情報を漏洩しないように対策しましょう。

ここでは2通りのXSS対策をご紹介します。

SSL/TLS化する

SSL(Secure Sockets Layer)は、インターネット上での通信を暗号化するシステムのこと。現在ではTLS(Transport Layer Security)と呼ばれるようになっていますが、多くの場合「SSL/TLS」と表記されます。

サイトとエンドユーザー間における個人情報などの入力データ通信を暗号化することができ、他者に情報を抜き取られないようにします。また、そのデータ自体が他者に改ざんされていないことを明らかにする証明書も同時に発行します。
その結果、「データ改ざんの防止」と「なりすまし(抜き取ったデータを他者が利用すること)を防止」することができます。
SSL/TLSで暗号化されたデータはコピーすることができず、暗号化されたデータを復元するためにはサイトのサーバーのみ入っている秘密鍵が必要になるため、強固なデータ保護が可能です。

セキュリティ対策としての効果の高さはGoogleにも認められているほどでです。Googleは2014年から、ユーザーが安全にインターネットを利用できるようSSL/TLS化しているか否かを検索結果基準のひとつとしています。

2018年2月27日火曜日、Googleはウェブマスター向けブログでSSLの重要性を語りました。

保護されたウェブの普及を目指して
私たちはここ数年間、サイトで HTTPS による暗号化を採用するよう強く働きかけることによって、保護されたウェブを目指してきました。そして昨年は、(中略)、HTTP サイトが保護されていないことをユーザーに理解してもらうよう努めてきました。2018 年 7 月に Chrome 68 がリリースされると、すべての HTTP サイトに「保護されていません」と表示されるようになります。
引用:Webマスター向けブログ

ファイアウォール(WAF)を導入する

和訳すると“防火壁”という意味のファイアウォール(Web Application Firewall)は、その名の通りネットワークとネットワークの間に立ち、不正アクセスを防ぐ役割を果たすソフトウェアです。
インターネット通信は本来、常時さまざまなネットワークがクモの巣のように張り巡らされており、誰しもが利用することができます。
しかし誰でも自由に出入りができるとなれば、当然サイバー攻撃を企む人間からのアクセスも容易に行うことができてしまうでしょう。
そこでファイアウォールは、出入りが自由になってしまっている通信の出入り口を制御して、外部からのアクセスを制限します。また、外部からの不正アクセスだけではなく、内部からも情報漏洩が起きないようにする機能も備えています。

現在、数多くのファイアウォールソフトウェアが販売されています。

  • Dell SonicWALL …ファイアウォール、VPN、ゲートウェイアンチウイルス、アンチスパイウェア、IPS、コンテンツフィルタリング機能などを1台に統合したセキュリティアプライアンス
  • FortiGate …高度なセキュリティ脅威や標的型攻撃に対する高度な保護機能を提供する次世代ファイアウォール
  • McAfee Firewall Enterprise …1100種類以上のアプリケーションの可視化と制御が行え、強固なセキュリティ環境を構築できるファイアウォール
  • Infoblox DNS Firewall …既存の対策では防ぎきれない標的型攻撃をDNSレベルで防御。個人所有のスマートフォンやタブレット端末の感染も検知・アクセスを制御するアプライアンス製品

導入する際はそれぞれの仕様の違いを押さえたうえで最適なものを選びましょう。

まとめ

今回は、Webサイトのセキュリティ対策のうち、「XSS(クロスサイトスクリプティング)」に焦点を当てて紹介しました。
XSSが非常に危険なハッキング手段であることは、YouTubeやTwitterで受けた大規模なサイバー攻撃事件からも明らかです。

根本的な対策を行うには、設計時のスクリプトを見直す必要があり、簡単に対処できる問題ではありません。しかし、今回紹介したSSL/TSL化やファイアウォールの導入等は、比較的簡単に実施できるため、ぜひ検討すべき内容です。
特に、SSL/TSL化はGoogleも推奨しており、無料で導入することもできるため、サイト制作者・運営者の義務といってもいいでしょう。

情報は“21世紀の石油”と呼ばれるほど価値があります。
ユーザーと信頼関係を築き、長期的に事業を発展させ続けるためにも、情報セキュリティに対して対策するとともに、アンテナを広げてみてはいかがでしょうか。