たくさん UEFIブートキット わずか数年で、実験段階の概念から、防御側と製造業者にとって深刻な悩みの種へと変化しました。この分野では、概念実証と運用上の脅威の境界線が曖昧になっており、例えば以下のような事例が挙げられます。 黒蓮 あるいは最近の発見 Linux上のBootkitty 彼らはそれを十分に証明しています。
この記事では、 明確な言語と技術的な詳細 価値を付加する場合、2012年の最初のPoCから最近のキャンペーンまで、この分野の研究者や企業によって公開された最も関連性の高いものは次のとおりです。 CVE-2024-7344 現実世界で実際に機能するセキュア ブート、回避テクニック、IoC、検出および緩和策をバイパスできるようになります。
UEFI ブートキットとは何ですか? なぜそれほど問題になるのですか?
UEFIブートキットは、 オペレーティングシステムの前の流れを制御する能力を持つ ブーツチェックを無効化し、高い権限でコンポーネントをロードします。このように低いレベルで動作させることで、 従来のウイルス対策 そして、特定の 「安全発進対策」 欠陥や許容可能な構成を悪用する場合。
現実世界では、永続的なUEFIインプラントや技術がすでに観察されている。例えば、 ロジャックス, モザイク回帰 o ムーンバウンス俳優がいかに ファームウェアを占有する ブートの重要な段階をマスターし、 フォレンジック分析 および修復。
守るために WindowsMicrosoft は複数のレイヤーを連結します。 安全な立ち上げ (UEFIは信頼できる証明書を使用してローダーを検証します) トラステッドブート (カーネルは残りのコンポーネントを検証します) エラム (ブートドライバを検査するEarly Launch Antimalware)と メジャーブーツ (TPM測定とリモート認証)。これらは有用ではあるが、絶対的な障壁ではない。 エコシステム自体の脆弱性 UEFIまたは過度に広範な信頼設定。さらに、 シールドウィンドウ Credential Guard、BitLocker、WDAC を使用することで、長期的な持続性リスクを軽減します。
PoCから現実世界へ:タイムラインと主要人物
この旅は2012年のPoCから始まりました。 アンドレア・アリエヴィ UEFI上のWindows向けの脆弱性攻撃、そしてEfiGuard、ブートバックドア、UEFIブートキットといったプロジェクトが続いた。しかし、実際に発生した事例が文書化されるまでには何年もかかった。 エスペクター (ESET、2021年)または FinSpyブートキット (カスペルスキー、2021年)、そして2023年に突如登場した。 黒蓮、最初のUEFIブートキット 完全に更新されたシステムでセキュアブートをバイパスする実験室環境では一般的です 仮想マシン上でマルウェアをテストする 生産的なインフラストラクチャを危険にさらすことなく、PoC と検出を評価します。
これまで一つだけ変わらなかったのは、目標は Windows コンピューターのみその想定は、2024 年 11 月に VirusTotal と呼ばれる UEFI アプリが VirusTotal に登場したときに打ち砕かれました。 ブートキット.efi分析の結果、作成者によって「ブートキット」と名付けられたものが発見されました。 ブーツキティ、 に設計されました Linux(Ubuntu)テレメトリによると、実際に展開されたことは確認されていない。著者自身も、韓国の訓練プログラムに関連している。 ベスト・オブ・ザ・ベスト(BoB)、彼らはそれが コンセプトの証明 意識を高めることを目的としています。
Bootkittyバイナリは、 自己署名証明書つまり、セキュアブートが有効になっていない限り、 攻撃者の証明書をインストールするとはいえ、そのロジックは、アクターがメモリ内でコンポーネントをパッチする方法を示しています。 ローダー(GRUB) と Linuxカーネル チェックをバイパスします。
Bootkittyの詳細:アーティファクト、互換性、そして変更内容
ブートキットには、ASCIIアートを印刷する未使用の機能が含まれています。 ブーツキティ および著者候補のリストが表示されます。また、各起動時のテキスト文字列と参照も表示されます。 黒猫 その出力内および関連するカーネルモジュール内に、ALPHV/BlackCatランサムウェアとは無関係のものが存在します。 BootkittyはC言語で書かれていますALPHV は Rust で開発されています。
互換性は限られています。タッチする機能を見つけるには、 エンコードされたバイトパターン (古典的なブートキットの手法)ですが、選択されたパターンは複数のカーネルやGRUBバージョンを十分にカバーしていません。その結果、このインプラントは非常に限られた構成でしか機能せず、さらに、 パッチのオフセットを修正 カーネル解凍後:オフセットがバージョンと一致しない場合、ランダムデータが上書きされ、 約束する代わりに電話を切る.
ブーツは シム Bootkittyを実行して、まず状態を問い合わせます セキュアブート 2 つの UEFI 認証プロトコルにフックを配置します。 EFI_SECURITY2_ARCH_PROTOCOL.ファイル認証 y EFI_SECURITY_ARCH_PROTOCOL.ファイル認証状態どちらの場合も、出力を次のように設定します。 EFI_成功これにより、OS 実行前の PE イメージ整合性チェックが事実上無効になります。
BootkittyはESP上のハードコードされたパスから正当なGRUBをロードします(/EFI/ubuntu/grubx64-real.efi)、メモリにパッチを当て、 主要な機能をフックする 実行される前に。
GRUB にフックして Linux カーネルを解凍する
インプラントは機能を変える 開始画像 モジュールの ペイイメージ GRUBの、すでにロードされているPEバイナリ( EFIカーネルスタブ、vmlinuz.efi/vmlinuz)。カーネルがすでにメモリ内にあることを利用し、実際のカーネルイメージを解凍するルーチンにフックを配置します(おそらく zstd_decompress_dctx ビルドによって異なりますが、解凍したら ホットパッチ.
また、機能も変更します grub_verifiers_openは、ロードされた各ファイル(モジュール、カーネル、設定など)の整合性を検証するかどうかを決定します。フックは即座に返されるため、 署名の検証を回避. 一方、 shim_lock_verifier_init これは混乱を招きます。より厳格な検証フラグを強制します(GRUB_VERIFY_FLAGS_SINGLE_CHUNK)ですが、この関数は他のフックによって呼び出されず、 無関係.
カーネルが解凍されると、Bootkittyコードは3つのメモリ変更を適用します。 バージョン/バナー文字列 カーネルから「BoB13」というテキストを削除し、 モジュール_sig_check() カーネルをロードするには0を返す 署名されていないモジュール; プロセスの最初の環境変数を置き換えます INIT 注入する LD_PRELOAD=/opt/injector.so /init ユーザー空間の先頭。
注射による LD_PRELOAD これは、ELF共有オブジェクトを優先し、関数をオーバーライドする典型的な戦術です。このチェーンには特異な点があり(LD_PRELOADの次に「/init」が含まれています)、これが 未完成のPoC 洗練された操作ではなく、注入されたとされるバイナリは確認されなかったが、その後の第三者による文書では、それらは以下の目的にのみ使用されていると示唆されている。 追加ステージをロードする.
指標、症状、そして簡単な治療法
Bootkittyが存在する場合、ヒントを表示することができます。コマンド uname -v テキストが変更されたカーネルバージョンが表示され、 dmesg バナーが改変されているように見える場合もあります。また、プロセスが PID1 (init) は、 LD_PRELOAD 検査 /proc/1/環境、正当なシステムにおける異常な信号。
実験室でのテストでは、カーネルは 汚染された Bootkittyで起動した後、セキュアブートが有効になっているコンピュータで別の経験的チェックを行うには、 署名されていないモジュール: ホットローディングが許可されている場合、 モジュール署名チェック パッチが適用されました。
ブートキットがGRUBバイナリを中間物に置き換えることによってインストールされた場合(観察された動作)、回復する簡単な方法は、 正規のGRUB から /EFI/ubuntu/grubx64-real.efi 元のルートに戻る /EFI/ubuntu/grubx64.efi のために シム 実行すると、ブートチェーンは インプラント.
BCDropper と BCObserver: 関連性があるか、それとも単なる偶然か?
Bootkittyというニックネームの未署名カーネルモジュールがBootkittyと一緒に発見された。 BCドロッパーブートキットと手がかりを共有する文字列 ブラックキャット メタデータとデバッグパス、および ファイルの非表示 接頭辞に「インジェクター」が含まれる(変数 LD_PRELOAD /opt/injector.so を指します。
BCDropperは /opt/オブザーバー 埋め込みELF( BCObserver)を起動し、 /bin/bashこのかなり単純なコンポーネントは、 gdm3 アクティブになってからカーネルモジュールをロードします /opt/rootkit_loader.ko 使用して finit_moduleシステムが完全に起動した後に必ず実行してください。
関連性の兆候はあるものの、両方の要素が同じ作者によるものであるか、あるいは連携して動作するように設計されているかを保証することはできません。さらに悪いことに、メタデータに記載されているカーネルバージョン(6.8.0-48-ジェネリック)は、 ブートキット.
関連するIoC
議論された研究結果には、以下のアーティファクトが関連している。その価値は主に referencia および研究室:
SHA-1 | アーカイブ | 検出 | 説明 |
35ADF3AED60440DA7B80F3C452047079E54364C1 | ブートキット.efi | EFI/エージェント.A | Bootkitty、Linux 向けの UEFI ブートキット。 |
BDDF2A7B3152942D3A829E63C03C7427F038B86D | ドロッパー.ko | Linux/ルートキット.エージェント.FM | BCDropper、カーネルモジュール。 |
E8AF4ED17F293665136E17612D856FA62F96702D | オブザーバー | Linux/ルートキット.エージェント.FM | BCObserver、ユーザーが実行可能。 |
BlackLotusとCVE-2022-21894:脆弱性の洪水を招いたマイルストーン
ブラックロータスは2022年から販売されており、価格は 5.000 USD (アップグレードごとに追加要素あり)そして、 VM/デバッグ回避対策特定の国(アルメニア、ベラルーシ、カザフスタン、モルドバ、ルーマニア、ロシア、ウクライナ)を避けるためのジオフェンシング、そして最も重要なのは、 CVE-2022-21894 (バトンドロップ) セキュアブートをバイパスする 完全にパッチが適用された Windows 10/11 マシン上で堅牢な永続性を実現します。
セキュリティコミュニティが説明したフローには、最初のフェーズとして 保護の無効化 オペレーティングシステムの脆弱性、セキュアブートのレガシー脆弱性の悪用、および マシン所有者キーの登録 攻撃者によって制御される。さらに再起動すると、インプラントは カーネルドライバー ユーザーモードコンポーネントタイプ ダウンローダー 指揮統制通信を管理し、 追加料金.
積極的な防御のために、コミュニティは運用ルールを公開しています。例えば、SOC Primeは、以下のものを検出するSigma検出機能を提供しています。 ファームウェアファイルの不審な作成 System32で非システムプロセスによって、または HVCIの無効化 ログ記録を介して。MITRE ATT&CK(例:T0857、T1562、T1112)にマッピングされたこれらのシグナルは、 異常な活動を探す これは通常ブートキットに付属しており、実用的なガイドもあります。 Process Explorerで悪意のあるプロセスを検出する Windows 環境では。
CVE-2024-7344: 「reloader.efi」経由で信頼できない UEFI バイナリをロードする
2024年に特に重要な脆弱性が発見されました。 CVE-2024-7344、証明書によって署名された複数のリカバリスイートに影響します マイクロソフト コーポレーション UEFI CA 2011問題の根本は、 カスタムPEローダー UEFIアプリケーションで リローダー.efi安全なAPIの代わりに ロードイメージ/スタートイメージバイナリはファイルの内容を復号して実行する クローク.dat のポリシーに従って署名を検証せずに 安全な立ち上げ .
このベクトルは、ソフトウェアがインストールされているコンピュータに限定されず、昇格された権限を持つ攻撃者が 脆弱なバイナリ マイクロソフトのサードパーティUEFI CAを信頼するシステムのESP(EFIパーティション)に侵入し、 UEFIが署名されていません 起動中に問題が発生しました。影響を受ける製品には、Howyar、Greenware、Radix、SANFONG、Wasay、CES、Signal Computerのスイートが含まれます。 修正および取り消し 14年2025月XNUMX日。
保護を確認するには en PowerShellの 昇格した権限を持つ と Linux (LVFS/dbxtool):
# ¿El sistema confía en la UEFI CA 2011 de Microsoft? (posible exposición)
::ASCII.GetString((Get-SecureBootUEFI db).bytes) -match 'Microsoft Corporation UEFI CA 2011'
# Revocación instalada (64 bits)
::ToString((Get-SecureBootUEFI dbx).bytes) -replace '-' -match 'cdb7c90d3ab8833d5324f5d8516d41fa990b9ca721fe643fffaef9057d9f9e48'
# Revocación instalada (32 bits)
::ToString((Get-SecureBootUEFI dbx).bytes) -replace '-' -match 'e9e4b5a51f6a5575b9f5bfab1852b0cb2795c66ff4b28135097cba671a5491b9'
# Linux (dbxtool)
dbxtool --list | grep 'cdb7c90d3ab8833d5324f5d8516d41fa990b9ca721fe643fffaef9057d9f9e48'
dbxtool --list | grep 'e9e4b5a51f6a5575b9f5bfab1852b0cb2795c66ff4b28135097cba671a5491b9'
この事件により、 信頼の連鎖: Microsoft は、消費者向けおよび企業向け UEFI コンピューターに広く普及している 2 つの証明書を管理しています (Windows プロダクション CA 2011 y UEFI CA 2011 第三者向け)現在実施中の計画では、証明書への移行が予定されている。 2023BlackLotusなどの事件や、数年前に署名された脆弱なブートローダーの蔓延を受けて、コンピュータ上で セキュアコアサードパーティのUEFI CAは通常 デフォルトでは無効.
セキュアブートの実用的な保護とカスタマイズ
応募を超えて UEFIの失効 ファームウェア/OSを最新の状態に保つ(Windows Updateの LVFSなど)では、攻撃対象領域を減らす対策があります。 ESPへのアクセス セキュリティルールをカスタマイズ 安全な立ち上げ 信頼を必要なものに限定する( NSA)を展開する TPMによる認証 ブート状態を参照値と比較してリモートで検証します。
Windowsでは、 セキュアブート + トラステッドブート + ELAM + メジャーブート これは、ローダー検証、ブートコントローラの検査、そして管理者によって署名されたレコードといった階層化された障壁を提供します。 TPM これにより、ファイアウォールは「クリーン」なコンピュータと逸脱したコンピュータを区別することができます。管理された環境では、これにより 時間 de 検出と封じ込め.
Linuxでは、失効とESP制御に加えて、次のようなシグナルを監視する価値があります。 LD_PRELOAD 過程の中で INIT、州 汚染された カーネルのモジュール読み込みイベントを相関させる(例: finit_module)珍しいルート(/opt/*.ko)の試みを検出する 固執 早い。
ツール、カバレッジ、MITRE ATT&CK
ESETによれば、収益上位20のエンドポイントベンダーの中で、 UEFIファームウェアスキャナー 機器保護ソリューションにおいて、他のメーカーもUEFI関連の技術を提供していますが、その目的は必ずしも一致していません。 直接ファームウェア検査UEFI攻撃は散発的ではあるが、 完全なコントロールと粘り強さ ほぼ絶対的に、このレイヤーに投資することで大きな違いを生み出すことができます。
MITRE ATT&CK の観点から見ると、観察された動作はいくつかの手法に当てはまります。 OS 起動前: ブートキット (T1542.003), 共有モジュール/LD_PRELOAD (T1129)、 開発 マルウェア (NUMNUMX) と使用 証明書(T1587.002)、プラス ルートキット(T1014), 防御力低下(T1562) y アーティファクトを隠す(T1564) カーネルモジュールの場合 彼らは隠す 彼ら自身。
- T1542.003: OS 実行前の永続性を保つための ESP 上のブートキット。
- T1129: init プロセスで LD_PRELOAD を使用してプリロードします。
- T1014: ルートキット機能を備えたカーネル モジュール。
- T1562 / T1564: チェックを無効にしてシステムから非表示にします。
Linuxは無敵ではない:Bootkitty事件と注目の新たな名前
長年にわたり、一般的な見解では、Windowsの露出の増加と、 macOSやLinuxの「侵入不能性」現実はもっと微妙だ。それぞれのモデルやシェアによって標的は異なるが、免責されるわけではない。 ブーツキティ Linuxでは、ブートキットを作成する知識もこのエコシステムに存在することが示されていますが、この特定のケースでは、 学術的概念実証 サポートは限定的です。
ランサムウェアの亜種についても言及されている。 ハイブリッドペティアUEFIブートキットの機能を統合する。アップロードされたサンプルは VirusTotalの 2025 年にポーランドから発表されるデータは最近の動向を示唆しているが、注意して扱う必要がある。 注意 独立した分析と確固たる帰属が行われるまでは。
重要なのは、防御は完全なブートチェーンをカバーし、デフォルトの信頼を最小限に抑える必要があることを理解することです。 第三者の署名 使用されていないEFIパーティションを監視して統合する 有用なテレメトリ (汚染されたカーネル、モジュール イベント、GRUB チェッカーまたは機密性の高い UEFI 変数の変更) を時間内に検出します。
UEFIリスクの現状は、 教育目的のPoCサービスとして販売されているブートキットや、署名されたコンポーネントの脆弱性など、期限内に失効させなければ、 信頼できないOS実行前ファームウェアと失効リストを最新に保ち、信頼サークルを減らし、ESP を監視することは、この脅威ファミリーに対して防御側をより強力な立場に置くための対策です。
バイトの世界とテクノロジー全般についての情熱的なライター。私は執筆を通じて自分の知識を共有するのが大好きです。このブログでは、ガジェット、ソフトウェア、ハードウェア、技術トレンドなどについて最も興味深いことをすべて紹介します。私の目標は、シンプルで楽しい方法でデジタル世界をナビゲートできるよう支援することです。