ランサムウェア
BlackMatterの機能で強化されたランサムウェア最新バージョンLockBit 3.0
2022年6月、ランサムウェアLockBitのバージョン3.0が確認されました。本稿では、この亜種について独自の技術的分析から得られた知見および別のランサムウェアBlackMatterの挙動との類似点について説明します。
2022年3月、LockBit 2.0の出現から1年も経たないうちに、セキュリティリサーチャーは、ランサムウェアLockBitの新たな亜種が登場するとの情報をキャッチしました。LockBit 3.0(別名「LockBit Black」)は、攻撃グループによる新しいリークサイトやバグバウンティプログラムの立ち上げと合わせて6月下旬になって初めて明るみとなりました。その後、あるリサーチャーが、LockBit 3.0の検体を入手して最初の解析結果を公開しました。
トレンドマイクロでは、パッカー識別ユーティリティDetect It Easyを使用した結果、LockBit 3.0の検体が未知のパッカーでパックされた複数のセクションを持つWin32 .exeファイルであることがわかりました(図1)。検体からのソース情報によると、このランサムウェアは実行時に以下の引数を使用していました。
{04830965-76E6-6A9A-8EE1-6AF7499C1D08}.exe -k LocalServiceNetworkRestricted -pass db66023ab2abcb9957fb01ed50cdfa6a
そのLockBit 3.0の検体は、暗号化されたファイルに付加されたものと同じファイル名である.icoファイルを「%PROGRAMDATA%」フォルダ内に作成します(図2)。
LockBit 3.0は、さらに暗号化処理の一環として拡張子「HLJkNskOq」を付加し(図3)、暗号化ファイルのアイコンを前述の.icoファイルのものに変更します。
その後、このランサムウェアは、「イーロン・マスク」と欧州連合の一般データ保護規則(GDPR)に言及した脅迫状を投下します(図4)。そして最後に、被害者の端末上の壁紙を変更することで、ランサムウェアの攻撃を被害者に知らせます(図5)。
ランサムウェアBlackMatterとの類似性
セキュリティリサーチャーは、LockBit 3.0 のコードの一部が BlackMatter から借用されているようだと指摘しており、そのため LockBit Black というニックネームがつけられています。トレンドマイクロでも検体のデバッグにより、BlackMatterとの間での類似性が確認されました。さらに、今回トレンドマイクロで解析された検体への調査結果およびリサーチャーChuong Dong氏から提供された解析情報から、LockBit 3.0はメインの動作を復号する際、パスパラメータを要求することも分かりました(図6)。Egregorなどの他のランサムウェアファミリーでも、動作時に引数を必要とする同様の挙動が確認されています。これは、パラメータが利用できないことで解析時のリバースエンジニアリングを困難にするための処置といえます。
LockBit 3.0は、DLLのAPI名をハッシュ化し、自身が必要とするAPIリストと比較することでAPIの収集を行います(図7)。この動作は、BlackMatterのAPI名変更時に外部から入手可能なスクリプトが利用されており、LockBit 3.0でも機能する(図9、10)ことから、ほぼBlackMatter(図8)と同一であるといえます。
LockBit3.0では、取得したAPIのアドレスを直接呼び出す代わりにトランポリンポインタ(図11)を実装し、割り当てられたヒープに移動します。ヒープには、API「NtTerminateProcess」(図12)のアドレスにジャンプする分解コードが含まれています。ヒープに含まれるコードは、以下のコードのセットからランダムに選択されます。
- ROR by random number
- ROL by random number
- XOR to key
- ROR by random number, then XOR to key
- ROL by random number, then XOR to key
LockBit 3.0 と BlackMatter も同じアンチデバッギング技術を実装しています。どちらも NtSetThreadInformation API を介してスレッド情報を ThreadHideFromDebugger(0x11) に設定し(図13)、このスレッドにブレークポイントが置かれた場合、すべてのデバッガがクラッシュするようになっています。
LockBit 3.0は、BlackMatterと同様、APIを直接呼び出すのではなく、APIを使用する際にスレッドを採用しています。これは、リサーチャーによる解析を困難にするための試みと考えられます。使用される文字列は、単純なビット単位のXORルーチン(図14)、ビット単位のXORとNOTルーチン(図15)、もしくは疑似ランダムキーを生成する線形合同生成器(LCG)アルゴリズムによる復号ルーチン(図16)などです。この動作もBlackMatterと似ていますが、ビット単位のXORとNOTのルーチンが追加されている点が異なっています。
LockBit 3.0の設定(表1)は、同じXORルーチンとLCG疑似乱数発生器から得たキーで復号し、APLibという圧縮ライブラリで解凍しています。
設定 |
概要 |
PUB_KEY[0x80] |
RSA公開キー |
VICT_ID[0x10] |
被害者ID (BlackMatterのコードを参考にしていますが、LockBit 3.0では使用されていない) |
AES_KEY[0x10] |
コマンド&コントロール(C&C)サーバ用のAES_KEY(BlackMatterのコードに基づいているが、LockBit 3.0では使用されていない) |
FLAGS[0x18] |
特定ルーチンのフラグ |
OFFSET_ARRAY |
このアドレスからBase64エンコードした文字列のオフセットを表す配列(配列の長さは初期値と等しい) |
BASE64_STRING |
Base64でエンコードされた文字列の配列で、以下を含む。 避けるべきフォルダ、ファイル、拡張子のハッシュ値 避けるべきコンピュータ名のハッシュ 停止させるサービスやプロセス C&Cサーバのリスト 管理者の認証情報 身代金要求文 |
LockBit 3.0は、感染端末のUI言語もチェックし、以下の言語の端末への感染を回避します。
- アラビア語 (シリア)
- アルメニア語 (アルメニア)
- アゼルバイジャン語 (キリル文字アゼルバイジャン)
- アゼルバイジャン語 (ラテン文字アゼルバイジャン)
- ベラルーシ語 (ベラルーシ)
- グルジア語(グルジア)
- カザフ語(カザフスタン)
- キルギス語(キルギスタン)
- ルーマニア語(モルドバ)
- ロシア語(モルドバ)
- ロシア語(ロシア)
- タジキスタン語(キリル文字タジキスタン語)
- トルクメン語(トルクメニスタン)
- タタール語(ロシア)
- ウクライナ語(ウクライナ)
- ウズベク語(キリル文字ウズベキスタン)
- ウズベク語(ラテ文字ウズベキスタン)
LockBit 3.0は、以下のようなBlackMatterの権限昇格ルーチンも引き継いでいます。
- UACMeのユーザーアカウント制御(UAC)回避方法として、dllhost.exe下のICMLuaUtil COMインターフェースを使用する
- 独自に使用するためにExplorer.exeトークンを複製する
- 32ビットまたは64ビットのシェルコードインジェクションを実行し、トークンを昇格させる
LockBit 3.0とBlackMatterの双方とも、暗号化ファイルの拡張子、脅迫状、壁紙やアイコンで使用する文字列は、Base64エンコードのハッシュ化しています(図17)。相違点としては、LockBit 3.0が設定内のRSA公開鍵によりMD5でハッシュ化するのに対し、BlackMatterは、APIの同一アルゴリズムによりハッシュ化したMachineGUIDを使用しています。このため、同一検体の場合、すべての感染端末で文字列が類似しています。これはLockBitの攻撃者が、暗号化されたファイルに必要なRSA秘密鍵ペアの特定を容易にするために施した工夫と推測されます。
BlackMatterと同様、LockBit 3.0も以下の動作を実行します。
- 感染端末が、侵入後の動作に使用するドメイン管理者の一部であるかどうかを判断するために、設定リストの資格情報を使用してログインを試みる。
- BlackMatterと同様の手順で、プロセスやサービスを終了させ、設定リストから削除する。
- すべてのドライブのごみ箱フォルダを空にする。
- コンピュータ名のハッシュ値をチェックし、設定リストから除外する。
- フラグが設定されている場合、設定リストからC&Cサーバに接続する。
- 設定フラグが設定されている場合、ネットワーク共有とExchangeメールボックスを暗号化する。
- 回避すべきファイル、フォルダ、拡張子のリストを構成リストから取得する。
- .lnkファイルを暗号化する際、ポイントされたファイルを使用する。
- 脅迫状を利用可能なプリンターに印刷し、デスクトップの壁紙を変更する。
- BlackMatterと同じ暗号化アルゴリズムを使用する。
LockBit 3.0 におけるシャドーコピー削除の動作(図 18)は、LockBit 2.0 が vssadmin.exe を使用していたのに対し、COM オブジェクトを介して Windows Management Instrumentation (WMI)によって実行されていることから、明らかに BlackMatter のコードから引用されたことが分かります。
こうしたLockBit における最新の動作は、特定の引数が提供された場合にのみ実行されます。LockBit 3.0 では、表 2 に示す引数のみを受け付けており、他方、BlackMatter の場合、この中では -safe、-wall、-path の引数のみを受け付けています。
引数 |
概要 |
-pass {value} |
最初の32文字の値をキーとして、メインの動作を復号化する(ランサムウェアが正しく実行されるために必要となる) |
-safe |
SafeBootで再起動する |
-wall |
脅迫状を壁紙として設定したり、プリンターで印刷したりする |
-path {target} |
標的となるファイルやフォルダなどを暗号化する |
-gspd |
水平移動・内部活動のためにグループポリシーを変更する |
-psex |
管理者共有による水平移動・内部活動の実施 |
-gdel |
グループポリシーの更新を削除する |
-del |
自身を削除する |
LockBit 3.0では、ハッシュとコードに基づいて引数をチェックします。そして引数をチェックする前に実行が必要な-passを除き、基本的には、引数から1つの動作のみを実行するように設計されています。脅迫状を印刷したり、感染端末上の壁紙を変更したりする動作でも、引数-wallが提供されている点など、BlackMatterと類似しています。その他、引数-safeが提供されている限り、セーフモードで再起動してレジストリRunOnce経由で実行される点も、同じくBlackMatterと似ています。
ただし、環境設定フラグの数では、両者は大きく異なっています。BlackMatterではフラグが9件しかない一方、LockBit 3.0には表3のように24件も存在しています。
環境設定フラグ |
概要 |
ENCRYPT_ LARGE_FILE_FLAG |
設定された場合、大きなファイルは暗号化の対象となる |
RANDOM_ FILE NAME_FLAG |
設定された場合、暗号化されたファイルはランダムなファイル名に変更される |
ATTEMPT_ LOGON_FLAG |
設定された場合、LockBit 3.0の設定リストにある資格情報でログインが試みられ、その資格情報がドメイン管理者の権利を持っていれば保存される |
EXCLUDE_HIDDEN_FLAG |
設定された場合、隠しファイルは暗号化されなくなる |
CHECK_UI_ LANGUAGE_FLAG |
設定された場合、感染端末のUI言語がチェックされ、回避された国の端末であればランサムウェアは終了される |
MOUNT_ VOL_ ENC_ EXCHANGE_ SERVER_FLAG |
設定された場合、暗号化のためのすべてのボリュームがマウントされ、利用可能なExchangeサーバが暗号化される |
ENC_SHARED_FLAG |
設定された場合、共有フォルダが暗号化される |
TERMINATE_ PROCESS_ FLAG |
設定された場合、LockBit 3.0の設定リストにあるプロセスが終了させられる |
DELETE_SERVICE_FLAG |
設定された場合、LockBit 3.0の環境設定リストのサービスが削除される |
CREATE_MUTEX_FLAG |
設定された場合、mutexがすでに作成されているかどうかが確認され、作成されている場合はランサムウェアが終了される |
PRINT_RANSOM_NOTE_ FLAG |
設定された場合、脅迫状が感染端末上で利用可能なプリンターで印刷される |
CHANGE_WALLPAPER_ FLAG |
設定された場合、感染端末の壁紙が変更される |
CHANGE_ICON_FLAG |
設定された場合、暗号化されたファイルのアイコンが変更される |
CONNECT_TO_CNC_ FLAG |
設定された場合、LockBit 3.0の設定リストにあるC&Cサーバと通信する |
DELETE_SELF_FLAG |
設定された場合、作成された.tmpファイルを使って自身を削除する |
DELETE_AV_SERVICE_ FLAG |
設定された場合、ハッシュ値が一致するセキュリティソフトのサービスを終了する |
CREATE_TEMP_ MAX_ DISKSPACE |
設定された場合、別の.tmpファイル(「DELETE_SELF_FLAG」で使用された同じ.tmpファイルから)がDiskFreeSpaceに基づいたランダムな内容と大きさで各ドライブに作成される |
HAS_ADMIN_CRED_ FLAG |
設定された場合、「ATTEMPT_LOGON_FLAG」から取得した管理者認証情報の使用を試みる |
RUN_AS_ADMIN_FLAG |
設定された場合、「ATTEMPT_LOGON_FLAG」 の認証情報により管理者として実行する |
FORCE_GPUPDATE_VIA_ POWERSHELL_FLAG |
設定された場合、PowerShellコマンドによりすべてのアクティブディレクトリでグループポリシーの更新が強制される |
DELETE_TEMP_FLAG |
設定された場合、「DELETE_SELF_FLAG」で使用されたのと同じ .tmp ファイルがMoveFileExW で削除され、感染端末が再起動される |
DISABLE_ EVENTLOG_ FLAG |
設定された場合、レジストリおよびサービス経由でのEventLogが無効になる |
DELETE_GPO_FLAG |
設定されてgspd_parameterが使用されている場合、グループポリシー更新削除前に感染端末上のスリープ時間が1分に設定される |
UNUSED_FLAG |
余分なフラグ(あるいはフラグ終了を示す指標) |
LockBit3.0で注目すべき動作は、ファイル削除の手法です。削除用のバッチファイルやコマンドを実行するためにcmd.exeを使用する代わりに、バイナリから復号された.tmpファイルを作成して実行するからです。他方、gspdパラメータが提供されている場合はグループポリシーの更新を通じて水平移動・内部するなど、LockBit 2.0の機能もいくつか保持しています。
.tmpファイルは、実行されると、ランサムウェアのバイナリ内容を上書きした後、その名称も複数回変更します(図19)。その際、新しいファイル名は元のファイル名の長さに基づいています。例えば、1.exeという名称のファイルは、5文字(ファイル名の拡張子を含む)ですが、AAAAA,、BBBBBと、ZZZZまで名称が変更されます。ファイル名を変更した後、最終的にそのファイルは削除されます(図20)。この動作は、フォレンジックツールによる復元を回避し、ランサムウェアの痕跡を完全に隠そうとするLockBitランサムウェアグループの試みと推測されます。
VirusTotalで確認されたLockBit 3.0
あるセキュリティリサーチャーは、最近、VirusTotalでLockBit 3.0の別の検体を発見し(図21)、この記事の執筆時点で既に検出数は19件に及んでいます。この検体は、2つの難読化されたコードを含むPowerShellスクリプトです(図22および図23)。スクリプトの難読化を解除した後(図24)、BlackMatter独自のPowerShellコード(図26)と同一のコードを使用して、再帰読み込み(図25)によりメモリにDLLを注入できることが分かりました。
この特定の検体は、Base64で圧縮され暗号化されたペイロードを持っています(図27)。これにアクセスするため、トレンドマイクロの解析では、ペイロードを実行するのではなく、ダンプするためにスクリプトを修正しました(図28)。ペイロードをダンプすることで、メインバイナリを取得することができるからです(図29)。
このスクリプトを実行すると、以前発見されたLockBit 3.0の検体と同じ挙動が示されました。この検体では、暗号化されたファイルのファイル名に19MqZqZ0sが付加されていました(図30)。
この検体のペイロードは、3つのハッシュ化された引数のみをチェックします(図31)。一方、以前の検出では8つの引数をチェックしていました。DLLペイロードは再帰的に読み込みされ、管理者共有およびグループポリシーを介する拡散の動作を担うコードは、PowerShellスクリプト用ではなくPE(Portable Executable)バイナリ用に設計されています。また、LockBit 3.0のランサムウェアビルダーには、特定の動作を無効化するオプションがある可能性もあります。このPowerShellスクリプトを使用したLockBit 3.0の検体の場合、引数-passのチェックがあっても実行に際してのpass用のkey を必要としない設計になっています。その他の動作残に関しては、前述のWin32 .exeファイルの検体と同じ設計でした。
ランサムウェアの攻撃を阻止するためには
2022年第1四半期、ランサムウェア攻撃グループ「LockBit」がサービスとしてのランサムウェア(Raas)活動の中心として220件の攻撃事例(RaaSおよび恐喝攻撃)に成功したと喧伝しています。1月には、LockBitの攻撃者がフランスの法務省に侵入したと主張する攻撃が行われ、大きな話題となりました。最近のLockBitの知名度向上を考えると、BlackMatterの攻撃者の一部がLockBitの攻撃グループに参加していても不思議ではありませんし、この2つのランサムウェアの間に多くの類似性があることも説明がつきます。
この最新型のリリースにより、さらには報酬付きのバグバウンティプログラムの開始も合わせ、LockBitの攻撃グループは、今後さらに活発化することが予想されます。特に、バグバウンティプログラムは、ランサムウェアをより強力なものにするために攻撃グループを支援する結果ともなる可能性があり、企業や組織は、この新しい亜種への警戒が求められています。ランサムウェアの攻撃リスクを軽減するためのベストプラクティスは以下の通りです。
- 3-2-1ルールに従って、ファイルを2種類の形式で3つのコピーにバックアップし、1つのコピーをオフサイトに保存すること.これにより、ランサムウェアの攻撃を受けてもデータが失われないようにするための予防策となる。
- ランサムウェアは、悪質なスパムメールの添付ファイルを通じて感染することが多いため、ソーシャルエンジニアリングメールへの警戒を怠らないことがランサムウェア感染のリスクを低減することにつながる。
- アプリケーションやプログラムを常に最新に保つこと。定期的な修正パッチの適用により、ランサムウェアの攻撃者が侵入口として悪用する可能性のあるソフトウェアの脆弱性に対処できる。
企業や組織は、システムへの侵入口(エンドポイント、メール、Web、ネットワーク)を保護するための多層的なアプローチが有効なセキュリティ対策となります。トレンドマイクロは、不正なコンポーネントや不審な動作を検出し、企業や組織のセキュリティ体制を改善するソリューション群を提供しています。Trend Micro Vision One™は、多層防御および挙動検知を提供し、ランサムウェアに感染して取り返しのつかない被害を受ける前に、システム内の疑わしい挙動を早期にブロックすることを可能にします。Trend Micro™ Deep Discovery™ Email Inspectorは、カスタムサンドボックスと高度な解析技術により、ランサムウェアの侵入口となりやすいフィッシングメールを含む不正なメールをブロックします。さらに、Trend Micro Apex One™は、ファイルレスやランサムウェアなど、より高度な懸念からエンドポイントを保護するための自動脅威検知・対処機能を提供します。
Indicators of compromise (IOCs)
侵入の痕跡(IoC)はこちらで確認してください。
参考記事:
• 「LockBit Ransomware Group Augments Its Latest Variant, LockBit 3.0, With BlackMatter Capabilities」
By: Ivan Nicole Chavez, Byron Gelera, Katherine Casona, Nathaniel Morales, Ieriz Nicolle Gonzalez, Nathaniel Gregory Ragasa
翻訳:与那城 務(Core Technology Marketing, Trend Micro™ Research)