web-dev-qa-db-ja.com

セキュアブートは本当に安全ですか?

セキュアブートの概念は非常に興味深いものでした。知らないからといって、それについてよく知っているとは言えませんが、その主な概念は理解していると思います。

セキュアブートは、コンピューターが起動している実行可能ファイルの署名を確認します。 (通常、ケースはブートローダーです)

セキュアブートのないコンピュータでは、攻撃者は独自のプログラムを使用して、アーキテクチャに応じて\EFI\Boot\bootx64.efiまたは\EFI\Boot\bootia32.efiを上書きすることができます。彼のプログラムは、何らかの理由でマシンのOSに感染し、Windowsのブートローダーで実行を続けます。 \EFI\Microsoft\Boot\bootmgr.efi

セキュアブートは、攻撃者のEFI実行可能ファイルが署名されていないため、これを防ぎます。

しかし、それは簡単に回避できます。

攻撃者はsystemd-bootブートローダーをインストールするだけで、攻撃者のEFIファイルが呼び出され、Windowsブートローダーが機能した後に呼び出される可能性があります。

何か不足していますか?

4
ChrisK

systemd-bootにも署名する必要があります。オリジナルの署名されたgummibootは「安全な」ブートプロセスを尊重し、起動するバイナリも署名されていることを要求します。 https://www.rodsbooks.com/efi-bootloaders/secureboot.html

したがって、それほど簡単なことではありません。しかし、Windowsによってブートプロセスの別の部分(Secure Bootと呼ばれますが、UEFIセキュアブートの一部ではありません)に対する攻撃があり、一部は無効になります保護:

X86アーキテクチャに関連するsecureという用語は常に相対的です。自動車事故の評価のように見なければなりません-自動車は衝突に耐えることができません、いくつかはそれを致命的にするためにもう少し力をかけるだけです。

これは、すべてのセキュリティにある程度備わっていますが、他の設計では、「オープンワイド」から「電子顕微鏡と集束イオンビームでクラックが必要」までの急なSカーブがあります。 x86 + Windowsシステムを保護する取り組みは、シーブのすべての穴を塞いで耐航性を持たせることに似ています。ただし、一部のレガシー機能が水を通すというシーブの元の機能に依存している場合は、すべてのプラグを自動的に開く必要があります。

4
ZOMVID-20

理論は、各レベルが署名チェックを正しく実装している場合にのみ、次のレベルのインスタンスに署名するというものだと思います。

言い換えると、systemd-bootは署名チェックを行い、検証に合格したファイルのみをロードすることになっています。

明らかに理論と実践の間にギャップがあるかもしれません...

3
Douglas Leeder