華文網

如何保護Windows Server免遭Meltdown與Spectre侵擾

至頂網軟體頻道消息: 近期各大新聞媒體皆在高度關注Meltdown與Spectre安全性漏洞對Windows PC設備造成的影響,但可以想見,二者帶來的真正隱患其實在於對伺服器以及雲帶來的衝擊。

Meltdown與Spectre處理器bug正牽動萬千桌面用戶的心--自己的電腦被一款編寫品質糟糕的英特爾或AMD CPU補丁弄到性能衰減確實很難讓人接受。然而從配件事件來看,無論是Linux、MacOS還是Winows,PC設備都不會受到太大的影響。Meltdown與Spectre的真正災難將主要降臨在伺服器--而非個人設備身上。

這是因為Meltdown與SPectre能夠影響到應用程式與作業系統專用記憶體之間的記憶體空間。

在PC設備上,這僅代表著其可提取密碼等敏感資訊。但在雲端,則有可能導致企業客戶的機密資料被他人所竊取。

SANS安全專家Jake William警告稱,"在眾多半虛擬化實例(例如Xen)與內核沙箱(例如Docker)用例當中,Meltdown都有可能破壞容器與主機內核之間所共用的內核位址。"

微軟的虛擬機器管理程式Hyper-V並未使用半虛擬化機制,但其仍然可能受到影響。

微軟Windows與設備部門執行副總裁Terry Myserson在博文當中解釋稱:"在多伺服器共用功能環境當中(例如某些雲服務配置中的功能),此類漏洞可能意味著某人能夠訪問處於其它虛擬機器之內的資訊。"

微軟公司很早就已經意識到這個問題,並著手安裝Azure以及Hyper-V補丁以作為解決方案。然而,Myerson警告稱這還遠遠不夠。"運行在本地或者雲環境中的Windows Server客戶還需要評估是否已經在各Windows Server虛擬機器訪客或物理實例當中部署了安全緩解措施。

"

為什麼?這是因為"當您在Windows Server實例當中運行不受信任的代碼時(例如允許您的客戶上傳二進位檔案或者代碼片段,並在Windows Server實例當中運行),您需要上述緩解措施以控制應用程式二進位檔案或代碼,確保其無法訪問Windows Server實例當中與其許可權水準不符的記憶體空間。您不需要利用這些緩解措施隔離Windows Server虛擬機器以及虛擬化伺服器上的其它虛擬機器,

而僅需要利用其隔離特定Windows Server實例當中運行的不可信代碼。"

要保護您的伺服器--無論其運行在伺服器機櫃的裸機當中抑或是雲端--您必須為以下安全性漏洞安裝修復補丁:CVE-2017-5715(分支目標注入)、CVE-2017-5753(邊界檢查繞過)以及CVE-2017-5754(流氓資料緩存載入)。

但這些補丁並非適用於全部Windows Server版本。截至目前,所有陳舊的Server 2003版本以及2008與2012版本皆可能遭受攻擊。微軟公司正在為2008與2012版本開發補丁程式。

如果您一直在嘗試更新2003版本,請不要再浪費精力了--過去的已經過去,除了此次曝光的最新安全性漏洞之外,近幾年來其它漏洞也都會影響到2003版本。

另外,單純安裝補丁還不足以解決問題--您還需要做得更多。正如桌上出版Windows一樣,您同樣必須確保使用與補丁相相容的反病毒程式以避免伺服器發生BSOD。如果您未在伺服器上運行反病毒軟體,則必須使用regedit以設置以下註冊表項:

Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionQualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD" Data="0x00000000"

無論是否使用反病毒軟體,您都必須作出其它註冊表變更。如果您的伺服器為Hyper-V主機或者遠端桌面服務主機(簡稱RDSH),或者您的伺服器實例正在運行容器或不可信資料庫擴展、不可信Web內容或者包含來自外部來原始程式碼的工作負載,那麼更是需要完成進一步調整。總而言之,您的大部分甚至全部伺服器都需要進行註冊表變更。

具體註冊表修改項包括:

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

到這裡,任務仍沒有完成。現在,大家必須將晶片固件應用於您的伺服器硬體當中。該固件應由您的硬體供應商負責提供。

一旦完成這一切,您還需要進行最後一步操作--重啟您的伺服器。

在Azure當中,當補丁更新完成後,微軟將自動重啟您的伺服器與虛擬機器。您可以查看您的虛擬機器狀態,並通過Azure門戶中Azure服務健康計畫內的維護部分瞭解重新開機是否已經完成。

然而,雖然微軟公司已經立足Hyper-V層級開始處理這個問題,並表示客戶不需要自行更新虛擬機器鏡像,但其同時警告稱客戶應繼續為自己的Linux與Windows虛擬機器鏡像應用安全最佳實踐。因此讓我們面對現實吧:請更新您的鏡像。如果這些安全問題可能入侵虛擬機器,那麼您的所有資產都有可能面臨威脅,因此各伺服器實例必須盡可能接受安全修復。

微軟公司指出,"大多數Azure客戶應該不會因為此項更新而遭遇明顯的性能影響。我們一直在努力優化CPU與磁片的I/O路徑,並在修復應用之後並沒有發現明顯的性能衰減。客戶可能會遇到一些網路性能方面的影響,您可通過啟用Azure加速網路(適用於Windows、Linux)來解決此類問題。Azure加速網路是一基以免費方式供全部Azure客戶使用的功能。"

加速網路是一項剛剛進入通用狀態的新功能。其通過回避Azure主機與虛擬交換機的方式加速虛擬機器網路流量。其能夠減少虛擬機器的負載並將其轉移到Azure的內部可程式設計SmartNIC處。要使用這項功能,您必須啟動一套新的虛擬機器,並在創建時為其添加一個新的網卡。要對其進行管理,大家還需要使用較新的Azure資源管理器門戶。

儘管能夠配合加速網路,我仍然認為微軟的態度有點過於樂觀。我們都知道,安裝了修復補丁的Linux系統會遭遇部分工作負載運行速度降低的問題--無論其運行在何種雲之上。因此,沒有理由認為Windows Server不會遭遇類似的性能問題。

除此之外,目前亦出現了一些Azure虛擬機器在安裝補丁後出現問題的報告。

因此,在修復工作完成後,請測試您的伺服器以確保其能夠以與您期待相符的方式工作。在此之後,請進行性能測試。越早意識到自己在面對怎樣的問題,您就能夠越快開始解決問題並著手調整雲及伺服器資源,最終搞定各類性能不佳的服務。

Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionQualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD" Data="0x00000000"

無論是否使用反病毒軟體,您都必須作出其它註冊表變更。如果您的伺服器為Hyper-V主機或者遠端桌面服務主機(簡稱RDSH),或者您的伺服器實例正在運行容器或不可信資料庫擴展、不可信Web內容或者包含來自外部來原始程式碼的工作負載,那麼更是需要完成進一步調整。總而言之,您的大部分甚至全部伺服器都需要進行註冊表變更。

具體註冊表修改項包括:

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerMemory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionVirtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

到這裡,任務仍沒有完成。現在,大家必須將晶片固件應用於您的伺服器硬體當中。該固件應由您的硬體供應商負責提供。

一旦完成這一切,您還需要進行最後一步操作--重啟您的伺服器。

在Azure當中,當補丁更新完成後,微軟將自動重啟您的伺服器與虛擬機器。您可以查看您的虛擬機器狀態,並通過Azure門戶中Azure服務健康計畫內的維護部分瞭解重新開機是否已經完成。

然而,雖然微軟公司已經立足Hyper-V層級開始處理這個問題,並表示客戶不需要自行更新虛擬機器鏡像,但其同時警告稱客戶應繼續為自己的Linux與Windows虛擬機器鏡像應用安全最佳實踐。因此讓我們面對現實吧:請更新您的鏡像。如果這些安全問題可能入侵虛擬機器,那麼您的所有資產都有可能面臨威脅,因此各伺服器實例必須盡可能接受安全修復。

微軟公司指出,"大多數Azure客戶應該不會因為此項更新而遭遇明顯的性能影響。我們一直在努力優化CPU與磁片的I/O路徑,並在修復應用之後並沒有發現明顯的性能衰減。客戶可能會遇到一些網路性能方面的影響,您可通過啟用Azure加速網路(適用於Windows、Linux)來解決此類問題。Azure加速網路是一基以免費方式供全部Azure客戶使用的功能。"

加速網路是一項剛剛進入通用狀態的新功能。其通過回避Azure主機與虛擬交換機的方式加速虛擬機器網路流量。其能夠減少虛擬機器的負載並將其轉移到Azure的內部可程式設計SmartNIC處。要使用這項功能,您必須啟動一套新的虛擬機器,並在創建時為其添加一個新的網卡。要對其進行管理,大家還需要使用較新的Azure資源管理器門戶。

儘管能夠配合加速網路,我仍然認為微軟的態度有點過於樂觀。我們都知道,安裝了修復補丁的Linux系統會遭遇部分工作負載運行速度降低的問題--無論其運行在何種雲之上。因此,沒有理由認為Windows Server不會遭遇類似的性能問題。

除此之外,目前亦出現了一些Azure虛擬機器在安裝補丁後出現問題的報告。

因此,在修復工作完成後,請測試您的伺服器以確保其能夠以與您期待相符的方式工作。在此之後,請進行性能測試。越早意識到自己在面對怎樣的問題,您就能夠越快開始解決問題並著手調整雲及伺服器資源,最終搞定各類性能不佳的服務。