Cybereason GSOC(Global Security Operations Center)では、影響力のある脅威に関する情報を提供するために、Cybereason脅威アラートの分析レポートを発行しています。同レポートは、影響力のある脅威を調査した上で、それらの脅威から身を守るための実践的な提案を提供するものです。
この脅威アラート分析レポートでは、Cybereason GSOCチームが、最新バージョンのMagniberランサムウェアを使った攻撃に関する調査結果を紹介しています。このランサムウェアは、侵入先のシステムに対する最初の攻撃ベクターとして、良く知られたPrintNightmare脆弱性(CVE識別番号:CVE-2021-34527)を悪用します。

Magniberランサムウェアの主な調査結果

重要な脆弱性:CVE-2021-34527 およびCVE-2021-34481は、Windows のPrint Spoolerサービスに存在する重大な脆弱性であり、この脆弱性をリモートからエクスプロイトすることで、攻撃者は、標的とするシステム上で管理者権限を使って任意のコードを実行できるようになります。また、この脆弱性は、Windowsシステムのポイントアンドプリント機能に存在しており、これを悪用することで、非特権ユーザーは、リモートプリンターのインストールや更新が行えるようになります。なお、CVE-2021-34527およびCVE-2021-34481を総称して「PrintNightmare」と呼びます。

企業ネットワークにとって重大なランサムウェア脅威:PrintNightmare脆弱性(CVE-2021-34527)が公開された直後、悪意あるアクターは、この脆弱性のエクスプロイトを開始しました。ランサムウェアグループは、次のような理由から、PrintNightmareを特に魅力的であると考えています。

  • PrintNightmareを悪用すると、攻撃者は、管理者権限で任意のコードを実行できるようになります。
  • CVE-2021-34527は、多くの大企業のネットワークで使用されているWindowsのポイントアンドプリント機能に存在しています。ランサムウェアグループは、通常、大企業のネットワークを標的にします。さらに、このような大規模な企業ネットワークには、リモートプリンターを使用する非特権ユーザーが多く存在しています。

MagniberランサムウェアとPrintNightmare:悪意あるアクターは、PrintNightmare脆弱性(CVE-2021-34527)を悪用することで、侵入先のシステムにMagniberランサムウェアを導入します。Magniberランサムウェアは、活発な開発が続けられており、コードの大幅な変更や、難読化機能、検知回避戦術、暗号化メカニズムなどの改善が頻繁に行われています。

検知と防御: Cybereason Defense Platformは、Magniberランサムウェアの検知と防御を実現します。
Cybereason MDR(Managed Detection and Response):Cybereason GSOCでは、Magniberのようなランサムウェアグループが関与する攻撃に対してゼロトレランス式のアプローチを採用しており、このような攻撃をクリティカルで重大度の高いインシデントとして分類しています。このようなインシデントが発生した場合、 Cybereason GSOCのMDRチームは、お客様向けに包括的なレポートを発行します。このレポートには、当該インシデントに関する概要をはじめ、侵害の程度やお客様の環境への影響を把握するのに役立つ情報が記載されています。さらに、同レポートには、ランサムウェアの帰属情報(可能な場合)や、脅威を軽減および隔離するための推奨事項なども含まれています。

Magniberランサムウェアの背景

PrintNightmare(CVE-2021-34527)は、WindowsのPrint Spoolerサービスに存在する重大な脆弱性であり、この脆弱性を悪用することで、攻撃者は、標的となったシステム上で管理者権限を使って任意のコードを実行できるようになります。攻撃者は、CVE-2021-34527のエクスプロイトに成功すると、ダイナミックリンクライブラリ(DLL)やWindows実行ファイルなどを管理者権限で実行することにより、標的となったシステムを完全に制御できるようになります。

脆弱性CVE-2021-34527はWindowsシステムのポイントアンドプリント機能に存在しており、この脆弱性を悪用すると、非特権ユーザーは、リモートプリンターへの接続を確立することで、ディスクやその他のインストールメディアを使うことなく、リモートプリンターのインストールや更新が行えるようになります。

2021年7月1日に脆弱性CVE-2021-34527が公開された後、Microsoftは2021年7月6日に、この脆弱性に対処するための不定期のセキュリティアップデートをリリースしました。その後、2021年7月15日に、MicrosoftはPrint Spoolerサービスに存在している別のクリティカルな脆弱性であるCVE-2021-34481を公開しました。CVE-2021-34527と同様に、この脆弱性はポイントアンドプリント機能に存在するものであり、この脆弱性を悪用することで、非特権ユーザーは、管理者権限を使って任意のコードを実行できるようになります。

CVE-2021-34527とCVE-2021-34481は、それらの持つ類似性により、PrintNightmareと総称されるようになりました。PrintNightmare脆弱性に対処するために、Microsoftは2021年8月10日にアップデートをリリースしました。このアップデートは、非特権ユーザーがプリンターのインストールや更新を行えないようにするために、ポイントアンドプリント機能の動作を変更するものでした。

PrintNightmare(CVE-2021-34527)が公開されるとすぐに、悪意あるアクターがこの脆弱性のエクスプロイトを開始しました。ランサムウェアグループはPrintNightmareが特に魅力的な脆弱性であることに気付きました。なぜなら、この脆弱性を悪用すると、管理者権限で任意のコードを実行できるようになるからです。

また、PrintNightmare脆弱性は、Windowsのポイントアンドプリント機能に存在しています。この機能は、大規模な企業ネットワークで積極的に使用されており、そのようなネットワークは頻繁にランサムウェアグループの標的となっています。そして、同ネットワークでは、非特権ユーザーによるリモートプリンターの使用が一般的となっています。

たとえば、ランサムウェアグループであるVice SocietyおよびMagniberは、CVE-2021-34527の脆弱性が公開された直後に、この脆弱性を積極的にエクスプロイトすることで、多くの企業や組織のマシンをランサムウェアに感染させました。ランサムウェアグループは、ランサムウェアの導入を目的として、ベンダーがパッチを公開する前に、新たに公開された脆弱性を悪用することがよくあります。

脅威研究者が、ハッキングされたシステム上でMagniberランサムウェアを初めて観測したのは2017年のことでした。当時、悪意あるアクターは、主にMagnitudeエクスプロイトキット(Cerber、Locky、Cryptowallランサムウェアを配信するためによく使用されていたもの)を使って、企業や組織のマシンをMagniberに感染させていました。

Magniberランサムウェアの初期バージョンは、韓国のシステムのみを標的としていました。これは、同ランサムウェアが、システム言語が韓国語に設定されているオペレーティングシステム上でのみ実行されるものであったためです。しかしその後、Magniberランサムウェアは活発な開発が続けられており、コードの大幅な変更をはじめ、難読化機能、検知回避戦術、暗号化メカニズムなどの改善が頻繁に行われています。
Magniberランサムウェアの最近の実装では、ランサムウェアの標的を韓国のシステムや特定の地理的リージョンに限定していません。このため、Magniberランサムウェアは、システムの地理的リージョンにかかわらず、あらゆるシステム上で実行される可能性があります。

PrintNightmareの脆弱性とMagniberランサムウェアの分析

PrintNightmare脆弱性(CVE-2021-34527)は、Windowsシステムにおいてspoolsv.exeプロセスとして実行されるWindowsのPrint Spoolerサービスに存在します。CVE-2021-34527のエクスプロイトに成功すると、攻撃者は、ダイナミックリンクライブラリ(DLL)やWindows実行ファイルのような任意のコードを管理者権限で実行することで、標的となったシステムを完全に制御できるようになります。

攻撃者は、CVE-2021-34527を利用する場合、Print Spoolerサービスに対して認証を受ける必要があります。Print Spoolerサービスに実装されているRpcAddPrinterDriverEx関数を利用することで、認証済みのユーザーは、Print Spoolerサービスが動作しているシステム上に任意のDLLやWindows実行ファイルを導入し、管理者(SYSTEM)権限でこれらのファイルを実行できるようになります。

カーネギーメロン大学のCERT Coordination Centerは、次のように報告しています。
RpcAddPrinterDriverEx()関数は、システムにプリンタードライバをインストールするために使用されます。この関数のパラメータの1つはDRIVER_CONTAINERオブジェクトであり、これには追加されたプリンターにより使用されるドライバの情報が含まれています。もう1つの引数である dwFileCopyFlagsは、交換用のプリンタードライバファイルをコピーする方法を指定します。

攻撃者は、認証済みのユーザーならば誰でもRpcAddPrinterDriverEx()を呼び出して、リモートサーバーに存在するドライバーファイルを指定できるという事実を利用します。この結果、Print Spoolerサービスにおけるspoolsv.exeが、SYSTEM権限で任意のDLLファイル内にあるコードを実行できるようになります。
攻撃者がCVE-2021-34527をエクスプロイトする場合、Print Spoolerサービスは、攻撃者が提供する任意のDLLを%SYSTEM%System32\\drivers\ディレクトリ(例:C:Windows%System32\drivers\x64\New)に書き込みます。続いて、脆弱なPrint Spoolerサービス(spoolsv.exe)が、攻撃者の提供するDLLを管理者権限でロードして実行します。

Magniberランサムウェアの背後にいるアクターは、Windows DLLファイルの形式でランサムウェアを配布します。彼らは、CVE-2021-34527を利用することにより、侵入したシステム上でこのDLLファイルを展開して実行します。CVE-2021-34527をエクスプロイトすることにより、攻撃者は、MagniberランサムウェアのDLLファイルを%SYSTEM%System32spool\drivers\ディレクトリ(例:C:Windows%System32\spool\drivers\x64\New)に書き込んだ後、同DLLをPrint Spoolerサービスのコンテキストで実行します。


▲悪意あるアクターがCVE-2021-34527をエクスプロイトする場合、Print Spoolerサービスは、攻撃者の提供するcalc.dllファイル(Magniberランサムウェアを実装したDLL)を書き込む

下記の図は、64ビット版のDLLとして実装されたMagniberランサムウェア(これを「Magniber DLL」と呼ぶ)の動作概要を示すものです。


▲Magniberランサムウェアの動作概要

Magniberランサムウェアは、spoolsv.exeのコンテキストで実行されると、まずそのデータセクションに格納されているコードをアンパックします。次に、同ランサムウェアは、侵入先のシステム上のすべての実行中のプロセスを列挙することにより、アンパックされたコードをインジェクトできるプロセスを特定します。Magniberは、下記の条件を満たす各プロセスに対して、アンパックされたコードをインジェクトします。

  • プロセス名がiexplore.exeでない。
  • プロセス整合性レベルがSYSTEMよりも低い。
  • プロセスがWoW64環境で実行されていない。WoW64とは、64ビット版のWindows OS上で32ビット版アプリケーションの実行を可能にするWindows OSのサブシステムです。

また、Magniberは、同ランサムウェアがアンパックされたコードをプロセスにインジェクトできない場合に同コードの実行を保証するバックアップメカニズムとして、アンパックされたコードをspoolsv.exe自体のコンテキストで実行します。
Magniberランサムウェアは、アンパックされたコードをプロセスにインジェクトするために、次のような一連のWindowsシステムコールを呼び出します。

  • NtCreateSection:Magniberランサムウェアは、RWX(read/write/execute)プロテクションを持つ新しいメモリセクションを作成します。
  • NtMapViewOfSection:Magniberは、ランサムウェアが実行されるプロセス(spoolsv.exe)の仮想アドレス空間に、RWX(read/write/execute)プロテクションを持つメモリセクションをマッピングします。その後、同ランサムウェアは、マッピングされたメモリセクションに、アンパックされたコードを書き込みます。
  • NtMapViewOfSection:Magniberは、ランサムウェアがコードをインジェクトするプロセス(例:sihost.exe)の仮想アドレス空間内のメモリセクションを、RWXプロテクションを使用してマッピングします。この結果、Magniberがspoolsv.exeの仮想アドレス空間にマッピングされたメモリセクションに書き込んだコードが、sihost.exeの仮想アドレス空間にマッピングされたメモリセクション内でミラーリング(すなわちインジェクト)されることになります。
  • NtCreateThreadEx:Magniberは、sihost.exeのコンテキスト内でスレッド(「リモートスレッド」とも呼ばれる)を作成した後、そのスレッドの実行を一時停止します。
  • NtGetContextThread:Magniberは、新しく作成されたリモートスレッドのコンテキストを取得します。スレッドのコンテキストとは、スレッドの動作に関連するデータのことであり、これにはスレッドの命令ポインタレジスタ(rip)のようなスレッドに関連するレジスタの値が含まれます。
  • NtSetContextThread:Magniberは、リモートスレッドのripの値を、sihost.exeの仮想アドレス空間にマッピングされているメモリセクションの仮想アドレスに設定します。これにより、リモートスレッドが実行を再開する際に、このメモリセクションに格納されているコードが実行されることになります。
  • NtResumeThread:Magniberは、リモートスレッドの実行を再開します。これにより、インジェクトされたコードがsihost.exeのコンテキストで実行されます。

Magniberランサムウェアは、DLLファイルntdll.dllに実装されているNtCreateSectionやNtMapViewOfSectionなどの関数を呼び出すことにより、Windowsのシステムコールを実行するのではありません。その代わりに、同ランサムウェアは、アセンブリコードを呼び出すことで、まず実行コンテキストをカーネルに切り替えた後、カーネルの一部として実装されているシステムコールルーチンを実行します。これは、「システムコールの直接実行」と呼ばれる手法です。この手法は、ntdll.dll内のフックを通じてWindowsシステムコールの実行を監視するようなセキュリティ機構による検知を回避するために使用されます。

Magniberランサムウェアは、システムコールを直接実行するために、その仮想アドレス空間内にメモリ領域を割り当てた後、Windowsシステムでシステムコールを直接実行するようなアセンブリ言語のオペコードを、この領域に格納します。その後、同ランサムウェアはメモリ領域の内容を実行することで、当該システムコールを直接実行します。

64ビット版のWindowsシステムでは、システムコールの直接実行とは、システムコール識別番号(「システムコールID」と呼ばれる、システムコールを一意に識別するための番号)をeaxレジスタに格納した後、syscall命令を呼び出すことを意味します。特定のシステムコールのシステムコールIDは、Windowsシステムのリリースやビルドによって異なる場合があります。

Magniberランサムウェアは、特定のシステムコールを直接実行する際に正しいシステムコールIDを使用するために、Windowsのリリース(Windows 10、またはWindows 7のようなWindows 10より前のシステムなど)をはじめ、特定のビルド番号(Windows 10のビルド18363やビルド17763など)に至るまでを区別しています。


▲Magniberランサムウェアは、システムコールの直接実行(NtCreateSectionシステムコールの直接実行)を行う

インジェクトされたコードがリモートスレッドのコンテキストで実行されると、同コードはまず自身をアンパックし、続いてコードセグメントを実行します。このコードセグメント(簡便のために、これを「Magniberランサムウェア」と呼ぶ)は、まずmutexオブジェクト(たとえばzarkzonnやdihlxblといった名前を持つもの)を作成してロックすることで、Magniberランサムウェアのインスタンスが一度に1つしか実行されないようにします。

また、この手法を使うと、他のプロセスにインジェクトされた同じコードが重複して実行されることも防止できます。mutexオブジェクトの名前は、Magniberランサムウェアのバージョンによって異なります。
続いて、Magniberランサムウェアは、侵入先のシステムのコンピューター名と、そのシステムに存在するボリュームのシリアル番号に基づいて文字列を構築します。その後、同ランサムウェアは、この文字列にmutexオブジェクトの名前を追加します。この結果、同文字列は、侵入先のシステムに固有のものとなるため、「侵入先のシステムの識別子」と呼ばれます。

続いてMagniberは、侵入先のシステムに接続されているリムーバブルメディアや固定メディアを搭載したドライブ、およびリモートドライブを列挙します。これは、Windows API(Application Programming Interface)関数であるGetDriveTypeW が0x2(DRIVE_REMOVABLE)、0x3(DRIVE_FIXED)、または0x4(DRIVE_REMOTE)のいずれかを返すドライブであり、ハードディスクやネットワーク共有などがこれに該当します。Magniberランサムウェアは、このようなドライブごとに、ファイルの列挙と暗号化を2つのフェーズで実施します。

最初のフェーズにおいて、Magniberは、暗号化の優先順位がより高いと判断したファイルを暗号化します。これらのファイルは、714種類のファイル名拡張子のうちの1つであり、.docや.xlsなどを含んでいます。第2のフェーズにおいて、Magniberは、暗号化の優先度がより低いファイルを暗号化します。これらのファイルは、33種類のファイル名拡張子のうちの1つであり、.zipや.swfなどを含んでいます。アンチ分析手法として、Magniberランサムウェアは、そのコンテキストにおいて、暗号化の優先度が高いファイルと低いファイルのファイル名拡張子を、難読化された形式で保存します。


▲難読化されたファイル名拡張子

どちらのフェーズでも、Magniberランサムウェアは、暗号化が許可されているファイルのみを暗号化します。Magniberは、次のようなファイルの暗号化は行いません。

  • ファイル名拡張子を持たないファイル。
  • 次のディレクトリに格納されているファイル:Documents and Settings、Winnt、AppData、Local Settings、Sample Music、Sample Pictures、Sample Videos、Tor Browser、Recycle、Windows、Boot、Intel、Msocache、Perflogs、Program Files、ProgramData、Recovery、System Volume Information。
  • Windows API関数GetFileAttributesWが、FILE_ATTRIBUTE_SYSTEM、FILE_ATTRIBUTE_HIDDEN、またはFILE_ATTRIBUTE_ENCRYPTEDのいずれかを返すディレクトリに格納されているファイル。
  • Windows API関数GetFileAttributesWが、FILE_ATTRIBUTE_SYSTEM、FILE_ATTRIBUTE_HIDDEN、FILE_ATTRIBUTE_READONLY、FILE_ATTRIBUTE_TEMPORARY、またはFILE_ATTRIBUTE_VIRTUALのいずれかを返すファイル。
ファイルまたはディレクトリの属性 説明
FILE_ATTRIBUTE_SYSTEM Windows OSが使用するファイルまたはディレクトリ。
FILE_ATTRIBUTE_HIDDEN 隠しファイルまたは隠しディレクトリ。
FILE_ATTRIBUTE_ENCRYPTED 暗号化ファイルシステム(EFS)が暗号化するファイル、またはEFSがその中に含まれているすべての新しいファイルを暗号化するディレクトリ。
FILE_ATTRIBUTE_READONLY 読み取り専用ファイル。
FILE_ATTRIBUTE_TEMPORARY 一時ストレージ用に使用されるファイル。
FILE_ATTRIBUTE_VIRTUAL システムで使用するために予約されているファイル。

▲Magniberが暗号化しないファイルやディレクトリの属性

Magniberランサムウェアは、AES(Advanced Encryption Standard)とRSA(Rivest, Shamir, Adleman)の暗号化アルゴリズムを組み合わせたハイブリッド暗号化アプローチを適用することで、ファイルを暗号化します。このアプローチにより、暗号化のパフォーマンスとセキュリティの両方を最大現に高めることができます。Magniberランサムウェアは、まず対称型暗号化アルゴリズムであるAESを使用してファイルを暗号化します。

AESはその設計上、パフォーマンスに関してはRSA暗号化アルゴリズムを上回っていますが、セキュリティに関してはRSAを下回っています。AESは、暗号化のセキュリティを確保するために、対称暗号鍵と初期化ベクター(IV)を利用しています。このAESの欠点を補うために、Magniberランサムウェアは、RSA暗号化アルゴリズムを利用することで、AESの対称鍵とIVを暗号化します。Magniberランサムウェアは、MicrosoftのCryptoAPIを使用して暗号化を行います。

暗号化される各ファイルに対して、Magniberは、まず16バイトのランダムな配列を2つ生成します。1つ目のバイト配列はAES対称暗号化キーであり、2つ目のバイト配列はIVです。続いて、Magniberランサムウェアは、AES鍵とIVを使用して、暗号化されるファイルの同じサイズのデータブロックを、各データブロックのサイズが1048576バイトになるように暗号化します。

データブロックを暗号化した後、Magniberランサムウェアは、データブロックを暗号化された形式でファイルに書き込むことで、元のデータブロックを置き換えます。この暗号化手順は、Magniberがファイルの最後のデータブロックを暗号化することで終了します(サイズは1048576バイト未満の場合があります)。これは、CryptoAPI関数CryptEncryptのパラメータfinalを1に設定することにより実施されます。


▲AES鍵とIVを使って暗号化されるデータブロック:暗号化される前の形式と、暗号化された後の形式

Magniberは、すべてのファイルデータブロックを暗号化した後、AESキーとIVを連結し、2048ビットのRSA公開鍵を使用して、生成されたデータを暗号化します。Magniberランサムウェアを実装したファイルには、この公開鍵も保存されています。その後、同ランサムウェアは、連結されたAES鍵とIVの暗号化された形式を、ファイルの末尾に追加します。

続いて、Magniberは、暗号化されるファイルのファイル名拡張子を変更します。この変更は、同ランサムウェアが作成するmutexオブジェクトの名前(zarkzonnやdihlxblなど)と同じファイル名拡張子を付加することで行われます。その後、同ランサムウェアは、暗号化するように指定された次のファイルの暗号化を進めます。

Magniberランサムウェアは、フォルダ内に保存されているすべてのファイルを暗号化した後、身代金要求書を含むReadme.txtファイルを、当該フォルダ内に配置します。この身代要求書には、侵入先のシステムに固有のURL(Uniform Resource Locators)が含まれており、そのURLのサブドメインはランサムウェアが生成する「侵入先のシステムの識別子」となっています。

入手可能なオープンソースインテリジェンス(OSINT)によると、このURLは支払い用のWebサイトをポイントしており、同サイトには、ランサムウェアが暗号化したファイルを復元するためには「My Decryptor」と呼ばれるソフトウェアを購入せよと記載されているとのことです。Cybereason GSOCが分析したシステム上に残されていたMagniberのランサムノートに記載されていたURLには、残念ながらアクセスできませんでした。


▲Magniberランサムウェアの身代金要求書

ファイルの列挙と暗号化という2つのフェーズを終了した後、Magniberランサムウェアが合計で100万バイト以上を暗号化した場合、Magniberはreadme.txtファイルを%PUBLIC%フォルダ(例:C:Users\Public)内に配置した上で、同ファイルをNotepadアプリケーション(notepad.exe)で表示します。また、Magniberは、侵入先のシステム上のデフォルトのブラウザをオープンし、支払い用のWebサイトを表示します。
また、Magniberは、URLのクエリパラメータに下記の値を格納することで、侵入先のシステムにおける自らの攻撃に関する情報を流出させます。

  • Magniberランサムウェアがファイルを列挙したドライブの数。
  • Magniberランサムウェアが生成した暗号化データの合計サイズ(バイト単位)。
  • Magniberランサムウェアが暗号化したファイルの数。
  • Magniberランサムウェアが列挙したファイルの数。この数には、同ランサムウェアが暗号化したファイルと暗号化されていないファイルの両方が含まれています。
  • 侵入先のWindowsオペレーティングシステムのビルド番号(例:17763)。


▲Magniberランサムウェアは、URLのクエリパラメータを通じて、自らの攻撃に関する情報を流出させる

その後、Magniberランサムウェアは、以前にロックした指定のmutexオブジェクトを解放してクローズした後、「vssadmin.exe Delete Shadows /all /quiet」というコマンドを実行してシャドーコピーを削除し、暗号化されたファイルが復元できないようにします。Magniberは、下記に示すように、Windowsのユーザーアカウント制御(UAC)をバイパスすることにより、昇格した権限でこのコマンドを実行します。

  • Magniberは、昇格した権限で実行されるコマンドを、Windows 10ではレジストリキーHKCUSoftware\ms-settings\shellopen\commandの下に、それ以前のWindowsリリースではレジストリキーHKCU\Software\Classes\mscfile\shell\open\command の下に書き込みます。
  • Windows 10の場合、MagniberはレジストリキーHKCU\Software\Classes\ms-settings\shell\open\commandの下に、DelegateExecuteのレジストリ値を生成します。
  • Magniberは、Windows 10システムではcomputerdefaults.exeを、それ以前のWindowsリリースではCompMgmtLauncher.exeを、それぞれ下記のコマンドを通じて実行します。

    これにより、レジストリ値(Default)に記述されたコマンドが昇格権限で実行されます。

Magniberがシャドーコピーを削除する1つの方法として、レジストリキーHKCU\Software\Classes\ms-settings\shell\open\commandまたはHKCU\Software\Classes\mscfile\shell\open\commandの下にある(デフォルトの)レジストリ値として「vssadmin.exe Delete Shadow /all /quiet」というコマンドを記述することが挙げられます。

MagniberがWindows 10システム上でシャドーコピーを削除するもう1つの方法として、下記に示すJScriptスクリプトを%PUBLIC%\readme.txtファイルに記述した後、レジストリキーHKCU\Software\Classes\ms-settings\shell\open\commandの下にある(デフォルトの)レジストリ値として「regsvr32.exe scrobj.dll /s /u /n /i:%PUBLIC%\readme.txt 」というコマンドを記述することが挙げられます。このようにすると、regsvr32.exeの実行終了後、Magniberランサムウェアは%PUBLIC%\readme.txtファイルを削除します。

どちらの方法でも、vssadmin.exeが、Windows Management Instrumentation(WMI)のProvider Hostプロセス(wmiprvse.exe)の子プロセスとして、昇格した特権を通じて実行されます。

▲vssadmin.exeを実行するJscriptスクリプト

Cybereasonプラットフォームは、シャドーコピーを削除するMagniberランサムウェアを検知します。シャドーコピーを削除した後、Magniberランサムウェアはその動作を終了します。

▲Magniberランサムウェアによるシャドーコピーの削除

Magniberランサムウェアの検知と防御

PrintNightmare脆弱性に関する推奨事項

Cybereason GSOCは、次のことを推奨しています。

  • お使いのシステムを更新すること。Microsoftは、PrintNightmare脆弱性に対応したアップデートをすでに公開しています。
  • WindowsのPrint Spoolerサービスが不要な場合は、同サービスを無効にすること。これを行うには、次のいずれかの方法を使用します。
  • 次のシステムコマンドを実行します:net stop spooler
  • 次のPowerShellコマンドを実行します:Stop-Service -Name Spooler -Force & Set-Service -Name Spooler -StartupType Disabled
  • Print Spoolerサービスを無効にしたくない場合、SYSTEMユーザー権限を変更することで、このユーザーが%SYSTEM%System32\\drivers\ディレクトリに書き込めないようにします。この操作により、PrintNightmare脆弱性(CVE-2021-34527)のエクスプロイトを通じて攻撃者が提供するDLLやWindows実行ファイルの展開を効果的にブロックできます。これを行うには、下記のPowerShellスクリプトを実行します。
  • 下記のPowerShellコマンドを実行して、CVE-2021-34527のエクスプロイトが試みられていないかどうかを確認すること。
    Get-WinEvent -LogName ‘Microsoft-Windows-PrintService/Admin’ | Select-String -InputObject {$_.message} -Pattern ‘The print spooler failed to load a plug-in module’
    ログメッセージ「The print spooler failed to load a plug-in module」が出力された場合、Print Spoolerサービスが、PrintNightmare脆弱性を悪用する際に攻撃者が提供する可能性のあるDLLまたはWindows実行ファイルの実行を試みたことを示しています。
  • Cybereasonによる脅威ハンティング:Cybereason MDRチームは、特定の脅威を検知するためのカスタムハンティングクエリをお客様に提供しています。Cybereason Defense Platformを利用した脅威ハンティングやMDR(Managed Detection and Response)の詳細については、サイバーリーズンまでお問い合わせください。
  • Cybereasonのお客様の場合:NEST上で提供されている詳細情報(この脅威を検出するためのカスタム脅威ハンティングクエリを含む)をご覧いただけます。

Magniberランサムウェアに関する推奨事項

Cybereason GSOCは、次のことを推奨しています。

  • Cybereasonプラットフォームのアンチランサムウェア機能を、「中断(Suspend)」または「防止(Prevent)」に設定して有効にすること。Cybereason Defense Platformは、多層型の保護機能を通じてMagniberランサムウェアを検知します。同機能は、脅威インテリジェンス、機械学習、次世代アンチウイルス(NGAV)などの機能を使用することで、ランサムウェアを検知してブロックするものです。
  • システム内のMagniberランサムウェアの存在を検知し、この脅威から身を守るために、追加のプロアクティブな方法の導入を検討すること。例としては、YARAベースの検知やmutexオブジェクトのロックなどが挙げられます。
  • Cybereasonによる脅威ハンティング:Cybereason MDRチームは、特定の脅威を検知するためのカスタムハンティングクエリをお客様に提供しています。Cybereason Defense Platformを利用した脅威ハンティングやMDR(Managed Detection and Response)の詳細については、サイバーリーズンまでお問い合わせください。
  • Cybereasonのお客様の場合:NEST上で提供されている詳細情報(この脅威を検出するためのカスタム脅威ハンティングクエリを含む)をご覧いただけます。

  • ▲Cybereason Defense Platformによる、脅威インテリジェンスに基づいたMagniberランサムウェアの検知

    ▲Cybereason Defense Platformのアンチランサムウェア機能によるMagniberランサムウェアの検知

Magniberランサムウェア特定のためのYARAベースの検知

下記に示すYARAルールは、実行中のプロセスのコンテキスト内またはファイルシステム内で、Magniberランサムウェアの存在を検知するのに役立ちます。

▲Magniberランサムウェアを特定するためのYARAルール

mutexオブジェクトのロック

Magniberは、たとえばzarkzonnやdihlxblという名前を持つmutexオブジェクトを作成してロックしますが、このmutexオブジェクトの名前は、Magniberランサムウェアのバージョンごとに異なります。このmutexオブジェクトがすでに存在しており、それらがロックされている場合、同ランサムウェアは、いかなるデータも暗号化することなく終了します。

これは防御者にとって好都合な点となります。なぜなら、たとえばzarkzonnやdihlxblという名前のmutexオブジェクトを、特定のシステム上の正規プロセスを通じてロックすることで、そのシステム上でMagniberランサムウェアが将来実行される可能性を阻止できるからです。

下記に示すPowerShellスクリプトは、この防御手法を実演するものです。このスクリプトは、dihlxblという名前のmutexオブジェクトを作成し、オープンし、ロックしますが、ユーザーがCtrl+Cコマンドを発行した時点で同オブジェクトを解放します。ユーザーは、このスクリプトファイルが保存されているディレクトリで、「powershell.exe ./magniber_mutex_lock.ps1」というコマンドを実行することで、このスクリプトを実行できます。


▲dihlxblという名前のmutexオブジェクトをロックするPowerShellスクリプト

Magniberランサムウェアに関する一般的な推奨事項

PrintNightmareおよびMagniberランサムウェア関する特定の推奨事項に加えて、サイバーリーズンでは、次のような一般的なセキュリティに関する推奨事項を提供しています。

  • 脆弱性を悪用したランサムウェア感染のリスクを最小限に抑えるために、適切なタイミングでお使いのシステムにパッチが適用されていることを確認すること。
  • セキュアなパスワードを使用し、定期的にパスワードを変更すること。そして、可能であれば多要素認証を利用すること。
  • セキュアなリモートロケーションにファイルを定期的にバックアップし、データ復旧計画を導入すること。定期的にデータをバックアップすることで、ランサムウェア攻撃を受けた場合でも、データを復元できます。
  • 外部から送られてきた電子メールメッセージをセキュアに取り扱うこと。これには、ハイパーリンクの無効化や、電子メールメッセージの内容を調査してフィッシング詐欺を特定することなどが含まれます。

サイバーリーズンは、エンドポイントから企業に至るまで、あらゆる場所において、サイバー攻撃(モダンなランサムウェアを含む)を阻止するために、防御者と一丸となって尽力しています。

IOC(Indicators Of Compromise:痕跡情報)

実行ファイル SHA-256ハッシュ:
10B9B1D8F6BAFD9BB57CCFB1DA4A658F10207D566781FA5FB3C4394D283E860E

ファイルサイズ:21504バイト

関連ファイル readme.txt
Mutexオブジェクト dihlxbl
ファイル名拡張子 dihlxbl
ドメイン l5nmxg2syswnc6s3724evnip5uktj7msy3pgowkbcidbei3nbysi7ead.onion

uponmix.xyz

flysex.space

partscs.site

MITRE ATT&CKによる分類

実行
ネイティブAPI

権限昇格
昇格制御機構の悪用:ユーザーアカウント制御(UAC)を迂回

防御回避
ホスト上でのインジケーターの削除:ファイルの削除
レジストリの変更

検出
ファイルやディレクトリの検出

影響
データの暗号化によりインパクトを最大化

【ホワイトペーパー】ランサムウェア対策ガイド~二重脅迫型など進化するランサムウェアから情報資産を守るために~

近年、世界中で深刻な問題となっているランサムウェア
このガイドは、日本における深刻な問題やランサムウェアの歴史を踏まえ、最新のランサムウェア攻撃にはどのような特徴や脅威があるのかについて解説するとともに、巧妙化するランサムウェアに対し私たちはどのような対策を講じれば良いのか。最新のランサムウェア攻撃への5つの対策ポイントをご紹介します。
https://www.cybereason.co.jp/product-documents/white-paper/6525/