「BlackLotus」 UEFIブートキット:いま、そこにある現実の危機
最新の状態にしたUEFIシステムであっても、UEFIセキュアブートをバイパスする初のUEFIブートキットが実環境で悪用されていることが確認されました。
最新の状態にしたUEFIシステムであっても、UEFIセキュアブートをバイパスする初のUEFIブートキットが実環境で悪用されていることが確認されました。
近年では多くのUEFIの脆弱性が発見されていますが、パッチが適用されていない、あるいは、脆弱なバイナリを失効できない状況が長期間にわたっており、サイバー攻撃者は虎視眈々と攻撃の機会を狙ってきました。そして、プラットフォームの中核的なセキュリティ機能であるUEFIセキュアブートをバイパスするUEFIブートキットが今回初めて検出されました。脅威がいま現実の危機となったのです。このブログでは、このUEFIブートキットの分析結果を初めて公開します。このブートキットは、UEFIセキュアブートが有効な最新の状態のWindows 11システムでも実行可能です。ESETは、このブートキットはその機能と特性から、少なくとも2022年10月以降、ハッキングフォーラムにおいて5000ドルで販売されているUEFIブートキットである「BlackLotus」であると考えています。
UEFIブートキットは最も警戒すべき脅威です。OSの起動プロセスを完全に制御できることから、OSの各種のセキュリティ機構を無効化でき、OSの起動段階で攻撃者が用意したカーネルモードやユーザーモードのペイロードを展開できます。つまり、高い権限でマシンを秘密裏に操ることが可能になります。これまで、実環境で検出されたUEFIブートキットはわずかしかありません。例えば、2020年にESETが発見したいくつかの悪意のあるEFIブートローダーの検体、ESETが昨年発見したESPecterブートキットなどの詳細な機能を実装するUEFIブートキット、そして、Kasperskyのリサーチャーが発見したFinSpyブートキットなどがあるだけです。
UEFIブートキットは、2018年にESETのチームによって実環境で発見された初のUEFIファームウェアインプラントであるLoJaxのようなファームウェアインプラントと比較すると、簡単にアクセスできるFAT32ディスクパーティションにブートキットがあることから、ファームウェアインプラントと比較するとステルス性は低くなっています。しかし、ブートローダーとして実行することで、ファームウェアインプラントと同等の機能を実行でき、ファームウェアへの書き込みを保護するBWE(BIOS Write Enable)、BLE(BIOS Lock Enable)、PRx(SPI Protected Range Registers)ビットなどのマルチレベルのSPIフラッシュ保護や、Intel Boot Guardなどのハードウェア保護を解除する必要がありません。確かに、UEFIセキュアブートはUEFIブートキットをブロックすることができますが、この基本的なセキュリティメカニズムをバイパスできる既知の脆弱性が多く存在します。本記事の執筆時点で最新のシステムを利用している場合でも、BlackLotusによって悪用されている脆弱性など、簡単に攻撃できる脆弱性が存在していることが、状況を悪化させています。
ESETの調査は、2022年末にテレメトリ(監視データ)でBlackLotusのユーザーモードコンポーネント(HTTPダウンローダー)と考えられる脅威が数件見つかったことから始まっています。最初の調査によって、検体で特定されたコードパターンから、6つのBlackLotusインストーラを発見できました(VirusTotalおよびESETのテレメトリの両方)。これにより、実行チェーン全体を探索することが可能になり、通常のマルウェアとは異なっていることが明らかになりました。
BlackLotusの特徴と、関連イベントをまとめたタイムラインを以下に示します。
BlackLotusに関連する各イベントのタイムラインを、図1に示します。
先に述べたように、このブートキットは少なくとも2022年10月6日から地下フォーラムで広告および販売されています。ESETのテレメトリからは、このブートキットを標的ユーザーに展開するために使用された正確な配信チャネルはこれまで特定できていません。ESETが一般に公開されているソースやESETのテレメトリから取得できたBlackLotusの検体数は少ないことから、多くのサイバー攻撃者はこのブートキットをまだ使い始めていない可能性があります。しかし、このブートキットは簡単に展開できることや、サイバー犯罪集団が運用しているボットネットのマルウェア拡散能力を考えると、BlackLotusが悪用している脆弱なブートローダーが失効されるまでは、活発に活動している犯罪組織にこのブートキットが渡った場合、事態が急変する恐れがあります。
BlackLotusに関する情報をまとめた記事やブログはいくつか存在しており(The Registerの記事、LinkedInへのScott Scheferman氏の投稿、BleepingComputerの記事など)、これらの記事の情報はいずれもこのブートキットの開発者が地下のハッキングフォーラムに提供した情報に基づいています。今のところ、これらの主張は肯定も否定もされていません。
これまでに公開されている記事や投稿の内容と、ESETがこのブートキットの検体をリバースエンジニアリングして得た情報を比較した結果を以下に示します。
これらの解析結果から、今回実環境で検出されたブートキットは、本物のBlackLotus UEFIブートキットであるとESETは確信しています。
BlackLotusによるセキュリティ侵害のチェーンを簡略化した図を図2に示します。攻撃は、以下の3つの部分から構成されています。
ESETは、これがBlackLotus UEFIブートキットだと考えていますが、分析した検体ではBlackLotusを示す直接的な情報は見つかっていません。しかし、higurashi_installer_uac_module.dllやhigurashi_kernel.sysといった各コンポーネントの名前や、ブートキットバイナリに署名する自己署名証明書(図3を参照)には、アニメシリーズ『ひぐらしのなく頃に』からの引用がコードに多く含まれています。
また、このコードには、BlackLotusの作者からのメッセージ(図4を参照。hasherezadeは、有名な研究者であり、さまざまなマルウェア解析ツールの作者)や、さまざまな楽曲、ゲーム、シリーズからのランダムな引用を含むさまざまな文字列が含まれています。
まず、BlackLotusのインストーラを解析した結果を説明します。このブートキットは、オフラインとオンラインの2つのバージョンのインストーラから配布されている可能性があります。両者の違いは、セキュアブートをバイパスするために後で使用される正規で脆弱なWindowsバイナリを入手する方法にあります。
このインストーラの目的は明確であり、BitLockerディスク暗号化やHVCIなどのWindowsのセキュリティ機能を無効にし、悪意のあるブートキットなど複数のファイルをESPに展開します。次に、侵害されたマシンを再起動して、展開したファイルを使用して、UEFIセキュアブートでマシンが保護されているかどうかに関わらず、システムの起動時に自己署名のUEFIブートキットが秘密裏に実行されるようにします。
インストーラが実行されると、残りのファイルをESPに展開し、HVCIやBitLockerの無効化など、高度な権限が求められるアクションを実行できる(少なくとも管理者権限が必要)があるかどうかをチェックします。権限がない場合は、ユーザーアカウント制御(UAC)をバイパスして、再度インストーラを実行して権限を昇格します。詳細は、@プログラム互換性アシスタントによるUACのバイパス」を参照してください。
必要な権限があれば、Windows API関数を使用してUEFI変数のSecureBootの値を読み取り、UEFIセキュアブートの状態をチェックし、メモリのKUSER_SHARED_DATA構造のフィールドNtMajorVersionとNtMinorVersionに直接アクセスしてWindowsのバージョンを判断します。Windowsのバージョンを確認するのは、標的のシステムにブートキットを展開するために、UEFIセキュアブートをバイパスする必要があるかどうかを判断するためです(セキュアブートのサポートはWindows 8で初めて追加されており、標的のマシンで有効になっていない場合もあります)。
次のステップに進む前に、ESP:EFIMicrosoftBootディレクトリにある正規のWindowsブートマネージャー(bootmgfw.efi)バイナリの名前をwinload.efiに変更します。名前が変更されたこのbootmgfw.efiバックアップは、後でブートキットによってOSを起動するために使用され、C&Cサーバーからアンインストールのためのコマンドを受け取った場合に元のブートチェーンを回復するために使用されます。詳細は、「C&Cとの通信」のセクションを参照してください。
UEFIセキュアブートが有効な場合、インストーラは複数のファイルをESP:/EFI/Microsoft/Boot/およびESP:/system32/ディレクトリに展開して処理を続行します。前者はWindowsが使用する標準的なディレクトリであり、後者はインストーラが作成する独自のフォルダです。
インストーラがドロップするファイルのリストと、実行チェーンにおける各ファイルの役割に関する簡単な説明を、表 1に記載します。実行チェーンの仕組みについては後ほど詳しく説明します。ここでは、悪意のあるファイルとともに、Microsoftによって署名された正規のいくつかのファイルが展開されていることに注目してください。
フォルダ | ファイル名 | 説明 |
---|---|---|
ESP:\EFI\Microsoft\Boot | grubx64.efi | BlackLotusブートキット、自己署名された悪意のあるUEFIアプリケーション。 |
bootload.efi | マイクロソフトが署名した正規のshimバイナリ(これは一時的な名前であり、CVE-2022-21894の脆弱性が攻撃されて、bootmgfw.efiに変更されます)。 | |
bootmgfw.efi | 脆弱性がある(CVE-2022-21894)正規のWindowsブートマネージャーのバイナリ。インストーラに組み込まれているか、Microsoftシンボルストアから直接ダウンロードされます。 | |
BCD | CVE-2022-21894の攻撃チェーンで使用される攻撃者独自のブート構成データ(BCD)ストア。 | |
BCDR | 標的ユーザーの元のBCDストアのバックアップ。 | |
ESP:\system32 | hvloader.efi | 脆弱性がある(CVE-2022-21894)正規のWindowsハイパバイザーロードのバイナリ。インストーラに組み込まれているか、Microsoftシンボルストアから直接ダウンロードされます。 |
bootmgr.efi | 脆弱性がある(CVE-2022-21894)正規のWindowsブートマネージャーのバイナリ。インストーラに組み込まれているか、Microsoftシンボルストアから直接ダウンロードされます。 | |
mcupdate_AuthenticAMD.dll | 自己署名された悪意のあるネイティブPEバイナリ。このファイルは、AMD CPUを使用するシステムでCVE-2022-21894を攻撃した後で、hvloader.efiによって実行されます。 | |
mcupdate_GenuineIntel.dll | Mustang Pandaの既知のKorplugローダー。 | |
BCD | Mustang Pandaの既知のKorplugローダー。 |
表 1. UEFIセキュアブートが有効なシステムでBlackLotusインストーラが展開するファイル
標的ユーザーがUEFIセキュアブートをサポートしていないWindowsバージョンを使用している場合や、セキュアブートが無効になっている場合、展開のプロセスは非常にシンプルになります。悪意のあるブートキットを展開するために必要なのは、ESP:\EFI\Microsoft\Boot\ディレクトリにある既存のWindowsブートマネージャー(bootmgfw.efi)バイナリを、攻撃者が署名した悪意のあるUEFIアプリケーションに置換することだけです。UEFIセキュアブートは無効にされており、起動時に整合性が検証されないため、UEFIファームウェアはセキュリティ違反を認識することなく悪意のあるブートマネージャーを実行します。
署名のない独自のカーネルコードを後で実行できるようにするために、インストーラはシステムでHVCIが無効になっていることを確認する必要があります。ESETのリサーチャーの一人が、2022年にこのトピックについてのブログ(署名されたカーネルドライバ - 保護されていないWindowsコアへのゲートウェイ)を書いていますので、その一部を以下に紹介します。
仮想化ベースのセキュリティ(VBS)は、いくつかの保護機能を提供しますが、最も重要な保護機能はハイパーバイザーによるコードの整合性の強制(HVCI)であり、これはスタンドアロンの機能としても提供されています。HVCIはカーネルのコードの整合性をチェックして、署名されたコードのみを実行できるようにします。この機能により、使用される攻撃手法に関わらず、脆弱なドライバを悪用して署名のないカーネルコードを実行し、悪意のあるドライバをロードすることを効果的に防止できます。脆弱なドライバを悪用して悪意のあるコードをロードするマルウェアが存在していることが、マイクロソフトがこの機能を実装した主な理由の1つだと考えられます。
図5に示すように、この機能を無効にするために、インストーラはHypervisorEnforcedCodeIntegrityレジストリキーにあるレジストリEnabledの値をゼロに設定します。
インストーラによって無効にされる次の機能は、BitLockerドライブ暗号化です。BitLockerをTPM(トラステッドプラットフォームモジュール)と組み合わせて使用すれば、BitLockerドライブ暗号化を構成してから、セキュアブートを含む各ブートファイルや構成が改ざんされていないことを確認できるため、このインストーラはこの機能を無効化します。このインストーラは侵害したマシンのWindowsブートチェーンを変更するため、TPMをサポートするシステムでBitLockerが有効になっていると、次の起動時にBitLockerの回復画面が表示され、システムが侵害されていることが被害者に通知されます。
この保護を無効にするために、BlackLotusのインストーラは以下の処理を行います。
攻撃を実行するための障害となる保護機能を無効にし、すべてのファイルを展開したら、システムを次回に再起動するときにインストーラ自身を削除するように設定し、マシンを再起動してCVE-2022-21894を攻撃します。
このセクションでは、UEFIセキュアブートが有効なシステムで、BlackLotusがどのように常駐するかを詳しく説明します。これから説明する実行チェーンは非常に複雑です。最初に基本的な原理を説明してから、技術的な詳細を説明します。
このプロセスは、2つの重要なステップから構成されています。
詳細な分析内容を以下の2つのセクションで分かりやすく説明するため、次の実行フローの図(図6)のステップに従って説明します。
セキュアブートをバイパスするために、BlackLotusはCVE-2022-21894(別名Baton Drop)を使用します。これは、セキュリティ機能であるセキュアブートをバイパスする脆弱性です。この脆弱性は、システムのセキュリティに重大な影響を与えるにもかかわらず、あまり注目されてきませんでした。この脆弱性は、マイクロソフトの2022年1月のアップデートで修正されましたが、影響を受けるバイナリがまだUEFI失効リストに追加されていないため、悪用が可能になっています。そのため、攻撃者は、脆弱なバイナリのコピーを標的ユーザーのマシンに持ち込み、この脆弱性を攻撃し、最新のUEFIシステムであってもセキュアブートをバイパスできます。
さらに、この脆弱性のPoC(概念実証)のエクスプロイトが2022年8月から公開されています。BlackLotusがVirusTotalに初めて送信された日付(図1)を考慮すると、このマルウェアの開発者は、このエクスプロイトの仕組みを深く理解せずに、公開されていたPoCを適応した可能性があります。
最初に、GitHubのPoCと一緒に公開されている説明を中心に、この脆弱性について簡単に紹介します。
以下、BlackLotusがこの脆弱性を悪用する方法について説明します(以下のリストの数字は図6にあるステップ番号と対応しています)。
これでMokInstallerは、攻撃者のMOKをNVRAM変数に登録し、マイクロソフトが署名した正規のshimバイナリをデフォルトのブートローダーとして設定することで、常駐することが可能になりました。このプロセスの詳細を説明する前に、shimとMOKについて説明します。
shimは、さまざまなLinuxディストリビューションをUEFIセキュアブートで動作させるために、Linux開発者が開発したファーストステージのUEFIブートローダーです。これは単純なアプリケーションであり、別のアプリケーションをロード、検証、実行することが目的です。Linuxシステムの場合、通常、GRUBブートローダーをロード、検証、実行します。また、マイクロソフトはshimのみに署名し、shimがその他のアプリケーションを管理する仕組みになっており、UEFI変数dbのキーを使用することにより、セカンドステージのブートローダーの整合性を検証できます。また、プラットフォームとshimの開発者(Canonical、RedHatなど)の両方が信頼するコンポーネントの実行を許可するために、独自の「許可」または「取り消し」キーやハッシュのリストを埋め込んでいます。shimは、これらのリストに加え、MOKリストと呼ばれるユーザーが管理する外部の鍵データベースを利用することもできます。図11は、MOKによるUEFIセキュアブートの仕組みを分かりやすく説明しています。
このMOKデータベースは、MokListという名前のブート専用のNVRAM変数に格納されています。上記のような脆弱性を悪用できなければ、UEFIセキュアブートが有効なシステムでこの変数を変更するにはマシンに物理的にアクセスしなければなりません(この変数は、起動時にOSローダーがUEFIブートサービス関数ExitBootServicesを呼び出す前にのみ利用できます)。しかし、この脆弱性を利用することで、攻撃者はUEFIセキュアブートをバイパスし、ExitBootServicesを呼び出す前に自己署名したコードを実行できるため(NVRAM変数MokListを修正することで)、簡単に自分の鍵を登録し、セキュリティ違反を発生させることなく、登録したその鍵で署名した任意のアプリケーションをshimに実行させることができます。
最後の2つのステップで説明した操作を実行するコードを図12に示します。
常駐化の設定が完了すると、システムを起動するときにBlackLotusブートキットが毎回実行されます。このブートキットの目的は、カーネルドライバと最終的なユーザーモードのコンポーネントであるHTTPダウンローダーを展開することです。ブートキットを実行するときには、Windowsの別のセキュリティ機能である仮想化ベースのセキュリティ(VBS)とWindows Defenderを無効化し、このブートキットを展開し秘密裏に動作させる可能性を高めようとします。このプロセスの詳細を説明する前に、カーネルドライバとHTTPダウンローダーについての基本情報について説明します。
インストーラからHTTPダウンローダーまでの実行フローを簡略化した図を、図13に示します。これらの各ステップについては、次のセクションで詳しく説明します。
実行フローを以下に説明します(これらのステップは図13を参照してください)。
このカーネルドライバは、次の4つのタスクを主に実行します。
これらの各タスクについて説明します。
カーネルドライバは、HTTPダウンローダーを展開します。ドライバが起動すると、winlogon.exeのプロセスが起動するまで待機してから、他の操作を開始します。このプロセスが開始されると、ドライバはHTTPダウンローダーのバイナリを復号化し、winlogon.exeのアドレス空間に挿入して、新しいスレッドで実行します。その後、ドライバはこのスレッドが実行されているかどうかを定期的にチェックし、必要に応じて挿入を繰り返します。ドライバによってカーネルデバッガが検出されると、HTTPダウンローダーは展開されません。
ESPにあるブートキットファイルを保護するために、このカーネルドライバは簡単な仕組みを取り入れています。保護するファイルをすべて開き、ハンドルを複製して保存し、カーネル関数ObSetHandleAttributesを使用して、HandleFlags(OBJECT_HANDLE_FLAG_INFORMATION)パラメータにあるProtectFromCloseフラグを1に指定して、他のプロセスによってハンドルが閉じられないように保護します。これにより、保護する対象のファイルの削除や変更を防止できます。以下のファイルが保護されます。
保護の対象となっているこれらのファイルをユーザーが削除しようとすると、 図15に示すようなメッセージが返されます。
ユーザーやセキュリティソフトウェアが保護フラグを解除してハンドルを閉じることができた場合でも、このカーネルドライバは常にハンドルを監視しており、ハンドルが存在しなくなると、KeBugCheck(INVALID_KERNEL_HANDLE)関数を呼び出してBSOD(ブルースクリーン)を発生させる保護機能も備えています。
カーネルドライバは、Windows DefenderのメインプロセスであるMsMpEng.exeを解除する場合もあります。各プロセスにSE_PRIVILEGE_REMOVED属性を設定してすべてのプロセスのトークン権限を削除することで、メインプロセスを解除します。これにより、Defenderのプロセスは、ファイルのスキャンなどを適切に実行できなくなります。ただし、この機能の実装方法には問題があり、MsMpEng.exeのプロセスを再起動すれば、Defenderの本来の機能が再度実行されます。
カーネルドライバは、名前付きのイベントとセクションを使用してHTTPダウンローダーと通信できます。使用される名前付きオブジェクトは、標的ユーザーのネットワークアダプターのMACアドレス(イーサネット)を基準に生成されます。オクテットの値が16より小さい場合は、16が名前に追加されます。生成されるオブジェクト名の形式は、検体によって異なる場合があります。解析した検体の1つは、MACアドレスが00-1c-0b-cd-ef-34となっており、次の名前が生成されています。
HTTPダウンローダーがカーネルドライバにいくつかのコマンドを渡す必要がある場合、名前付きのセクションを作成し、そこにコマンドと関連データを書き込み、名前付きのイベントを作成してドライバがトリガーするまで(シグナルを送信する)待機し、ドライバがコマンドを処理するのを待機できます。
このドライバは、以下のコマンドをサポートしています。
賢明な読者の方であれば、ここでBlackLotusの弱点に気づくかもしれません。ブートキットがコンポーネントを削除できないように保護していても、上記の名前のオブジェクトを作成してアンインストールコマンドを送信してブートキットを完全にアンインストールするように、カーネルドライバを騙すことができます。
最後のコンポーネントは、C&Cサーバーと通信し、受信したC&Cコマンドを実行します。ESETが検出したすべてのペイロードは3つのコマンドを含んでいます。これらのコマンドは非常にわかりやすく、さまざまな手法で主に別のペイロードをダウンロードし実行します。
C&Cサーバーと通信するために、このHTTPローダーはHTTPSプロトコルを使用します。C&Cドメインや使用するHTTPリソースのパスなどの通信に必要な情報は、ダウンローダーのバイナリに直接埋め込まれています。C&Cサーバーとの通信間隔は、デフォルトで1分に設定されていますが、C&Cから受信するデータによって変更される場合もあります。C&Cとの通信セッションは、HTTP POSTのビーコンメッセージをC&Cに送信することから始まります。今回解析した検体では、HTTP POSTヘッダーに以下のHTTPリソースのパスが指定できるようになっています。
ビーコンメッセージデータの先頭にはcheckin=という文字列が付けられており、独自のマシン識別子(HWIDと呼ばれます)、UEFIセキュアブートの状態、さまざまなハードウェア情報、BlackLotusのビルド番号と思われる値など、侵害されたマシンに関する基本情報が含まれています。HWIDは、マシンのMACアドレス(イーサネット)とシステムボリュームのシリアル番号から生成されます。暗号化されるメッセージの形式を、図16に示します。
C&Cにメッセージを送信する前に、最初に埋め込まれたRSAキーでデータが暗号化された後で、URLセーフのbase64でエンコードされます。検体を解析した結果、2種類のRSAキーが使用されていることがわかりました。これらのHTTPビーコンリクエストの例を、図17に示します。
ビーコンメッセージの応答としてC&Cから受信したデータは、2バイトのマジック値HPで始まっている必要があります。これ以外の値で始まっている場合は、それ以上処理されません。マジック値が正しい場合、マジック値に続くデータが、上記のHWIDの文字列をキーとして、CBCモードの256ビットAESで復号化されます。
復号化された後のメッセージはビーコンと同じようなJSON形式の文字列になっており、コマンド識別子(Typeと呼ばれます)と、以下のようなさまざまなパラメータが追加で指定されます。
サポートされているすべてのコマンドとその説明を、表 2に示します。
コマンドタイプ | コマンドの説明 |
---|---|
1 | カーネルドライバ、DLL、または通常の実行ファイルをダウンロードして実行します。 |
2 | ペイロードをダウンロードし、ブートキットをアンインストールし、ペイロードを実行します。ブートキットの更新に使用されると考えられます。 |
3 | ブートキットをアンインストールして終了します。 |
表2. C&Cコマンド
C&Cは、これらのコマンドでペイロードを実行する前にまずディスクに展開するか、メモリ内で直接実行するか指定できます。ディスクに展開する場合は、OSボリュームにあるProgramDataフォルダを保存先フォルダとして使用し、ファイル名と拡張子はC&Cサーバーによって指定されます。メモリ内でファイルを直接実行する場合、svchost.exeが挿入先として使用されます。C&Cがカーネルドライバを使用しなければならないコマンドを送信した場合や、カーネルモードでコードを実行する場合には、「HTTPダウンローダーとの通信」のセクションで説明されている方法が使用されます。
このマルウェアの作成者は、検出と解析を困難にするため、テキスト文字列、インポートするデータ、他の暗号化されない埋め込みデータなど、標準的なファイルアーティファクトができる限り残らないようにしています。解析を困難にするために使用される手法を以下に示します。
ここ数年、UEFIシステムのセキュリティに影響する重大な脆弱性が多く発見されています。残念ながら、UEFIのエコシステム全体は複雑であり、サプライチェーンの問題も関連していることから、これらの多くの脆弱性が修正された後でも、長きにわたって多くのシステムが危険な状態のままになっています。この1年間で、UEFIセキュアブートのバイパスを可能にする脆弱性へのパッチ適用や失効が失敗した具体的な例をいくつか紹介します。
これらの危険な状況に付け込んで、UEFIセキュアブートを有効にしているシステムでも動作するUEFIブートキットを作成する攻撃者が出現するのは時間の問題だったと言えます。昨年、RSAのプレゼンテーションで、ESPシステムパーティションへの攻撃が現実的になっており、UEFIに対する脅威が迫っていることをESETが発表しましたが、BlackLotusの存在がこれを裏付けることになりました。
SHA-1 | ファイル名 | 検出 | 説明 |
---|---|---|---|
05846D5B1D37EE2D716140DE4F4F984CF1E631D1 | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
A5A530A91100ED5F07A5D74698B15C646DD44E16 | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
D82539BFC2CC7CB504BE74AC74DF696B13DB486A | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
16B12CEA54360AA42E1120E82C1E9BC0371CB635 | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
DAE7E7C4EEC2AC0DC7963C44A5A4F47D930C5508 | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
45701A83DEC1DC71A48268C9D6D205F31D9E7FFB | N/A | Win64/BlackLotus.A | BlackLotusのインストーラ。 |
2CE056AE323B0380B0E87225EA0AE087A33CD316 | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
5A0074203ABD5DEB464BA0A79E14B7541A033216 | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
5DC9CBD75ABD830E83641A0265BFFDDD2F602815 | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
97AEC21042DF47D39AC212761729C6BE484D064D | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
ADCEEC18FF009BED635D168E0B116E72096F18D2 | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
DBC064F757C69EC43517EFF496146B43CBA949D1 | N/A | EFI/BlackLotus.B | BlackLotus UEFIブートキット。 |
06AF3016ACCDB3DFE1C23657BF1BF91C13BAA757 | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
0C0E78BF97116E781DDE0E00A1CD0C29E68D623D | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
6D8CEE28DA8BCF25A4D232FEB0810452ACADA11D | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
74FF58FCE8F19083D16DF0109DC91D78C94342FA | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
ACC74217CBE3F2E727A826B34BDE482DCAE15BE6 | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
111C4998F3264617A7A9D9BF662D4B1577445B20 | N/A | Win64/BlackLotus.B | BlackLotus HTTPダウンローダー。 |
17FA047C1F979B180644906FE9265F21AF5B0509 | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
1F3799FED3CF43254FE30DCDFDB8DC02D82E662B | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
4B882748FAF2C6C360884C6812DD5BCBCE75EBFF | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
91F832F46E4C38ECC9335460D46F6F71352CFFED | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
994DC79255AEB662A672A1814280DE73D405617A | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
FFF4F28287677CAABC60C8AB36786C370226588D | N/A | Win64/BlackLotus.C | BlackLotusのカーネルドライバ。 |
71559C3E2F3950D4EE016F24CA54DA17D28B9D82 | N/A | EFI/BlackLotus.C | BlackLotusインストーラが展開するBCD(ブート構成データ)ストア。 |
D6D3F3151B188A9DA62DEB95EA1D1ABEFF257914 | N/A | EFI/BlackLotus.C | BlackLotusインストーラが展開するBCD(ブート構成データ)ストア。 |
547FAA2D64B85BF883955B723B07635C0A09326B | N/A | EFI/BlackLotus.A | CVE-2022-21894を攻撃するBlackLotusのペイロードローダー。 |
D1BBAA3D408E944C70B3815471EED7FA9AEE6425 | N/A | EFI/BlackLotus.A | CVE-2022-21894を攻撃するBlackLotusのペイロードローダー。 |
0E6DD7110C38464ECAA55EE4E2FA303ADA0EDEFB | N/A | EFI/BlackLotus.A | CVE-2022-21894を攻撃するBlackLotusのペイロード - MokInstaller EFIアプリ。 |
D6BB89D8734B3E49725362DAE9A868AE681E8BD6 | N/A | EFI/BlackLotus.A | CVE-2022-21894を攻撃するBlackLotusのペイロード - MokInstaller EFIアプリ。 |
164BB587109CFB20824303AD1609A65ABB36C3E9 | N/A | Win64/BlackLotus.D | BlackLotusインストーラのUACバイパスモジュール。 |
シリアルナンバー | 570B5D22B723B4A442CC6EEEBC2580E8 |
---|---|
サムプリント | C8E6BF8B6FDA161BBFA5470BCC262B1BDC92A359 |
Subject CN | When They Cry CA |
Subject O | N/A |
Subject L | N/A |
Subject S | N/A |
Subject C | N/A |
有効期限の開始 | 2022-08-13 17:48:44 |
有効期限の終了 | 2032-08-13 17:58:44 |
IP | ドメイン | ホスティングプロバイダー | 最初に確認された日付 | 詳細 |
---|---|---|---|---|
N/A | xrepositoryx[.]name | N/A | 2022-10-17 | BlackLotusのC&Cサーバー。 |
N/A | myrepositoryx[.]com | N/A | 2022-10-16 | BlackLotusのC&Cサーバー。 |
104.21.22[.]185 | erdjknfweklsgwfmewfgref[.]com | Cloudflare, Inc. | 2022-10-06 | BlackLotusのC&Cサーバー。 |
164.90.172[.]211 | harrysucksdick[.]com | DigitalOcean, LLC | 2022-10-09 | BlackLotusのC&Cサーバー。 |
185.145.245[.]123 | heikickgn[.]com | SIA VEESP | 2022-10-12 | BlackLotusのC&Cサーバー。 |
185.150.24[.]114 | myrepository[.]name | SkyLink Data Center BV | 2022-10-14 | BlackLotusのC&Cサーバー。 |
190.147.189[.]122 | egscorp[.]net | Telmex Colombia S.A. | 2022-08-24 | BlackLotusのC&Cサーバー。 |
この表は、MITRE ATT&CKフレームワークのバージョン12を使用して作成されています。
手法 | ID | 名前 | 説明 |
---|---|---|---|
リソース開発 | 能力の開発コード署名証明書 | 一部のBlackLotusの検体は、自己署名証明書で署名されています。 | |
機能の取得:エクスプロイト | BlackLotusは、UEFIセキュアブートをバイパスするために、公開されているエクスプロイトを使用しています。 | ||
実行 | クライアントを実行するための攻撃 | BlackLotusのインストーラは、CVE-2022-21894を攻撃し、UEFIセキュアブートが有効なシステムで任意のコードを実行できます。 | |
プロセス間通信 | BlackLotusのHTTPダウンローダーは、名前付きのセクションを使用してカーネルモードコンポーネントにコマンドを渡します。 | ||
ネイティブAPI | BlackLotusのHTTPダウンローダーは、さまざまなWindowsネイティブAPIを使用して、侵害したマシンでコードを実行します。 | ||
共有モジュール | BlackLotusのHTTPダウンローダーは、C&Cサーバーから受信したDLLをロードして実行できます。 | ||
常駐化 | OS起動前:ブートキット | BlackLotusブートキットは、EFIシステムパーティションに展開され、起動時に実行されます。 | |
権限昇格 | 権限制御機構の悪用:ユーザーアカウント制御のバイパス | BlackLotusのインストーラは、ユーザーアカウント制御をバイパスして特権の昇格を試みます。 | |
アクセストークンの操作:トークンによるプロセスの作成 | BlackLotusのHTTPダウンローダーは、WTSQueryUserTokenとCreateProcessAsUserWを使用して、ダウンロードしたペイロードをローカルシステムの特権で新しいプロセスで実行できます。 | ||
防衛機能の回避 | デバッガの回避 | BlackLotusのコンポーネントは、カーネルモードまたはユーザーモードのデバッガが標的ユーザーのマシンで実行されているかどうかを検出するために、さまざまな手法を使用します。 | |
実行フローのハイジャック: | BlackLotusブートキットは、Windowsブートプロセスの初期段階で使用されるさまざまなコンポーネント(Windowsブートマネージャー、Windows OSローダー、Windowsカーネルおよび特定のドライバ)をハイジャックし、多くのWindowsセキュリティ機能(VBS、Windows Defender)を無効化して検出を回避し、カーネルモードおよびユーザーモードのコンポーネントを秘密裏に実行します。 | ||
防御策の妨害 | BlackLotusのコンポーネントは、検出を回避するためにBitLockerとWindows Defenderを無効化できます。 | ||
攻撃の痕跡の削除:ファイルの削除 | BlackLotusのインストーラは、EFIシステムパーティションにファイルを展開した後で、自身を削除します。また、CVE-2022-21894の攻撃に成功すると、BlackLotusは攻撃チェーンで使用したすべてのファイルをEFIシステムパーティションから削除して、攻撃の痕跡を削除します。 | ||
攻撃の痕跡の削除:常駐化の消去 | BlackLotusは、ESPからすべてのブートキットファイルを削除し、被害者の元のWindowsブートマネージャーを復元して、自身をアンインストールできます。 | ||
なりすまし:正規のモジュールの名前や場所を模倣する | BlackLotusは、grubx64.efi(侵害されたマシンでUEFIセキュアブートが有効な場合)またはbootmgfw.efi(UEFIセキュアブートが無効な場合)など、正規のファイル名を使用してESP上に展開したファイルを隠ぺいします。 | ||
レジストリの変更 | BlackLotusのインストーラは、Windowsのレジストリを変更し、WindowsのHVCIセキュリティ機能を無効にします。 | ||
ファイルや情報の難読化 | BlackLotusコンポーネントに埋め込まれたほぼすべての文字列は、いくつかの暗号を組み合わせた独自の方法で暗号化され、必要なときに復号化されます。 | ||
ファイルや情報の難読化:動的なAPI解決 | BlackLotusのコンポーネントは、名前の代わりにAPI名のハッシュを使用して、動的にAPIを解決します。 | ||
ファイルや情報の難読化:ペイロードの埋め込み | BlackLotusコンポーネントに埋め込まれているほぼすべてのファイルは、AESを使用して暗号化されています。 | ||
OS起動前:ブートキット | BlackLotusブートキットは、EFIシステムパーティションに展開され、OSを起動する早期の段階で実行されるため、OSの起動プロセスを制御し、検知を回避できます。 | ||
プロセスインジェクション:ダイナミックリンクライブラリのインジェクション | BlackLotusのHTTPダウンローダーは、プロセスホローイングの手法により、新しく作成したsvchost.exeプロセスにDLLを挿入できます。 | ||
プロセスインジェクション:PE(Portable Executable)の注入 | BlackLotusのドライバは、HTTPダウンローダーのPE(Portable Executable)をwinlogon.exeプロセスに挿入します。 | ||
ルートキット | BlackLotusのカーネルドライバは、ESPにあるブートキットファイルが削除されないように保護します。 | ||
仮想化/サンドボックスの回避:システムチェック | BlackLotusは、サンドボックス固有のレジストリ値をチェックするなど、さまざまなシステムチェックを行い、仮想化環境や解析環境を検知して回避します。 | ||
検出 | デバッガの回避 | BlackLotusのコンポーネントは、カーネルモードまたはユーザーモードのデバッガが標的ユーザーのマシンで実行されているかどうかを検出するために、さまざまな手法を使用します。 | |
システム情報の検出 | BlackLotusは、侵害したホストのシステム情報(IP、GPU、CPU、メモリ、OSバージョン)を収集します。 | ||
システムの場所の検出 | BlackLotusは、侵害したホストで、ro-MD、ru-MD、ru-RU、uk-UA、be-BY、hy-AM、kk-KZのシステムロケールの1つが確認されると、実行を終了します。 | ||
システムネットワーク構成の検出 | BlackLotusのHTTPダウンローダーは、api.ipify[.]orgサービスをリクエストして、侵害したホストのパブリックIPを判断します。 | ||
システムネットワーク構成の検出:インターネット接続の検出 | BlackLotusのHTTPダウンローダーは、マイクロソフトのwww.msftncsi[.]com/ncsi[.]txtに対してクエリーを行い、インターネット接続を確認します。 | ||
仮想化/サンドボックスの回避:システムチェック | BlackLotusは、サンドボックス固有のレジストリ値をチェックするなど、さまざまなシステムチェックを行い、仮想化環境や解析環境を検知して回避します。 | ||
C&C(コマンド&コントロール) | アプリケーションレイヤープロトコル:Webプロトコル | BlackLotusは、C&Cとの通信にHTTPSを使用します。 | |
データのエンコーディング:標準エンコーディング | BlackLotusは、C&C通信で使用する暗号化したデータをURLセーフのbase64でエンコードします。 | ||
暗号化されたチャンネル:対称暗号方式 | BlackLotusは、C&Cから受信したメッセージを復号化するために、CBCモードの256ビットAESを使用します。 | ||
暗号化されたチャンネル:非対称暗号方式 | BlackLotusは、C&Cに送信するメッセージを暗号化するために、埋め込まれたRSA公開キーを使用します。 |