ウイルスには“ワクチン注射” 記録に残らない「Webスキミング攻撃」の可視化と対策の最前線

7

2020年09月18日 12:23  ITmedia NEWS

  • チェックする
  • つぶやく
  • 日記を書く

ITmedia NEWS

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

 前回の記事では、“見えないWeb攻撃”の一つである「Webスキミング」の巧妙な手口を暴き、それらの手口によって起きているクレジットカード情報などの情報漏えいの実態を取り上げた。今回は対策編として、前回の内容を簡単に振り返りつつ、Webスキミングを可視化し防止するための対策の最前線について解説する。



【その他の画像】



●自分を消去し発見を回避、巧妙化するWebスキミング



 まずは、前回取り上げたWebスキミングの手口を簡単に振り返ってみよう。



 犯罪者集団Magecartが用いるWebスキミングの特徴は、ECサイトなどのWebサイトにアクセスした利用者のブラウザに悪性のJavaScriptをダウンロードさせることで、偽の入力フォームを表示したり、ブラウザに入力または表示される情報を窃取(スキミング)するプログラムをブラウザ上で動かしたりするという手口だった。抜き取った情報は、犯罪者が用意したサーバに送信される。



 Webサイト自身を攻撃して、正規のJavaScriptを改ざんするケースもある。しかし厄介なのは、Webサイトがビジネス上必要な機能を実装するために正規に参照している、外部ベンダー製のスクリプト(サードパーティースクリプト)を改ざんするケースだ。ブラウザはスクリプトをサードパーティーのサイトから直接読み込むため、ECサイトなどのWebサーバやそれを守るWAF(Webアプリケーションファイアウォール)を悪意ある通信が通過しない。このため、Webスキミングの防止やサーバログなどの記録が出来ず、何が起きていたかの認知さえできない。まさに「見えない攻撃」だ。



 JavaScriptを使ったWebスキミングは、Magecartの編み出した手法をベースに、さらに巧妙に攻撃の存在を隠して「見えなく」なるよう、日々進化を続けている。例えば、2019年11月にクレジットカードブランドのVISAが実態を分析、報告したJavaScriptのスキミングプログラム「Pipka」は、JavaScriptがブラウザ上でいったん実行されるとその直後に自身の悪性スクリプトをページから消去する。そのため人の目でチェックしても、不正なコードを発見できない。さらに、窃取したデータを攻撃者の用意したサーバに送る際(上図4番の通信)に暗号化などを施すことで、カード番号やメールアドレスなどの文字列が送信されたと分からないよう工夫している。



 こうなると、一般人はもちろんセキュリティの専門家でさえ、日常的なWebブラウザの利用中に、スキミングが裏で起きていると気付くのは難しい。



●サイトが今すぐ取れる予防策は?



 最も単純な予防策は、Webサイトで利用しているJavaScriptを整理して、最小限に絞り込むことだ。しかし自サイトでのリスクも明らかにならないまま、商用サイトを運用する各事業部門がいったん必要と判断して実装したスクリプトを予防的に除外することは容易ではない。



 Webサイトに設定することで、ブラウザが読み込み可能なコンテンツ(スクリプトなど)を制限する「コンテンツセキュリティポリシー」(Content Security Policy, CSP)や、コンテンツの改ざんをハッシュ値で確認する「サブリソース完全性」(Subresource Integrity, SRI)などの、不正対策用のHTTPレスポンスヘッダを使うというアイデアもある。しかしこれらの仕組みは、頻繁にコンテンツやスクリプトが入れ替わる商用サイトや、予告もなく更新されるサードパーティースクリプトの運用の実態に即しているとは言いがたい。「部分的に試したことはあるが、手間が掛かりすぎる」とは、ある商用サイトの運用担当者が漏らした正直な現場の声だ。



 もう一つ注意すべき点がある。ここで挙げた対策はどれも、ECサイトなどのWebサーバが直接侵害されると容易に無効化されてしまうことだ。それを防ぐには、まずWebサーバの脆弱(ぜいじゃく)性対策や、WAFなどでWebセキュリティの強化を図る必要がある。他方で、Webサイト自身とサードパーティーのどちらのJavaScript侵害にも対処できる、新たな仕組みの検討を始めるべきだろう。



●ウイルスに対しては“ワクチン注射” Webスキミング対策の最前線



 追加対策としてまず考えられるのは、悪意のあるJavaScriptを発見するスキャナーだろう。Webブラウザをエミュレートする形で調査対象のWebサイトに定期的にアクセスを行い、参照しているサードパーティーJavaScriptまで含めて読み込んだうえで、危険なスクリプトを自動的に見つけ出す。サイバーセキュリティ企業の米RiskIQなどのソリューションが対応しており、同社は実際にこれまで幾つものWebスキミングを詳細に分析のうえ公開している。しかしこの方式の課題は、実際の利用者がアクセスしたブラウザの中で起きるスキミングをリアルタイムに検知して阻止できないことだ。



 そこで考えられたのが、こうした“JavaScriptスキマー”をWebブラウザ内で検出するためのJavaScriptをWebコンテンツに付加して配信するという、米Akamai Technologiesなどが提供する方法だ。これは病原体に対する「ワクチン注射」に似ている。抽入された検査スクリプトは、ブラウザ内に読み込まれたJavaScriptの不正なふるまいや脆弱性を監視するとともに、危険なサイトとの通信をリアルタイムで検知してサイト管理者に報告する。Webサイト自身のコンテンツだけでなく、参照されたサードパーティースクリプトが集まるブラウザの中でまとめて検査し、もちろん不正なプログラムコードの実行も阻止できる。サイト運用者の責任で、Webサイトの利用者全員をWebスキミングから保護できることも特長だ。



 これらのJavaScriptを自動検査するソリューションを、Webサイトの多層防御の仕組みに追加することで、脆弱性や改ざんの可能性のあるスクリプトを可視化できる。「スクリプトが不要なデータを読もうとしていた」などのリスクが具体的に分かれば、該当するスクリプトを利用している部門が速やかに利用停止の判断を下せる。ビジネス上の要件とセキュリティのバランスを取ったスクリプトの運用にもつながるだろう。



●進化を続けるWebスキミングに対抗するには



 JavaScriptによるWebスキミングの脅威は、かつて世界中で大流行したマルウェア「Conficker ワーム」で使われた検知回避の仕組みを取り込むなど、今もまさに急速な進化を続けている。北朝鮮政府の関与が指摘されるハッカー集団「ラザルス」も、この分野で活動しているとの分析もある。



 Webスキミングが狙う情報は、クレジット決済だけではない。Webを通して扱われている幅広い個人情報や機密情報が、攻撃技術の進歩によって無防備にネットにさらされている状態を想像してほしい。特に顧客や取引先との接点をWeb上に構築している企業や組織は、警戒レベルを一段上げてJavaScriptの安全対策に真剣に向き合う必要がある。



 クレジットカード被害については、消費者側でも月ごとのカード明細の確認などで自衛を心掛けたい。その際、窃取したカード情報を用いた不正購買は、サイトで情報を窃取されてから数カ月から半年くらいのタイムラグをおいて、別のサイトで行われることもあるので注意が必要だ。不審な点を見つけたら、カード会社に連絡しよう。



 外出自粛下で、便利なオンライン通販やデリバリー、サブスクリプション制のサービスに新規登録し、カード決済している人も多いだろう。経済が動くところで情報が動き、それを求めてサイバー犯罪も集中する。社会変容のすきをつく「見えない攻撃」を見分けられる目を企業、消費者ともに養っていきたい。



 次回の記事では、いま注目を集めているリバースブルートフォースやパスワードスプレー攻撃にも用いられる「botによる見えない不正ログイン」の実態と、攻撃増加の背景についてレポートする。


このニュースに関するつぶやき

  • 「ちょっと何言ってるのかわかんない」だけど、そんな素人の私でも容易に想像つくのは・・平和ボケの日本の銀行や日本の国民は恰好のターゲットだと言う事かな。 javascriptって大嫌いだけどね。
    • イイネ!0
    • コメント 0件
  • Webスキミングなんて初めて知った。カードで買い物するだけで情報取られちゃうってことよね・・。顧客側から見れば、問題は被害が発覚した場合、補償が速やかに行われるかということだ・・
    • イイネ!1
    • コメント 0件

つぶやき一覧へ(3件)

ニュース設定