Edge・Chrome・Firefoxが標的に? 進化するクレカ窃取型マルウェア「RolandSkimmer」

文●フォーティネットジャパン 編集●ASCII

提供: フォーティネットジャパン

  • この記事をはてなブックマークに追加
  • 本文印刷

本記事はフォーティネットジャパンが提供する「FORTINETブログ」に掲載された「密かにクレジットカード情報を窃取するRolandSkimmer」を再編集したものです。

影響を受けるプラットフォーム: Microsoft Windows
影響を受けるユーザー:     Microsoft Windowsユーザー
影響:             被害者の機密情報の収集
深刻度:            高

 Webを利用したクレジットカードのスキミングは、依然として広範囲かつ活発に行われている攻撃であり、時間の経過と共に適応し進化する能力があることで知られています。先日FortiGuard Labsが観測した巧妙な攻撃は、ペイロードに「Rol@and4You」という文字列が埋め込まれており、それにちなんで「RolandSkimmer」と名付けられました。RolandSkimmerの脅威アクターはブルガリアのユーザーを標的とし、Chrome、Edge、Firefoxで不正なブラウザ拡張機能を利用して、新しいタイプのクレジットカードスキミング攻撃を実行します。

 攻撃は偽のLNKファイルを介して開始され、難読化されたスクリプトを展開し、永続的で秘匿性の高いアクセスを確立します。埋め込まれたマルウェアは、影響を受けたユーザーから機密度の高い財務データを体系的に収集し流出させます。多くの場合、これが検知されることはありません。

図1:C2のテレメトリ

初期感染経路

 攻撃者はまず、「faktura_3716804.zip」という名前の悪意あるZIPファイルを配信します。ユーザーがこのファイルを解凍すると、「faktura_1065170.lnk」という一見無害なショートカットファイルが作成されます。

図2:LNKファイル

 このショートカットは、以下の隠しコマンドを密かに実行します。

 次に、「ipa.AsPX」ページがURL「hxxp://invsetmx[.]com/n.jpg」にリダイレクトされます。ファイルの拡張子は「.jpg」ですが、実際には難読化されたVBScriptペイロードが含まれています。このスクリプトは継続的な接続ループを開始し、攻撃者のサーバーをポーリングして、区切り文字「-@-」でマークされたコマンドを確認します。命令を受け取ると、送信された16進数のデータをデコードし、対応する不正コマンドを実行します。

図3:n.jpg内の難読化されたVBScript

 以下はネットワークトラフィックの一例で、サーバーから受信した通常の通信と、エンコードされたコマンドの両方を示しています。

図4:スクリプトがエンコードされていないサーバー応答

図5:スクリプトがエンコードされたサーバー応答

攻撃のワークフロー

 エンコードされたVBScriptはHTTPレスポンスを介して配信され、オリジナルのプロセスによって直接実行されます。何らかのファイルがディスクに書き込まれることはありません。FortiGuard Labsは、サーバーinvsetmx[.]comから攻撃者のスクリプトを入手しました。このサーバーには、すべてのペイロードが拡張子.dllを付けて保存されています。以下の分析では、デコードされたスクリプトによって実行されるアクティビティを詳しく解説します。

図6:サーバー上の悪意あるスクリプト

 スクリプトはまず、被害者の環境をチェックし、特定のパスにAdobe、Firefox、Roaming、およびChromeのフォルダがあるかどうか確認します。

図7:フォルダの確認

図8:ブラウザの確認

 次に、CPU仕様、メモリサイズ、オペレーティングシステムなどのハードウェア情報を問い合わせ、システムを広範囲に偵察します。こうして収集されたインテリジェンスは標的の絞り込みに役立ち、攻撃者は仮想マシンやサンドボックスでリソースを浪費することなく、感染したホストに関する貴重な情報を得ることができます。

図9:システム情報の収集

 攻撃者はブラウザ拡張機能を悪用するために、「fzhivka-001-site1.btempurl.com」から追加のファイルをダウンロードします。ここには拡張機能の設定と、悪意あるスクリプトが格納されています。ファイルはブラウザ別に分類されており、2ch1.rar~2ch3.rarはChrome用、2eg1.rar~2eg3.rarはEdge用です。これらのファイルはすべてXORでエンコードされており、キー「andromeda」を使用してデコードする必要があります。

 Microsoft Edgeブラウザを標的にした手順を以下に示します。デコードされたコンテンツは、ディレクトリ%APPDATA%\..\Local\s2ch97に保存されます。このディレクトリには、不正な拡張機能「manifest.json」、「background.js」、「background2.js」の主要コンポーネントが格納されています。これらのファイルによって拡張機能が設定され、バックグラウンドの処理が実行されます。

図10:ChromeおよびEdge用のファイル

 攻撃者は感染チェーン、永続化メカニズム、およびデータ漏洩プロセスの重要なコンポーネントとして、不正なEdgeブラウザ拡張機能を利用します。拡張機能は「Disable Content Security Policy」という一見無害な名前で偽装され、WebサイトのCSP保護を迂回することを正当化します。この偽名戦略によって不正な目的を隠す一方、標的とするWebサイトへの適合性を維持することができます。

 拡張機能のmanifest.jsonファイルは、広範囲で非常に侵略的な以下の権限を明示的に要求します。

・declarativeNetRequest:ブラウザで作成されたネットワーク要求の傍受および変更を許可します。
・browsingData:Cookie、キャッシュ、履歴を含む閲覧データの操作または削除を許可します。
・tabs:ブラウザのタブの制御を可能にし、ユーザーがアクセスするあらゆるタブのコンテンツの開閉や監視を許可します。
・storage:ユーザーのデバイスでデータをローカルに保存および取得することを許可します。

 こうした権限の組み合わせを見ると、ユーザーのブラウザの乗っ取りを目論んでいることは明白であり、利便性を求めて開発されたツールは監視、窃盗、詐欺のための武器に変えられています。

図11:manifest.json

 background.jsファイルは、被害者が閲覧するすべてのWebページにコンテンツスクリプトとして挿入されます。このスクリプトには、固有の識別子を使って被害者を追跡したり、悪意あるコードを実行したりする機能があります。

 識別子を生成するために、日付、時間、分、秒、ミリ秒を含む現在のタイムスタンプに基づき、key2と呼ばれる値が作成されます。一例を挙げると、「21.3.25-164532eg2」のような形式になります。この識別子はブラウザのローカルストレージに永続的に保存されるため、攻撃者は複数のセッションをまたいで同じユーザーを攻撃できます。

 次に、スクリプトはkukaというローカルストレージキーから、暗号化されたペイロードを取得します。そして、このペイロードを実行するため、有効なまたはタグの代わりに、故意に形式を間違えたHTMLタグ、すなわちを挿入します。この意図的なスペルミスによって読み込みエラーが発生し、onerrorイベントハンドラーがトリガーされます。onerrorは、background2.jsで定義された任意のJavaScriptをただちに評価して実行します。

図12:background.js

 background2.jsスクリプトは、不正なブラウザ拡張機能向けの永続的なサービスワーカーです。yori1およびyori2という高度に難読化されたJavaScript関数を使用して、リモートURLを動的に作成します。これらの関数は、不正なリモートサーバー「hxxps://exmkleo[.]com」から新しいスクリプトを取得し、悪意あるペイロードの継続的更新を可能にします。

 取得したペイロードは、同じく難読化されたJavaScriptスニペットであり、ブラウザのローカルストレージでキー「kuka」の配下に保存されます。

図13:background2.js

 「hxxps://exmkleo[.]com」からダウンロードされた不正スクリプトは、ユーザーの操作を監視するように設計されており、特にフォームの送信、閲覧アクティビティ、クレジットカードデータを重視しています。スキマーとして動作するこのスクリプトは、DOM要素を監視し、クレジットカード番号など機密度の高い決済情報が含まれた入力フィールドを調べます。これは明らかに、Visa(4で始まる)やMasterCard(5で始まる)といった標準的なクレジットカードの番号付け規則を標的にしたものです。

図14:入力された番号の確認

 有望なクレジットカードデータが見つかると、スクリプトはフォーム送信およびボタンクリックのイベントと活発に連動し、送信の直前にユーザーの入力を傍受します。データを流出させる際には隠し要素<a>を使用し、固有のマーカー文字列「Rol@and4You」を付加して、窃取したデータを追跡または検証できるようにします。ランダムなURLパスと隠し要素を組み合わせることで、検知されるリスクが大幅に減少し、データを窃取できる可能性は高まります。

 スクリプトはデータを取得すると、URLで特定のパラメータ(S:サイト、D:データ、N:クレジットカード番号)を指定して、コマンド&コントロール(C2)サーバーにHTTPSリクエストを送信します。

hxxps://bg3dsec[.]com/<ランダムな文字列>?S=<ユーザーID>-<サイト>&D=<取得したフォームデータ>?&N=<クレジットカード番号>

図15:窃取したデータの送信

 この後、攻撃者は後続の高度な処理を実行して永続性を確保します。注目すべきは、攻撃者が正規のEdgeブラウザのバイナリに直接的な改ざんや修正を加えていない点です。その代わりに、正当なMicrosoft Edge実行ファイル(msedge.exe)を隠しフォルダ(%APPDATA%\Edge SxS)にコピーします。

 この攻撃の重要なコンポーネントは、細工されたLNKファイル内にあり、次の引数が設定されています。

--load-extension=”%LOCALAPPDATA%\s2ch97” ----mark-non-secure-as=disabled.

 LNKファイルによって、「s2ch97」フォルダ内の不正なブラウザ拡張機能とスクリプト構成が読み込まれます。詐欺を完了するために、攻撃者はデスクトップとタスクバーから正規のEdgeショートカットを削除し、改ざんされた不正なショートカットに置き換えます。これにより、被害者は感染したブラウザ環境をそうとは知らずに起動してしまいます。

図16:永続性の設定

 攻撃者は、Mozilla Firefoxに対しては別の攻撃手法を用い、「as1.rar」~「as6.rar」という名前のダウンロードされたファイルを使用しています。

図17:Firefox用のファイル

 デコードされたこれらのRARファイルは、不正なFirefox拡張機能のコンポーネントとそれに対応するスクリプトが含まれた、1つの完全なパッケージを構成しています。各コンポーネントは、正規の拡張機能環境をエミュレートし、それを強制的にインストールする上で、それぞれ異なる役割を果たしています。

・as1.rar:このJSONファイルには2つのMozilla Firefoxブラウザ拡張機能、GreasemonkeyとTampermonkeyが記述されています。これらの拡張機能を使用すると、ユーザーは小さいJavaScriptスクリプトを実行してWebページの外観や動作をカスタマイズできます。

・as2.rar:Mozilla Firefoxはこの圧縮ファイルを使用して、ユーザープロファイルにインストールされた拡張機能に関するメタデータを保存します。

・as3.rar:このJSONファイルには、組み込みの拡張機能とユーザーがインストールした拡張機能、およびバージョン、タイプ、権限、ファイルパスなどの詳細情報が含まれています。Firefoxは起動時にこのファイルを使用して、拡張機能の読み込みと管理を行います。

・as4.rar:Firefoxの環境設定が含まれています。

・as5.rar:実際のtampermonkey.xpiファイル(バージョン4.7.5788)です。

・as6.rar:悪意あるスクリプトが格納されたアーカイブファイルです。このスクリプトは特殊な設計が施されており、人気の高いユーザースクリプトマネージャーであるTampermonkeyによって自動的にインポートされます。スクリプトがインストールされると、フォームデータやログイン認識情報、クレジットカード情報の窃取が可能になります。デコードされたサーバー識別子「kok1」は、hxxps://exmkleo[.]comに対応しています。攻撃者はこのサーバーから、Edgeへの攻撃手順で使用されるのと同様のスクリプトをダウンロードします。

 攻撃者はこれらのファイルを一緒に利用することで、Tampermonkey拡張機能がプリインストールされて機能している、完全に有効なFirefoxユーザープロファイルをシミュレートできます。マルウェアはこれらのファイルを被害者の環境にコピーすることで、不正な拡張機能が有効な状態でFirefoxを起動することができます。

 ブラウザに関連するすべての設定が完了すると、mshta.exeが強制終了されます。

 オリジナルのLNKファイルがホストされていたリモートサーバーを調査したところ、被害者のログファイルが複数見つかりました。これらのファイルは16進数でエンコードされており、被害者の環境内での感染プロセス全体が文書化されていました。

 ログには以下のようなステータスメッセージが含まれていました。

・「mz out, roaming in, ch in」:環境チェックではFirefoxのインストールは見つからなかったが、RoamingフォルダとChromeブラウザが検出されたことを示しています。
・「eg found...desk lnk ok」:Edgeがインストール済みであり、不正なLNKファイルがデスクトップに配置されていることを示しています。

 これらのログは、マルウェアが標的の環境に応じて感染パスをカスタマイズし、臨機応変に動作することを示唆しています。

図18:被害者のログ

結論

 「RolandSkimmer」は、LNKを使用した攻撃がますます巧妙化し、攻撃者が正規のシステムツールとスクリプト機能を悪用してステルス攻撃や永続化、データ漏洩などを行っていることを強く示すものです。注目すべきは、この攻撃が感染チェーンのコアコンポーネントとして不正なブラウザ拡張機能を利用しており、それによって長期にわたるアクセスを可能にし、クレジットカード情報など機密度の高いユーザーデータを継続的に窃取している点です。

 攻撃者は、巧妙に細工したJavaScriptペイロードを使ってマニフェストファイルをミスリードします。また、難読化されたVBScriptを使用して、複数のセッションをまたいで永続性を確保し、検知を回避します。このような感染のリスクを低減するには、不明なLNKファイルを開かないようにする必要があります。特に、Eメールで送信されたファイルや、信頼できない送信元からのファイルには注意が必要です。組織は検証されていないブラウザ拡張機能の使用を制限または監視すると共に、異常なスクリプト動作を検知できるセキュリティツールを実装する必要があります。

フォーティネットのソリューション

 FortiGuardアンチウイルスは、このブログで解説したマルウェアを以下の不正プログラムとして検知しブロックします。

LNK/Agent.96F1!tr
JS/Agent.SOM!tr
VBS/Agent.ABUE!tr

 FortiGate、FortiMail、FortiClient、FortiEDRは、FortiGuardアンチウイルスサービスをサポートしています。これらの各ソリューションには、FortiGuardアンチウイルスエンジンが含まれています。したがって、最新の保護機能を備えたこれらの製品をお使いのお客様は、脅威から保護されています。

 FortiGuard CDR(コンテンツ無害化)サービスは、ドキュメント内の不正なマクロを無効化することができます。

 フォーティネットでは、無料でご利用いただけるサイバーセキュリティトレーニング:Fortinet Certified Fundamentals(FCF)の受講もお勧めしています。このトレーニングは、ユーザーが今日の脅威情勢を認識し、基本的なサイバーセキュリティの概念と技術を習得することを目的としています。

 FortiGuard IPレピュテーションおよびアンチボットセキュリティサービスは、フォーティネット分散ネットワークから不正な送信元のIPデータを集約し、マルウェア攻撃を事前にブロックします。この分散ネットワークでは、脅威センサー、CERT、MITER、協力関係にある他社、その他のグローバルソースが連携し、悪意ある送信元に関する最新の脅威インテリジェンスを提供しています。

 組織がRolandSkimmerやその他のサイバーセキュリティ攻撃を受けていると思われる場合は、フォーティネットのグローバルFortiGuardインシデントレスポンスチームまでご連絡ください。

IOC(Indicators of Compromise:侵害指標)

C2

invsetmx[.]com
fzhivka-001-site1[.]btempurl[.]com
exmkleo[.]com
bg3dsec[.]com
zzigi20-001-site1.atempurl.com
topclima-001-site1.itempurl.com
rinootracebg-001-site1.etempurl.com
mgproperties-001-site1.itempurl.com
kleoti-001-site1.htempurl.com

SHA256
ZIP

80e0aa05ffd973decf9b7f435c5a44574e4c8314c152c7a09e00c821828fe515
e30eecb53e4b03cfada8791877c3c67e009d25bb4d57f01f9eb7cd1121ac1908
e0898e5d1f71bb0311ddfdef9697f684da6da701ad36ab8107dcb5d5e438838d

LNK

86fedcd08d32eeff8a4caa9c2d4ae65b6cea89698570e8ce172a4e82c7f296f1
7086f0ec83dab46aaaecbc459275d7df4e32f50d950047a9235dfccb3da9b9e0

スクリプト

4a852420ca4a32d9ade0a50b8e24d6fc4886151c44477a62ee961ce880b1f8d2
cd6180a612852167a2a1b6c456618a3716d040c163a63e50c17236660e4e7e53
c02d73011204637141fdcc4240b65896b7624508eb116543acfbe3bf7fa29eb4
5810cbdd316eb37ad49ab277604209deb73306c5254eac39164ae626e5aadf6c

■関連サイト