web-dev-qa-db-ja.com

最近のIntelハードウェアは、ハードウェアレベルでMeltdownを軽減しますか?

最近 セキュリティ研究者がTwitter経由で次の主張 を行いました(強調を追加):

Windowsを実行している場合、「バリアント3:不正データキャッシュロード(CVE-2017-5754)」または#Meltdownパッチが適用されているかどうか、および---があるかどうかをチェックするツールを公開しようとしていますハードウェアレベルで緩和するように思われる新しいIntelハードウェア。これは、文書化されていない新しいAPIを使用します https://t.co/6sA8tehceg

彼らはこれも これを拡張しました 少し言います:

新しいCPUIDビットとMSRがモデル0x36以降にあります。

この研究者の可能性のある発見を検証できるかどうか、またはどのように検証できるかわかりません。そのため、これが本当かどうかはわかりません。

最近のIntelハードウェアは、ハードウェアレベルでMeltdownを軽減しますか?もしそうなら、どのようにそしてどのように、そしてどのハードウェアで?

11

最近のIntel CPUにはPCIDがあります。 PCIDがないと、カーネルTLBをユーザー空間TLBから完全に分離する必要があるため、PCIDはパフォーマンスヒットに大きく役立ちます。 (* OK、完全ではありませんが、ほとんどの場合)。 PCIDがある場合、ハードウェアには追加の機能があり、これを行うと通常発生するキャッシュミスによるパフォーマンスの低下を回避できます。

主な質問に答えるために、PCIDはMeltdownの回避策のパフォーマンスの問題を解決しますが、Meltdown自体は修正しません。 Linux上のKPTIを備えたカーネル、または他のオペレーティングシステムでの同様のカーネル修正があることを確認する必要があります。

参照: https://en.wikipedia.org/wiki/Translation_lookaside_buffer#PCIDhttps://groups.google.com/forum/#!topic/mechanical-sympathy/L9mHTbeQLNhttps://en.wikipedia.org/wiki/Kernel_page-table_isolation

4
Jacob Brown

Alex Ionescuがgithubページで作成したツールの ソースコード を調べました。つまり、このツールは、プロセッサで分岐予測が有効になっているかどうかをチェックします。ソースはまだ見つかりませんが、分岐予測を完全に無効にして、分岐ターゲットへの注入を「軽減」することができるように思えます。しかし、これは新しいIntelプロセッサでのみ利用可能なオプションのようです。後で元のソースを見つけることができるかどうかを確認します。

しかし、私が言えることは、上記が当てはまる場合、ハードウェアレベルである程度の緩和策があるようです。これらのプロセッサのアーキテクチャのためではなく、特定の方法で「ハードウェアレベルで」構成できるためです。個人的には、これはいい言葉ではないと思います。


その間、Microsoftは tool をリリースしましたが、これはほとんど同じことを行います(特定の構成とレジストリエントリをチェックします)。 「ブランチターゲットインジェクションの軽減のためのハードウェアサポート」と呼ばれるものがここにあります。


私はIonescuのツイートをざっと見て、 this を見つけました。

MSRとコマンドがIntelの優れたホワイトペーパー[...]に文書化されたので、SpecuCheckを更新しましたそれは彼のツールです 誤った想定の一部に対処するため(公式のPowerShellスクリプトを使用する必要があるのはこのためです)。

  • Alex Ionescu、06.01.2018

ハードウェアレベルでの軽減策の出力はありません。まだわかりませんが、Microsoftツールが何を出力しているか。

2
Tom K.