「Obscura」:新たなランサムウェア亜種が発見される

はじめに:謎のランサムウェア「Obscura」の出現

2025年8月29日、セキュリティ企業Huntressのアナリストは、これまで確認されていなかった新たなランサムウェア亜種「Obscura」を発見しました。この名称は、身代金要求メモ(README_Obscura.txt)に記載されていたもので、調査時点ではこの名前のランサムウェアに関する公開情報は一切見つかっていません。

初期侵入と拡散経路

Huntressの監視下にあったインシデントでは、このランサムウェアの実行ファイルが複数のホストで実行されているのが確認されました。特に注目すべきは、ドメインコントローラーのパス C:\WINDOWS\sysvol\sysvol\[domain].local\scripts\ に実行ファイルが配置されていた点です。この実行ファイルは、発見されたドメイン名に合わせて命名されており、正規のファイルに偽装しようとする意図が見られます。

Go言語で書かれたこのバイナリは、NETLOGON共有フォルダに置かれることで、スクリプトやグループポリシーオブジェクト(GPO)がユーザーに利用可能になるだけでなく、ドメインコントローラー間で自動的に複製され、インフラ全体に拡散されるという特性を悪用していました。

さらに、ドメインコントローラーを含むネットワーク内の複数のホストで、「SystemUpdate」という名前のスケジュールタスクが作成され、NETLOGON共有からランサムウェアバイナリを実行するよう設定されていました。また、あるユーザーのマシンでは、「iJHcEkAG」というスケジュールタスクが作成され、cmd.exe /C netsh firewall set service type = remotedesktop mode = enable > \Windows\Temp\SJYfXB 2>&1 というコマンドを実行して、Windowsファイアウォール経由でリモートデスクトッププロトコル(RDP)アクセスを有効化していました。

ランサムウェアの機能と身代金要求

ランサムウェアの実行時には、まず以下のコマンドが埋め込まれており、エンドポイントでの復旧を無効化しようとします。

  • cmd.exe /c vssadmin delete shadows /all /quiet

身代金要求メモ自体は、ランサムウェアバイナリ内にBase64エンコードされた文字列として含まれています。その内容は以下の通りです。

  • 「あなたのネットワークは当社のソフトウェアによって完全に暗号化されました。」
  • 「従業員のパスポート情報、内部文書、財務書類など、ネットワーク上の全デバイスから情報が盗まれました。」
  • 「240時間以内に返答がない場合、盗まれた情報はすべて公開されます。」
  • 身代金を支払うことで、侵入レポート、復号ソフトウェア、復旧支援が提供されると提示。
  • 復旧業者や警察は助けにならないと警告し、外部バックアップからの復旧を試みた場合、情報漏洩による巨額の罰金や、サーバー・コンピューターのデータ完全消去をちらつかせています。

詳細な技術分析:実行と特権昇格

バイナリが起動すると、まずDAEMONという環境変数の状態を確認します。この値が「1」の場合、身代金メモをドロップして暗号化に進みます。存在しないか「0」の場合、暗号化の準備段階に入ります。

main_run()関数はデーモンモードで実行され、ハードコードされたBase64文字列から脅威アクターの公開鍵を取得し、システム偵察としてすべてのストレージデバイスを列挙し、暗号化対象のドライブマップを作成します。その後、Base64エンコードされた身代金メモをデコードし、C:\README-OBSCURA.txtとして書き込みます。

main_windows_api_IsRunAsAdmin()関数は、現在のプロセスが管理者権限を持っているかをWindows APIコール(AllocateAndInitializeSid()CheckTokenMembership())を用いて確認します。管理者権限がない場合、「[!!!] user not admin. exit [!!!]」と表示して即座に実行を終了します。これは、システムプロセスの終了、ボリュームシャドウコピーの削除、ドメイン検出、デーモンプロセス作成に必要なAPIアクセスなど、ランサムウェアの機能遂行に管理者権限が不可欠であることを示しています。

管理者権限が確認された後、ランサムウェアはWindows APIのGetSystemInfo()を呼び出してシステム情報を収集し、特にCPUコア数(dwNumberOfProcessors)を抽出します。これは暗号化フェーズでのスレッド戦略を最適化するために使用されます。

プロセス終了とドメイン偵察

システム準備フェーズでは、暗号化プロセスを妨害する可能性のあるセキュリティおよびデータベースアプリケーションを標的とした、積極的なプロセス終了が行われます。main_windows_api_KillProcesses()関数は、セキュリティ製品やデータベースアプリケーションを含む120以上の定義済みターゲットプロセスリストを繰り返し処理し、強制終了を試みます。例えば、WinDefendMsMpEngMcAfeeAvpといったセキュリティ関連プロセス、Veeam*AcronisAgentといったバックアップ関連プロセス、そしてMSSQL*mysqlOracleService*といったデータベース関連プロセスなどが標的となります。

ランサムウェアは、Windows APIのDsRoleGetPrimaryDomainInformationを使用して、コンピューターのドメイン内での役割を判断します。この機能は、ネットワーク伝播の意図を示唆するメッセージを表示しますが、実際のコードにはローカル暗号化ルーチン以外の横方向の移動機能は含まれていません。これは、開発が未完了であるか、意図された機能が完全に実装されていない可能性を示唆しています。

暗号化メカニズムとファイルフィルタリング

Obscuraは、ファイルサイズに基づいて2つの暗号化戦略(EncryptFullまたはEncryptPart)のいずれかを選択します。1GB以下のファイルに対してはEncryptFull()を呼び出し、ファイル全体を暗号化します。一方、1GBを超えるファイルに対してはEncryptPart()を呼び出し、ファイルの最初の25%のみを暗号化します。

暗号化には、Curve25519公開鍵と、main_windows_api_generateEphemeralKeyPair()で生成されるエフェメラル秘密鍵が使用されます。これらの鍵は、スカラー乗算(X25519)によって32バイトの共有シークレットを生成し、24バイトのランダムなノンスと共にXChaCha20キーのパラメータとして使用され、ファイル暗号化が行われます。

暗号化されたファイルには、以下の情報を含む64バイトのフッターが追加されます。

  • OBSCURA!
  • 32バイトの公開鍵
  • 24バイトのノンス

このフッター情報により、脅威アクターはファイル復号に必要なChaCha20キーを再導出することが可能になります。

Obscuraランサムウェアは、システム機能を維持しつつユーザーデータへの損害を最大化するために、ファイルフィルタリングメカニズムを実装しています。main_hasExcludedExtension()関数は、大文字・小文字を区別しない拡張子マッチングを行い、以下の15の定義済み拡張子を除外リストとして使用します。

  • システム実行ファイルおよびライブラリ: .exe, .dll, .msi, .sys
  • ブートおよびファームウェアコンポーネント: .efi, .boot, .iso, .rom, .bin
  • システム設定およびユーティリティ: .ini, .cfg, .lnk, .hosts, .swapfile
  • ランサムウェア自己保護: .obscura

これらの除外により、ランサムウェアはシステムの起動や基本的な動作を妨げずに、主要なユーザーデータを暗号化することを目指しています。

対策と推奨事項

Obscuraは、Huntressが近年確認しているCruxランサムウェアやCephalusランサムウェアなど、いくつかの新しいランサムウェア亜種の一つです。これは、法執行機関による取り締まり後の脅威アクターのリブランディングや、セキュリティベンダーの可視性向上など、複数の要因が考えられます。

どのような展開方法であれ、組織は以下の点に注意し、防御策を強化する必要があります。

  • ドメインコントローラーを厳重に監視し、新規ファイルの追加や既存ファイルの変更(特にGPO)がないか確認する。
  • ドメインコントローラーおよび他のエンドポイント(サーバー、ワークステーション)で、異常または不審なアクセスがないか監視する。

侵害の痕跡(IOCs)

以下は、このランサムウェアに関連する侵害の痕跡(Indicators of Compromise)です。

  • ランサムウェア実行ファイル: [company name].exe (SHA256: c00a2d757349bfff4d7e0665446101d2ab46a1734308cb3704f93d20dc7aac23)
  • 身代金メモファイル名: README_Obscura.txt
  • 脅威アクターの運用フォルダ: C:\WINDOWS\sysvol\sysvol\[domain].local\scripts\
  • 脅威アクターのワークステーション名(可能性): DESKTOP-XNBSHKJ2

元記事: https://www.huntress.com/blog/obscura-an-obscure-new-ransomware-variant