Microsoftが「Spectre Variant 2」への対処にGoogleによる緩和策である「Retpoline」を取り入れ、「Windows 10」の次期大型アップデート「Windows 10 19H1」で実装するという。Spectre Variant 2は投機的実行機能を悪用したサイドチャネル攻撃を可能にする脆弱性だ。

「Meltdown」および「Spectre」のようなCPUの脆弱性は、攻撃者による悪用とは別に、その緩和策によってパフォーマンスに深刻な影響（5～30％の低下）が及ぶことが懸念されてきた。

こうした懸念が最も大きく出てくるのはSpectre Variant 2（CVE-2017-5715「ブランチターゲットインジェクション」脆弱性）に対するIntelのマイクロコードレベルでの緩和策だ。

Intelの緩和策では、ハードウェアによる投機的実行の方法が直接的に変更される。これらはIBRS（Indirect Branch Restricted Speculation：間接分岐の投機的実行機能に対する制約の付加）とIBPB（Indirect Branch Prediction Barriers：間接分岐の予測機能に対する制約の付加）と呼ばれ、いずれもCPUのパフォーマンスを低下させる可能性がある。

Googleは、Spectre Variant 2の影響を緩和するRetpolineというソフトウェアベースの対策を開発した。これは攻撃を十分に緩和できる程度に投機的実行を制約するものであり、同社のテストによると、パフォーマンスへの影響はほとんど無視できる程度であったという。

MSPoweruserが見つけた、Microsoftのカーネルエンジニアによるツイートに記されているように、Microsoftは2019年に提供を開始するWindows 10 19H1でRetpolineを取り入れるという。

Yes, we have enabled retpoline by default in our 19H1 flights along with what we call "import optimization" to further reduce perf impact due to indirect calls in kernel-mode. Combined, these reduce the perf impact of Spectre v2 mitigations to noise-level for most scenarios. https://t.co/CPlYeryV9K — Mehmet Iyigun (@mamyun) October 18, 2018

MicrosoftのWindowsおよびAzureカーネルチームのMehmet Iyigun氏は、GoogleのRetpolineとMicrosoftによるカーネルの独自修正を組み合わせることで、パフォーマンスへの影響は「ノイズレベル」にまで低減されるとツイートしている。

Microsoftは「Windows 10 October 2018 Update」（「Redstone 5」）のリリースではRetpolineによる緩和策を取り入れなかった。CrowdStrikeのリサーチャーであるAlex Ionescu氏は、取り入れることもできたはずだという。

Ionescu氏は、自らが開発した「SpecuCheck」というツールを用いて、Windows 10 19H1にRetpolineが取り入れられていることを発見した。SpecuCheckはIT管理者向けのWindowsユーティリティで、MeltdownやSpectreのほか、「Speculative Store Bypass」（投機的ストアバイパス）や、「Foreshadow」攻撃で悪用される「L1 Terminal Fault」（L1TF）といったその他の投機的実行サイドチャネル攻撃を可能にする脆弱性に対する、ハードウェアやソフトウェアの対策状況を確認するために使用できる。

Iyigun氏は、Ionescu氏のツイートに応じる形で、Windows 10 19H1でRetpolineを取り入れることを認めた。

Ionescu氏は「IBRSサポートが適用されたIntelのマイクロコードを使用していない、あるいはAMDの『Zen』プロセッサを使用している場合、Redstone 5において有効にするための材料はすべて出そろっているにもかかわらず、WindowsではSpectre Variant 2に対する完全な緩和策が19H1まで適用されないことになる」と述べ、これがRedstone 5から取り入れられないことに疑問を呈している。

同氏はツイートの中で、IBRSを適用していないシステム上のWindowsでは、カーネルモードからユーザーモードへの遷移時にBIOSパラメータブロック（BPB）がフラッシュされず、セキュリティ上問題だと指摘している。

同氏によれば、「RetpolineはIBPBのみを適用したシステムでも有効化されるため、こうしたシステムもSpectre v2から守られる（中略）そして、IBRSシステムの処理速度も上がる」という。

Ionescu氏は、IBRSを適用していない現行のWindowsマシンは「基本的に格好の標的である」ため、Microsoftに対してRetpolineによる緩和策をRedstone 5から取り入れるよう呼びかけている。