近期各大新聞媒體皆在高度關(guān)注Meltdown與Spectre安全漏洞對(duì)Windows PC設(shè)備造成的影響,但可以想見,二者帶來的真正隱患其實(shí)在于對(duì)服務(wù)器以及云帶來的沖擊。
Meltdown與Spectre處理器bug正牽動(dòng)萬千桌面用戶的心--自己的計(jì)算機(jī)被一款編寫質(zhì)量糟糕的英特爾或AMD CPU補(bǔ)丁弄到性能衰減確實(shí)很難讓人接受。然而從配件事件來看,無論是Linux、MacOS還是Winows,PC設(shè)備都不會(huì)受到太大的影響。Meltdown與Spectre的真正災(zāi)難將主要降臨在服務(wù)器--而非個(gè)人設(shè)備身上。
這是因?yàn)镸eltdown與SPectre能夠影響到應(yīng)用程序與操作系統(tǒng)專用內(nèi)存之間的內(nèi)存空間。在PC設(shè)備上,這僅代表著其可提取密碼等敏感信息。但在云端,則有可能導(dǎo)致企業(yè)客戶的機(jī)密數(shù)據(jù)被他人所竊取。
SANS安全專家Jake William警告稱,"在眾多半虛擬化實(shí)例(例如Xen)與內(nèi)核沙箱(例如Docker)用例當(dāng)中,Meltdown都有可能破壞容器與主機(jī)內(nèi)核之間所共享的內(nèi)核地址。"
微軟的虛擬機(jī)管理程序Hyper-V并未使用半虛擬化機(jī)制,但其仍然可能受到影響。微軟Windows與設(shè)備部門執(zhí)行副總裁Terry Myserson在博文當(dāng)中解釋稱:"在多服務(wù)器共享功能環(huán)境當(dāng)中(例如某些云服務(wù)配置中的功能),此類漏洞可能意味著某人能夠訪問處于其它虛擬機(jī)之內(nèi)的信息。"
微軟公司很早就已經(jīng)意識(shí)到這個(gè)問題,并著手安裝Azure以及Hyper-V補(bǔ)丁以作為解決方案。然而,Myerson警告稱這還遠(yuǎn)遠(yuǎn)不夠。"運(yùn)行在本地或者云環(huán)境中的Windows Server客戶還需要評(píng)估是否已經(jīng)在各Windows Server虛擬機(jī)訪客或物理實(shí)例當(dāng)中部署了安全緩解措施。"
為什么?這是因?yàn)?quot;當(dāng)您在Windows Server實(shí)例當(dāng)中運(yùn)行不受信任的代碼時(shí)(例如允許您的客戶上傳二進(jìn)制文件或者代碼片段,并在Windows Server實(shí)例當(dāng)中運(yùn)行),您需要上述緩解措施以控制應(yīng)用程序二進(jìn)制文件或代碼,確保其無法訪問Windows Server實(shí)例當(dāng)中與其權(quán)限水平不符的內(nèi)存空間。您不需要利用這些緩解措施隔離Windows Server虛擬機(jī)以及虛擬化服務(wù)器上的其它虛擬機(jī),而僅需要利用其隔離特定Windows Server實(shí)例當(dāng)中運(yùn)行的不可信代碼。"
要保護(hù)您的服務(wù)器--無論其運(yùn)行在服務(wù)器機(jī)柜的裸機(jī)當(dāng)中抑或是云端--您必須為以下安全漏洞安裝修復(fù)補(bǔ)?。篊VE-2017-5715(分支目標(biāo)注入)、CVE-2017-5753(邊界檢查繞過)以及CVE-2017-5754(流氓數(shù)據(jù)緩存加載)。
但這些補(bǔ)丁并非適用于全部Windows Server版本。截至目前,所有陳舊的Server 2003版本以及2008與2012版本皆可能遭受攻擊。微軟公司正在為2008與2012版本開發(fā)補(bǔ)丁程序。如果您一直在嘗試更新2003版本,請(qǐng)不要再浪費(fèi)精力了--過去的已經(jīng)過去,除了此次曝光的最新安全漏洞之外,近幾年來其它漏洞也都會(huì)影響到2003版本。
另外,單純安裝補(bǔ)丁還不足以解決問題--您還需要做得更多。正如桌面版Windows一樣,您同樣必須確保使用與補(bǔ)丁相兼容的反病毒程序以避免服務(wù)器發(fā)生BSOD。如果您未在服務(wù)器上運(yùn)行反病毒軟件,則必須使用regedit以設(shè)置以下注冊(cè)表項(xiàng):
Key="HKEY_LOCAL_MACHINE" Subkey="SOFTWAREMicrosoftWindowsCurrentVersionQualityCompat" Value="cadca5fe-87d3-4b96-b7fb-a231484277cc" Type="REG_DWORD" Data="0x00000000"
無論是否使用反病毒軟件,您都必須作出其它注冊(cè)表變更。如果您的服務(wù)器為Hyper-V主機(jī)或者遠(yuǎn)程桌面服務(wù)主機(jī)(簡(jiǎn)稱RDSH),或者您的服務(wù)器實(shí)例正在運(yùn)行容器或不可信數(shù)據(jù)庫(kù)擴(kuò)展、不可信Web內(nèi)容或者包含來自外部來源代碼的工作負(fù)載,那么更是需要完成進(jìn)一步調(diào)整??偠灾拇蟛糠稚踔寥糠?wù)器都需要進(jìn)行注冊(cè)表變更。
具體注冊(cè)表修改項(xiàng)包括:
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
到這里,任務(wù)仍沒有完成?,F(xiàn)在,大家必須將芯片固件應(yīng)用于您的服務(wù)器硬件當(dāng)中。該固件應(yīng)由您的硬件供應(yīng)商負(fù)責(zé)提供。
一旦完成這一切,您還需要進(jìn)行最后一步操作--重啟您的服務(wù)器。
在Azure當(dāng)中,當(dāng)補(bǔ)丁更新完成后,微軟將自動(dòng)重啟您的服務(wù)器與虛擬機(jī)。您可以查看您的虛擬機(jī)狀態(tài),并通過Azure門戶中Azure服務(wù)健康計(jì)劃內(nèi)的維護(hù)部分了解重新啟動(dòng)是否已經(jīng)完成。
然而,雖然微軟公司已經(jīng)立足Hyper-V層級(jí)開始處理這個(gè)問題,并表示客戶不需要自行更新虛擬機(jī)鏡像,但其同時(shí)警告稱客戶應(yīng)繼續(xù)為自己的Linux與Windows虛擬機(jī)鏡像應(yīng)用安全最佳實(shí)踐。因此讓我們面對(duì)現(xiàn)實(shí)吧:請(qǐng)更新您的鏡像。如果這些安全問題可能入侵虛擬機(jī),那么您的所有資產(chǎn)都有可能面臨威脅,因此各服務(wù)器實(shí)例必須盡可能接受安全修復(fù)。
微軟公司指出,"大多數(shù)Azure客戶應(yīng)該不會(huì)因?yàn)榇隧?xiàng)更新而遭遇明顯的性能影響。我們一直在努力優(yōu)化CPU與磁盤的I/O路徑,并在修復(fù)應(yīng)用之后并沒有發(fā)現(xiàn)明顯的性能衰減。客戶可能會(huì)遇到一些網(wǎng)絡(luò)性能方面的影響,您可通過啟用Azure加速網(wǎng)絡(luò)(適用于Windows、Linux)來解決此類問題。Azure加速網(wǎng)絡(luò)是一基以免費(fèi)方式供全部Azure客戶使用的功能。"
加速網(wǎng)絡(luò)是一項(xiàng)剛剛進(jìn)入通用狀態(tài)的新功能。其通過回避Azure主機(jī)與虛擬交換機(jī)的方式加速虛擬機(jī)網(wǎng)絡(luò)流量。其能夠減少虛擬機(jī)的負(fù)載并將其轉(zhuǎn)移到Azure的內(nèi)部可編程SmartNIC處。要使用這項(xiàng)功能,您必須啟動(dòng)一套新的虛擬機(jī),并在創(chuàng)建時(shí)為其添加一個(gè)新的網(wǎng)卡。要對(duì)其進(jìn)行管理,大家還需要使用較新的Azure資源管理器門戶。
盡管能夠配合加速網(wǎng)絡(luò),我仍然認(rèn)為微軟的態(tài)度有點(diǎn)過于樂觀。我們都知道,安裝了修復(fù)補(bǔ)丁的Linux系統(tǒng)會(huì)遭遇部分工作負(fù)載運(yùn)行速度降低的問題--無論其運(yùn)行在何種云之上。因此,沒有理由認(rèn)為Windows Server不會(huì)遭遇類似的性能問題。
除此之外,目前亦出現(xiàn)了一些Azure虛擬機(jī)在安裝補(bǔ)丁后出現(xiàn)問題的報(bào)告。
因此,在修復(fù)工作完成后,請(qǐng)測(cè)試您的服務(wù)器以確保其能夠以與您期待相符的方式工作。在此之后,請(qǐng)進(jìn)行性能測(cè)試。越早意識(shí)到自己在面對(duì)怎樣的問題,您就能夠越快開始解決問題并著手調(diào)整云及服務(wù)器資源,最終搞定各類性能不佳的服務(wù)。