「Webスキミング」とは、オンラインストアの決済ページから利用者のクレジットカード情報を盗み取るために、サイバー攻撃者によって昔から使われている手法です。しかし最近、当社のエキスパートは、盗んだデータを密かに送信する際にGoogleアナリティクスを利用する方法を発見しました。これがなぜ危険なのか、どう対処すべきかを見ていきます。
Webスキミングの仕組み
攻撃者は、標的のWebサイトに悪意あるコードを注入します。どうやって注入するのかはまた別の話になりますが、管理者アカウントのパスワードを総当たり攻撃で突き止める(または盗む)場合もあれば、コンテンツ管理システム(Content Management System:CMS)またはサードパーティー製プラグインの脆弱性を悪用する場合、正しくコーディングされていない入力フォームを通じて注入する場合などがあります。
注入されたコードは、利用者の行動(入力されたクレジットカード情報を含め)をすべて記録し、攻撃者へと送信します。こうした点から、Webスキミングは一種のクロスサイトスクリプティングである場合がほとんどです。
なぜGoogleアナリティクスなのか
データ収集は、マルウェアの仕事の半分にすぎません。集めた情報は、攻撃者の元へ送る必要があります。しかし、Webスキミングは何年も前から存在していることから、業界は対抗するためのメカニズムを開発してきました。その一つが、特定のWebサイトまたはWebページ上の情報を収集する権利を持つサービスをすべてヘッダー内にリストアップすることで指定外のサービスに情報を渡さないようにする、コンテンツセキュリティポリシー(Content Security Policy:CSP)です。サイバー犯罪者は、自分たちの使用するサービスが該当のWebサイトのヘッダー内にリストアップされていなければ、集めた情報を引き出すことができません。そこで、一部のサイバー犯罪者たちはGoogleアナリティクスを利用することを思い付きました。
今ではほぼすべてのWebサイトが、訪問者に関する統計値を注意深くモニタリングしています。当然ながらオンラインストアも同様です。こうした用途に使える便利なツールがGoogleアナリティクスです。Googleアナリティクスは多数のパラメーターに基づいてデータを収集可能で、現在のところおよそ2,900万のWebサイトが利用しています(英語)。Googleアナリティクスへのデータ転送がオンラインストアのCSPヘッダー内で許可される可能性は非常に高いはずです。
トラッキング用パラメーターを設定してトラッキングIDを受け取り、このIDとトラッキングコードを自分のサイトのWebページに追加すれば、統計値を取れるようになります。Googleアナリティクスの視点で見ると、あなたがこのコードを追加できるのであれば、あなたはこのWebサイトの正当な所有者なのです。そこで攻撃者は、自分たちのGoogleアナリティクスアカウントを開設し、トラッキングIDを入手して、標的のWebサイトに悪意あるスクリプトと共に注入します。このスクリプトは利用者のデータを集め、攻撃者のトラッキングコードを使用して、このデータをGoogleアナリティクスのMeasurement Protocol経由で攻撃者のGoogleアナリティクスアカウントへ直接送ります。攻撃メカニズムの詳細と攻撃の痕跡(IoC)については、Securelistの記事をご覧ください。
取るべき対策
このWebスキミングの主な被害者は、オンラインでクレジットカード情報を入力した人々です。しかし、この問題の大部分は、決済フォームを持つWebサイトを運営する企業の側で対応する必要があります。Webサイトからデータが漏洩しないようにするため、以下の対策をお勧めします。
- Webアプリケーションを含め、すべてのアプリケーション(CMSとそのプラグインもすべて)を定期的にアップデートする。
- CMSコンポーネントは、信頼できる出所のものしかインストールしない。
- ユーザー権限を必要最小限に絞り、強力で他では使っていないパスワードの使用を必須とする、厳格なCMSアクセスポリシーを採用する。
- 決済フォームのあるWebサイトのセキュリティ監査を定期的に実施する。
この攻撃スキームの直接の被害者となり得る利用者としては、取り得る対策はセキュリティ製品を利用することです。カスペルスキーの一般個人向けの製品および中小企業向けの製品には、決済サイトに仕掛けられた悪意あるスクリプトを検知するネット決済保護機能が備わっています。