私が尋ねようとしている質問は、次の質問に似ています。
ハイパーバイザーにパッチが適用されていて、ゲストを信頼している場合、LinuxにMeltdown/Spectreをパッチする必要がありますか?
しかし、私は質問をもう少しまたは少し深く考えたいと思います。
UCS仮想化レイヤーがVMware ESXiインスタンスをホストしている次の環境を検討してください。それら自体がWindows、Linux、およびその他のOSをホストしますが、基礎となるレイヤーを保護するためにどのレイヤーを保護する必要がありますか?
-> Hardware
-> CPU
-> RAM
-> Mainboard
-> Storage
-> Operating System (UCS Management)
-> partitioned "hardware" servers
-> physical CPUs
-> physical RAM
-> Storage
-> OS of VMware ESXi Hosts
-> partitioned "virtual" servers
-> virtual CPUs
-> virtual RAM
-> Storage
-> OS of virtual Windows Server
-> Microsoft Hypervisor
-> virtual CPUs
-> virtual RAM
-> Storage
-> OS of Microsoft Hypervisor Server/Client
-> Microsoft SQL Server
-> SQL Server OS (yes, SQL Server has its own OS)
さまざまなベンダーがさまざまなレベル(VMware、Microsoft OS、Microsoft SQL Server)のパッチを提供していることを考えると、たとえば、最初の最も高い "物理"レイヤー(UCSオペレーティングシステム)だけにパッチを適用するだけで十分でしょう。基になるレイヤーが脆弱性の影響を受けなくなることはありますか?
この質問の背後にある考え方は、基礎となるレイヤーを保護するために実装する必要があるパッチの量を最小限に抑えることです。
どこまでパッチを当てる必要がありますか?
はい、いいえ、そして多分。ここには2つの脆弱性があります。
メルトダウン。パッチが適用されていないシステムでは、攻撃者はカーネルがアクセスできるすべてのメモリにアクセスでき、そのメモリのみにアクセスできます。たとえば、UCSレイヤーの攻撃者は、UCSカーネルを攻撃することですべてにアクセスできます。 SQL Server層の攻撃者は、SQL Serverがアクセスできる部分のみを攻撃できます。特定の層でのパッチ適用はその層のみを保護するため、UCS層のパッチはSQL Server層の攻撃者がSQL Server OSのメモリを読み取ることを防ぎません。
メルトダウン攻撃は仮想化の外側に到達することはできません(ただし、コンテナー、サンドボックス化、準仮想化の外側に到達する可能性がある)ため、レイヤーを配置するだけですでにある程度の保護を得ることができます。
スペクター。 Spectreは、脆弱性の巨大なfamilyほどの脆弱性ではありません。このため、さまざまな部分を修正する部分的なパッチが多数あります。普遍的な「すべてを修正する」パッチは存在できません(ブランチプレディクタを無効にするパフォーマンスキリングマイクロコードの更新を除く)。
Meltdownとは異なり、Spectre can仮想化の外に到達:SQL Serverレベルの攻撃者は(非常に困難な方法で)UCSレイヤーに攻撃を実行できます。パッチを適用する各レイヤーはそれ自体を保護し、一部のパッチ(IntelのIBRS/IBPBマイクロコード更新など)はすべてのレイヤーにわたって攻撃を困難にします。ただし、この設定では固有の保護が提供されます。Spectreは物理CPUではなく、仮想CPUにのみ到達できます。
Meltdownの場合、パッチはカーネル内にあるため、ゲストVMにパッチを適用する必要があります。そのため、最新のゲストカーネルが必要です。
Spectreの場合、パッチはCPUマイクロコードにあるため、ホストシステムにロードする必要があります。私はvmwareがすでにこれらを持っていると思いますが、現在のマイクロコードの更新はすべてのCPUの修正がまだ含まれていないので、1月末までにもう1つの更新があります。