網管人 203 期 - 熱修補更新系統免重啟,地端建雲版虛機也能享用



網管人雜誌

本文刊載於 網管人雜誌第 203 期 - 2022 年 12 月 1 日出刊,NetAdmin 網管人雜誌 為一本介紹 Trend Learning 趨勢觀念、Solution Learning 解決方案、Technology Learning 技術應用的雜誌,下列筆記為本站投稿網管人雜誌獲得刊登的文章,網管人雜誌於每月份 1 日出刊您可於各大書店中看到它,或透過城邦出版人讀者服務網進行訂閱。





本文目錄






前言

過去,時常困擾企業和組織的難題之一,便是安全性更新的安裝時機和重新啟動主機的問題。雖然,微軟已經盡力將安裝更新後重新啟動主機的次數減少,然而對於企業和組織的營運服務來說,每次重新啟動主機的動作,都可能造成營運服務產生中斷時間,但是不安裝安全性更新又會讓主機暴露在高資安風險當中。

此外,對於 IT 預算及管理人員充足的大型企業來說,每項重要服務都有建立高可用性和容錯移轉叢集機制,因此更新後重新啟動主機的動作,並不會對營運服務造成任何中斷影響。然而,對於 IT 預算和管理人員本就不多的中小型企業來說,每次安裝安全性更新後重新啟動主機的動作,便會中斷運作中的營運服務。

同時,有可能在管理人員不足的情況下,並未測試和檢查安全性更新是否有任何影響時,在貪圖方便的情況下冒然為營運服務主機直接安裝更新時,有可能因為更新導致營運服務啟動失敗,或產生其它非預期性的錯誤,造成營運服務停止而導致企業和組織更多的損失,或者索性不更新避免營運服務中斷,但是主機卻反而遭受惡意攻擊的新聞也時有所聞。

因此,微軟在 2021 年 6 月時,推出 「熱修補」(Hotpatch)的「公開預覽」(Public Preview) 版本,並在 2022 年 2 月時推出熱修補的 「正式發行」(General Availability,GA) 版本。簡單來說,透過最新的熱修補技術(如圖 1 所示),執行安全性更新安裝作業時,將會直接針對 Windows Server 伺服器中,記憶體內部運作的系統程序進行程式碼修補的動作,不僅主機的運作不受干擾,同時其它運作的執行程序和服務也無須停止,並且修補完畢後的 Windows Server 也無須重新啟動,順利達成安全性更新和修補的目的,且不影響企業和組織的「服務等級協議」(Service Level Agreement,SLA)

圖 1、熱修補 Code Flow 運作架構示意圖

在 Hotpatch 熱修補 GA 展示影片中,可以看到二台 VM 虛擬主機,皆採用 Windows Server 2022 Azure Edition 版本,左側主機採用傳統 Windows Update,右側主機採用最新的熱修補技術,並且在安裝安全性更新的同時,還進行檔案複製作業,以便證明熱修補技術在進行更新作業時,也絲毫不影響主機的運作,可以看到右側主機在「51 秒」時,已經安裝好二個安全性更新,而左側主機仍在處理第一個安全性更新,並且安裝進度僅到 13.4%(如圖 2 所示),並且傳統 Windows Update 安裝完畢後,系統會提示必須重新啟動主機才能套用生效。

圖 2、傳統 Windows Update 機制和最新熱修補技術更新比較

值得注意的是,最新的 Hotpatch 熱修補技術,在傳統的 Windows Server 2022 Standard 或 Datacenter 版本中並未支援,必須採用 Windows Server 2022 Datacenter : Azure Edition 版本才能支援。此外,提醒企業和組織的管理人員,倘若有整合新的特色功能時務必確認採用的版本是否支援,舉例來說,Azure 擴充網路、透過 QUIC 的 SMB……等,這幾項最新技術都必須採用 Azure Edition 版本才能支援(如圖 3 所示)。

圖 3、Windows Server 2022 版本功能差異比較表

此時,管理人員可能會問,那麼企業和組織的地端資料中心,是否也能運作 Windows Server 2022 Datacenter : Azure Edition 版本 ?答案是可以的,只要採用 Azure Stack HCI 21H2 和後續版本,那麼便可以透過 「Azure 權益」(Azure Benefits) 機制,建立 VM 虛擬主機,並安裝 Windows Server 2022 Datacenter : Azure Edition 作業系統,運作在地端資料中心內的 Azure Stack HCI 超融合基礎架構中。

簡單來說,管理人員只要在 Azure Stack HCI 21H2 環境中,啟用 Azure 權益機制後,系統將會在 AzSHCI 叢集環境中,為每台 AzSHCI 叢集節點主機啟動 HciSvc 服務,並且啟動後的 HciSvc 服務,會至 Azure 公有雲取得通過簽署的憑證,並將憑證存放在 AzSHCI 叢集節點主機記憶體保護區內,屆時將透過 Azure 平台驗證服務,讓 AzSHCI 叢集環境中的 VM 虛擬主機,以為自己運作在 Azure 公有雲環境中。

因此,當管理人員在 AzSHCI 叢集內建立 VM 虛擬主機,並安裝 Windows Server 2022 Datacenter : Azure Edition 作業系統後,當 Azure Edition 作業系統執行自我驗證機制,驗證所處環境是否為 Azure 公有雲環境時,HciSvc 服務將會傳遞不可路由的 REST 端點,給予 AzSHCI 叢集環境中運作的 VM 虛擬主機進行存取,此時 HciSvc 服務便會將剛才儲存在記憶體保護區內憑證進行回應,讓 VM 虛擬主機以為自己運作在 Azure 公有雲環境中,但實際上 VM 虛擬主機則是運作在,企業和組織地端資料中心內的 AzSHCI 叢集(如圖 4 所示)。

圖 4、地端 Azure Stack HCI 叢集啟用 Azure 權益機制運作架構示意圖





熱修補運作機制

事實上,熱修補的運作方式,為針對 Windows Update 最新累積更新建立基準線,累積更新一般來說包含所有安全性和品質更新,而且安裝後需要重新啟動主機才能套用生效,而熱修補則是以無須重新啟動主機的更新為基礎,並將基準線以新的累積更新後定期更新。

因此,當使用熱修補機制後,VM 虛擬主機將具備更高的可用性(較少的重新啟動主機次數),以及更快速的更新作業(較小型的安裝套件,且無須重新啟動的程式),同時達到安裝最新安全性更新的目的。

當熱修補機制,建立具備 Windows Update 最新累積更新的基準線之後,負責熱修補技術的團隊將會定期發行,例如,基準線建立月份的第二個星期二。接著,熱修補機制將無須重新啟動的安全性更新,每三個月定期使用最新的累積更新來重新整理計劃性基準線。基準線有兩種類型,分別是「計畫性基準線」(Planned Baselines)和「非計劃性基準線」(Un-planned Baselines)
  • 計劃性基準線: 定期發行,並在兩者之間發行適用於熱修補的安全性更新。計畫性基準線包含該月份最新累積更新中的所有更新,並且安裝後需要重新啟動主機才能套用生效。如圖 5 所示,從範例排程中可以看到,日曆年度中共有五個計劃性基準線版本,以及八個熱修補安全性更新版本。
  • 非計劃性基準線: 一旦有重大事件,必須立即發行安全性更新時,例如,Zero-Day 修補程式……等,並且無法快速發行熱修補時,便會啟動非計劃性基準線。一旦發行非計劃性基準線之後,將會以該月份的非計劃性基準線取代熱修補版本。事實上,非計劃性基準線也包含該月份的最新累積更新中的所有更新,並且安裝後需要重新啟動主機才能套用生效。如圖 5 所示,在範例排程說明中,共有兩個非計劃性基準線版本,這些月份將會取代當月的熱修補版本。
圖 5、熱修補技術安全性更新發行版本、計劃性基準線、非計劃性基準線示意圖





實戰 – 部署支援熱修補的 Azure VM 虛擬主機

了解熱修補運作架構和機制之後,在本小節中將實戰演練,如何在 Azure 公有雲環境中,建立支援熱修補機制的 Azure VM 虛擬主機。

事實上,在 Windows Server 2022 Datacenter: Azure Edition 版本中,仍然有區分為容易操作和管理的,GUI 圖形介面「桌面體驗」(Desktop Experience)模式,以及著重整體效能僅支援文字介面的「伺服器核心」(Server Core)模式。

當管理人員需要部署 Azure Edition 版本,並且體驗相關特色功能時,請先參考官方說明文件,確保所採用的 VM 虛擬主機印象檔,支援所需要的特色功能(如圖 6 所示)。舉例來說,由於熱修補機制,是透過直接在記憶體中修補需要更新的程式碼,需要花費大量的開發時程,所以目前僅 Server Core 模式支援,但微軟官方已經說明,熱修補機制的預計目標為,支援所有 GUI 圖形模式的 Windows 作業系統,不僅是 Windows Server 連客戶端 Desktop 版本也將支援熱修補機制。

圖 6、不同 Azure Edition 版本印象檔,支援的特色功能清單

首先,請登入 Azure Portal 管理畫面,在部署 VM 虛擬主機時,請於 Image 欄位選擇目前支援熱修補機制的印象檔。請注意,倘若選擇尚未支援的印象檔版本,將無法順利為 VM 虛擬主機,註冊和啟用熱修補機制,並且系統也會提醒目前支援熱修補機制的印象檔名稱(如圖 7 所示)。

圖 7、選擇未支援的印象檔時,將無法為 VM 虛擬主機註冊和啟用熱修補機制

因此,在 Azure Portal 畫面 Basics 頁籤中,請確保管理人員選擇正確的 VM 印象檔版本,目前支援熱修補機制的印象檔版本,為「Windows Server 2022 Datacenter : Azure Edition Core - Gen2」(如圖 8 所示),其它欄位設定值管理人員依照管理習慣進行設定即可。

圖 8、選擇目前支援熱修補機制的 VM 虛擬主機印象檔

一旦管理人員選擇到,正確支援熱修補機制的 VM 虛擬主機印象檔時,預設情況下系統將會自動為 VM 虛擬主機,註冊熱修補機制,管理人員也可以在部署階段中,切換到「Management」頁籤,查看 Guest OS updates 下的「Enable hotpatch」欄位,是否已經自動勾選(如圖 9 所示),確保即將部署的 VM 虛擬主機已經啟用熱修補機制,並且在 Patch orchestration options 下拉選單中,也自動選擇「Azure-orchestrated」選項。
倘若部署時忘記啟用,管理人員也可以在日後為 VM 虛擬主機註冊並啟用熱修補機制。
圖 9、確認部署的 VM 虛擬主機啟用熱修補機制



組態設定單台 VM 熱修補機制

當 VM 虛擬主機部署作業完成後,管理人員可以在 Azure Portal 的 VM 虛擬主機管理頁面中,點選左側選單「Operations > Updates」項目,便會看到針對該台 VM 虛擬主機熱修補機制的管理方式。目前,支援三種方式進行安全性更新,分別是 Hotpatch、Update Management Center、Automation,管理人員可以依據管理習慣進行挑選(如圖 10 所示)。

圖 10、支援三種方式管理 VM 虛擬主機更新機制

首先,點選「Go to Hotpatch」項目,進入單台 VM 虛擬主機的熱修補機制管理頁面,管理人員可以按下「Check for updates」進行更新檢查,檢查後系統將會回報此台 VM 虛擬主機的更新情況。倘若,管理人員在部署 VM 虛擬主機時,忘記勾選啟用熱修補技術的話,此時看到的 Hotpatch status 欄位狀態,便為「停用中」(Disabled)(如圖 11 所示)。

圖 11、部署 VM 虛擬主機時未啟用熱修補機制

此時,請點選上方 Update settings 項目,在 Change update settings 中,於 Update settings to change 下拉式選單中,可以看到三個選項:
  • Periodic assessment : 指定主機每 24 小時進行自動評估作業。
  • Hotpatch: 指定主機使用熱修補機制進行安全性更新作業,並且安裝安全性更新後無須重新啟動主機,同時在安裝更新期間運作中的應用程式和服務也無須停止。
  • Patch orchestration: 指定主機採用傳統 Windows Update 方式,自動或手動方式進行安全性更新安裝作業,或是針對啟用 Azure Arc 機制的伺服器,透過 Azure Orchestration 機制進行安全性更新安裝作業。

在本文實作環境中,勾選「Hotpatch」項目,並且勾選下方 Enable Hotpatch 項目後按下 Next 鈕,在 Machines 頁面中,勾選本台 VM 虛擬主機後按下 Next 鈕,在 Review and change 頁面中,確認無誤後按下 Review and change 鈕即可套用生效(如圖 12 所示)。

圖 12、為單台 VM 虛擬主機啟用熱修補機制

此時,可以看到 Hotpatch status 欄位值,從原本的已停用轉變成「已啟用」(Enabled),點選 See details 可以看到,Enablements status 欄位為 Enabled,表示 VM 虛擬主機已經順利啟用熱修補機制,而 Readiness status 欄位為 Unknown,表示主機尚未接收到相關的熱修補安全性更新(如圖 13 所示),後續待微軟釋出熱修補的安全性更新時,系統將會自動於離峰時間進行安裝並且無須重新啟動主機。

圖 13、順利為單台 VM 虛擬主機啟用熱修補機制



管理和設定多台 VM 啟用熱修補機制

剛才的操作步驟,僅能針對「單台」VM 虛擬主機進行操作,倘若企業和組織中有「多台」Azure VM 虛擬主機時,可以透過「更新管理中心」(Update Management Center)進行管理。在更新管理中心介面中,可以看到目前的 VM 虛擬主機數量,同時企業和組織可以針對更新需求進行下列條件的過濾:
  • Subscription: 針對訂閱帳戶進行過濾,預設將會選取所有訂閱帳戶。
  • Resource Group: 針對資源群組進行過濾,預設選取所有資源群組。
  • Resource Type: 針對資源種類進行過濾,支援已經啟用 Azure Arc 機制的主機,以及 Azure VM 虛擬主機,預設選取所有資源種類。
  • Location: 針對 Azure 資料中心進行過濾,預設選取所有 Azure 資料中心。
  • OS: 針對 VM 虛擬主機客體作業系統過濾,支援 Linux 和 Windows 作業系統,預設選取所有作業系統。

在本文實作環境中,針對其中一個「Weithenn Labs - MSDN」這個訂閱帳戶中,名稱為「RG-EastAsia-Hotpatch」的資源群組,並且 VM 虛擬主機為「Windows」作業系統進行過濾,從 Overview 頁面中可以看到,過濾後的 VM 虛擬主機數量、安全性更新方式、安全性更新狀態……等資訊(如圖 14 所示)。

圖 14、透過更新管理中心組態設定多台 VM 虛擬主機安全性更新機制

舉例來說,管理人員想要確保所有支援熱修補的 VM 虛擬主機,皆啟用熱修補機制的話,請點選「Manage > Machines > Select all > Update settings」,此時系統同樣開啟 Change update settings 畫面,選擇「Hotpatch」項目和勾選下方 Enable Hotpatch 項目,在 Machines 頁面中,系統已經發現勾選的 VM 虛擬主機中,有包含尚未支援熱修補機制的 VM 虛擬主機,管理人員可以先全選所有 VM 虛擬主機後,再勾選「Update selection to remove unsupported resource」項目,即可自動排除未支援 Hotpatch 機制的 VM 虛擬主機(如圖 15 所示),在 Review and change 頁面中,確認無誤後按下 Review and change 鈕,即可一次大量啟用 VM 虛擬主機熱修補機制。

圖 15、自動排除未支援熱修補機制的 VM 虛擬主機



管理多台 VM 安全性更新

原則上,在 Azure 公有雲環境中,已經啟用熱修補機制的 VM 虛擬主機,將會自動安裝安全性更新並且無須重新啟動主機,而未支援熱修補機制的 VM 虛擬主機,系統預設值將會自動安裝最新安全性更新。

同時,管理人員也可以很方便的透過更新管理中心,一次查看所有 VM 虛擬主機的更新狀態組態設定,並且一次為大量 VM 虛擬主機執行檢查、套用、安全更新……等動作。在本文實作環境中,可以看到目前三台主機皆有安全性更新需要安裝,其中二台主機已啟用熱修補機制,另一台則採用傳統 Windows Update 的預設值,總共有 9 個安全性更新可進行安裝(如圖 16 所示)。

圖 16、透過安全管理中心一覽大量 VM 虛擬主機的安全性更新情況

首先,切換到「Manage > Machines」頁面,勾選 Select all 項目選取所有 VM 虛擬主機後,選擇「Check for updates > Access now」,確保所有 VM 虛擬主機再次檢查安全性更新情況。檢查完成後,在每台 VM 虛擬主機的 Update status 欄位,將會顯示該台 VM 虛擬主機有多少安全性更新需要安裝,管理人員可以交由系統機制在適當時間自動安裝,或是立即幫所有 VM 虛擬主機安裝安全性更新。

確認要為所有 VM 虛擬主機立即安裝更新,請按下「One-time update > Install Now」,在 Machines 頁面中,勾選希望立即安裝更新的 VM 虛擬主機,倘若選單中未顯示時可按下 Add Machine 手動加入,值得注意的是目前僅支援一次最多部署「20 台」VM 虛擬主機的更新作業,在 Updates 頁面中,管理人員可以針對安全性更新的類別、KB 號碼、更新釋出時間……等進行過濾(如圖 17 所示),舉例來說,按下 Include update classification 後,可以僅勾選 Critical Updates 和 Security Updates 這二項進行更新,確認後按下 Next 鈕。

圖 17、確認為 VM 虛擬主機立即安裝哪些安全性更新

在 Properties 頁面中,管理人員可以在 Reboot options 下拉式選單中,選擇主機重新啟動的選項,分別支援「在必要時重新啟動」(Reboot if required)、「永不重新啟動」(Never reboot)、「一律重新啟動」(Always reboot),至於維護時間則是指定允許安裝更新的時間,支援的上限時間為「235」分鐘,最後在 Review + install 頁面中,確認組態設定無誤後按下 Install 鈕即可。

待所有 VM 虛擬主機完成安裝更新作業後,回到安全管理中心的 Overview 頁面,即可看到所有主機的安全性更新狀態(如圖 18 所示)。當然,管理人員需要的話,可以點選 Update installation status 中,安全性更新的相關數字,進一步查看每台主機安裝哪些安全性更新和更新細節資訊。

圖 18、透過安全管理中心一覽所有主機安全性更新狀態





結語

透過本文的深入剖析和實作演練後,管理人員應該已經理解 Hotpatch 的運作架構和機制,以及實務上如何在 Azure 公有雲環境中,部署支援熱修補機制的 Windows Server 2022 虛擬主機,並同時管理單台和多台 Azure VM 虛擬主機的安全性更新,無論是支援或不支援熱修補機制的 VM 虛擬主機,都可以透過安全管理中心進行管理,除了有效節省企業和組織管理人員的時間成本之外,更確保主機具備最新安全性更新,減少被網際網路惡意攻擊的機會降低資安風險。