彼らは、TPM 2 にデータへのアクセスを可能にする 2.0 つの脆弱性を検出しました。 

脆弱性

これらの欠陥が悪用されると、攻撃者は機密情報に不正にアクセスしたり、一般的に問題を引き起こしたりする可能性があります

TPM 2.0 (Trusted Platform Module)仕様のリファレンス実装のコードに、2つの脆弱性(既にCVE-2023-1017、CVE-2023-1018としてカタログ化されている)が発見されたことが最近発表されました。

検出された脆弱性は重大であり、割り当てられたバッファの範囲外へのデータの書き込みや読み取りにつながる。脆弱なコードを使用した暗号プロセッサの実装に対する攻撃は、暗号鍵など、チップ側に保存されている情報の抽出や上書きを引き起こす可能性がある。

TPM コマンド インターフェイスへのアクセス権を持つ攻撃者は、悪意を持って作成されたコマンドをモジュールに送信し、これらの脆弱性をトリガーする可能性があります。 これにより、機密データへの読み取り専用アクセス、または TPM のみが使用できる通常保護されているデータ (暗号化キーなど) の上書きが可能になります。

攻撃者は、TPMファームウェア内のデータを上書きする機能を利用して、TPMコンテキスト内で自身のコードの実行をオーケストレーションできることが指摘されている。例えば、TPM側で動作し、オペレーティングシステムから検出されないバックドアを実装するために利用できる。

TPM (トラステッド プラットフォーム モジュール) に慣れていない方は、これがハードウェア ベースのソリューションであり、最新のコンピューター オペレーティング システムに強力な暗号化機能を提供し、改ざんに対する耐性があることを知っておく必要があります。

認証されたローカルの攻撃者は、機密データへのアクセスを許可する脆弱な TPM に悪意のあるコマンドを送信する可能性があります。 場合によっては、攻撃者は TPM ファームウェアの保護されたデータを上書きすることもできます。 これにより、TPM 内でクラッシュまたは任意のコードが実行される可能性があります。 攻撃者のペイロードは TPM 内で実行されるため、ターゲット デバイスの他のコンポーネントによって検出されない可能性があります。

近年、クラウド コンピューティングと仮想化の人気が高まるにつれて、ソフトウェア ベースの TPM 実装の人気も高まっています。 TPM は、ディスクリート、組み込み、またはファームウェアの TPM としてハードウェア形式で実装できます。 仮想 TPM は、ハイパーバイザー形式または純粋にソフトウェアベースの TPM 実装 (swtpm など) で存在します。

検出された脆弱性に関して、CryptParameterDecryption() 関数のパラメータのサイズチェックが不適切であることが原因で、ExecuteCommand() 関数に渡されるバッファ(TPM2.0 コマンドを含む)の外側に2 バイトの書き込みまたは読み取りが可能になっていることが指摘されています。ファームウェアの実装上、2 バイトを上書きすると、未使用のメモリとスタック上のデータまたはポインタの両方が破損する可能性があります。

この脆弱性は、 TPMモジュールに特別に設計されたコマンドを送信することで悪用されます(攻撃者はTPMインターフェースへのアクセス権を持っている必要があります)。

現在、2.0 月にリリースされた TPM 1.59 仕様の更新バージョン (1.4 Errata 1.38、1.13 Errata 1.16、1.6 Errata XNUMX) を出荷することで、問題は既に修正されています。

さらに、TPMモジュールをプログラムでエミュレートし、ハイパーバイザにTPMサポートを統合するために使用されるオープンソースライブラリlibtpmsも、この脆弱性の影響を受けることが報告されています。ただし、この脆弱性はlibtpms 0.9.6のリリースで修正されているため、以前のバージョンを使用しているユーザーは、できるだけ早く新しいバージョンにアップデートすることをお勧めします。

これらの欠陥の解決策に関して、TCG (Trusted Computing Group) は、TPM2.0 ライブラリ仕様の Errata の更新を公開し、これらの脆弱性に対処する手順を示しました。 システムのセキュリティを確保するために、ユーザーはサプライ チェーンを通じてハードウェアおよびソフトウェアの製造元から提供される更新プログラムをできるだけ早く適用する必要があります。

最後に、さらに詳しく知りたい場合は、以下のリンクから詳細をご確認いただけます。


Googleで優先ソースとして追加する