web-dev-qa-db-ja.com

マイクロソフトが義務付けたUEFIセキュアブートは本当に安全ですか?

最近、UEFIセキュアブート機能と、MicrosoftがすべてのWindows 8認定x86システムでデフォルトで有効にすることを要求する方法について、いくつかの記事を読みました。理論的には、それは良い考えのように聞こえます。システムは、ブートする前にブートローダーの整合性をチェックします。ただし、いくつかの複雑な問題もあります。

主な問題は、Windows 8認定のx86ハードウェアでMicrosoft以外のOSを実行したい場合に発生します。ハードウェアでセキュアブートが有効になり、デフォルトでMicrosoftのキーのみがインストールされる可能性が高いため、ユーザーはいくつかの方法のいずれかで問題を回避する必要があります。

  1. セキュアブートを無効にする-これはもちろん、最も理想的でないソリューションです。ただし、一部のユーザーにとっては、それが唯一の利用可能なオプションである場合があります。
  2. カスタム証明書をインストールします-技術的な傾向があるオプションですが、通常のエンドユーザーが簡単に検討できるオプションではありません。
  3. Microsoftによって署名されたブートローダーを備えたOSを選択してください-これはおそらくオプションを制限するかもしれませんが、最もエンドユーザーフレンドリーです。 Fedoraが発表しました これらはこれらのオプションに含まれることになります。これには、UEFIを変更したり、カスタム証明書をいじったりする必要はありません。Microsoftが署名したOSをインストールして実行するだけです。
  4. ブートローダーにMicrosoftの署名を取得してください-実際のコストがかかるため($ 99の1回限りの料金)、おそらく最も好ましくないオプションです。ただし、独自のディストリビューションを作成していて、それを友達と共有したい場合に便利です。

しかし、これらの最後の2つのオプションは、本当に私の懸念事項です。それがのみの場合、すべてのブートローダーにMicrosoftが署名する特権を得るのに$ 99が1回必要ですが、それは本当にマイクロソフトが署名したルートキットから何百万ドルもの利益を得ようとするマルウェア作成者にとっての大きな障壁は何ですか?

ここに欠けているものはありますか、またはこのセキュアブート要件(およびそれをサポートするために構築されたすべて)は本当にセキュリティ強化の誤った感覚につながる可能性がありますか?システムが実際にこのように悪用されると、どのような複雑さが発生する可能性がありますか?新しいCRLが公開されるたびにUEFIを更新する必要がありますか?

19
Iszi

Matthew Garrett は、UEFIセキュアブートに関するいくつかの素晴らしいブログ投稿を持っています。あなたの質問について彼は writes

誰でも$ 99を支払ってバイナリに署名することができます。では、なぜマルウェア作成者はそれをしないのでしょうか?手始めに、Verisignがあなたを認証してアクセスを引き渡すための何らかの形のもっともらしいIDを提供する必要があります。したがって、確かに、ある種の偽のIDを提供します。それは地方自治体を苛立たせる傾向がある種類のことです-あなたはたくさんのコンピュータに侵入することについて話しているだけでなく、あなたが捕まった場合にあなたに本当に悪いことが起こるような犯罪を犯すことについて話しているのです。第2に、システムにアクセスする唯一の方法は、Verisignから送信される物理的なスマートカードを使用することです。そのため、実際の物理アドレスも引き渡さなければならず、何らかのリダイレクトサービスを使用したとしても、追跡がさらに容易になります。かなり重大な現実のリスクを負っています。

スマートカードにキーのアクセス資格情報を保存することは、UEFIセキュアブートがセキュリティシアターだけではないことを確信させるちょっとした新しい情報でした。マシューが言ったように、それはあなたをより追跡可能にします。また、盗難の可能性も大幅に減少します。これは、私の意見では、不正な署名キーを取得するための賢明な方法でした。

署名されたマルウェアが出現する可能性はまだかなりあります。ただし、大規模な攻撃の場合は、最初に署名キーを取り消すことで緩和し、次に、物理アドレスを介して署名者を追跡することで、緩和することが容易になります。

システムは完璧ではありませんが(達成可能であったものと比較してかなり不足しています)、ブートキットの作成がより困難になります。また、バッファオーバーフロー攻撃が依然として実行可能であっても、ASLRとNXビットがマルウェアに対してもう少し安全にするのと同じように、セキュアブートは完全に時間の無駄ではありません。

CRLについては、OSがBIOSに新しい失効リストをプッシュするための標準のUEFIインターフェイスがあると聞きました。これにより、自動更新が非常に便利になります。

10
Perseids

実際のセキュリティ強化は、企業または政府機関向けに購入する場合に作成されますが、サポート性に関連するコストがかかります。 Microsoftデスクトップ以上のものを必要とせず、購入したシステムを変更しないホームユーザーの大多数にとっては、セキュリティも強化されます。デュアルブート(非常に小さな市場勢力)を必要とするホームユーザーの場合、機能が定義によって無効になるため、生活が複雑になり、セキュリティがほとんどまたはまったく強化されません。

ブートプロセスの途中で基本コンポーネントの検証を行うこの信頼されたブートパラダイムが使用されるコンテキストを検討してください。大企業のセキュリティ保護を担当している場合、その機能は非常に魅力的で、仕事を行うためのツールセットに大幅に追加されます。 OSを購入し、ハードウェアを有効にして企業をロックするための強力なインセンティブがあります。

Linuxをデュアルブートしたいホームユーザーの場合、それは大きな痛みです。もちろん、あなたはあなたのホームシステムを物理的に制御していて、その機能を無効にすることができます。 Linuxエクスペリエンスをさらに複雑にします。

システムを物理的に制御し、OSの基本的なコンポーネントを変更する仮想攻撃の有効性を制限したい場合は、セキュリティが追加されます。

このソリューションには、セキュリティ以外にも多くの機能があります。まず、これらのシステムはアップグレードや変更が困難になるため、管理の複雑さが増します。また、OSがウォールドガーデンOSと競合しているときに、幅広いサポートで知られているOSにウォールドガーデン効果を作成します。さらに、ユーザーの匿名性が低下します。今日、市場勢力は壁に囲まれた庭園と匿名性の喪失を支持しています。

Linuxコミュニティの懸念は、この変更により、ユーザーがカジュアルにLinuxに移行することがより困難になることです。それは当然の懸念です。ただし、セキュリティ上の問題はありません。セキュリティに関しては、大多数のユーザーにとって、セキュリティが強化されます。

5
zedman9991

PCのセキュアブートは柔軟性がなく、システムが何らかの理由で壊れた場合にいくつかのオプションを使用できます。また、複数の利害関係者がいる環境でスケーリングするようには設計されていません。会社がセキュアブートを使用して、適切なWindowsインストールだけでなく、特定のポリシー適用ツールのセットも確実に使用したいとします。箱から出すことはできません。

コンポーネントが測定されるが、後でオプションでのみ検証されるトラステッドブートは、これらの制限のために正確に発明されました。したがって、MicrosoftがTrusted Bootを定義した標準委員会のメンバーであるにもかかわらず、別のメカニズムが必要であるという事実は、技術的な観点からはばかげています(よく知っているにもかかわらず誤った決定をする)。明らかに、セキュリティとは異なる目的が考えられています。

セキュアブートを使用する最良の方法は、オープンソースハイパーバイザーのような中立的なポリシー実施エンジンをロードすることです。このエンジンは、トラステッドブート方式で追加のコンポーネントを測定してロードします。このようにすれば、すべての柔軟性が得られますが、実際にはハードウェアTPMは必要ありません。このハイパーバイザーが安全であり、何が起こっているかを正しく報告することを望んでいるだけです。設計は長年にわたって知られていますが、もちろんMSはそのような中立的なソリューションを提供することにまったく関心がありません。

あなたの質問ですが、コードの署名は、誰がコードの署名を要求しているかを適切にチェックすることで最も簡単に保護されます。これは$ 99のコストで妥当なようです。マルウェアの作成者はおそらくIDを提供することにそれほど熱心ではなく、オープンソースのブートローダーは十分な安定性と安全性を備えているため、高い評価を維持できます。それはまた、政府レベルのスパイ活動と今後のサイバー戦争に対してまったく役に立たないことを意味します。顧客はキーを持っていない唯一の人になります:-)

3
pepe