ITmedia NEWS > セキュリティ >
連載
» 2020年08月28日 07時00分 公開

「見えないWeb攻撃」──情報漏えい対策の盲点:攻撃の認識すら不可能 Webサイトを静かに狙う「Magecart」攻撃の実態 (2/3)

[中西一博,ITmedia]

 しかし、実際にはWebサイトのサーバの脆弱性を突いてコンテンツの改ざんが行われると、カード情報のスキミングはできてしまう。例えば悪意のあるJavaScriptをWebサイトのコンテンツに仕込んでおけば、サイト利用者のWebブラウザに偽の決済フォームを表示して入力されたカード情報を盗んだり、正規の決済フォームに入力された情報を裏でこっそり盗んだりする仕掛けを仕込める。表示される入力フォームは本物と見分けがつかないよう作り込まれているので、一般の利用者が真偽を判断するのは難しい。これらは、非保持化されたサイトの油断と防御の隙をついた攻撃だといえるだろう。

 Webサイトの脆弱性を利用した侵害や改ざんに起因するWebスキミングは、Webサーバの脆弱性パッチや、Webアプリケーションファイアウォール(WAF)による脆弱性攻撃の防御といった対策に加え、コンテンツの改ざん防止、管理者権限の厳格化などの、Webサーバのセキュリティ強化で防止できる。また、サーバやWAFのログが適切に管理されていれば、事件発覚後に何が起きたかを追うこともできるだろう。

 ところがもはや、そのような自社のWebサーバに施す対策やWAFでは防御できないWebスキミング攻撃が現れ、世界中で問題になっている。それが通称「Magecart(メイジカート)攻撃」と呼ばれる、サードパーティースクリプトを用いたWebスキミング攻撃だ。

攻撃が来たことすら認識できない Magecartによる「見えないWebスキミング」

 Magecart自体は、もともと2015年ごろから活動しているサイバー犯罪集団の名称で、クレジットカード決済機能を持つWebサイトを標的にしている。このグループがよく使う、JavaScriptを悪用する手法がMagecart攻撃と呼ばれている。18年に英国の航空会社British Airwaysから38万件のカード情報が流出した事件がMagecartの犯行としてよく知られているが、米国最大手のチケット販売会社Ticketmasterへの攻撃も、彼らによるサードパーティースクリプトを用いた巧妙なWebスキミング攻撃だったと分析されている。

 Magecartが用いる攻撃の手法はいまでは広く知られており、ある調査では世界で毎月4800のWebサイトがこの種の攻撃で侵害されていると報告されている。しかも一度対策を打っても、2割のサイトが1カ月以内に再び被害にあっているといわれていることから、世界中のWebセキュリティ関係者がいま最も警戒しているサイバー攻撃のひとつとなっている。19年から日本の企業でもこの手法を用いた攻撃を受けたことが確認されている。まずは、その巧妙な攻撃の手口を見てみよう。

 Magecart(またはそれを模倣した)攻撃では、攻撃対象となるWebサイト上のJavaScriptの改ざんを直接狙うこともある。しかし厄介なのは、ECサイトのページから正規に参照されている「Webサイトにさまざまな機能を実装するためのJavaScriptを提供している外部(サードパーティー)ベンダー」を攻撃して、そちらのJavaScriptの改ざんを図るケースだ。

サードパーティースクリプトを悪用するWebスキミング攻撃の仕組み

 ECサイトなどのWebサイトにアクセスした利用者のブラウザは、Webページ全体の描画中に、ページ内で外部参照しているJavaScriptを各サードパーティーのサーバから個々に読み込む。

 サードパーティー上で改ざんされたスクリプトが利用者のブラウザに読み込まれるとブラウザ内に潜伏。買い物や決済に関連するキーワードが読み込まれるコンテンツの中に出てきたら、悪意のあるプログラムコードを実行し、偽の決済フォームをブラウザで開いたり、正規のフォームの裏側で入力された情報のスキミングを行ったりする。

 上記の図中で特に注目してほしいのは、2番に示している、ブラウザからサードパーティーのJavaScriptを読み込む過程だ。通信がWebサイト運営会社のWebサーバやその手前のWAFを経由しないため、運営会社は攻撃が起きていることを検知できず、ログなどの記録にも残らない。また、図中4番のスキミングした情報を送る通信も、犯罪者が用意した情報受信用のサーバに直接送られる。このため、Webサイト側では防御どころか攻撃が起きていたことを認識することさえできない。

 ブラウザ内で動く悪性JavaScriptなら、利用者のPCにインストールされたアンチウイルスソフトの拡張機能がその動作を検出できる可能性もある。しかし問題は、全ての利用者がそのような追加的な対策を取っているとは期待できないことだ。現に多くの実被害が続いていることが、その難しさを物語っている。

 こうした事件が起きた場合、原因がたとえサードパーティーの管理するスクリプトにあろうと、利用者への報告と責任はユーザーに直接向き合うWebサイト運営会社が負うことになる。企業側から見れば理不尽に思えるかもしれないが、このような「見えない攻撃」に対しても、あくまでWebサイトが主体的に対策に取り組まなければならない現実に、いま世界中のWebサイトが直面している。

JavaScriptを排除できるか?

 ここまで解説してきた通り、この攻撃の特徴は、Webページに含まれるさまざまなJavaScriptを改ざんして、悪性のプログラムを利用者のブラウザに送り込んで実行させることだ。では、ページからJavaScriptを排除することがこの種の攻撃に対する防御策になるのだろうか。

Copyright © ITmedia, Inc. All Rights Reserved.