web-dev-qa-db-ja.com

TPMを使用してBIOS / EFIを「リモート」攻撃から保護する方法

仕事用/ゲーム用コンピュータを持っています。作業側はLinuxを搭載したSSDであり、ゲーム側はWin7を搭載したSSDです(すべてのセキュリティがオフになっており、ウイルスを取得してすべてのLANを作り直す予定です)。一度に物理的に接続されているドライブは1つだけです。 2つのドライブが両方とも決して差し込まれていない限り、Win7からLinuxドライブにウイルスを感染させる唯一の方法は、BIOSに感染してから、emを切り替えるときに他のドライブを取得することです。 (これが疑わしい場合はコメントしてください。別の質問について話すことができます。)

この「TPM」のことは聞いたことがありますが、製造元が別のOSをインストールするのを止めることができる場合に限り、これは私が自分で守ろうとしていることではありません。

したがって、シナリオは次のとおりです。Win7ブートが最大に侵害されていると仮定して、BIOSを保護するには(または少なくとも改ざんされているかどうかを知ることができます)。私はこの質問を見ましたが、TPMが侵害されたBIOSを実際に検証するのに十分な低レベルである場合は、あいまいさが残ります。 私のBIOSの整合性をチェックするには?

私はこの目的のために特別なマザーボードを購入したいと思っています。

6
Mikey

ここでは2つのテクノロジーを混同しているようです。

まず、UEFIとそのセキュアブート機能があります。セキュアブートを使用して、ブートローダーとOSカーネルが改ざんされていないことを確認できます。これを行うには、ブートローダーとカーネルにデジタル署名を付ける必要があり、UEFI構成に署名の検証に必要な証明書/署名が含まれている必要があります。 ARMプラットフォーム上のWindows 8は、UEFIを使用して他のOSのインストールを効果的に防止します。ただし、UEFIはファームウェアレベルの攻撃に対する実際の保護を提供しません。

TPMについて:TPMはパッシブハードウェアチップであり、(とりわけ)の測定値(ハッシュ値)を格納するために使用されます。ソフトウェアを改ざん防止の方法で使用し、それらの測定値をレポートに使用できるようにします。 TPMが同梱されているメインボードには、ファームウェアに対する特別な要件があります。まず、Core Root of Trust for Measurement(CRTM)と呼ばれる小さな特別なファームウェアがあります。 CRTMは起動時に最初に実行され、CRTMに制御を渡す前に、CRTMと次のファームウェア(BIOSまたはUEFI)の測定値を保存します。次のファームウェアは通常、ブートローダーを測定します。ブートローダーは、OSカーネルなどをアプリケーションレベルまで測定します(詳細には、測定プロセスはもちろん複雑です)。ただし、ほとんどのブートローダーとOSは、この方法でTPMを使用しません。とにかく、メインボードにTPMが搭載されている場合は、ファームウェアが確実に測定されるはずです。

これらの測定で何ができますか? BitLocker例シーリングを使用して、HDを復号化するために必要なキーをそれらの測定値にバインドします。つまり、マルウェアがファームウェアを破損した場合、HDキーは使用できません。したがって、Windowsでは、BitLockerを使用してファームウェアの改ざんを防止できます。 Linuxに似たものはありません(何か存在する可能性はあります)。ただし、Trusted Network Connect(TNC)対応のRadiusサーバーとTNC対応のwpasupplicantを使用して、測定値をリモートで検証することができます。

9
rosso

TPMを使用して、カーネルが変更されていない(署名されている)かどうかを起動中に確認できます。また、Bitlockerフルディスク暗号化を実行できます。カーネルまたはvtルートキットをリモートでインストールする場合を除いて、実際のマシンへのリモート攻撃を防ぐことはできません。最終的に使用して、別の安全なLANにアクセスしたり、HTTPS経由で安全なリソースを取得したりするなど、要求に署名できるハードウェアルートキー。そして、はい、それはそれが正しいカーネルをロードしているかどうかをチェックするだけでBIOSも保護します。

4
Andrew Smith

TPMには、BIOSをチェックする機能があります。これは、伝播する信頼の連鎖です。静的および動的な信頼のルートの両方でプロトコルを確認し、最適なスイートを確認します。また、BIOSを保護する理由と、本当に保護したいものは何かを確認してください。

0
zeroknowledge