在過(guò)去六個(gè)月當(dāng)中,AWS方面已經(jīng)兩次針對(duì)Xen安全漏洞對(duì)其云服務(wù)器進(jìn)行了重啟。
根據(jù)Gartner公司去年作出的估算,Amazon Web Services的總體規(guī)模已經(jīng)達(dá)到其后十四家競(jìng)爭(zhēng)對(duì)手基礎(chǔ)設(shè)施規(guī)模總和的五倍。順帶一提,這些設(shè)備全部運(yùn)行有開(kāi)源Xen虛擬機(jī)管理程序的一套定制化版本,這意味著一旦這部分Xen代碼存在安全漏洞,AWS將因此受到巨大影響。
在過(guò)去六個(gè)月當(dāng)中,AWS方面已經(jīng)兩次針對(duì)Xen安全漏洞對(duì)其Elastic Compute Cloud(簡(jiǎn)稱EC2)服務(wù)器進(jìn)行了重啟。2014年9月,約有10% EC2實(shí)例經(jīng)歷了重啟,而就在本周AWS再次宣布其總體實(shí)例當(dāng)中約有0.1%需要安裝安全補(bǔ)丁并進(jìn)行重啟。雖然這一比例聽(tīng)起來(lái)并不算高,但從AWS的運(yùn)營(yíng)規(guī)模角度看,其涉及的實(shí)際設(shè)備數(shù)字仍然相當(dāng)龐大。
在發(fā)現(xiàn)Xen代碼存在安全漏洞后,AWS內(nèi)部受到了怎樣的影響?
Steve Schmidt
答案是Steve Schmidt同志要忙上一陣子了(這并不是說(shuō)他尚未對(duì)此類(lèi)情況做好準(zhǔn)備)。Schmidt是AWS安全工程技術(shù)副總裁兼首席信息安全官(簡(jiǎn)稱CISO)——他還擁有效力于FBI擔(dān)任部門(mén)主管的經(jīng)歷。目前他主要負(fù)責(zé)AWS的云安全工作。去年11月,我們?cè)?jīng)在AWS re: Invent大會(huì)上與Schmidt進(jìn)行了一次面對(duì)面交流,并請(qǐng)他談?wù)勗谌ツ?月那場(chǎng)史無(wú)前例的大重啟事件中、AWS內(nèi)部的云運(yùn)營(yíng)工作經(jīng)歷了哪些變動(dòng)。
漏洞驗(yàn)證
AWS可謂Xen代碼的使用大戶,因此該公司各位高層也是開(kāi)源社區(qū)當(dāng)中最先了解到Xen存在安全漏洞問(wèn)題的群體。狀況出現(xiàn)后,Schmidt及其團(tuán)隊(duì)的第一項(xiàng)任務(wù)就是檢查該問(wèn)題是否會(huì)對(duì)AWS造成影響。該公司已經(jīng)搶在正式公開(kāi)之前,就通過(guò)其定期檢查發(fā)現(xiàn)了存在于Xen當(dāng)中的各項(xiàng)安全漏洞。這樣一來(lái),他們就能夠提前驗(yàn)證相關(guān)漏洞是否會(huì)影響到AWS并據(jù)此作出補(bǔ)丁開(kāi)發(fā)與安裝決策。
“Xen是個(gè)規(guī)模龐大的軟件包,其中有很多部分與AWS的實(shí)際運(yùn)行完全無(wú)關(guān),”Schmidt指出。
事實(shí)上大部分Xen安全漏洞并不會(huì)對(duì)AWS造成影響,這是因?yàn)樵摴疽呀?jīng)開(kāi)發(fā)出了自己的一套Xen定制化版本。AWS方面從中移除了全部不必要的Xen功能,這一方面是為了保證定制化開(kāi)源代碼能夠在該公司的獨(dú)特用例當(dāng)中發(fā)揮最佳性能表現(xiàn),同時(shí)也是為了盡可能降低其存在安全漏洞的可能性。
不過(guò)AWS還作出了另一項(xiàng)決策:不單單使用一種Xen版本,而是引入多套版本方案。
“我們刻意在不同服務(wù)之間構(gòu)建起差異化的基礎(chǔ)設(shè)施方案,”他指出。“我們當(dāng)然不希望一切都保持一致,因?yàn)槿绻硞€(gè)問(wèn)題會(huì)對(duì)設(shè)施造成影響,那么單一版本機(jī)制意味著其將影響到一切。”AWS在多種不同服務(wù)及地區(qū)之間采用不同的定制化Xen版本,而且每套版本所使用的都并非普通開(kāi)源代碼。
內(nèi)部攻堅(jiān)
如果AWS云受到了影響,那么該公司則選擇出去出擊、實(shí)施技術(shù)攻堅(jiān)。
“我們構(gòu)建了一套測(cè)試場(chǎng)景,以確定我們能否觸發(fā)該安全漏洞,”Schmidt表示。在此之后,他們還開(kāi)展了廣泛的測(cè)試工作,旨在了解是否已經(jīng)有惡意人士利用該漏洞侵襲AWS。
與此同時(shí),另一個(gè)安全技術(shù)團(tuán)隊(duì)則已經(jīng)完成了補(bǔ)丁的構(gòu)建工作并在AWS所運(yùn)行的多種Xen版本之上進(jìn)行測(cè)試,希望借此滿足其對(duì)安全性及性能水平的需要。
有時(shí)候安裝補(bǔ)丁要求硬件設(shè)備進(jìn)行重新啟動(dòng),正如過(guò)去半年中曾兩次出現(xiàn)的情況一樣。而且與普通PC機(jī)類(lèi)似,某些更新及補(bǔ)丁在安裝后需要重啟、有一些則不需要。AWS所采用的大多數(shù)補(bǔ)丁都不需要重啟; AWS已經(jīng)對(duì)其系統(tǒng)進(jìn)行了結(jié)構(gòu)調(diào)整,旨在盡可能降低由補(bǔ)丁安裝帶來(lái)的服務(wù)重啟次數(shù)。
“我們投入了大量精力以盡可能避免重啟,”Schmidt指出。如果Schmidt和他的團(tuán)隊(duì)發(fā)現(xiàn)無(wú)需重啟進(jìn)行安裝“在技術(shù)上不可行”,那么該公司就會(huì)在實(shí)施重啟之前向客戶發(fā)出通知。
可怕的重啟流程
“其實(shí)思路本身非常簡(jiǎn)單,”Schmidt在談到去年9月的大規(guī)模重啟時(shí)表示。“我們找不到一種能夠無(wú)需重啟而又實(shí)現(xiàn)服務(wù)補(bǔ)丁安裝的方式,因此我們選擇進(jìn)行重啟。”
這種情況下的復(fù)雜之處在于,AWS方面必須如實(shí)通知客戶其部分EC2實(shí)例需要進(jìn)行重啟,但他們卻又無(wú)法坦率地公布理由。AWS絕不能以公開(kāi)方式宣揚(yáng)安全漏洞的存在,并將其告知自家或者其他Xen用戶。
不過(guò)客戶應(yīng)當(dāng)在此時(shí)段內(nèi)隨時(shí)做好迎接重啟的準(zhǔn)備,此外用戶們還需要采用一系列措施以確保自有系統(tǒng)不會(huì)受到重啟或者虛擬機(jī)故障的影響。方案之一在于將其系統(tǒng)設(shè)計(jì)為無(wú)狀態(tài)方案,這樣一旦出現(xiàn)重啟或者虛擬機(jī)故障,那么應(yīng)用程序會(huì)以非破壞性的故障轉(zhuǎn)移方式運(yùn)行在其它正常虛擬機(jī)環(huán)境之下。
去年9月,我們?cè)?jīng)就此采訪過(guò)一系列AWS用戶,他們大多表示此次重啟并未引必嚴(yán)重問(wèn)題。針對(duì)云環(huán)境開(kāi)發(fā)的應(yīng)用程序往往自帶故障彈性能力,不過(guò)傳統(tǒng)應(yīng)用程序的遷移過(guò)程卻有可能帶來(lái)更多麻煩。
Schmidt指出,AWS一直在努力改進(jìn)其服務(wù)效果:無(wú)論是在技術(shù)方面還是在避免虛擬機(jī)重啟方面。此外,該公司也希望能讓客戶及時(shí)獲取到相關(guān)消息。相關(guān)努力包括贊助學(xué)術(shù)研究以及如何利用研究成果幫助Xen服務(wù)器在無(wú)需重啟的前提下完成熱修復(fù)。
原文標(biāo)題:What happens inside Amazon when there’s a Xen vulnerability