サイバーリーズンのNocturnusチームは、これまで検出されていなかった「Chaes」と呼ばれるマルウェアを利用して、ラテンアメリカ(LATAM)のEコマースの顧客を標的にしている攻撃者を追跡しています。サイバーリーズンによって2020年半ばから後半に初めて発見されたChaesマルウェアは、主にブラジル、具体的にはラテンアメリカ最大のEコマース企業MercadoLivreのブラジルの顧客を標的とした多段式の情報窃取プログラムです。

近年、ラテンアメリカのサイバー犯罪シーンは大きく進展しています。昨年、この地域での活動で際立って目に付いた悪名高いマルウェアの亜種としてGrandoreiroUrsaAstarothなどが挙げられます。ラテンアメリカのサイバー犯罪活動には、TTPや感染したマシン上でのマルウェアの伝播方法に関して、他では見られない特徴があります。共通する特徴としては、以下のようなものがあります。

  • 感染の連鎖を開始する最初の方法として.MSIファイルが利用される
  • マルウェアをコード言語としてDelphiが使用される
  • コンテンツの実行にLOLBinsが多用される
  • マルウェアの機能拡張や難読化のために、新たに合法的なツールをダウンロードする

サイバーリーズンの研究員がラテンアメリカを基点とする攻撃者の共通の行動と考え方を観察する中で、マルウェアの作者は、できるだけ隠密な行動をとることの必要性を強調しており、必要に応じて既存のツールや正規のソフトウェアを好んで使用することが明らかになりました。


攻撃の全容

主な調査結果

  • ラテンアアメリカ最大のEコマース企業が標的:Chaesは、ブラジルのEコマース企業MercadoLivreのWebサイトとその決済ページMercadoPagoを特に標的とし、顧客の財務情報を盗み出します。Chaesのペイロードは、究極的にはノードプロセスを使用してデータを盗み出すNode.Js情報窃取プログラムです。
  • 認証情報の窃取、画面キャプチャ、ブラウザ監視、情報収集:Chaesは、MercadoLivreのWebサイトの顧客からログイン認証情報、クレジットカード番号、その他の金融情報などの機密情報をブラウザから窃取するように設計されています。また、感染したマシンのスクリーンショットを撮影したり、Chromeブラウザをフックして監視するなどして、感染したホストからユーザーの情報を収集します。
  • 多言語にわたる多段階攻撃型のマルウェア:Chaesの感染は、LoLbinsやその他の正規のソフトウェアの使用を含む複数の段階で構成されており、従来のウイルス対策ツールでは検出が非常に困難です。また、その多段階攻撃は、Javascript、Vbscript、.NET、Delphi、Node.jsなど、複数のプログラミング言語で書かれています。
  • ステルス化を狙い、正規のソフトウェアを活用: ChaesはPython、Unrar、Node.jsなどの正規のツールで動作し、機能的な段階では、オープンソースツールLoLbinsの使用、ファイルレスアクション、正規のnode.jsライブラリの使用など、マルウェアのステルス性を高めるように設計された各種の技術で構成されています。
  • 開発途上:サイバーリーズンは、Chaesの新バージョンを観察し、作者がマルウェアを改良し、より多くの機能を追加していることを認識しています。


サイバーリーズンのマルウェア対策ソリューションによるChaesの検出と防御

脅威の分析

第1段階:初期アクセス


展開の第1段階

従来の多くの攻撃活動と同じく、まず最初に.docxファイルを添付したフィッシングメールが被害者に送信されます。

■テンプレートインジェクション攻撃


Annexo.docxフィッシングメール

ユーザーが.docxファイルをクリックすると、テンプレートインジェクション攻撃が開始されます。このテクニックでは、Microsoft Wordの組み込み機能を使用してリモートサーバーからペイロードを取得しますが、その際には文書に埋め込まれたsettings.xmlファイルのテンプレートターゲットが変更され、このフィールドに次のペイロードのダウンロードURLが入力されます。


テンプレートインジェクション攻撃


WinwordとC2サーバーとのやり取り

.msiファイルが実行されると、以下のファイルがインストールされます。

  • Invisible.vbs:マルウェアのフレームワークの一部となる他のプロセスを実行するためにマルウェアが使用します。
  • Uninstall.dll:「マルウェアエンジン」を構成するengin.bin。
  • Hhc.exe, hha.dll and chaes1.bin:マルウェアのコアコンポーネントを構成します。

.msiファイルは、”invisible.vbs” を使用してWscriptの子プロセスを大量に増やし、LOLBin InstallUtilを使用して engine.binコンテンツの実行を開始します。また、正当なHTMLヘルプ(CHM)のヘルプコンパイラーのプロセスである “hhc.exe”という名前のプロセスも実行します。初期の活動展開は、Cybereason Defense Platformを使って詳細に確認することもできます。


Cybereason Defense Platformに表された初期活動の流れ

■「マルウェアエンジン」と永続性の初期設定

上述したように、uninstall.dllとengine.binのバイナリファイルのペアは「マルウェアエンジン」として機能し、その主な目的は、追加コンテンツをダウンロードして感染したマシン上に足場を確保することです。Uninstall.dllは、AES暗号化バイナリファイルを引数として受け取り、それを解読する.NETベースのモジュールです。


Uninstall.dll

マルウェアの最初の反復操作では、Uninstall.dllによってengine.binファイルが復号化され、これにより”Install.js”というファイルの追加ダウンロードが開始されます。


InstallUtil download install.js

Install.jsによって、さらにバイナリのペイロードとペイロードのカウンターがダウンロードされます。


Install.jsが引き続きバイナリをダウンロード

以下は、Install.jsがダウンロードを試みるすべてのファイルです。

観察されたURL 目的
hxxp://cnxtours.com[.]br/ZGkPJCwzO/counter.php 一般的なカウンター
hxxp://cnxtours.com[.]br/2GkPJCwz2/counter.php Javascriptファイルカウンター
hxxp://java-update[.]online/Bv3wsrFB0t/counter.php USBファイルカウンター
hxxp://evolved-thief[.]online/pacotes/chaes2.bin マルウェアのコンポーネント
hxxp://evolved-thief[.]online/pacotes/elektra1.bin マルウェアのコンポーネント
hxxp://evolved-thief[.]online/pacotes/bom8.bin 観察されたCoinMinerのダウンロード

【表1】ドメインのInstall.jsリスト

次の画像は、C2サーバーからファイルをダウンロードするInstallUtilのプロセスを示しています。


InstallUtilがダウンロードする追加コンテンツ

ファイルがダウンロードされると、Wscript、Cmd、そして最終的にはInstallUtilなどのいくつかのプロセスが自動的に実行され、engine.binの復号化と同じ方法でファイルが復号化されます。ファイル自体は、上記の成果物であるchaes1.bin、hha.dll、hhc.exeです。

興味深いことに、バイナリをダウンロードするコードは「Install.js」に記述されていますが、スクリプトの使用は示されていません。すべての動作はInstallUtilによって行われるため、このスクリプト実行テクニックは非常に異例なものあり、見つけるのが非常に難しいものとなっています。

InstallUtilをプロキシとして使用してjavascriptコードを実行し、さらに永続性を確保することには利点がありますが、Chaesの最近の観察では、マルウェアの作者はマルウェアの展開においてこの段階を削除することを決定しています。

次に、マルウェアはレジストリエントリCurrentVersion\run\Installutil\を使用して最初の永続化手段を作成し、engine.binの新しいインスタンスを繰り返し実行します。“elektra1.bin”などの.binファイルの中には、hhc.exeプロセスや関連する悪意のあるファイルも含まれているため、エンジンの永続性が保たれている限り、マルウェアは.msiファイルの存在を必要とはしません。


Cybereason Defense Platformで確認できるInstallUtilのすべてのコマンドライン

レジストリキー:Software\Microsoft\Windows\CurrentVersion\Run\installutil\

値:
wscript.exe “C:\Users\[username]\AppData\Roaming\invisible.vbs” cmd /c cd “C:\Users\[username]\AppData\ Roaming\Microsoft\Network” & “C:\Windows\Microsoft.NET\Framework\v2.0.50727\InstallUtil.exe” /u “uninstall.dll” “/ f=engine.bin”

第2段階:Chaesモジュールとマルウェアの展開


マルウェア展開の第2段階

.msiファイルによってhhc.exe、hha.dll、chaes1.binの3つのファイルがマシンにインストールされました。すでに述べたように、ファイルhhc.exeはHTMLヘルプ(CHM)のヘルプコンパイラーの一部であり、CHMファイルの作成によく使用されます。このプロセスを実行するには、”hha.dll”というモジュールが必要です。

正規のhha.dllは、マイクロソフトがHTMLヘルプソフトウェアおよびその他の関連プログラムのために開発した32ビットのWindows DLLモジュールです。

この場合、攻撃者は自分で細工したhha.dllモジュール(符号なし)をマシンに配信し、DLLの検索順位を利用して、このモジュールを正規のhhc.exeプロセスにロードしました。このようにして、攻撃者はインジェクションを使用せずに正規のプロセスのコンテキストで悪意のあるコードを実行することができます。

このテクニックは、過去にサイバーリーズンが行ったブラジルのサイバー犯罪における金融マルウェアに関する調査でもすでに観察されています


マルウェアのhha.dll(左)と正規のhha.dll(右)

モジュールの存在とマルウェアのコンポーネントとしての識別は、Cybereason Defense Platform上では一目瞭然です。


サイバーリーズンのプラットフォームによってマルウェアのコンポーネントとして検出されたhha.dll

■hha.dllの分析

このモジュールを調べたところ、正規のWindows hha.dllモジュールとの共通点がないことが明らかになりました。このモジュールの主な役割はchaes1.binからダウンロードしたコンテンツをデコードして解凍し、メモリにロードすることです。

モジュールはまずCreateFileW関数を使用して読み込み権限のあるchaes1.binファイルのハンドルを取得します。次にファイルのサイズを取得し、それに応じて新しいメモリを割り当てます。


chaes1.binのハンドルを取得

chaes1.binのハンドルを取得し、メモリを割り当てた後、モジュールはファイルのコンテンツの読み込みを開始します。読み込みに成功すると、新たに割り当てられたchaes1.binのメモリと難読化された追加の埋め込みコンテンツを、chaes1.binの解凍と難読化の解除を処理する別の関数に渡します。

ルーチンが終了すると、メモリにロードされた”chaes.dll”(同じくDelphiで記述されている)という名前の新しいモジュールが生成されます。このモジュールにはデコードされたchaes1.binの内容が含まれます。


関数によるデコードの前(左)と後(右)

hhc.exeのメモリにあるこの新しいdllファイルの存在は、Cybereason Defense Platform上でも、chcopyd1.dllという名前の別のモジュールとともに確認することができます。


hhc.exeのメモリ内のデコードされたファイルレスChase.dll

■chaes.dllの分析

サイバーリーズンの研究員らがPestudioを使用してchase.dllを最初に検査したところ、このモジュールには“UNRAR”という名前の実行可能ファイルがリソースセクションに格納されていることがすぐに確認されました。UNRARは、RARファイルアーカイブを抽出するための無料のオープンソースのコマンドラインアプリです。攻撃者は、C2サーバーからアーカイブファイルとして送信された追加コンテンツを抽出するためにこれを使用します。


リソースセクションのChaes.dll UNRAR

予想通り、chaes.dllはバイナリからこの実行可能ファイルを読み込み、シンボリック定数名READ-WRITE-EXECUTEの16進数値である0x40のパーミッションを割り当てます。

マルウェアがダウンロードするファイルはUNRARだけではありません。chaes.dllはinvisible.vbs、config.ini、instruction.iniもダウンロードします。

ファイル名 SHA-1ハッシュ
config.ini bf3174b0151ff6c1b57398f37c9f381bb2b66a6c
instructions.ini 84f38bf9df9a0153050b371033afc0d8191763bf
unrar.exe 6411159bbf02b44caee6b42390bf866d46aed0e4
invisible.vbs 2182243567bfcefcbc88b4ebcc42ed52e1dd1e69
hxxp://evolved-thief[.]online/pacotes/bom8.bin CoinMinerのダウンロードが観察された

【表2】Chaes.dllがダウンロードするファイル

■Config.iniとInstructions.ini

その名前から推測されるように、config.iniにはC2の設定が格納されています。


config.ini

Instructions.iniには、追加コンテンツをダウンロードしてマルウェア全体を展開するためにC2サーバーに送信する命令が格納されています。このマルウェアの他の多くのコマンドと同様に、一部のコマンドはinvisible.vbsファイルを使用して実行されます。


instructions.ini

C2サーバーから取得した追加ファイルは次のとおりです。

  • chstea01.rar -このファイルには、hhc.exeプロセス、マルウェアコンポーネントのhha.dll、chaes1.bin、およびsqlite3.dll(このマルウェアがSQLを使用することを示す最初のヒント)が含まれています。
  • fixi2.rarおよびusb3.rar -これらのファイルにはhhc.exeプロセス、hha.dllとchaes1.binが含まれています。
  • spm4.rar -このアーカイブには、パイソン関連のファイルと“load.bin”という名前の大きなバイナリファイルが含まれています。

アーカイブされたファイルがダウンロードされると、pythonw.exeはUNRARを使用してファイルの内容を抽出して実行します。


spm4.rar(左)とchstea01.rar(右)

Chaesの最近のバージョンでは、instructions.iniファイルはファイルレスになり、レジストリに格納されます


レジストリ内のInstructions.iniデータ(ファイルレス)registry

■ChaesとC2サーバー間の通信

chase.dll とそのC2サーバー間の通信は、ポストおよびリクエスト呼び出しの3つの繰り返しで構成されています。

  • NewClient:被害者のマシンからの情報(マシン名、ユーザー名、uid、オペレーティングシステムのバージョン、マルウェアのバージョン)をC2サーバーに渡します。
  • Instructions:base64 エンコードされた後に暗号化されたコンテンツを送受信します。
  • Config:こちらもエンコードされて暗号化されます。


ChaesとC2サーバー間のやり取り


Chaes “NewClient.php”の通信

■ブラウザ経由の情報の窃取

さらに、hhc.exeプロセスによりlocal.sqlという名前の.sqlファイルがいくつか作成されます。これらのSQLデータベースは、他の従来の情報盗取プログラムと同様にChromeブラウザから機密情報を抽出するために使用されており、SQLテーブルの一部はクレジットカード、Webサイトのログイン認証情報、ユーザーの個人情報に関連するものです。


ブラウザから情報が抽出されるクレジットカード関連のデータベース

■永続性の追加

コンテンツのダウンロードと実行に加えて、マルウェアはレジストリ(software\microsoftwindows\currentversion\runrun\microsoft windows html help v6.1.2390)を使用して別の永続性を設定します。

そして、2つ目はsoftware\microsoft\windows\currentversion\run\microsoft windows html help:

レジストリキー:
Software\Microsoft\Windows\CurrentVersion\Run\Microsoft Windows html help v6.1.2390\

値:
Wscript “C\ProgramData\invisible.vbs” cmd /V:ON /C cd “%APPDATA%\Microsoft\HTML Help v6.2.1533\” & wscript. exe %PROGRAMDATA%\invisible.vbs “hhc.exe”

レジストリキー:
Software\Microsoft\Windows\CurrentVersion\Run\Microsoft Windows html help\

値:
Wscript “C\ProgramData\invisible.vbs” cmd /V:ON /C cd “C\Users\[username]\APPDATA\Roaming\Microsoft\HTML Help v6.2.1533\” & wscript.exe C:\PROGRAMDATA\invisible.vbs “hhc.exe”

■Pythonによる第2段階の展開

Chaesが追加コンテンツのダウンロードを完了し、その永続性を確立すると、追加コンテンツの活動はマルウェア展開の第2段階に入ります。まず、pythonw.exeは、新しく作成したChromeプロセスに“ModHooksCreateWindow64.dll”というモジュールを注入します
このChromeブラウザは、ユーザーがその存在についての知識や同意を得ることなく、バックグラウンドで静かに開くブラウザです。この動作はCybereasonプラットフォームでも確認できます。


pythonw.exeによるマルウェアの配信

■ModHooksCreateWindow64.dllの分析

サイバーリーズンの研究チームがモジュールを調査したところ、その名前はこのモジュールが古典的なAPIフック技術を扱うことを示していることが観察されましたが、これはJMPコードの数やそれを示唆するいくつかの文字列からもわかります。


フックJMPの設定

研究員がモジュールの文字列を調べたところ、いくつかの文字列とファイル名がDDetoursというオープンソースプロジェクトと完全に一致していることが確認され、特に”DDetours.pas”と”InstDecode.pas”という2つのファイルが確認されました。そのgithubページによると、「DDetoursはDelphiやWindowsのAPI関数をフックすることができるライブラリです。

フックを簡単に挿入したり削除したりする方法を提供します。」マルウェアの作者は、合法的なオープンソースソフトウェアを利用しているときに、レーダーを潜り抜けようとして、その創造性を再び発揮しています。

DDetoursのコードに加えて、モジュールにはShowWindow関数のフックを示す文字列がいくつか含まれており、Chromeブラウザがアクティブかどうかを特別に検出することを目的としています。このテクニックは、Internet Explorer の存在を検出するために ShowWindow をフックすることを目的とするCarberp Botnetの流出コードにも見られます。


ShowWindowフッキングとChromeブラウザ

全体として、このモジュールは望みに応じた任意のAPIフッキングを実行する能力をマルウェアに付与し、特に Chromeブラウザを標的にしています。ブラウザフックは、ほとんどの金融系マルウェアの特徴的な機能です。最終的に、pythonw.exeはNodeJsで書かれた標的型情報窃取プログラムである”index.js”という名前のJavaScriptファイルもダウンロードします。


Pythonw.exeがダウンロードするindex.js情報窃取プログラム

■Node.jsコンポーネントのダウンロード

Chromeのフックを設定した後、pythonw.exeはマルウェアフレームワークの最後のピースを実行し、”Microsoft\Media\Oz “のパスを含む場所で感染したマシンにNodeJsをインストールします。Node.jsはオープンソースで、オープンソース、クロスプラットフォーム、バックエンドのJavaScriptランタイム環境であり、Webブラウザの外でJavaScriptコードを実行します。これは、このマルウェアが悪意のある活動を操作して実行するために使用する合法的なソフトウェアの別のインスタンスです。

node.exeプロセスはパズルの最後の部分となり、“index.js”に書かれたコードに従って反応し、感染したマシンから収集したデータをC2サーバーに送信する役割を担います。これはCybereasonのUIでも確認できます。マルウェアの展開を全体的に調べると、展開活動が次の3つに分かれていることが確認されました。

  • hhc.exeプロセスは、主にマルウェアのメンテナンス、永続化、追加コンポーネントのダウンローダーを維持する役割があります。
  • Pythonw.exeはダウンロードしたコンテンツをデプロイして実行するプロセスになります。
  • そして最終的にはnode.exeが“index.js”に従ってデータを受け取り、C2サーバーに送信するプロセスとなります。


マルウェアの最後の展開

第三段階:標的にされたNode.jsマルウェア

Index.jsはNode.jsをベースにした情報盗取プログラムで、ここ数か月の間に更新と進化を続けています。これまでに最終更新が観察されたのは2020年11月の初めです。このスクリプトの主な目的は、Chaesの主要な目標を達成するためのオーケストレーターとしての役割を果たすことです。

■人形使い

index.jsを調べてみると、一見で「puppeteer-core」という文字列があることがわかりました。これは、このスクリプトがNode.jsライブラリ“Puppeteer”を使用していることを示しています。

Puppeteerは、DevTools Protocolを介してChromeやChromiumを制御するための高レベルなAPIを提供するNodeライブラリです。Puppeteerはデフォルトではヘッドレスで動作しますが、完全な(ヘッドレスではない)ChromeやChromiumを動作させるように設定することができます。

つまり、このスクリプトは、ユーザーがChromeブラウザを開いているかどうかに関わらずに、リモートC2サーバーとやり取りするコードを実行することができます。

Puppeteerライブラリは、Webからのデータ収集を自動化するプロセスであるWebスクレイピングの実行にも使用されることが知られています。このプロセスは一般的に「クローラー」を配置して、自動的にWebを探査し、選択したページからデータをスクレイピングします。興味深いことに、変数”mercado_pago_done”の存在にも気づきます。これは、このスクリプトがMercado-Pagoに関連する情報やデータを扱うことを示す最初の兆候です。

Mercado Pagoは、Mercado Livreのオンラインショップの決済プラットフォームです。Mercado Livre, Inc.は、Eコマースやオンラインオークションに特化したオンラインマーケットプレイスを運営するアルゼンチンの企業で、米国で法人化されています。ウィキペディアによると、Mercado Livreは中南米で1億7400万人以上のユーザーを抱えており、訪問者数では同地域で最も人気のあるEコマースサイトです。


Puppeteerライブラリの使用

スクリプトが動作するためには、まず新しく作成されたChromeセッションへの接続を試みます。接続後、このChromeセッションのアクションはindex.jsスクリプトに依存します。Chromeセッションがすでに監視され、フックされていることを考えると、マルウェアがいかに深くその活動を可視化しているかがわかります。


NodeJsマルウェアがChromeブラウザに接続

また、スクリプトには他にも、新しく作成されたChromeブラウザとの通信や遠隔操作に関連した複数の機能が含まれています。

■データ収集関数

この情報窃取プログラムでよく使用される関数の1つはprintReport()です。この関数は、WebページのURLと印刷する情報を引数として取得し、このWebページの画像を作成してC2サーバーにアップロードします。

この関数は、情報窃取プログラムが特定のアクティビティについてC2サーバーに通知することを選択した場合に使用されます。アップロード機能は、URL、メッセージ、およびアップロードするファイル名を受信する“fileUpload”と呼ばれる別の関数を使用して作成されます。


PrintReport関数

もう1つよく使われる関数はloadUID()です。その名前が示すように、感染したマシンのUIDを検索します。UIDは、ランダムな文字、マシン名、ユーザー名の3つの要素で構成されます。


LoadUID関数

■ターゲットへのアクセス

スクリプトによって実行される最初の重要な悪意のある活動は、Chromeブラウザをmercadopago.com.brに移動し、感染したマシンのユーザーの財務情報を抽出することです。抽出された情報は、ポルトガル語で名付けられた次の3つの変数に保存されます。

  • Dinheiro_disponivel:「利用可能なお金」を意味する
  • Prefil:「プロフィール」を意味する
  • Atividades_item:「アイテムの活動」を意味する。


Node.jsマルウェアがMercadoPagoの顧客の財務情報を収集

前述したようにChaesはまだ開発途上にあります。2020年後半に登場したバージョンでは、Mercadopagoのページをアドレスする方法は、以下のURLからデータを抽出する試みによって、より直接的な方法になっています。
“https://www.mercadopago.com.br/banking/balance#from-selection=home”:


2020後半に観察されたIndex.jsのバージョン

スクリプトはまた、ナビゲートして、mercadolivre.comのオンライン決済セクションである”www.mercadolivre.com.br/credits/consumer/ administrator#menu-user” からデータをスクレイピングしようとします。


Node.jsマルウェアがMercadoLivreの顧客の財務情報を収集

スクリプトを見るとわかるように、MercadoLivreとMercadoPago の関連ページのいずれの場合でも、スクリプトは前述の関数printReport()を使用して、対象のWebページの画像を作成し、最終的には抽出したデータをC2サーバーに送信します。これらの画像の作成は、Cybereason Defense Platformでも確認することができます。

スクリーンショットを作成した後、画像、オーディオ、ビデオなどの異なる種類のデータファイルを交換できるようにするインターネットメールプロトコルの拡張機能であるMIME(Multi-Purpose Internet Mail Extensions)プロトコルを使用して、情報がC2サーバーに送信されます。なお、index.jsの最新バージョンでは、node.exeプロセスの通信全体が暗号化されています。


Node.jsマルウェアが情報パケットをC2サーバーに送信

最終的に、Webサイトからスクレイピングされたデータが収集されると、スクリプトはそれをjsonファイルとして送信し、リモートのC2サーバーにアップロードします。最後に、攻撃者は被害者のプロフィールから現金残高などの情報を引き出します。


Node.jsマルウェアが作成したjsonで新規顧客に関する情報を送信

■偽メールの送信

ユーザーが取引を行うと、スクリプトはsendEmail()と呼ばれる関数を使用して(Mercado Livreを代表しているという)偽のメールを自動的に送信し、顧客が行った購入について顧客に通知します。この偽メールでは、“Mercado Livre”は以下のようなメッセージを送信します。

“Your order has been successfully billed on our system, Order No.: 112187194961661 generated on 9/22/2020 at 09:33:48 PM Status: APPROVED!
Order amount: R $ 4661.22 payment billed in 4X (Boleto Bancário). Attached are the accesses containing the data listed above:
Access Key: 3872190867349812064732892309012388561092”

(お客様のご注文はシステム上で正常に請求されました。APPROVED!
注文金額 R $ 4661.22支払いは4X(Boleto Bancário)で請求された。添付されているのは、上記のデータを含むアクセスです。
アクセスキー。3872190867349812064732892309012388561092)

メッセージの正当性を高めるために、顧客には、このメールはAvastによってスキャンされており、ウイルスが含まれていないことも通知されます。


The Node.js malware sendEmail function


SendEmail関数による偽メール

スクリプトはまた、顧客から引き出す金銭があるかどうかを判断し、ない場合は、それについてのメッセージを表示します。


Node.jsマルウェアが顧客の金銭情報を確認

さらに、このスクリプトは、MercadoPagoサイトからCookieとWebデータも抽出し、“cookies“と“web_data“という名前の定数変数として保存します。このデータは、C2サーバーにもアップロードされます。


Node.jsマルウェアがMercadoPagoのWebページからCookieとWebデータを収集

エンドゲームの理解

セキュリティ研究員らは、node.jsマルウェアとChaesの展開プロセス全体を分析した結果、マルウェアの全機能を理解しました。マルウェアはChromeブラウザを開き、フッキングを使用して監視し、Node.jsスクリプト内に格納されているPuppeteer機能を使用してその活動を制御します。このようにして、マルウェアはユーザーの操作や同意なしにMercadoPagoとMercadoLivreの決済セクションに侵入することができます。そして、その中に保存されている情報をスクレイピングし、リモートのC2サーバーに送信します。

このnode.jsベースのマルウェアの驚くべき部分は、WebスクレイピングのためにPuppeteerライブラリを使用することは、本質的に悪意のあるものではないので、この動作の大部分は正常であると考えられているという事実です。したがって、この種の脅威を検出することは、はるかに困難なのです。


Chaes攻撃の全容

進化する脅威

Chaesは脅威として急速な進化を見せており、この数か月の間にマルウェアの作者はフレームワークの一部を適応させたり変更したりしているようです。Chaesの最近のバージョンでは、InstallUtilを使用せず、より巧妙なネットワーク暗号化が観察されています。さらに、最終的なNode.jsスクリプトである“index.js”も更新されているようで、Chromeブラウザの制御に関連するより多くの機能、更新された新しいC2 IP/ドメイン、新しいMercadoPago金融Webページ、偽のメールセクションの削除などの機能が追加されています。

Chaes のいくつかのバージョンは一部変更される可能性がありますが、ユーザーの同意なしにMercadoLivreとMercadoPagoのWebサイトにアクセスする隠密活動とノードプロセスを使用したデータの流出という最終目標は依然として変わりありません。これはCybereason Defense Platformでも確認できます。


Cybereason Defense Platformに表された、ChaesがMercadoLivreとMercadoPagoのWebサイトにアクセスしてnode.exeプロセスからデータを流出させる流れnode.exe process

結論

今回の調査で、サイバーリーズンはラテンアメリカ地域のサイバー犯罪シーンでChaesと呼ばれる新たに進化した脅威を発見しました。このマルウェアは、2020年の中頃から年末にかけて初めて登場し、特にブラジルとラテンアメリカ最大のEコマース企業であるMercado Livreを標的としています。このマルウェアは、複数の正規のWindowsプロセスやオープンソースのツールを使用して検出を回避する多段式のマルウェア展開です。これらのコンポーネントは、単独では必ずしも悪意があるわけではありませんが、組み合わせることで検出が困難なステルス感染チェーンを形成します。

ラテンアメリカ地域、特にブラジルにおいて、このようなテクニックを用いた多段式マルウェアが、サイバーリーズンによって過去数年の間にすでに観察され、調査されています。

Chaesは、ラテンアメリカ地域のマルウェアの作者が、目標を達成するためにいかに洗練された創造的なマルウェアを作成しているかを示しています。このマルウェアは、情報セキュリティ研究者やIT専門家に対して、正当な性質を持つファイルの存在を軽視しないよう警告するだけでなく、他の大手金融機関への更なる攻撃にPuppeteerライブラリを使用するという将来的な傾向に対する懸念を提起しています。

サイバーリーズンは今後もChaesの動向を注視し、ラテンアメリカ地域でさらに多くのEコマース企業に拡大するかどうか、Node.jsベースのマルウェアの人気が今後も高まり続けるかどうかを判断していきます。

MITRE ATT&CKによる分類

初期アクセス
スピアフィッシングリンク
スピアフィッシング添付ファイル

実行
コマンドラインインターフェイス
スクリプティング
JavaScript/JScript
Python
Visual Basic

永続化
レジストリの改ざん

権限昇格
レジストリRunキー/ スタートアップフォルダ
有効なアカウント

認証情報アクセス
ファイル内の認証情報
Webブラウザの認証情報

防衛回避
InstallUtil
レジストリの改ざん
スクリプティング
DLL検索順序のハイジャック
Msiexec

探索
アカウントの探索
ファイルおよびディレクトリの探索
システム情報の探索
システムネットワーク設定の探索

収集
情報リポジトリのデータ
ローカルシステムのデータ
段階化されたデータ
メールの収集

持ち出し
自動抽出
圧縮されたデータ
暗号化されたデータ
C&Cチャネル経由のデータ抽出

C&C
データの難読化
メールプロトコル

IoC(Indicators of Compromise:痕跡情報)

C2ドメイン、IPアドレス、DocxファイルSHA-1ハッシュ、DocxファイルSHA-256ハッシュ、MsiファイルSHA-1ハッシュ、MsiファイルSHA-256ハッシュ、バイナリファイルSHA-1ハッシュ、バイナリファイルSHA-256ハッシュ、アーカイブファイルSHA-1ハッシュ、アーカイブファイルSHA256ハッシュ、IniファイルSHA-1ハッシュ、IniファイルSHA-256ハッシュ、スクリプトSHA-1ハッシュ、スクリプトSHA256 ハッシュ、DLLs SHA-1ハッシュ、DLLs SHA256ハッシュなど、IOCのフルセットついてはこちらからダウンロードできます

ホワイトペーパー「すべての組織が狙われている」

企業、組織がどんなにセキュリティを強固にしてもハッカーが悪用できる脆弱性は必ず存在します。侵入されることが避けられないことを受け入れ、新たな対策を立てる必要があります。本書で、なぜ避けられないのか、どのように対処するのかをご覧ください。
https://www.cybereason.co.jp/product-documents/input/?post_id=606

ホワイトペーパー「すべての組織が狙われている」