マルウェア
Genesis Marketの再来を予兆する攻撃活動:Node.jsやEVコード署名を不正利用
トレンドマイクロのManaged XDRチームは、2023年4月に閉鎖された詐欺支援Webサイト「Genesis Market」と似た手口による不正な活動に遭遇し、調査を行いました。
トレンドマイクロのManaged XDRチームは、詐欺支援Webサイト「Genesis Market」と似た手口を行使する不正な活動に遭遇し、調査を行いました。Genesis Marketは2023年4月の時点で閉鎖されていましたが、そのインフラや資材がアンダーグラウンド市場に売却されたという報告もあります。そのため、今回遭遇した活動で同様の手口が行使されていたとしても、不思議はないと考えられます。本活動の背後にいる攻撃者は、バックドアのプラットフォームとして「Node.js」を、防御回避の手段としてEV(Extended Validation)コード署名を不正利用しました。さらに、SEO(Search Engine Optimization:検索エンジン最適化)対策済みのダウンロード用サイトをホストするために、「Google Colab」を利用した可能性があります。感染したシステムは、攻撃者によるバックドアコマンドやマルウェア「Lu0bot」などのペイロードに脆弱な状態となり、情報窃取やDDos攻撃(Distributed-Denial-of-Service:分散型サービス拒否)の被害に遭う可能性があります。
本稿では、今回の攻撃に使用された手口の技術的な解析結果として、確定的に確認された内容や、その他の推測的な事柄について解説します。
感染チェーン
今回確認された事象を時系列順に並べた結果を下表に示します。
Trend Vision OneのExecution Profile機能により、一連の感染活動が下記のように解析されました。
攻撃の第1段階
第1段階のローダを解析
本調査で入手した不正な実行ファイルを解析したところ、感染の第1段階で使用されるローダに相当することが判明しました(初期アクセスの手段については後に解説)。こうしたローダの中には、ユーザが検索エンジンで入力したキーワードをファイル名として含んでいるものも見られました。
C:\Users\{ユーザ名}\Dwnloads\microsoft_barcode_control_16.0_download.exe(3364dd410527f6fc2c2615aa906454116462bf96)
以下の当該のファイルを解析したところ、フリーのWindows用インストーラ「Inno Setup」で圧縮されていることが判明しました。なお、「Sector 7」が報告した検体でも、これと同様の傾向が確認されています。
microsoft_barcode_control_16.0_download.exe(SHA256:3364dd410527f6fc2c2615aa906454116462bf96)
本ローダの目的は、プロセス「explorer.exe」に不正なコードをインジェクトし(埋め込み)、コマンドコントロール(C&C:Command and Control)サーバからペイロードを取得した上で、攻撃の第2段階に進行することです。
同名のTMPファイルは、必要なファイルの作成を担うインストーラ「Inno Setup」によるものです。本調査では、サードパーティ製ツール「innounp(Inno Setupの展開ツール)」などを用いることで、セットアップファイルやインストール用スクリプトの展開、抽出に成功しました。
今回の検体は、Sector 7が言及したDLLファイルの読み込みは行わず、代わりに以下の実行ファイルの起動のみを行います。
SutiLauncher.exe(SHA256:506accb774d2a2be4b0ee3bdd3c549f09684ab9b)
続けて、このSutiLauncher.exeが、不正な処理を含む以下のDLLファイルを読み込みます。
SutiLauncher.dll(e3887b1eddbdd9d4e5b042a85909b69919204570)
SutiLauncher.dllは「.NET Core」でコンパイルされたファイルであり、下記を実行します。
「hxxps://iplogger[.]com/1uPSK4」にアクセスして接続状況を確認する。
「hxxps://sito-company[.]com/launcher/auth?login={ログインID}&pass={パスワード}」にアクセスし、当該サイトが「true」を返した場合、ファイル「tool.exe」を実行する。
「hxxps://complete-s[.]monster/upd.php」にアクセスし、暗号化済みのシェルコードをダウンロードする。本シェルコードは、メモリ内で復号、実行される。
Vision Oneのプロセスチェーンを確認すると、explorer.exeに不正なコードが埋め込まれた様子がうかがえます。この後、攻撃の第2段階が始まります。
不正なコードの埋め込み処理は、ダウンロードされたシェルコードが行った可能性もあります。しかし、当該のURLが調査時点でアクセス不可となっていたため、リバース解析による確認には至っていません。
攻撃の第2段階
第1ペイロード:Genesis Marketと類似した手口で情報窃取を行う不正なGoogle Chrome拡張機能
攻撃の第2段階では、はじめにローダによって不正なGoogle Chrome拡張機能がインストールされます。この拡張機能は、ブラウザからユーザ認証情報などの機密情報を窃取し、攻撃者に転送する活動を継続的に行います。以前報告に上がったGenesis Marketの検体と比べると、その内容、インストールされるショートカット、インストールに用いられるPowerShellスクリプトのいずれにおいても、非常によく似たものとなっています。
作成されたショートカット経由でユーザがChromeを起動すると、それに合わせて不正な拡張機能が稼働します。
拡張機能のインストール時に作成されるファイルの一覧を下記に示します(これらのファイルパスは感染の検知に使用できる可能性があります)。
C:\Users\{ユーザ名}\AppData\Local\Default\app.html
C:\Users\{ユーザ名}\AppData\Local\Default\config.js
C:\Users\{ユーザ名}\AppData\Local\Default\ico.png
C:\Users\{ユーザ名}\AppData\Local\Default\manifest.json
C:\Users\{ユーザ名}\AppData\Local\Default\modules\content-scripts-register-polyfill.4.0.0.js
C:\Users\{ユーザ名}\AppData\Local\Default\rules.json
C:\Users\{ユーザ名}\AppData\Local\Default\src\background.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\content\main.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\clipper.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\commands.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\csp.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\domain.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\exchangeSettings.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\extensions.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\getMachineInfo.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\injections.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\notifications.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\proxy.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\screenshot.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\screenshotRules.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\settings.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\tabs.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\functions\utils.js
C:\Users\{ユーザ名}\AppData\Local\Default\src\mails\gmail.js
C:\Users\{ユーザ名}\AppData\Local\DesktopCleanup\Google Chrome.lnk
C:\Users\{ユーザ名}\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\Google Chrome.lnk
C:\Users\{ユーザ名}\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Google Chrome.lnk
C:\Users\{ユーザ名}\OneDrive\Desktop\Google Chrome.lnk
第2ペイロード:正規なNode.jsのモジュールを不正利用
攻撃の第2段階では、上述の第1ペイロードに加え、第2のペイロードがローダ経由で起動されます。調査事例の1つでは、第一段階でローダが不正なコードをexplorer.exeにインジェクトした際、これによってバッチファイル「svchost.Bat」が作成、実行されました。この後、MSIインストーラ(Node.js)が実行されます。
感染チェーンにおける次の活動は、Node.jsをインストールすることです。当該のNode.jsは古いバージョンではあるものの、正規な状態であり、さらに、有効で正規なコード署名証明書が付与されています。これに関して、ユーザが古いNode.jsモジュールを使っていたために被害が発生した、と誤解しないように注意する必要があります。実際に古いバージョンを標的環境内に持ち込んでインストールしたのは攻撃者であり、はじめから存在していたわけではありません。
SHA1ハッシュ値:6817df1da376e8f6e68fd1ad06d78f02406b6e19
ファイルバージョン:0.10.41
署名者:Node.js Foundation
署名日:2015-12-04 03:46:00 UTC
インストール先パス:C:\ProgramData\DNTException\node.exe
本ペイロードの検体は、「Any.run」が「Lu0Bot」の名前で分類したマルウェアに相当することが、詳細な分析によって判明しました。
インストール後、本ペイロードはNode.js上で稼働し、さまざまなOSコマンド(人手で調整されている可能性がある)をバックドア経由でC&Cサーバから受信し、それらを実行しました。
"C:\Users\{ユーザ名}\AppData\Local\Temp\nvnnimjsd\fnichvxlmq.exe"
"C:\Users\{ユーザ名}\AppData\Local\Temp\nvnnimjsd\lgjnbyhdmf.dat" 3721679456
attrib.exe +H "C:\ProgramData\Intel\Intel(R) Management Engine Components"
attrib.exe +H "C:\ProgramData\Intel\Intel(R) Management Engine Components\Intel MEC 3573217561"
attrib.exe +H "C:\ProgramData\Intel\Intel(R) Management Engine Components\Intel MEC 3806163581"
attrib.exe +H C:\ProgramData\DNTException
attrib.exe +H C:\ProgramData\DNTException\node.exe
attrib.exe +H C:\ProgramData\Intel
C:\Users\{ユーザ名}\AppData\Local\Temp\nvnnimjsd\fnichvxlmq.exe C:\Users\{ユーザ名}\AppData\Local\Temp\nvnnimjsd\lgjnbyhdmf.dat 3721679456 1369574819
cacls.exe C:\ProgramData\DNTException /t /e /c /g Everyone:F
cacls.exe C:\ProgramData\Intel /t /e /c /g Everyone:F
cmd.exe /c dir C:\
icacls.exe C:\ProgramData\DNTException /t /c /grant *S-1-1-0:(f)
icacls.exe C:\ProgramData\Intel /t /c /grant *S-1-1-0:(f)
ipconfig.exe /all
netstat.exe -ano
node.exe node.lib 3721679456 3015897030
reg.exe add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Intel Management Engine Components 1808681674" /t REG_SZ /d "wscript.exe /t:30 /nologo /e:jscript \"C:\ProgramData\Intel\Intel(R) Management Engine Components\Intel MEC 3573217561\" \"C:\ProgramData\Intel\Intel(R) Management Engine Components\" 2779289286" /f
reg.exe add HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v "Intel Management Engine Components 1808681674" /t REG_SZ /d "wscript.exe /t:30 /nologo /e:jscript \"C:\ProgramData\Intel\Intel(R) Management Engine Components\Intel MEC 3573217561\" \"C:\ProgramData\Intel\Intel(R) Management Engine Components\" 2779289286" /f
reg.exe query "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
reg.exe query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg.exe query HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
reg.exe query HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}
reg.exe query HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0000
reg.exe query HKLM\SYSTEM\ControlSet001\Control\Class\{4d36e968-e325-11ce-bfc1-08002be10318}\0001
route.exe print
systeminfo.exe /fo csv
tasklist /fo csv /nh
wmic process get processid,parentprocessid,name,executablepath /format:csv
wmic process get processid,parentprocessid,name,executablepath,commandline /format:csv
MSIインストーラが実行された際の状況が、Vision OneのExecution Profile機能によって明らかになりました。はじめにNode.jsがインストールされ、次に、そのモジュール上でLu0Botのペイロードが稼働し、最終的にバックドアコマンドが実行されました。
その他の第2ペイロード:サービスホスト(svchost)に偽装
これまで、第2ペイロードの展開方式として、ファイル「svchost.Bat」を経由して古いNode.jsやマルウェア「Lu0Bot」がインストールされるパターンを取り上げました。一方、第2ペイロードとしては、他にもさまざまな種別が発見されました。当該のペイロードはローダによって起動されたものであり、先述同様、svchostのファイルに偽装されていました。これらは第1ペイロードから起動されるものではなく、また、Node.jsの不正利用に相当する動きも見られませんでした。
その他の第2ペイロードについて、現状確認されている組み合わせを下記に示します。
C:\Users\{ユーザ名}\AppData\Local\Temp\RTIvsEUane3TLWA\svchost.exe
C:\Users\{ユーザ名}\AppData\Local\Temp\nJAnCiq3sxgojkV\svchost.dll
C:\Users\{ユーザ名}\AppData\Local\Temp\6\kzC88czML4rqbVN\svchost.dll" (43f11d6ec961fc82cf53e4eca97c429285026f3e)
以上より、第2ペイロードの実体は常に同一ではなく、第1段階でローダが稼働した際にダウンロードされると考えられます。結果として、感染した時期や検体に応じて、不正な活動の内容に変化が生じる可能性があります。
EVコード署名証明書を有するローダとペイロード
調査中、EVコード署名証明書を有する複数の検体が発見されました。攻撃者は、当該証明書によって防御回避を図ったと考えられます(不正なファイルを正規なものに見せかける)。
前回の報告同様、EVコード署名は、インターネットからダウンロードされた実行ファイルに付与されていました。この点より攻撃者は、インターネットから実行ファイルをダウンロードした際に、それがWebサイトや検索エンジン、ブラウザ、オペレーティングシステムに検知されないようにする手口に強い関心を持っていると考えられます。また、こうした手口には、ユーザが実行ファイルを起動した際に、OSから表示される警告の回数を最小限に抑え込む効果もあります。
EVコード署名を有するローダとして、2つのファイルが発見されました。これらは異なる場所に配備され、異なる名前(ユーザが検索していたキーワードに関連)が付与されていましたが、そのハッシュ値は同一となっていました。
C:\Users\{ユーザ名}\Downloads\microsoft_barcode_control_16.0_download.exe (3364dd410527f6fc2c2615aa906454116462bf96)
C:\Users\{ユーザ名}\Downloads\avenir next heavy font.exe (3364dd410527f6fc2c2615aa906454116462bf96)
当該の証明書は、本稿執筆時点ですでに失効しています。EVコード署名証明書の鍵生成に際しては、ハードウェアトークンの仕様を満たすことが義務化されています。秘密鍵の窃取に関する過去の事例と異なり、現在では、鍵や証明書をPKCS12ファイルなどのソフトウェア形式で抽出できないようになっています。今回の署名に利用された証明書は、恐らく小規模な一般企業のものであり、その企業は被害者です。攻撃者は何らかの手法で秘密鍵そのものを保持していたか、または、リモート署名サービスの侵害済アカウントを不正利用したか、あるいは、秘密鍵を含むトークンが接続されたホストにアクセスした可能性などが考えられます。現状、署名に利用された証明書の秘密鍵がどのように攻撃者の手に渡ったかについては、判明していません。
初期アクセス
本調査では、初期アクセスに使用された手法の確実な特定には至りませんでしたが、証跡の分析結果として、標的システムへの侵入に使用された可能性の高い手法のいくつかが浮上しました。以降、その内容について解説します。
初期アクセスの可能性:Zoomの不正利用
Trend Vision Oneのプロセスチェーンを確認したところ、不正なファイルの侵入口となるファイルが、デフォルトブラウザ(本事例ではZoom経由でGoogle Chromeが起動された)を介してダウンロードされた様子が記録されていました。この点より、Zoomが攻撃の侵入経路として利用された可能性が示唆されますが、確定には至っていません。
ダウンロードされたファイルには、特定のフォントに絡む名前が付与されていました。また、ユーザのダウンロードフォルダを確認したところ、当該のフォント名を持つファイルが複数発見されました。そのため、当該のユーザはフォントファイルをダウンロードしていたことが示唆されます。
初期アクセスの可能性:Google Colabを不正利用してSEO対策済みのダウンロード用サイトを作成
先述のZoomに加え、攻撃者はSEOに適したGoogle Colabのサイトを準備し、これを感染チェーンの起点に利用した可能性があります。
本事例の調査中、Google ColabのWebサイトを不正利用してファイルを多量配布する攻撃キャンペーンに遭遇しました。当該の活動では、SEO対策にも手が及んでいることが判明しました。2023年7月にSucuriが行った調査によると、本攻撃キャンペーンが活発化したのは2022年7月のことであり、特にギャンブル関連のキーワードやフレーズをベースとするSEO対策が行われていました。しかし、現在ではSEOのターゲットがツールやフォントなどの狭い領域に絞り込まれ、検索結果のトップに上がりにくい一般的なキーワードやフレーズは避けられる傾向にあります。
感染の被害に遭ったユーザから状況を確認したところ、検索結果ページに表示されたファイルをダウンロードしていた旨の報告がありました。実際に当該のツール名を検索したところ、検索結果の1ページ目に不審なWebサイトが表示されました。
このWebサイトにアクセスすると、Google Colabの文書が表示され、そこには、正規のツールをダウンロードできるように装ったリンクが埋め込まれています(図7)。しかし、実際にリンクをクリックすると、不正な機能を含むさまざまなページに転送されます(転送先はタイミングに応じて異なる)。
上記と同様に、Colabを不正利用してユーザを誘い、ファイルをダウンロードさせるWebサイトが数多く発見されました。こうしたWebサイトの中には、トレンドマイクロの素材を利用したものさえ存在することが、以下などのキーワード検索によって発覚しました。
site:colab.research.google.com trend micro
初期調査時、Colabを不正利用したサイトへのアクセスを試みたところ、正規なブラウザ「Opera GX」のダウンロードページに転送されました。別の日に再びアクセスを試みると、今度は正規な7zip用インストーラのダウンロードページに転送されました。この点より、攻撃者はアクセス元に応じて転送先を分散させる仕組みを導入し、解析回避を図っていた可能性が示されます。
今回の調査では、不正なColabサイトに遭遇したユーザが、特定のツールやフォントファイルをダウンロードしていたことが判明しました。しかし、これらのサイトでマルウェアがホストされていた証跡までは得られませんでした。そのためトレンドマイクロでは、当該のColabサイトを初期侵入経路の「可能性があるもの」として分類しました。
類似する攻撃活動:同一のインフラを利用
今回の攻撃に類似する(しかし異なる)活動として、同じC&C用インフラやモジュールを用いるものが確認されました。
explorer.exeに対するインジェクションの手口を追跡した結果、以下の2つのC&C用IPアドレスが発見され、双方とも過去に情報窃取マルウェア「StealC」や「Vidar」の活動に関与していたことが判明しました。
「91[.]212[.]166[.]16:443」
「91[.]103[.]252[.]74:80」
このうちの1つについては、その通信履歴より、rar.exeという名前のファイルをダウンロードしている形跡が見られました。
トレンドマイクロでは、これらのC&Cアドレスに関する事前情報や知識があったため、攻撃の過程に介入し、ブロックすることに成功しました。
まとめおよび推奨事項
本攻撃では、その侵入経路として、ダウンロード用サイトやメッセージアプリが利用された可能性が高いと考えられます。この点を踏まえ、ユーザの方はインターネットからダウンロードしたファイルやプログラムに対して十分に警戒し、その取得元が公式なWebサイトやソースでない限り、やみくもにインストールしないこと(特に企業端末の場合)を推奨します。
ソーシャルメディアやチャットアプリを介してダウンロードしたファイルについては、安全性を第一優先する必要があります。ベストプラクティスとして、ユーザの方はいかなるファイルをダウンロードする前にも、まず送信者の正当性を確認することを推奨します。予期されない、または不審なメッセージについては、複数の通信チャネルを用いて送信者の正当性を二重にチェックしてださい。一般的に、マルウェア攻撃では実行ファイル(.exeなど)や変わった拡張子のファイルが侵入経路として利用されやすいため、これらの拡張子に対して警戒心を強めることも、有効な対策として機能します。
最後に、一般的なセキュリティ上のベストプラクティスとして、企業、組織、およびユーザの方は、ソフトウェアの定期的なアップデートを心がけることを推奨します。アップデートの内容には潜在的な脆弱性に対処するセキュリティパッチが含まれている場合が多く、攻撃を阻止できる可能性が高まります。
「Trend Vision One」をはじめとする包括的な検知・応答ソリューションは、強固なXDR機能を提供します。本ソリューションでは、メール、エンドポイント、クラウド・ワークロード、ネットワークを含むさまざまなセキュリティレイヤーからデータを取得して互いに関連付けることで、攻撃を自動的に阻止し、危険な予兆のあるインシデントを見逃すことなく検知することが可能となります。
侵入の痕跡(Indicators of Compromise、IoC)
侵入の痕跡(IoC)について、こちらで確認してください。
参考記事:
Attack Signals Possible Return of Genesis Market, Abuses Node.js, and EV Code Signing
By: Hitomi Kimura, Jed Valderama, Fe Cureg, Mohamed Fahmy, Byron Gelera
翻訳:清水 浩平(Core Technology Marketing, Trend Micro™ Research)