機能を最小限に絞った新たなランサムウェア「Epsilon Red」

SophosLabs UncutEpsilon RedEpsilonRedExchangePowershellProxyLogonWMIランサムウェア

ほとんどの機能を PowerShell スクリプトのキャッシュに委ねたシンプルなランサムウェア

Epsilon Red as he appeared in comic books

ほとんどの機能を PowerShell スクリプトのキャッシュに委ねたシンプルなランサムウェア

先日、Go プログラミング言語で書かれた Epsilon Red と名乗る新しいランサムウェアが、ソフォスのアナリストによって発見されました。このマルウェアは、米国に拠点を置く接客業企業を標的にした手動攻撃において、最終的な実行ペイロードとして配信されたものです。この攻撃の初期段階で使用されたその他のコンポーネントは、どれも PowerShell スクリプトでした。

攻撃者が指定した暗号通貨アドレスから判断すると、少なくとも被害者の 1 人が 5月 15 日に 4.29 BTC (当日のレートで約 21 万ドル) の身代金を支払ったようです。

名前とツールはこの攻撃者独自のものでしたが、感染したコンピュータに残されていた身代金要求メモは、REvil ランサムウェアからの身代金要求メモと似ています。ただし、小さな文法の間違いはいくつか修正されています。それ以外に Epsilon Red ランサムウェアと REvil の間に明らかな類似点はありませんでした。

攻撃者が企業ネットワークに最初に侵入した場所は、Microsoft Exchange サーバーであったようです。侵入を可能にしたのが ProxyLogon エクスプロイトであったのか、それとも他の脆弱性によってなのかは不明ですが、根本原因はパッチが適用されていなかったサーバーにあったと思われます。攻撃者はこのマシンを足掛かりに、WMI を使用して Exchange サーバーから到達可能なネットワーク内の複数のマシンに別のソフトウェアをインストールしました。

「Epsilon Red」という名前は、(攻撃者が名付けた他のランサムウェアと同じく) ポップカルチャーにちなんだものです。イプシロン・レッドというキャラクターは、マーベルコミックの X-MEN に登場する比較的知名度の低い敵役で、ロシア出身とされる「スーパーソルジャー」です。4 本の機械の触手を持ち、態度の悪さが特徴です。

PowerShell を使用した攻撃の下準備

この攻撃では、1.ps1 から 12.ps1 までの番号およびアルファベット 1 文字の名前が付けられた PowerShell スクリプトが起動されました。これにより、攻撃を受けたマシンは最終的なランサムウェアペイロードを受け入れる準備が整い、配信されたペイロードを実行するに至りました。

この PowerShell オーケストレーションは、WMI を使用して標的マシン上で実行される RED.ps1 という名前の PowerShell スクリプトによって作成され、トリガーされます。このスクリプトは、残りの PowerShell スクリプト、ランサムウェアの実行ファイル、さらに別の実行ファイルが格納された .7z アーカイブファイルを取得し、system32 フォルダに解凍します。

また、1 から 12 までのスクリプトを実行するスケジュールタスクが設定されますが、7 と 8 はスキップされ、「S」と「C」という名前のスクリプトのタスクも作成されます。

典型的なスケジュールタスクのコマンドは次のとおりです。
C:\Windows\system32\schtasks.exe /create /tn Microsoft\Windows\TASK12 /tr "powershell -file c:\windows\system32\RED\12.ps1" /sc minute /mo 2 /ru SYSTEM /f 

たとえば、攻撃者がマシン上で 2.ps1 スクリプトを実行すると、そのマシンからボリュームシャドウコピーを削除するコマンドが実行されます。これらのファイルは、暗号化された一部または全部のファイルの復元に使用される可能性があるため、攻撃の重要な前兆となります。

c.ps1 という名前の PowerShell スクリプトは、Nishang という名前のペネトレーションテストツール群の一部である Copy-VSS というオープンソースツールのクローンであるようです。Copy-VSS スクリプトは、攻撃者による SAM ファイルの複製を可能にするもので、攻撃者はこのファイルを使ってコンピュータに保存されているパスワードを入手し、解読することができます。

初歩的な難読化

これらの PowerShell スクリプトには、初歩的な難読化技術も使用されています。攻撃者は、PowerShell スクリプトのコード行を分割する目的でランダムに角括弧や中括弧を追加し、それらの括弧を削除するコマンドを使用しているようです。

この手法が用いられていても、ソフォスが事後に行うファイル分析にほとんど影響しませんが、攻撃者にとってはハードドライブ上のファイルを数分間スキャンするマルウェア対策ツールの検出を回避するのには十分な効果があると思われます。

ソフォスでは、攻撃者が設定したのと同じルールを使って、CyberChef を使用してレシピを作成することに成功しました。このレシピは、スクリプトから余計な文字を除去して、人間が読めるようにしたものです。

ブロックされたファイアウォールのポートと痕跡のクリーンアップ

red.ps1スクリプトは、RED.7z を %SYSTEM%\RED ディレクトリに解凍した後、解凍したスクリプトを実行するスケジュールタスクを作成します。ただし、その後 1 時間待機してから、Windows ファイアウォールのルールを改ざんするコマンドを実行して、ファイアウォールがリモートデスクトッププロトコル (RDP) の 3389/tcpRemote Utilities という市販のツールが使用する通信ポート 5650/tcp 以外のすべての TCP ポートからのインバウンド接続をブロックするようにします。

RED.ps1 スクリプトによって改ざんされたファイアウォールルール

奇妙なことに、まずポート 80 と 443 へのインバウンドトラフィックがブロックされ、次にポート 80 と 443 を含めた広範囲のポート全体がブロックされますが、RDP と Remote Utilities のポート (1-3388、3390-5649、5651-65352) は除外されています。

Windows ファイアウォールの UI に表示される Epsilon Red のファイアウォールルール

よく見ると、攻撃者が標的ネットワークにアクセスして最初に行ったことは、Remote Utilities と Tor ブラウザをダウンロードしてインストールすることでした。これは、最初のアクセスポイントがロックダウンされた場合に備えて、別の足場を確保するためのようです。

普通とは違う市販のリモートアクセスツール

攻撃者が使用していた市販の Remote Utilities には、攻撃者にとって便利な特徴がいくつかあります。

1 つは、無料で使用できる点です。ベンダーの Web サイトでメールアドレスを登録すると、最大 10 台のマシンで製品の全機能を永続的に使用できる無料のライセンスキーがメールで送られてきます。

同社の「Viewer」ソフトウェアには、ライセンスを取得したユーザーがデジタル署名付きの実行ファイル (インストーラー) を生成する機能が搭載されています。しかも、パスワードなどの環境設定はあらかじめこの実行ファイルに組み込まれています。ユーザーがオプションを選択すると、そのオプションがアプリケーションを介して同社に送信され、プログラムによってダウンロードされる独自の「ワンクリックパッケージ」実行ファイルが生成されます。続いて攻撃者がこのインストーラーを展開すると、インストーラーは無人で実行され、Remote Utilities Viewer コンソールに自動的に同期します。

このコンソールは、リモートデスクトップクライアントユーティリティとしても機能します。

rutserv.exe のサンプルは、いずれも Remote Utilities の証明書でデジタル署名されている

攻撃者は、これらの「ワンクリックインストーラー」の実行ファイルを少なくとも 2 つ生成し、標的ネットワーク上の複数のマシンにダウンロードし、実行していたことがわかりました。このインストーラーには rutserv.exe という名前が付けられており、攻撃者はダウンロード先のマシンごとに異なるファイルシステムに保存していました。

オーケストレーションスクリプトの実行

マルウェアは最初にスクリプト 9 と 12 を実行し、その後 180 秒の遅延を経て、1~6、10、11、S.ps1 と C.ps1 のタスクを作成します。デフォルトでは、攻撃者はこれらのファイルを %SYSTEM% パスの「RED」フォルダに展開しました。これらのスクリプトは、ランサムウェアを起動する前にシステムを準備するために攻撃者が使用する特定のタスクを実行します。実行されるタスクの多くは、セキュリティツールやバックアップツールを妨害するものですが、ハードドライブ上の重要データの暗号化を妨げる可能性のあるプロセスを無効化あるいは強制終了するものでもあります。

RED.ps1 スクリプトは、14 の PowerShell スクリプトのうち 12 のスクリプトをタスクスケジューラーに追加して実行

攻撃者が几帳面な性格なのか、それとも不安だったのかは定かではありませんが、いくつかのケースでは、少しずつ異なる方法で同じ目的を達成できるよう、重複するコマンドが発行されています。

たとえば、1.ps1 ファイルは、プロセス名に以下の文字列のいずれかを含むプロセスを検索し、そのプロセスを強制終了しようとします。:

'sql','Sql','SQL','BASup','Titan','SBAM','sbam','vipre','Vipre','Cylance','cylance','Senti','senti','sql','backup','veeam','outlook','word','excel','office','ocomm','dbsnmp','onenote','firefox','xfssvccon','infopath','wordpa','isqlplussvc','sql','dbeng50','mspub','mydesktopqos','ocautoupds','thunderbird','encsvc','oracle','mydesktopservice','thebat','agntsvc','steam','ocssd','tbirdconfig','synctime','visio','sqbcoreservice','winword','msaccess','powerpnt','mepocs','memtas','svc$','vss','sophos','crm','quickbooks','pos','qb','sage','SQL','prc','w3wp','java','store','ax32','dbs','wordpad','VeeamAgent','Backup','Cloud','Mbae','MB3','WRSA','rsa','wrsa'

これらの文字列は、攻撃者がセキュリティツールだけでなく、データベースサービス、バックアッププログラム、Office アプリケーション、電子メールクライアント、QuickBooks、さらにはゲームプラットフォームである Steam までもシャットダウンしようとしていることを示しています。

2.ps1 は、1 つのコマンド (vssadmin.exe delete shadows /all /quiet) を実行することで、システム上のすべてのボリュームシャドウコピーを削除します。一方、3.ps1 は、再起動時に Windows が実行しようとする自動修復を無効にします。

次に、4.ps1 が別の方法でボリュームシャドウコピーの削除を試みます。

wmic shadowcopy delete /nointeractive
Get-WmiObject Win32_ShadowCopy | % { $_.Delete() }
Get-WmiObject Win32_ShadowCopy | Remove-WmiObject
Get-WmiObject Win32_Shadowcopy | ForEach-Object { $_Delete(); }
Get-CimInstance Win32_ShadowCopy | Remove-CimInstance

5.ps1 は、2 つのコマンドを実行し、その間に Windows イベントログを削除しますが、これは調査の妨げになります。

6.ps1 は、1.ps1 と同様に、サービス名に含まれる可能性のある文字列のリスト (下記) に基づいて、プロセスではなくサービスを強制終了しようとします。

‘sql’,’Sql’,’SQL’,’BASup’,’Titan’,’Cylance’,’cylance’,’Defend’,’NisSvc’,’Veeam’,’veeam’,’backup’,’Backup’,’rsa’,’wrsa’,’WRSA’,’RSA’

また、以下の Windows レジストリキーを設定することで、Windows Defender を無効にします。

reg add “HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Defender” /f /v DisableAntiSpyware /t REG_DWORD /d

最初に実行される

9.ps1 は、ソフォス、Trend Micro、Cylance、MalwareBytes、Sentinel One、Vipre、Webroot、および複数のクラウドバックアップエージェントのセキュリティソフトウェアのアンインストーラーを起動しようとします。

次に、10.ps1 がドロップされた p.exe 実行ファイルを重複して実行します。これにより、以下の文字列を含むプロセスが一時停止され、そのログが消去されます。

'MpCmd','MsMp','Senti','senti','sql','backup','veeam','outlook','word','excel','office','ocomm','dbsnmp','onenote','firefox','xfssvccon','infopath','wordpa','isqlplussvc','sql','dbeng50','mspub','mydesktopqos','ocautoupds','thunderbird','encsvc','oracle','mydesktopservice','thebat','agntsvc','steam','ocssd','tbirdconfig','synctime','visio','sqbcoreservice','winword','msaccess','powerpnt','mepocs','memtas','svc$','vss','sophos','crm','quickbooks','pos','qb','sage','SQL','prc','w3wp','java','store','ax32','dbs','wordpad','VeeamAgent','Backup','Cloud','Mbae','MB3'

さらに 11.ps1 が別の方法で 3 回目となるボリュームシャドウコピーの削除や、復旧オプションの変更、イベントログの消去を行う以下のコマンドを実行し、冗長性を高めています。

‘vssadmin.exe Delete Shadows /All /Quiet’,
‘bcdedit /set {default} recoveryenabled no’,
‘wmic shadowcopy delete’,
‘wbadmin delete backup’,
‘wbadmin delete systemstatebackup -keepversions:0’,
‘bcdedit /set {default} bootstatuspolicy ignoreallfailures’,
‘bcdedit /set {default} recoveryenabled no’,
‘wevtutil.exe clear-log Application’,
‘wevtutil.exe clear-log Security’,
‘wevtutil.exe clear-log System’,
‘wbadmin delete systemstatebackup’,
‘wbadmin delete catalog -quiet’,
‘bootstatuspolicy ignoreallfailures’

これほどまでの冗長性は、この攻撃者がツールの性能に不安を感じてはいるものの、チャンスを逃すつもりはないことを示唆しています。

12.ps1 は、可能な限り多くのファイルが暗号化されるように、マシン上に存在する可能性のあるすべてのドライブレターに対して「Everyone」グループのアクセス権を付与します。

RED.ps1 スクリプトによって設定されたスケジュールタスク

また、RED.ps1スクリプトは、実行時に自分自身、.7z アーカイブ、7zip のローカルコピーをシステムから削除して、重要な証拠を隠滅します。

SophosLabs は、ランサムウェアの実行ファイルに加えて、攻撃者が標的マシンに展開した別の補助的実行ファイルを回収し、分析しました。この実行ファイル (p.exe) は、Windows のイベントログの内容を消去または改ざんするために作成された EventCleaner というオープンソースツールをカスタムコンパイルしたものと思われます。攻撃者が p.exe コンポーネントを使用したのは、攻撃の痕跡を消すためでした。

攻撃者が標的マシンにドロップした .7z アーカイブには、他にも PowerShell スクリプトが含まれていたことは前述しました。今回の攻撃でそれらのスクリプトが実行された形跡はありませんでしたが、7、8、9 番のスクリプトは重要な役割を果たすものです。7.ps1 は、コンピュータ上のほぼすべてのオープンセッションをログオフします。8.ps1 は、RED.ps1 に含まれるのと同じファイアウォールルールのスクリプトの重複コピーです。

必要最小限の機能だけを備えたランサムウェア

このランサムウェア自体 (RED.exe) は、Go 言語でプログラムされた 64 ビットの Windows 実行ファイルで、MinGW と呼ばれるツールでコンパイルされ、ランタイムパッカー UPX の修正版で圧縮されています。

この実行ファイルには、godirwalk という名前のオープンソースプロジェクトから引用されたコードが含まれており、実行中のハードドライブのディレクトリパスをスキャンしてリストにまとめる機能を持っています。その後、このランサムウェアは各サブフォルダを個別に暗号化する新しい子プロセスを生成します。これにより、しばらくすると、ランサムウェアのプロセスのコピーが多数同時に実行されることになります。

この根本原因分析図では、1 つのフォルダを暗号化する red.exe ランサムウェアの各インスタンスが、固有のプロセスとして表示されている

このランサムウェア自体は、標的システム上のファイルを暗号化するためだけに使用されるため、サイズは非常に小さいです。ネットワークに接続もせず、プロセスの強制終了やボリュームシャドウコピーの削除などの機能は PowerShell スクリプトにアウトソーシングされているため、非常にシンプルなプログラムとなっています。

今回のサンプルでは、標的となったファイルタイプやファイル拡張子のリストすら含まれていません。実際、他の実行ファイルや DLL を含めて、暗号化するフォルダ内のすべてを暗号化します。そのため、ランサムウェアが間違ったフォルダパスを暗号化した場合、プログラムやシステム全体が機能しなくなる可能性があります。ランサムウェアは、各ファイルを暗号化した後、ファイルに「.epsilonred」という接尾辞を付け、各フォルダに身代金要求メモを入ドロップします。

奇妙なことに、この身代金要求メモは、Epsilon Red よりも広く拡散しているランサムウェア REvil で使用されているものとよく似ています。しかし、REvil の身代金要求メモにはスペルミスや文法の間違いが多く見られますが、Epsilon Red の身代金要求メモは、英語を母国語とするユーザーに読みやすくなるように編集が加えられています。

Epsilon Red の身代金要求メモ

被害者は、通常の Web サイト (epsilons[.]red) 上の専用 URL にアクセスして、攻撃者と連絡を取るように促されます。

検出

Intercept X などのソフォスのエンドポイント製品は、PowerShell スクリプトやランサムウェアペイロードによって実行されるいくつかのアクションを動作ベースで検出します。ファイルを暗号化しようとする行為は、CryptoGuard 機能によってブロックされます。この攻撃の入口は、ProxyLogon のエクスプロイトチェーンに対して脆弱な Exchange サーバーであったと考えられるため、お客様には、インターネットに接続されている Exchange サーバーへの迅速なパッチ適用をお勧めします。ソフォスのエンドポイント製品は、Exchange サーバーだけでなく、ドメインコントローラーやワークステーションも保護することができます。

この脅威の IoC (侵害の痕跡) は、SophosLabs の Github でご確認いただけます。

謝辞

SophosLabs は、Anand Ajjan、Richard Cohen、Fraser Howard、Elida Leite、Mark Loman、Andrew Ludgate、Peter Mackenzie、Nirav Parekh、Gabor Szappanos の協力により、この脅威を包括的に分析し、Epsilon Red などのマルウェアを検出・ブロックする機能を向上させることができました。