logo

概要

こんにちは、友達!

私たちのクライアントが持ちかけた問題はBlackMatterです。

この問題が何度もクライアントに迷惑をかけたため、クライアントは私たちにセキュリティ監査サービスの申請を余儀なくされました。

この記事では、BlackMatter ランサムウェアの技術的分析を提供し、対象システムに感染し暗号化するために使用される方法、ライブラリ、および技術に焦点を当てます。

BlackMatterは、2021年7月に初めて確認されたランサムウェアです。これは、東ヨーロッパに拠点を置くロシア語圏のRansomware-as-a-Service (RaaS) グループであるDarkSideの可能性のある再ブランドです。

BlackMatter ランサムウェアは C++ で記述され、Win32 プラットフォーム用にコンパイルされています。他のランサムウェアのバリアントと同様に、BlackMatter は暗号化を利用して被害者のファイルへのアクセスを防ぎ、復号鍵と引き換えに身代金の支払いを要求します。BlackMatter は対称暗号と非対称暗号の組み合わせを使用してファイルを暗号化します。ランサムウェアは最初にランダムな 256 ビット鍵を生成し、その鍵を使用して被害者のデータを暗号化します。次に、その鍵は各被害者に固有の RSA 公開鍵を使用して暗号化されます。これにより、データを復号するために必要な秘密鍵を攻撃者のみが保持することが保証されます。

BlackMatterの特筆すべき側面の一つは、対称暗号化のためにSalsa20アルゴリズムを使用していることです。

 

分析

BlackMatter ランサムウェアを分析するために、いくつかのツールを使用しました:

CFF Explorer はファイル分析とバイナリから必要な情報を抽出するために使用されました。

IDAは、ランサムウェアで使用されているコードの逆アセンブルや関数、変数、文字列の分析に使用されました。

x64Dbgはバイナリのデバッグに使用され、ランサムウェアの実行時の挙動を理解するために役立ちました。DIEはランサムウェアに使用されたパッカーを検出するために使用されました。

ProcessHackerは分析中にシステムのプロセスとネットワーク活動を監視するために使用されました。

 

BlackMatterの仕組みを探ってみよう!

エンジンを起動する前に、BlackMatterは準備作業を行い、成功した場合には主な作業を開始します:

最初に、BlackMatterアプリはライブラリを読み込み、APIのアドレスを取得します:

ロードされたモジュールのリストからわかるように、cryptorは暗号化のためにbcryptとncryptモジュールを使用しています。こちらがロードされたモジュールのリストです:

BlackMatter は、api-hashing 技術を使用して、Portable Executable のインポートアドレステーブルから怪しいインポートされた Windows API を隠すことで、マルウェア解析を少し難しくします。API ハッシング技術の動作方法については、こちらを参照してください:https://www.ired.team/offensive-security/defense-evasion/windows-api-hashing-in-malware

APIハッシュを復号する前:

APIハッシュを解読した後:

BlackMatter ランサムウェアは、データをパックされ、暗号化されたセクションで保持し、プログラムの開始時にアンパッキングと復号化を行います。これは、静的分析においてマルウェアアナリストの分析をより困難にするためです。

解凍およびデコード機能:

荷解きプロセス:

このランサムウェアは、東欧に拠点を置くロシア語を話すグループが開発したため、旧ソビエト連邦諸国やシリアでは機能しません。これを実現するために、彼らは言語チェックを行います。

言語チェック:

サポートされていない言語の表:

このマルウェアは、SHTestTokenMembership APIを使用して、プロセスを開始したユーザーがコンピューターのAdministratorsグループのメンバーであるかどうかを確認します。

トークンをチェック:

次のステップでは、マルウェアがOSバージョンをチェックします。

OSバージョンをチェックします:

条件が満たされていない場合、アプリはCOMエクスプロイトを通じて管理者権限を取得しようとします。BlackMatterはCOMの脆弱性を利用して権限を昇格させ、また、LdrEnumerateModulesCallbackを通じて当社のアプリケーションをDllHost.exeとして偽装します。名前の変更により、異なるバイナリがロードされているとデバッガーをだまして、ブレークポイントを削除させることができます。

管理者権限を取得しようとしています:

管理者権限を取得するためのCOMエクスプロイトは、COMインターフェイスとCOMエレベーションモニカーを使用します:

ランサムウェアは、LdrEnumerateModulesCallbackを介してアプリケーションをDllHost.exeとして偽装します。これにより、コールバックが呼び出されるすべてのモジュールを通過します。そして、モジュールアドレスが私たちのプロセスと同じであれば、名前を置き換えます:

名前を変更するための概念実証:

このマルウェアは、「HKLMSoftwareMicrosoftCryptography」に保存されているマシンGUIDに基づいてファイルの拡張子を生成します。私たちの場合、拡張子は「KmyLfX2Lb」となりました:

次に、cryptorはREADMEファイルのための拡張子を生成し、テストマシンでこの拡張子(“KmyLfX2Lb.README.txt”)が得られます:

このマルウェアは必要なすべての権限を有効にします。権限のリスト:

  • SeBackupPrivilege
  • SeCreatePagefilePrivilege
  • SeCreateSymbolicLinkPrivilege
  • SeDebugPrivilege
  • SeDelegateSessionUserImpersonatePrivilege
  • SeIncreaseBasePriorityPrivilege
  • SeIncreaseQuotaPrivilege
  • SeIncreaseWorkingSetPrivilege
  • SeLoadDriverPrivilege
  • SeManageVolumePrivilege
  • SeProfileSingleProcessPrivilege
  • SeRemoteShutdownPrivilege
  • SeRestorePrivilege
  • SeSecurityPrivilege
  • SeShutdownPrivilege
  • SeSystemEnvironmentPrivilege
  • SeSystemProfilePrivilege
  • SeSystemtimePrivilege
  • SeTakeOwnershipPrivilege
  • SeTimeZonePrivilege
  • SeUndockPrivilege

特権を有効にする:

次に、cryptorはNtSetInformationProcess APIを通じて現在のプロセスの優先度を上げます。このコードはプロセスの優先度を高いCPU優先度および中程度のI/O優先度に設定しており、マルチタスクシステムでのプロセスのパフォーマンスを向上させる可能性があります。これにより、より多くのCPUリソースを使用できるようになるからです。

プロセスの優先度を上げる:

cryptorに十分な権限がない場合、権限を昇格させるためにsvchost.exeにshellcodeを注入します。

注射する前の準備:

svchost.exe にシェルコードを注入:

次に、マルウェアは ES_CONTINUOUS | ES_SYSTEM_REQUIRED 状態を設定して、休止状態やアプリケーションの中断を無効にします。

スレッド実行状態を変更します:

その後、マルウェアはドライブに関する情報をJSON形式で収集し保存します:

次に、マルウェアはブラックリストに載っているサービスを停止し削除します。このリストはREvilグループのランサムウェアと同じもので、ブラックリストには以下が含まれます:

  • Vss
  • Sql
  • Svc$
  • Memtas
  • Mepocs
  • Sophos
  • Veeam
  • バックアップ
  • GxVss
  • GxBlr
  • GxFWD
  • GxCVD
  • GxCIMgr

ブラックリストからサービスを停止して削除します:

次に、マルウェアはブラックリストにあるプロセスを停止します。このリストはREvilグループのランサムウェアと同じもので、ブラックリストには以下が含まれます:

  • Sql
  • Oracle
  • Ocssd
  • Dbsnmp
  • Synctime
  • Agntsvc
  • Isqlplussvc
  • Xfssvccon
  • Mydesktopservice
  • Ocautoupds
  • Encsvc
  • Firefox
  • Tbirdconfig
  • Mydesktopqos
  • Ocomm
  • Dbeng50
  • Sqbcoreservice
  • Excel
  • Infopath
  • Msaccess
  • Mspub
  • Onenote
  • Outlook
  • Powerpoint
  • Steam
  • Thebat
  • Thunderbird
  • Visio
  • Winword
  • Wordpad
  • Notepad

ブラックリストからプロセスを停止:

The cryptorは、ファイルを暗号化するためにSalsa20アルゴリズムを使用します:

 

検出

この脅威に対するポイント保護には、以下を使用しました:

  • BlackMatterランサムウェアを検出するためのYARAルール

  • BlackMatter活動を検出するための解決策

振る舞いベースの検出は、暗号化されたマルウェアを検出するために使用できます。プロセスの終了とサービスAPIの停止のフックを設定して、BlackMatterを検出することが可能です。また、レジストリでの作業やエクスプロイトの実行を追跡することも可能です。

SToFU チームは、組織が BlackMatter ランサムウェアおよびその他の類似の脅威から自身を守るために取るべき次のステップを推奨します:

  1. セキュリティ監査:企業ネットワークのセキュリティ監査を定期的に実施する

  2. バックアップ:すべての重要なデータが定期的にバックアップされ、ランサムウェアによって暗号化されることを防ぐために、バックアップはオフラインまたはオフサイトに保管されていることを確認する。

  3. ソフトウェアを最新の状態に保つすべてのソフトウェアとオペレーティングシステムを定期的に更新して、既知の脆弱性が修正されていることを確認する。

  4. アンチマルウェアソリューションを使用するすべてのシステムにアンチマルウェアソリューションを導入して、マルウェア感染を検出し防止する。

  5. アクセス管理を使用する必要な人だけが敏感なシステムやデータへのアクセスを許可する。これにより、感染が発生した場合のランサムウェアの拡散を制限するのに役立つ。

  6. 従業員のトレーニングフィッシング詐欺、怪しいメール、悪意のあるウェブサイトを識別し避ける方法を従業員に教育する。

  7. 計画を持つランサムウェア攻撃に効果的に対応するためのインシデント対応計画を開発し、練習する。

  8. スキルのあるサイバーセキュリティパートナーを持つ:パートナーは、企業ネットワークと企業機器のセキュリティを保証し、既存のセキュリティ問題を調査し、解決策を提案し、可能な場合には新たなセキュリティ問題の発生をタイムリーに防ぐ手助けをする。

 

協力

友達へ、

リバースエンジニアリング、悪意のあるファイルの分析、セキュリティ監査、企業ネットワークのサイバーセキュリティに関する全ての協力に関する質問は、次のアドレスまでご連絡いただけます: midgard@stofu.io

私たちは心からの協力と新しいパートナーを歓迎します!