ウクライナを標的とした「ランサムウェア」キャンペーンに関する最近のニュース報道では、属性だけでなく、考えうる動機についても大きく取り上げられました。動機が明白な従来のランサムウェアのキャンペーンとは異なり、今回のキャンペーンは疑似的なものであると考えられています1。つまり、Stage 4のワイパーが被害者のシステムのデータを単純に上書きするため復号化が不可能であることから、感染したシステムの破壊を引き起こすことが目的だと思われます。このキャンペーンは主に1つの国を対象としていますが、Trellix Advanced Threat Researchチームは、他国でどのような指標が確認されているかを強調するためにMVISION Insightsでその状況を公開しています。 (CISA Insights)
Source: Insights Preview
引き続き、脅威からの保護と検知に必要なセキュリティ体制を確保することを強く推奨します。アクティブ・ハンティングのためのIOC(Indicators 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 |
ステージ2:Discordがホストする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」から始めると、実行後にランサムウェアとなり、MBR(Master 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 |
その後、マルウェアは、DiscordのCDNサーバーから「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 |
AdvancedRunの2回目の実行は、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、ステージ2のENSのトリガー検出結果
MVISION EDRは、以下のようにプロセスの実行を完全に可視化することができます。
ここでは、セカンドステージのペイロードの通信フローと、powershellスクリプトの実行の意図を確認することができます。
検出された脅威から調査を始めると、powershellやcmdなどのデュアルインテルツールを使用してOSコマンドを実行し、システムに変更を加え、追加のペイロードをダウンロードすることがわかります。
1 https://www.helpnetsecurity.com/2017/08/14/pseudo-ransomware/
※本ページの内容は2022年1月20日(US時間)更新の以下のTrellix Storiesの内容です。
原文: Return of Pseudo Ransomware
著者: Christiaan Beek, Max Kersten, Raj Samani