New UEFI Secure Boot flaw exposes systems to bootkits, patch now

CVE-2024-7344として追跡されている新しいUEFIセキュアブートバイパスの脆弱性は、マイクロソフトが署名したアプリケーションに影響し、セキュアブート保護が有効であってもブートキットを展開するために悪用される可能性がある。

この脆弱な UEFI アプリケーションは、複数のサードパーティソフトウェア開発者が提供する複数のリアルタイムシステムリカバリツールに存在します。

ブートキットは、オペレーティングシステムがロードされる前に動作を開始し、OS の再インストールにも耐えるため、検出が困難な重大なセキュリティ脅威となります。

根本的な問題

この問題は、カスタムPEローダーを使用するアプリケーションに起因しており、このローダーは、たとえ署名されていなくても、任意のUEFIバイナリをロードすることができる。

具体的には、脆弱なUEFIアプリケーションは、信頼データベース(db)と失効データベース(dbx)に対してバイナリを検証する’LoadImage’と’StartImage’のような信頼されたサービスに依存していません。

このコンテキストでは、’reloader.efi’は、初歩的な暗号化されたXOR PEイメージを含む’cloak.dat’からバイナリを手動で解読し、メモリにロードします。

この安全でないプロセスは、EFIパーティション上のアプリのデフォルトOSブートローダを脆弱な「reloader.efi」に置き換え、その公称パスに悪意のある「cloak.dat」ファイルを仕込むことで、攻撃者に悪用される可能性がある。

システムブート時に、カスタムローダーはセキュアブートの検証なしに悪意のあるバイナリを復号化し実行します。

UEFI Secure Boot process
UEFI セキュアブートプロセス
Source:ESET

影響範囲

この脆弱性は、システムのリカバリ、ディスクのメンテナンス、またはバックアップを支援するために設計された UEFI アプリケーションに影響し、汎用の UEFI アプリケーションではありません。

ESETのレポートでは、以下の製品とバージョンが脆弱性として挙げられている:

  • バージョン 10.2.023_20240919 以前の Howyar SysReturn
  • バージョン 10.2.023-20240927 より前の Greenware GreenGuard
  • Radix SmartRecovery (バージョン 11.2.023-20240927 以前)
  • Sanfong EZ-back System バージョン10.3.024-20241127以前
  • WASAY eRecoveryRX バージョン8.4.022-20241127以前
  • CES NeoImpact バージョン10.1.024-20241127以前
  • SignalComputer HDD King バージョン10.3.021-20241127以前

攻撃者は、上記のアプリケーションがターゲットコンピュータに存在しない場合でも、CVE-2024-7344 を悪用する可能性があることに留意する必要があります。ハッカーは、これらのアプリケーションから脆弱性のある「reloader.efi」バイナリのみを展開することで、攻撃を実行することができます。

ただし、上記のアプリケーションや影響を受けるバージョンを使用している場合は、攻撃対象領域をなくすために、できるだけ早く新しいリリースに移行する必要があります。

ESETは、Secure Bootが有効になっているシステムでこの脆弱性が悪用される可能性があることを示すビデオを公開している。

修正および緩和策

マイクロソフトは、CVE-2024-7344 に対するパッチをリリースしました。

ESETは、2024年7月8日にこの脆弱性を発見し、影響を受ける関係者に協調的に開示するため、CERTコーディネーションセンター(CERT/CC)に報告した。

影響を受けるベンダは自社製品でこの問題を修正し、マイクロソフトは1月14日のパッチ・チューズデー・アップデートで証明書を失効させた

その後数カ月間、ESETは影響を受けるベンダーと協力して、提案されたパッチを評価し、セキュリティ問題を解消しました。

最終的に、2025年1月14日、マイクロソフトは脆弱なUEFIアプリケーションの証明書を失効させ、そのバイナリを実行しようとする試みをブロックしました。

この緩和策は、最新のWindowsアップデートをインストールしたユーザーに自動的に適用される。ESETはまた、重要なシステムの管理者が、失効が正常に適用されたかどうかを手動で確認するために使用できるPowerShellコマンドも公開している。