阿里云工程師解密熱修復xen漏洞
原創近日,開源軟件Xen發出高危漏洞,稱由于Xen存在部分漏洞,有可能會造成數據泄露的潛在風險,建議所有相關的服務器進行重啟來修復這些漏洞。采用Xen作為虛擬化軟件的云計算服務商,大多都通過服務器重啟的方式來解決,而阿里云則采用了全部熱升級的方式,在用戶沒有感知的情況下,解決了此次高危漏洞問題。
Xen是由劍橋大學發起的開源Hypervisor軟件,是實現云計算虛擬化的基礎,因此被亞馬遜、阿里云、Rackspace等公司作為公有云的基礎系統軟件。Xen安全漏洞是指Hypervisor自身出現安全問題,可能會造成數據泄漏風險,漏洞披露由Xen安全團隊會負責。
修復Xen漏洞一般有兩種方法,即冷啟動修復和熱修復。冷啟動修復就是通過打補丁的方式,然后重啟機器讓補丁生效,從而修復漏洞,冷啟動方法相對簡單,沒有任何技術挑戰,但是對用戶的業務會造成數分鐘的服務不可用。而熱修復可以讓用戶對修復過程無感知,但是這一修復方案也是有一定的門檻。
通常,若想修復系統軟件漏洞,必須能夠訪問系統軟件所用到的內存。而Xen作為底層的Hypervisor軟件,被設計成一個安全域,它的內存是Xen的控制域Dom0無法訪問的,并且不允許任何用戶甚至是云計算服務商管理員訪問機器內存。因此采用熱修復的***難度就在于此。而阿里云在虛擬化方面有著比較深厚的技術積累,實現了熱修復,并且在修復過程中采用了極其精細化的設計,讓客戶在無感知的情況下進行修復。
阿里云資深專家張獻濤博士表示,首先,阿里云突破了從控制域Dom0不能訪問Xen Hypervisor內存的限制,在CPU不能訪問內存的情況下,利用設備DMA(Direct Memory Access,直接內存訪問)來讀寫內存。這個方法需要精準的操作,因為一個異常的DMA請求會導致Hypervisor內存污染或者設備異常,最終導致物理機宕機。然后,在確保上層用戶業務不受影響的前提下,動態替換Xen Hypervisor中有問題的指令,而這個替換過程要控制在毫秒級完成。
此次阿里云的熱升級方法采用了全自動、逐臺機器修復的策略,一旦出現意外,只會影響一臺機器,并且修復會馬上停止,然后技術人員會分析問題進行解決。此外,為了應對此次Xen高危漏洞,阿里云組成了故障應急團隊,修復過程中一旦出現問題,會馬上和客戶溝通,降低業務受影響的程度。
眾所周知,一般云服務商提供服務時,都會與用戶簽訂服務協議,并且承諾一定百分比的可用性,因此,云服務是允許每年發生一些停機或宕機時間。因此,在此次Xen高危漏洞被披露后,大多云服務商都是采用冷啟動修復方法。
值得注意的是,早先亞馬遜公告通知客戶,表示有大約10%的服務器受影響需要重啟,隨后該公司技術團隊找到熱升級的方式,但仍有0.1%的服務器需要重啟。
張獻濤告訴記者,“熱修復Hypervisor技術門檻很高,各種各樣的軟硬件組合都需要考慮,問題比較復雜,不是所有的公司都能解決所有問題。阿里云***版修復方案也只能解決了99.97%左右的客戶,但我們沒有滿足于這個成績,而是連夜分析方案的缺陷,分析問題所在,最終達到了100%用戶不用重啟的目標。”
一般情況下,Xen安全團隊會在公布漏洞前,會提前10-14天發給全球的關鍵公司做預披露相關的動作,這些公司都簽訂了嚴格的NDA(Non Disclosure Agreement,保密協議)協議,以留出時間給這些公司做線上系統安全漏洞的修復,阿里巴巴是國內唯一一家進入Xen安全漏洞預披露列表的公司,因此阿里云可以提前得之漏洞的相關信息,然后做相應的安全防范動作。
張獻濤強調,“復雜的系統都會有安全漏洞,就像我們用的Windows隔三差五就會要求安全更新一樣,關鍵是對于漏洞否能提前發現,提前知道,提前修復。如果能做到,這就是核心競爭力。”
龐大的軟件系統會出現安全漏洞是必然的事情,關鍵在于能否在漏洞被公開前快速修復。云計算業務數據安全和可靠性絕對是最重要的事情,張獻濤呼吁國內同行一起合作,重視客戶利益,將客戶數據安全放在首要的位置。