「Webスキミング」はなぜ危険? 目が行き届かないスクリプトを狙われるリスクWebブラウザ内で不審な挙動を検出

クレジットカード情報や顧客の個人情報漏えいの原因として、「Webスキミング」と呼ばれる攻撃手法が挙がるようになってきた。Webスキミング攻撃はなぜ対処しづらいのか、その危険性と対策を解説する。

2020年10月01日 10時00分 公開
[ITmedia]

 EC(電子商取引)サイトをはじめとするWebサービスを狙ったサイバー攻撃は後を絶たない。実際のインシデント例として、正規のSQLクエリに悪意ある操作を挿入し、標的のサーバで実行させる「SQLインジェクション」攻撃によってWebアプリケーションが侵害されたケースがある。Webアプリケーションを稼働させるミドルウェアの脆弱(ぜいじゃく)性を突いて攻撃者がWebサーバに不正アクセスし、保存されている顧客の個人情報を盗むといった事件もある。

 これらのインシデントを教訓として「脆弱性検査を実施してセキュアなWebアプリケーションを開発する」「WebサーバのOSやミドルウェアにパッチを適用する」「Webアプリケーションファイアウォール(WAF)によって不正アクセスを防ぐ」といった対策が広がりつつある。さらに、「そもそもデータを自社で保有しなければ盗まれない」という考えに基づき、自社システムにはクレジットカード情報を保存せず、決済代行業者に処理を委託する「カード情報の非保持化」は、2018年6月の「割賦販売法の一部を改正する法律」(改正割賦販売法)施行で浸透した対策だ。

 金銭を狙うサイバー犯罪者は、こうした対策を擦り抜ける新たな手法を盛んに使い始めている。その一つが、サイバー犯罪者集団「Magecart」が「Webスキミング」に用いるために使い始めた手法だ。Webスキミングでは、プログラミング言語「JavaScript」で記述された不正スクリプトをWebアプリケーションに仕込んで情報を抜き取ろうとする攻撃手法が広く用いられる。最も巧妙に作り込まれた攻撃は、これまでのWebアプリケーションでは攻撃を受けていた記録が残らず、発見さえ困難だという。その理由と、すでに国内外で横行しているWebスキミングの脅威を探りつつ、どう対策を講じればよいのかを見ていこう。

国内外で広がる「Webスキミング」の被害

 「スキミング」とは、カード情報を抜き取るための古典的な犯罪手法を指す。金銭の支払いや引き出しの際に顧客からクレジットカードやキャッシュカードを受け取るタイミングを狙って、カードを専用の機器で読み取り、その情報を複製して金銭を盗むというものだ。この「特定のタイミングを狙って盗む」ことになぞらえ、エンドユーザーがECサイトなどのWebアプリケーションで決済を処理する瞬間を狙って情報を盗み取る攻撃手法をWebスキミングと呼ぶ。

 Webスキミング攻撃において攻撃者は、Webアプリケーションを改ざんすることでクレジットカード情報や個人情報を盗み取る。JavaScriptを使った攻撃では、エンドユーザーが決済処理を実行しようとしたタイミングでWebブラウザに偽の決済フォームを表示したり、正規の決済画面の裏でクレジットカード情報を読み取るためのJavaScriptのスクリプトを仕込んだりする。

 世界でも、JavaScriptを悪用したWebスキミング攻撃による被害が広がっている。2018年9月には航空会社British Airways(BA)がWebスキミング攻撃の被害に遭い、約38万件のクレジットカード情報を盗み取られた。この一件で英国情報コミッショナー事務局(ICO)は、BAが欧州連合(EU)の「一般データ保護規則」(GDPR)に反したとして約250億円に上る制裁金を科す意向を示した。日本でもWebスキミング攻撃によって顧客のクレジットカード情報や個人情報が盗み取られた例が相次いでおり、被害の拡大を受けて2020年に「クレジットカード・セキュリティガイドライン」が発表された。非保持化などに加えて、最新の攻撃手口などの情報を踏まえ、自社のセキュリティ対策の改善・強化を図る、という文言が盛り込まれたものの、功を奏しているとは言い難い状況だ。

Webスキミング攻撃が既存の対策では対処しづらい理由

中西氏 アカマイ・テクノロジーズの中西一博氏

 アカマイ・テクノロジーズ(以下、アカマイ)のプロダクト・マーケティング・マネージャー中西一博氏によると、JavaScriptによるWebスキミング攻撃の厄介なところは2つある。1つ目は、自社で組み込み自社のWebサーバで動くJavaScriptのスクリプト(ファーストパーティースクリプト)だけでなく、Webアプリケーションが呼び出す外部のJavaScriptのスクリプト(サードパーティースクリプト)が改ざんされても被害につながることだ。自社でコントロールできない範囲の改ざんに対し、効果的な対策を取ることは難しい。

 2つ目は攻撃に気付くのが困難なことだ。サードパーティースクリプトの改ざんによるWebスキミング攻撃を仕掛ける攻撃者は、Webブラウザがサードパーティースクリプトを読み込む仕組みを悪用する。サードパーティースクリプトは一般的に、サードパーティーのWebサイトからエンドユーザーのWebブラウザに直接読み込まれる。攻撃者は標的企業のサーバを経由することなく、Webブラウザから直接、窃取した情報を入手できる。そのため攻撃を受けていても自社サーバにログが残らず、カード会社など外部からまとまった数の不正利用の連絡が入って初めて慌てることになる。2018年に米国のチケット販売サイトTicketmasterで発生した顧客情報流出が、このタイプの攻撃が用いられた典型例だ。

図1 図1 Webスキミング攻撃の概要と対策上の課題。「C&Cサーバ」はコマンド&コントロールサーバの略で、攻撃用に用いられるサーバを指す《クリックで拡大》

 こうした理由から、WAFの導入、サーバの脆弱性の修正といった既存の対策では、Webスキミング攻撃を防ぎ切るのは難しい(図1)。しかし、理由のいかんにかかわらず、Webサイトのエンドユーザーに責任を負うのは、WebサイトやWebサービスを提供する事業者だ。こうした進化を続ける攻撃に対しても、エンドユーザー側のセキュリティ環境に依存することなく、ホスト側で何とかまとまった対策を取る必要がある。

 Webサイトで利用しているJavaScriptのスクリプトを排除するアイデアもあるが、これは「非現実的だ」と中西氏は言う。なぜなら近年のWebアプリケーションは正規のクレジットカード決済処理以外にも、広告、ソーシャルメディアとの連携、アクセス解析など、さまざまな用途のサードパーティースクリプトを不可欠な要素として組み込んでいるからだ。「サードパーティースクリプトを排除してしまうと、現在のWebテクノロジーやマーケティングテクノロジーの進歩が巻き戻され、20年前のWebに戻ってしまうだろう。現代のビジネスロジックに深く組み込まれた仕組みを、セキュリティ上のリスクという言葉だけで簡単に排除できない」と中西氏は実情を話す。

 CSP(Content Security Policy)など、読み込み可能なコンテンツを細かく制御する手段の利用も一つの手だろう。しかしビジネスにスピードが求められ、短いサイクルで開発と検証が繰り返されるWebアプリケーションを構成するソースコードに対してこの仕組みを運用するには、高いスキルを備えたエンジニアが更新されるソースコードに常時目を凝らす負担を強いられる。「スクリプトは頻繁に更新されます。サードパーティースクリプトを含む全てのスクリプトの中に潜んでいるリスクを、人の目では監視し切れません」と中西氏は指摘する。

Webブラウザで挙動を監視する「Page Integrity Manager」

 「これまで見えなかったスクリプトによる攻撃を検知する」。そんな考え方に基づいてアカマイが開発したWebスキミング攻撃対策が「Page Integrity Manager」(PIM)だ。PIMは同社のCDN(コンテンツデリバリーネットワーク)サービスを通じて提供される(図2)。

図2 図2 PIMの仕組み《クリックで拡大》

 Webスキミング攻撃で利用される不正スクリプトは、サーバではなくエンドユーザーのWebブラウザで実行される。そこで不審な動きをエンドユーザー側で検出できるよう、アカマイのCDN経由でコンテンツを配信する際に検査用のJavaScriptのスクリプトを挿入し、Webブラウザ内で監視を開始する。もし悪意のあるJavaScriptのスクリプトが実行されたり、Webブラウザによる不審な宛先への情報送信や個人情報などの機密情報にアクセスがあったりした場合はそれらを検出し、Webサイト管理者にアラートを送る仕組みだ。PIMは以下のような特徴を持つ。

図3 図3 PIMの特徴。「Javaランタイム」はJavaScriptのスクリプトを実行するためのプログラム群、「ヒューリスティック分析」はあらかじめ不審な挙動として登録した情報と照らし合わせる分析手法を指す《クリックで拡大》

 今やWebアプリケーションはサードパーティースクリプトを呼び出すだけでなく、そこからフォースパーティー、フィフスパーティースクリプトを読み込むといった構造の階層化が進んでいる。もちろん自社のファーストパーティースクリプトに脆弱性やリスクが潜んでいたり、改ざんされたりするケースにも対処する必要がある。PIMは、WebアプリケーションをロードしたときにWebブラウザで動くそれらのJavaScriptのスクリプトや通信をまとめてWebブラウザ上で監視、検出することで、根本的な対策を実現している。既存のWebサーバやWebアプリケーションに手を加えたり、あらかじめエンドユーザーにプラグインを配布したりする必要がないため、すぐに利用できることも特徴だ。

 アカマイは、自社サーバへの脆弱性攻撃などの一般的なWebアプリケーションのリスクについては、WAFや定期的な脆弱性スキャンといった他のセキュリティ対策と組み合わせることを推奨している。PIMをこれらの対策に加えることで、Webアプリケーションの多層防御で保護できるようになり、これまで見えていなかったWebスキミング攻撃にも対処できるようになる。

 Webアプリケーションはスクリプトを活用しながら進化し、便利なサービスを実現してきた。事業部やマーケティングの判断で、セキュリティのリスクアセスメントなしにそれらのスクリプトが組み込まれているケースも少なくない。実はこうした状況に、以前から漠然とした危機感を感じてきた現場のセキュリティ担当者もいる。しかし、スクリプトに潜んでいる具体的なリスクについてタイムリーな可視化は難しく、これまで大きく声を上げることができない葛藤を抱えていた。このため、PIMでリスクが高いスクリプトの監視をトリガーにして、Webサイトで利用しているスクリプトを「棚卸し」し、可視化したいという現場のニーズも強いという。

 アカマイは、セキュリティリスクを可視化する一方で、スクリプトがWebサイトの表示速度に与える影響を可視化するツールも提供している。こうしたツールを併用することで、Webサイトで利用しているスクリプトの棚卸しもでき、エンドユーザーをWebスキミング攻撃から守りながら、Webサイトの表示を高速化して、ユーザーエクスペリエンスを向上させることもできる。

 ビジネスの急速なデジタルシフトが求められる社会情勢の中、企業はセキュリティとビジネスサイドの両方の要求を高いレベルで満たす必要に迫られている。PIMはその対策に一歩踏み出すための一助となるだろう。


提供:アカマイ・テクノロジーズ合同会社
アイティメディア営業企画/制作:TechTargetジャパン編集部/掲載内容有効期限:2020年10月22日