Embargoランサムウェア:セキュリティ製品を無効化するEDRキラーを搭載するRustベースの新ツールキットを発見
新たなランサムウェアグループEmbargoは、Rustベースの新しいツールキットを試しながら攻撃を展開
新たなランサムウェアグループEmbargoは、Rustベースの新しいツールキットを試しながら攻撃を展開
ESETの研究者は、Embargoランサムウェアを展開する新しいRustベースのツールを発見しました。Embargoは、2024年6月にESETによって初めて確認された比較的新しいランサムウェアグループです。新しいツールキットはローダーとEDRキラー(EDRを強制的に終了するツール)で構成されており、ESETはローダーとEDRキラーをそれぞれMDeployerとMS4Killerと命名しました。特に注意しなければならないのは、MS4Killerが被害者の環境に合わせてコンパイルされており、被害者が利用するセキュリティソリューションを標的としていることです。Embargoグループはランサムウェアの開発にRust言語を使用しており、両方のツールがRustで記述されています。
本ブログの要点:
2024年7月、ESETは複数の米国企業を標的としたランサムウェアインシデントを確認しました。このインシデントでは新しいツールが使用されていました。被害を受けた各企業への侵入で観察されたMDeployerとMS4Killerのバージョンはそれぞれわずかに異なっており、このツールが現在も開発されていることを示唆しています。一度の侵入で2つの異なるバージョンのMDeployerも検出されています。恐らく最初の侵入が失敗した後に、ツールを変更したと考えられます。
このブログでは、MDeployerとMS4Killerの分析、およびEmbargoランサムウェアが実行される前のアクティビティを中心に説明します。MDeployerは、MS4KillerやEmbargoランサムウェアを展開するために使用される悪意のあるローダーです。MS4KillerはEDRキラーであり、脆弱なドライバを悪用し、被害者のマシンで実行されているセキュリティ製品を無効にします。
Embargoは、ESETのテレメトリでは2024年6月に初めて観測されました。実環境で最初に確認されたのは2024年5月でした。Embargoが注目を集めたのは、知名度の高い企業への侵入に成功したことの他に、ランサムウェアペイロードの記述に利用されているプログラミング言語が特殊であったためです。Embargoは、クロスプラットフォーム対応のプログラミング言語であるRustを選択しており、WindowsとLinuxの両方を標的とする、汎用性の高いランサムウェアを開発しています。BlackCatとHiveに続き、EmbargoグループもRustでランサムウェアペイロードを開発しています。
開発と運用の手法から、Embargoグループには豊富な資金力があると考えられます。被害を受けた組織とやり取りするために独自のインフラを構築していますが(図1)、Toxを介してやり取りすることも可能です。このグループは、二重恐喝によって標的企業に身代金を支払うように迫り、窃取したデータをリークサイトで公開しています。グループのメンバーとされる人物へのインタビューの中で、グループの代表者は、アフィリエイトに対する基本的な支払いスキームについても言及していたことから、このグループがRaaS(サービスとしてのランサムウェア)を提供していると考えられます。最近、法執行機関によるBlackCatやLockBitのような悪名高いグループメンバーの逮捕やテイクダウンがあったことから、RaaS環境では再編成が起こっています。RaaS環境が世界的に変化したことで、高度な技術がある新しいサイバー攻撃者が出現することになりました。Embargoグループが有する高度なスキル、典型的なリークサイトの存在、そしてグループ自らの主張から、ESETはEmbargoが実際にRaaSプロバイダーとして運営していると考えています。
ESETが2024年7月のインシデントで観測したEmbargoランサムウェアのペイロードでは、以下の共通の属性がありました。
Cybleの研究者による過去の分析では、ペイロードはミューテックスLoadUpOnGunsBringYourFriendsを作成していました。注目すべきは、どちらのミューテックスの名前も、人気のあるロック曲の歌詞から引用されていることです。ESETの分析は、Cybleの記事にある分析と一致しています。
MDeployerは、Embargoが侵害したネットワーク内のマシンに展開する悪意のあるメインローダーであり、ランサムウェアの実行やファイルの暗号化などの最終的な攻撃を実行するために使用されます。
PEヘッダーのIMAGE_EXPORT_DIRECTORYセクションにあるnameフィールドから、EmbargoがこのツールをDeployerと呼んでいることがわかります。そのためESETは、このツールをMDeployer(EMbargo Deployer)と命名しました。
このローダーの主な目的は、暗号化された2つのファイルa.cacheとb.cacheを復号化し、MS4KillerとEmbargoランサムウェアの2つのペイロードを実行することです。これらのファイルはこの攻撃の前の段階でドロップされていますが、その方法の詳細は明らかになっていません。
MS4Killerは永続的に実行されるように設計されており、MDeployerはAPI関数WaitForSingleObjectを呼び出し、戻り値WAIT_TIMEOUTを確認して、実行されていることを検証します。MS4Killerが期待通りに実行されていない場合、MDeployerはsysmon exited earlyというメッセージを記録し、2番目のペイロードを実行せずに終了します。このメッセージの記録についてはこのブログの後半で説明します。
ESETが確認したすべてのMDeployerバージョンで、両方のペイロードはハードコードされている同じRC4キー(wlQYLoPCil3niI7x8CvR9EtNtL/aeaHrZ23LP3fAsJogVTIzdnZ5Pi09ZVeHFkiB)を使用して復号されていました。
MDeployerが実行されるときに、複数のファイルとやり取りします。理解しやすいように、図3にファイル間の関係を示します。
表1に、ファイルの目的を示します。
パス | 説明 |
---|---|
C:\Windows\Debug\b.cache | RC4で暗号化されたMS4Killer。 |
C:\Windows\Debug\a.cache | RC4で暗号化されたEmbargoランサムウェア。 |
C:\Windows\praxisbackup.exe | 復号されたMS4Killer。 |
C:\Windows\Debug\pay.exe | 復号されたEmbargoランサムウェア。 |
C:\Windows\Debug\fail.txt | ログファイル。 |
C:\Windows\Debug\stop.exe | コントロールフローで使用されるダミーファイル。 |
C:\Windows\Sysmon64.sys | MS4Killerがドロップする正規の脆弱なドライバ。 |
表1. MDeployerが操作するファイル
ESETが調査したインシデントでは、MDeployerがDLLとしてデプロイされた例外が1つだけありましたが、それ以外では、MDeployerはEXEファイルとしてコンパイルされていました。このDLLの亜種には、セキュリティソリューションを無効にする機能が追加されています。
DLLの実行フローの概要については、図4を参照してください。
EXEとDLLの最初の違いは、DLLが最初に実行されるときに起こります。DLLのバージョンでは、stop.exeというファイルが存在していることを実際にチェックします。このファイルが存在している場合、MDeployerが過去にすでに実行されており、ランサムウェアペイロードのデプロイに成功しているか、エラーが発生して終了したことを意味します。そのため、このファイルが見つかった場合、ローダーはクリーンアップを実行して終了します。EXEバージョンは、stop.exeファイルを作成しますが、その存在はチェックしません。
MDeployerのDLLバージョンは、次に、DLLが管理者権限で実行されたかどうかをチェックします。管理者権限で実行されていない場合、EXEバージョンとまったく同じ処理が行われます。実際、このEXEバージョンは、この単一の実行ブランチのソースコードを使用してコンパイルされている可能性が高いと考えられます。
しかし、管理者権限で実行された場合、ローダーは被害者のシステムをセーフモードで再起動し、特定のセキュリティソリューションを無効化します。
セーフモードとは、Windows OSの診断モードで、必要最小限の機能だけをロードしてシステムを実行します。このため、セーフモードでは多くのサイバーセキュリティ機能や保護機能が有効になりません。サイバー攻撃者はセーフモードを悪用して検出を回避しようとしています。2022年にForbesが報告しているように、この手法は、高いスキルを持つランサムウェアグループによってこれまでも悪用されています。
セキュリティツールの無効化は2つのステップで実行されます。
最初のステップの目的は、システムをセーフモードで再起動することです。このローダーは、Windowsのコマンドラインツールbcdedit、 sc、 regを組み合わせて、以下の処理を行って再起動します。
このローダーが実行するコマンドの詳細なリストについては、「MDeployerが使用するコマンド」のセクションを参照してください。
セーフモードでシステムを再起動すると、ローダーはインストールディレクトリの名前を変更して特定のセキュリティツールを無効にし、Embargoランサムウェアのペイロードを実行します。
復号されたランサムウェアファイルpay.exeを削除し、二重の暗号化を防ぐためにコントロールフローファイルstop.exeを作成し、常駐するためのサービスirnagentdを削除して、システムを通常モードに戻して再起動します。
あるインシデントでは、DLLローダーの追加機能がBATスクリプトとして実装されていました。このスクリプトはある1つのセキュリティソリューションを無効化することを目的としています。このスクリプトは、常駐するためのサービスirnagentdを利用してセーフモードで再起動し、インストールされているセキュリティソフトウェアのインストールディレクトリの名前を変更するという同じ手法を使用しています。さらに、コントロールフローに同じstop.exeファイルを使用し、エラーメッセージをfail.exe(MDeployerの場合はfail.txt)に記録しています。
この処理も、Embargoが各被害者の環境に合わせてツールを変更していることを裏付けています。
MDeployerでエラーが発生した場合、エラーメッセージをファイルfail.txtに記録し、ファイルstop.exeを作成します。
この攻撃者は4つの段階でログメッセージを区別しており、それぞれ異なる接頭辞を使ってエラーを記録します。
これは、RansomHubがEDRを強制的に終了する方法は通常とは大きく異なります。C:\Users\Administrator\Music\1.0.8.zipに保存されているアーカイブからWinRAR経由で手動で抽出して実行されていました。RansomHubのアフィリエイトがこのような方法で実行するのは非常に珍しいことです。一方、Musicフォルダを使用し、手動でペイロードを展開して実行することは、CosmicBeetleが一般的に行っている方法です 。
ESETが把握している限り、RansomHubのコードやそのビルダーは一般にリークされていません(ただし、RansomHub自体はおそらく、別のランサムウェアグループであるKnightから購入したコードを基盤に作成されています)。従って、CosmicBeetleが新たにRansomHubのアフィリエイトとして登録されたことはほぼ間違いないと思われます。
MDeployerには、さまざまな状況で起動されるいくつかの異なるクリーンアップルーチンがあります。このルーチンは、ローダーがランサムウェアペイロードを正常に実行した後、またローダーの実行中に何らかのエラーが発生した場合に起動されます。
クリーンアップ中にローダーはMS4Killerプロセスを終了し、復号されたペイロードとMS4Killerによってドロップされた脆弱なドライバを削除し、コントロールフローファイルstop.exeを作成します。
このような暗号化ツールを起動するには、サイバー攻撃者が被害者の画面にアクセスし、マウスを操作しなければなりません。CosmicBeetleがこの手法を使うのは今回が初めてではありません。ScHackToolも被害者のマシンで実行しなければならず、手動で操作する必要があります。CosmicBeetleがどのようにして手動で操作しているのかは完全に把握できていませんが、使用されている他のツールから推測すると、以前に窃取した認証情報とRDPを使用したVPNアクセスが最も可能性の高いシナリオであると考えられます。
stop.exeが存在しているためにクリーンアップルーチンが実行された場合、MDeployerは自身のPEファイルも削除します。
最後に、shutdown -r -f -t 00コマンドを呼び出してシステムを再起動します。
観測されたすべてのケースで、権限を昇格したシステムユーザーBITCHAdministratorによって作成されたスケジュールタスクPerf_sys(図5)によってローダーはシステムに常駐していました。
ESETは、あるケースでMDeployerを実行するPowerShellスクリプトも収集しました。このスクリプトは、WinRM-fsで使用されているスクリプトと酷似していたことから、Embargoが保護されていないマシンからローダーを配信するために、このスクリプトまたは同様のツールを使用している可能性があります。
これまで見てきたローダーの検体には、いくつかの矛盾や「乱雑なコントロールフロー」が見られており、このグループのツールはまだ開発中であり、「完全な準備」が整っていないことを示唆しています。
MDeployerがMS4Killerによってドロップされた脆弱なドライバを削除していることは、2つのツールが一緒に開発されていることを示しています。MS4KillerとMDeployerの両方のDLLバージョンは、セキュリティソリューションの無効化を試みます。
ローダーがペイロードファイルを削除し、その直後にペイロードファイルの1つを実行しようとするのは珍しいことではありません。図6に示しているように、MDeployerはクリーンアップ関数を呼び出し、そのときにpay.exeは削除されますが、その後、まったく同じファイルを実行しようとしています。
実際、ESETが確認したローダーのDLLバージョンにはいくつかのバグがあり、完全に動作していませんでした。一度のインシデントでいくつかのバージョンのローダーが使用されているのは、これらのバグが存在しているためだと考えられます。このサイバー攻撃者は、攻撃を実行しているときにこれらの問題を特定しており、攻撃中に対応している可能性があります。
MS4Killerは、防御機能を回避する典型的なツールであり、BYOVD(独自の脆弱なドライバの持ち込み)の手法によってセキュリティ製品のプロセスを終了します。ローダーと同様にRustで記述されています。MS4Killerは、GitHubで公開されているs4killerの概念実証(POC)の多くを取り入れており、汎用性を高めるためにRust記述していると考えられます。この既存のPOCと類似していることから、ESETはこのツールをMS4Killer(EMbargo s4killerの略)と命名しました。
s4killerは実行中のプロセスを選択し、カーネルから終了するように設計されています。グローバル変数(コンパイルされたコードの.rdataセクション)に保存されている脆弱なドライバをインストールして悪用して、この処理を実行します。終了するプロセスのPIDは、プログラムの引数としてs4killerに渡されます。プロセスの終了は、minifilter APIからFilterConnectCommunicationPortとFilterSendMessageを介して実行されます。/p>
Embargoは、以下の機能を追加してこのPOCを拡張しています。
脆弱なドライバの持ち込みは、広く知られた手法であり、サイバー攻撃者が署名された脆弱なカーネルドライバを悪用してカーネルレベルでコードを実行するために使用されています。ランサムウェアのアフィリエイトは、攻撃対象のインフラを保護しているセキュリティソリューションを改変するために、侵害チェーンの中にBYOVDツールを組み込むことが多くあります。セキュリティツールを無効にすれば、アフィリエイトはランサムウェアペイロードが検出される心配なく実行できます。
MS4Killerはあるケースで、ITM System Co.LTDの失効している証明書によって署名された古い脆弱なミニフィルタドライバを悪用しています(probmon.sys、バージョン3.0.0.4)(図7を参照)。このドライバはRC4で暗号化されたブロブとしてMS4Killerのバイナリに埋め込まれています。ESETは、ITWのこのドライバが悪用されていることをMicrosoftに報告しています。
MS4Killerは、バイナリに埋め込まれた文字列を暗号化して隠蔽します。具体的には、ログメッセージの文字列、埋め込まれたドライバを復号するために使われるRC4キー、終了するプロセス名のリストをXOR演算で暗号化します。図8に、WindowsのOpenProcessToken APIが呼び出され、ログメッセージが復号される例を示します。この関数が失敗した場合、ユーザー定義関数(図8ではxor_strに名前を変更)がXORされた文字列を復号し、その結果、[-] OpenProcessTokenを参照渡しによって最初の引数に格納します。復号された文字列にエラー情報が付加され、標準出力に書き出されます。
前述したように、正規の脆弱なドライバは、MS4KillerバイナリにRC4で暗号化されたブロブ(キーFGFOUDa87c21Vg+cxrr71boU6EG+QC1mwViTciNaTUBuW4gQbcKboN9THK4K35sLを使用)として埋め込まれており、XORで暗号化されています。ESETは、MS4Killerが脆弱なドライバをドロップする以下の2つの異なるファイルパスを確認しています。
ドライバをロードする方法は、s4killerと一致しています。
MS4KillerはこれまでにSysprox、 Proxmon、Sysmon64の3つの異なるサービス名を使用しています。
MS4Killerは、XOR暗号化されたセキュリティソフトウェアのプロセス名を埋め込んだリストに対して実行中のプロセスを常に照合します。ドライバがロードされるとすぐに、MS4Killerはプロセス名のリスト(図10)を復号します。
これらは、複数のセキュリティ製品のプロセス名になっています(付録:MS4Killerが終了するプロセスリストの例も参照)。図10のコードスニペットを見ると、ekrn.exeなどプロセス名が重複し、文字列の一部が同じ場所に復号されており(変数hHandle、Luid、lpMemを参照)、ダミーのプロセス名(firefox.exe)が1つあることがわかります。さらに、復号された文字列変数が相互参照され、論理比較が行われプロセス名のサブセットのみが利用されるようになります。図11のコードスニペットのケースでは、ESET製品のプロセス名ERAAgent.exeとekrn.exeだけが実行中のプロセスと比較されます。MS4Killerの複数の検体を精査したところ、埋め込まれたプロセスリストには常に複数のセキュリティ製品のプロセス名が含まれているにもかかわらず、侵入された各組織では、特定のセキュリティソリューションのプロセスのみが監視されていました。
ESETは、MS4Killerの検体が実際に攻撃する直前にコンパイルされ、被害者のマシンを保護しているセキュリティソリューションのみを対象としていたことを示す証拠を確認しています。
このブログでは、Rustで記述され、新しいランサムウェアグループEmbargoによって現在も攻撃に使用されている新しいツールを分析した結果をお伝えしました。ESETがこれらのツールをMDeployerとMS4Killerと命名しています。Embargoは新しいランサムウェアグループであり、この犯罪界隈でのし上がろうとする野心が見られます。このブログでは、EmbargoグループがRaaS(サービスとしてのランサムウェア)を提供していると考えられる理由についても説明しました。
Embargoツールキットの主な目的は、被害者のインフラで利用されているセキュリティソリューションを無効にして、ランサムウェアペイロードの展開を成功させることです。Embargoは、攻撃のさまざまな段階で同じ機能を複製するために多くの努力を払っており、BATスクリプト、MDeployer、MS4Killerのすべてに、セキュリティソリューションを無効にする機能が含まれています。また、攻撃者が侵入しているときに、特定のセキュリティソリューションを無効にするために、オンザフライでツールを調整する能力も確認されています。
MDeployerもMS4KillerもRustで記述されています。ランサムウェアペイロードも同様にRustで記述されており、このグループの開発者がRust言語を使用していることが分かります。一度のインシデントで、2つの異なるバージョンのMDeployerが展開されていることも確認されています。展開されたローダーには、ツールが正常に機能しなくなる論理的なバグも含まれていました。侵入しているときにツールを調整する手法や、コンパイルのタイムスタンプが侵入した日時の直前であることから、ツールを展開しているこの攻撃者には、侵入時にすばやくソースコードを変更し、ツールを再コンパイルする能力があると考えられます。
SHA-1 | ファイル名 | 検出 | 説明 |
---|---|---|---|
A1B98B1FBF69AF79E5A3F27AA6256417488CC117 | dtest.dll | Win64/Agent.ECY | MDeployer - MS4KillerとEmbargoランサムウェアを展開するローダー。 |
F0A25529B0D0AABCE9D72BA46AAF1C78C5B48C31 | fxc.exe | Win64/Agent.ECY | MDeployer - MS4KillerとEmbargoランサムウェアを展開するローダー。 |
2BA9BF8DD320990119F42F6F68846D8FB14194D6 | fdasvc.exe | Win64/Agent.ECY | MDeployer - MS4KillerとEmbargoランサムウェアを展開するローダー。 |
888F27DD2269119CF9524474A6A0B559D0D201A1 | praxisbackup.exe | Win64/Agent.ECW | MS4Killer - EDRを強制的に終了するEmbargoのツール。 |
BA14C43031411240A0836BEDF8C8692B54698E05 | Praxisbackup.exe | Win64/Agent.ECW | MS4Killer - EDRを強制的に終了するEmbargoのツール。 |
8A85C1399A0E404C8285A723C4214942A45BBFF9 | pay.exe | Win32/Filecoder.Embargo.A | Embargoランサムウェア。 |
612EC1D41B2AA2518363B18381FD89C12315100F | win32.exe | Win32/Filecoder.Embargo.A | Embargoランサムウェア。 |
7310D6399683BA3EB2F695A2071E0E45891D743B | Sysmon64.sys | Win64/ITMSystem.A | MS4Killerによってドロップされ、使用される正規の脆弱なドライバprobmon.sys。 |
7310D6399683BA3EB2F695A2071E0E45891D743B | Sysprox.sys | Win64/ITMSystem.A | MS4Killerによってドロップされ、使用される正規の脆弱なドライバprobmon.sys。 |
シリアルナンバー | 010000000001306DE166BE |
サムプリント | A88758892ED21DD1704E5528AD2D8036FEE4102C |
Subject CN | ITM System Co.,LTD |
Subject O | ITM System Co.,LTD |
Subject L | Guro-gu |
Subject S | N/A |
Subject C | KR |
有効期限の開始 | 2011-06-08 06:01:39 |
有効期限の終了 | 2014-06-07 08:32:23 |
この表は、MITRE ATT&CKフレームワークのバージョン15を使用して作成されています。
手法 | ID | 名前 | 説明 |
---|---|---|---|
リソース開発 | T1587.001 | 能力の開発:マルウェア | Embargoグループは、MDeployer、MS4Killer、Embargoランサムウェアなどの独自のツールキットを開発しています。 |
実行 | T1059.003 | コマンドラインインターフェイス:Windowsコマンドシェル | Embargoグループは、セキュリティソリューションを無効にするBATスクリプトを実行しています。 |
T1059.001 | コマンドラインインターフェイス:PowerShell | Embargoグループは、PowerShellを使ってMDeployerを被害者のマシンに転送します。 | |
T1053.005 | タスク/ジョブのスケジュール:タスクのスケジュール | Embargoグループは、スケジュールタスクを使用して、侵害したエンドポイントでMDeployerを実行します。 | |
T1569.002 | システムサービス:サービスの実行 | Embargoグループは、Windowsサービスを使用して、セーフモードでMDeployerを実行します。 | |
常駐化 | T1547.001 | ブートまたはログオン自動起動:Runレジストリキーやスタートアップフォルダの悪用 | Embargoグループは、Windowsレジストリを変更して、セーフモードで独自サービスを開始します。 |
T1136.002 | アカウントの作成:ドメインアカウント | Embargoグループは、独自のドメインアカウントを作成します。 | |
防衛機能の回避 | T1562.001 | 防御策の妨害:ツールの無効化または変更 | MDeployer、MS4Killer、BATスクリプトは、セキュリティソリューションを無効にします。 |
T1562.009 | 防御策の妨害:セーフモードでの起動 | MDeployerとBATスクリプトは、システムをセーフモードで再起動します。 | |
T1070.004 | 攻撃の痕跡の削除:ファイルの削除 | MDeployerは、クリーンアップ中にドロップされたファイルを削除します。 | |
T1112 | レジストリの変更 | MS4Killerは、レジストリを変更し、正規の脆弱なドライバをロードします。 | |
T1027.013 | ファイルや情報の難読化:暗号化/エンコードされたファイル | MDeployerがロードするペイロードは、RC4で暗号化されています。 | |
探査 | T1135 | 共有ネットワークの検出 | Embargoランサムウェアは、ネットワーク共有を検出します。 |
T1083 | ファイルおよびディレクトリの検出 | Embargoランサムウェアは、ファイルとディレクトリを検出します。 | |
影響 | T1490 | システム復旧の抑止 | Embargoランサムウェアは、Windowsの自動回復を無効にします。 |
T1486 | データの暗号化により影響を与える | Embargoランサムウェアは、感染したマシンのファイルを暗号化します。 |