Microsoft は、ホットパッチ機能が再起動を必要とせずに Windows Server にセキュリティ パッチを適用する仕組みについて詳細を公開しました。ただし、同社はより広範な利用可能性に向けて取り組んでいると述べていますが、依然として Azure のみで利用可能です。
「Andrea Allievi & Hotpatch Team」とクレジットされているこの記事では、MicrosoftのシニアコアOSエンジニアであるAllievi氏が、この機能の根拠と背後にある技術の両方を解説しています。これは単なる利便性の問題ではありません。
「多くの場合、ユーザーやシステム管理者は、インストール完了時に頻繁に再起動が必要になるため、パッチのインストールを遅らせてしまいます。パッチ適用の遅延は一見都合が良いように見えますが、実際にはセキュリティ上の問題です」と、11月19日に投稿された記事は説明し、悪用された脆弱性の42%がパッチのリリース後に発生していることを示すレポートに言及しています。
Microsoftは、Azureホストマシンにおけるこの問題に焦点を当てました。「Azureの基盤となるWindows Serverインスタンスは、高可用性が求められます。しかし、これらのオペレーティングシステムインスタンスはセキュリティも確保する必要があります」と投稿には付け加えられています。そのため、Hotpatchは「AzureホストOSでしばらく使用されており」、その技術は「実戦で実証済み」となっています。
パッチ適用の再起動方法は簡単に理解できます。システムがシャットダウンし、すべてのプロセスが正常に終了した後、Windows NT カーネルを実装するバイナリ ファイルが更新され、再起動されたシステム コール内のプロセスが更新されたファイル内の関数を呼び出します。
ホットパッチは種類が異なります。チームによると、これは「関数レベルで動作するため、個々のファイルやコンポーネントではなく、関数が個別にパッチ適用されます」とのことです。これは、パッチ適用されていない関数への呼び出しを「ホットパッチイメージに属するパッチ適用済みの関数」にリダイレクトすることで動作します。これはx64、ARM64(Windows Server 2022の新機能)、および32ビットコードで動作します。
ホットパッチ関数のパス
このソリューションを実装するには、ホットパッチエンジンが必要です。エンジニアによると、「主にNTとセキュアカーネルに組み込まれている」とのことです。セキュアカーネルは、VTL1(Virtual Trust Level 1)と呼ばれる、より安全で隔離された環境で動作するオペレーティングシステムの一部です。ホットパッチエンジンは、パッチイメージを識別し、パッチを適用していないベースイメージと一致することを確認した上で、パッチイメージをベースイメージと同じアドレス空間にマッピングします。
エンジンは、パッチ適用された関数内のグローバル変数への参照を、ベースイメージ内のグローバル変数を指すように更新するほど賢くなっています。その後、パッチを適用することで、「元のベースイメージ内の関数がパッチイメージ内の対応する関数にジャンプ」します。このコードパスの跳ね返りは「トランポリン」と呼ばれています。
- 何度も置き換えられたが、まだ生きていて元気: Windows フォームが .NET 6.0 向けに更新されました
- 米国防総省はJEDI代替システムの契約獲得のため4つのクラウド企業を招待
- インテルのオーディオドライバーがWindows 11に不具合を引き起こし、セキュリティアップデート後にMicrosoftインストーラーが機能しなくなった
- 調査によると、企業におけるWindows 11の波及効果はわずか0.21%であるのに対し、XPは依然として人気を維持している。
このような方法でシステムに無期限にパッチを適用すると、複雑さが増すことになります。そのため、新しいベースイメージセットによる定期的な更新が、従来の累積アップデートとして実装され、再起動が必要になります。現在のドキュメントでは、これを3ヶ月ごとに実施しています。さらに優れたパッチ適用手法が登場する可能性を示唆しています。「ホットパッチは、ユーザーに再起動不要のセキュリティアップデートの未来をもたらすための、最初の手法の一つです」とチームは述べています。
Windows Server 2022 では、前述の ARM64 サポートだけでなく、Spectre v2 サイドチャネル攻撃を克服するために導入されたリターントランポリンである Retpoline との互換性も導入されています。
これらの機能の問題点が、投稿の最後の段落にあります。「ホットパッチベースのセキュリティ更新プログラムは、AzureクラウドのAutomanageフレームワーク内でWindows Server 2019およびWindows Server 2022 Azure Editionイメージを実行しているお客様にご利用いただけます」とチームは述べています。しかし、これはWindows Serverの他の無数のユーザーにとって、ほとんど慰めにはなりません。
「Azureのホットパッチ機能は素晴らしいですが、オンプレミスサーバーではWSUS以外の代替手段や新しいパッチ適用方法がずっと待ち望まれています」と、ある顧客は7月にコメントしました。また、「毎月、更新プログラムがリリースされると、WSUSデータベースの同期にサーバーが何時間もかかる」とも述べています。WSUSはWindows Server Update Services(Windows Server Update Services)の略で、社内ネットワークに展開され、パッチを配布するために使用されます。
当時、プリンシパル・プログラム・マネージャーのネッド・パイル氏は「この件については近日中に回答できる予定ですが、まだ詳細はお伝えできません」と述べていました。現在、ホットパッチチームは「より幅広いWindowsユーザーにホットパッチベースのセキュリティ更新プログラムを提供できるよう取り組んでいます」と述べています。なお、Azure VM向けのホットパッチはまだプレビュー段階です。ドキュメントでは、「サポートされているWindows Server Azure Edition仮想マシンに更新プログラムをインストールする新しい方法」と説明されています。
ホットパッチは、既存のパッチ適用と再起動のサイクルよりも迅速かつ中断が少なく、ダウンタイムを発生させずに自動化できるため、その影響は甚大になる可能性があります。しかし、マイクロソフトはなぜAzureのみに適用されるのかをまだ明らかにしていません。Windows Serverが実行可能な環境でより一般的に利用可能になる前に、管理された環境で機能をテストするためであれば、理解できます。しかし、オンプレミスや他のパブリッククラウド、ホスティング企業に対して、マイクロソフトのクラウドに人為的な優位性を与えるための手段であるならば、顧客にとって歓迎されないでしょう。®