このリポジトリには、UEFIシステムに影響を与えるSecure Boot回避の脆弱性であるCVE-2024-7344に関連する研究資料が含まれています。この脆弱性の技術的分析、攻撃フローのドキュメント、および管理された環境で脆弱な動作を再現するために作成された再現アプリケーションを一元管理しています。また、セキュリティ研究者がこの脆弱性に関連する技術を理解、研究、実験するのに役立つドキュメントと研究リソースも含まれています。
CVE-2024-7344は、ESETリサーチチームによって最初に発見され、責任を持って開示されました。開示の調整はCERT/CCが支援しました。公式およびコミュニティのリファレンス:
このリポジトリには、CVE-2024-7344と同じ脆弱性クラスを再現する、簡略化された教育用概念実証が含まれています。さらに、元の実世界の実装の一部は、専用のUEFIセキュリティ研究を通じて分析および文書化されています。
この脆弱性の歴史的な起源、元のALRM形式、カスタムRxPEローダー、およびMicrosoftの失効後の影響を受ける製品の進化を理解することに興味がある研究者は、関連リポジトリ「UEFI-Security-Research-Howyar-SysReturn-NetCopy」を参照してください。
CVE-2024-7344の影響を受ける元のx32脆弱UEFIアプリケーションがこのリポジトリに含まれています。
x64バイナリはVirusTotalでホストされているアーカイブ内で入手可能であることが知られています。このサンプルへのアクセスにはVirusTotal Enterpriseアカウントが必要であり、本稿執筆時点ではダウンロードするためのアクセス権がありませんでした。参考までに、適切なアクセス権を持つ研究者向けに、サンプルは次のURLで見つけることができます:
CVE-2024-7344は、Microsoft署名のサードパーティUEFIアプリケーションがブートプロセス中に署名なしのUEFIバイナリを不適切に読み込んで実行することによって引き起こされる、UEFI Secure Boot回避の脆弱性です。この脆弱性により、攻撃者はオペレーティングシステムが読み込まれる前に信頼されていないコードを実行でき、Secure Bootが有効な場合でもUEFI Secure Bootの信頼チェーンを事実上破壊します。
メモリ破壊やNVRAM操作に基づく他のSecure Boot回避の脆弱性とは異なり、CVE-2024-7344は論理および設計上の欠陥の結果です。影響を受けるUEFIアプリケーションは、標準のUEFIサービス(LoadImageおよびStartImage)に依存する代わりに独自のカスタムPEローダーを実装しており、それによってSecure Bootによって通常強制されるすべての暗号検証をバイパスします。
脆弱なアプリケーションはMicrosoftのサードパーティUEFI証明書で署名され、ほとんどのシステムでデフォルトで信頼されているため、悪用はプラットフォームの非常に特権的で初期の実行段階で発生します。
Secure Bootは、ファームウェアからオペレーティングシステムまでのプラットフォームの信頼チェーンを強制するように設計されたUEFIの主要なセキュリティ機能です。その主な目的は、ブートキットなどの不正または悪意のあるブートコンポーネントがブートプロセス中に実行されるのを防ぐことです。
大まかに言えば、Secure BootはUEFI実行可能ファイルが実行を許可される前に暗号的に検証することによって機能します。この検証は、ファームウェアによって維持される2つのデータベースを使用して実行されます:
UEFIアプリケーションは、次のいずれかの場合に実行が許可されます:
デフォルトでは、ほとんどのシステムには次の証明書がdbで信頼されて出荷されます:
CVE-2024-7344の影響を受ける脆弱なアプリケーションは、Microsoft Corporation UEFI CA 2011証明書で署名されています。この証明書はベンダーやプラットフォーム全体で広く信頼されているため、そのような署名済みアプリケーション内の脆弱性は世界的な影響を与え、大多数のUEFIシステムで悪用される可能性があります。
この脆弱性は、いくつかのリアルタイムリカバリソフトウェア製品に同梱されているUEFIコンポーネントの分析中にESETリサーチチームによって発見されました。最初の偵察により、EFIシステムパーティション(ESP)にcloak.datというデータファイルとともに展開された、reloader.efiという名前のMicrosoft署名UEFIアプリケーションの存在が明らかになりました。
アプリケーションの検査により、システム起動時にディスクから追加のUEFIペイロードを読み込んで実行するように設計されていることが示されました。このような動作自体は本質的に安全ではありませんが、さらなるリバースエンジニアリングにより、このアプリケーションが標準のUEFIイメージ読み込みサービスを使用せず、読み込まれたペイロードに対してSecure Boot検証を強制しないことが明らかになりました。さらなる調査により、同じ脆弱なブートローダーが異なるベンダーの複数の製品で使用されていることが確認されました。
CVE-2024-7344の根本原因は、署名済みUEFIアプリケーション内に実装されたカスタムPEローダーの使用にあります。具体的には:
LoadImageとStartImageをバイパスすることにより、アプリケーションはSecure Boot検証を完全に回避します。その結果、Secure Bootの状態に関係なく、署名なしのUEFIバイナリを実行できます。これはSecure Bootの前提条件の根本的な違反を表しており、実装バグではなく設計レベルのセキュリティ上の欠陥として分類されます。
CVE-2024-7344の悪用には、メモリ破壊、競合状態、または複雑な悪用プリミティブは必要ありません。代わりに、脆弱なアプリケーションの意図された機能を悪用することに依存しています。
典型的な悪用ワークフローには以下が含まれます:
ブート中:
これにより、Secure Bootが有効なシステム上でBlackLotusやHybridPetyaなどのUEFIブートキットの確実な展開が可能になります。
脆弱なブートローダーは、以下のようないくつかの正当なリカバリおよびバックアップソフトウェア製品の一部として配布されました:
Microsoftは、2025年1月14日にリリースされたSecure Boot dbxアップデートを介して影響を受けるUEFIバイナリを失効させることにより、CVE-2024-7344を緩和しました。そのため、最新のUEFI失効を適用したシステムは、この脆弱性の悪用から保護されています。
似たようなことに取り組んでいますか?UEFI、カーネルセキュリティ、悪用、または他の興味深いセキュリティトピックを研究していますか?エクスプロイトの開発、技術の探求、または単にアイデアを交換したい場合は、遠慮なくご連絡ください。研究について話し合い、できる範囲で支援し、興味深いプロジェクトで協力することはいつでも歓迎しています。LinkedInでお気軽にご連絡ください。