云計算已經(jīng)是非常火爆的概念了,涉及的服務(wù)也非常多,彈性計算服務(wù)、文件存儲服務(wù)、關(guān)系數(shù)據(jù)庫服務(wù)、key-value數(shù)據(jù)庫服務(wù)等等不勝枚舉。本文將簡要闡述一下彈性計算服務(wù)的安全問題,因為彈性計算是應(yīng)用得最普遍的云服務(wù),也是安全風(fēng)險最大的云服務(wù)。
由于許多東西涉及公司機密,技術(shù)細節(jié)、實現(xiàn)或者新的方向,本文中不進行講解。有興趣的可以投一份簡歷過來,我們共同為云計算努力。
在云計算之前的時代,傳統(tǒng)IDC機房就面臨著許多的安全風(fēng)險。然后這些問題毫無遺漏的傳遞到了云計算時代,不僅如此,云計算獨有的運作模式還帶來了更多新的問題。
安全域被打破
在對外提供云計算業(yè)務(wù)之前,互聯(lián)網(wǎng)公司使用獨立的IDC機房,由邊界防火墻隔離成內(nèi)外兩塊。防火墻內(nèi)部屬于可信區(qū)域,自己獨占,外部屬于不可信區(qū)域,所有的攻擊者都在這里。安全人員只需要對這一道隔離墻加高、加厚即可保障安全,也可以在這道墻之后建立更多的墻形成縱深防御。
但是在開始提供云計算業(yè)務(wù)之后,這種簡潔的內(nèi)外隔離的安全方案已經(jīng)行不通了。通過購買云服務(wù)器,攻擊者已經(jīng)深入提供商網(wǎng)絡(luò)的腹地,穿越了邊界防火墻。另外一方面,云計算內(nèi)部的資源不再是由某一家企業(yè)獨享,而是幾萬、幾十萬甚至更多的互相不認識的企業(yè)所共有,當(dāng)然也包含一些懷有惡意的用戶。顯然,按照傳統(tǒng)的方式劃分安全域做隔離已經(jīng)行不通了,安全域被打破。
新的攻擊方式
傳統(tǒng)IDC時代攻擊者處于邊界防火墻外部,和企業(yè)服務(wù)器、路由器之間只有IP協(xié)議可達,也就是說攻擊者所能發(fā)起的攻擊,只能位于三層之上。
但是對于云計算來說,情況發(fā)生了變化。在一個大二層網(wǎng)絡(luò)里面,攻擊者所控制的云服務(wù)器與云服務(wù)提供商的路由器二層相連,攻擊者可以在更低的層面對這些設(shè)備發(fā)動攻擊,如基于ARP協(xié)議的攻擊,比如說常見的ARP欺騙攻擊,甚至更底層的以太網(wǎng)頭部的偽造攻擊。
關(guān)于以太網(wǎng)頭部的偽造攻擊,我曾經(jīng)遇到過一次。攻擊者發(fā)送的數(shù)據(jù)包非常小,僅僅包含以太網(wǎng)頭部共14個字節(jié),源和目的物理地址都是偽造的,上層協(xié)議類型為2個字節(jié)的隨機數(shù)據(jù),并非常見的IP協(xié)議或者ARP協(xié)議,對交換機造成了一些不良影響。
虛擬層穿透
云計算時代,一臺宿主機上可能運行著10臺虛擬機,這些虛擬機可能屬于10個不通的用戶。從某種意義上說,這臺物理機的功能與傳統(tǒng)IDC時代的交換機相當(dāng),它就是一臺交換機,承擔(dān)著這10臺虛擬機的所有流量交換。
入侵了一臺宿主機,其危害性與入侵了傳統(tǒng)時代的一個交換機新黨。但是與交換機相比,是這臺宿主機更容易被入侵還是交換機更容易被入侵?顯然是宿主機更容易入侵。
首先,攻擊者的VM直接運行在這臺宿主機的內(nèi)存里面,僅僅是使用一個虛擬層隔離,一旦攻擊者掌握了可以穿透虛擬層的漏洞,毫不費力的就可以完成入侵,常見的虛擬化層軟件如xen、kvm都能找到類似的安全漏洞。
其次,交換機的系統(tǒng)比較簡單,開放的服務(wù)非常有限。而宿主機則是一臺標(biāo)準(zhǔn)的Linux服務(wù)器,運行著標(biāo)準(zhǔn)的Linux操作系統(tǒng)以及各種標(biāo)準(zhǔn)的服務(wù),可被攻擊者使用的通道也多得多。
傳統(tǒng)攻擊風(fēng)險擴大
為了方便讓VM故障漂移以及其它原因,云計算網(wǎng)絡(luò)一般的都會基于大二層架構(gòu),甚至是跨越機房、跨越城市的大二層架構(gòu)。一個VLAN不再是傳統(tǒng)時代的200來臺服務(wù)器,數(shù)量會多達幾百臺、幾千臺。在大二層網(wǎng)絡(luò)內(nèi)部,二層數(shù)據(jù)交換依賴交換機的CAM表尋址。當(dāng)MAC地址的規(guī)模達到一定規(guī)模之后,甚至可能導(dǎo)致CAM表被撐爆。
類似的,ARP欺騙、以太網(wǎng)端口欺騙、ARP風(fēng)暴、NBNS風(fēng)暴等等二層內(nèi)部的攻擊手法,危害性都遠遠超過了它們在傳統(tǒng)時代的影響。
攻擊頻率急劇增大
由于用戶的多樣性以及規(guī)模巨大,遭受的攻擊頻率也是急劇增大。以阿里云現(xiàn)在的規(guī)模,平均每天遭受數(shù)百起起DDoS攻擊,其中50%的攻擊流量超過5GBit/s。針對WEB的攻擊以及密碼破解攻擊更是以億計算。
這種頻度的攻擊,給安全運維帶來巨大的挑戰(zhàn)。
安全的責(zé)任走向廣義
隨著更多的云用戶入住,云內(nèi)部署的應(yīng)用也更是五花八門。安全部門的需要負責(zé)的領(lǐng)域也逐漸擴大,從開始的保護企業(yè)內(nèi)部安全,逐漸走向更上層的業(yè)務(wù)風(fēng)險。
云計算資源的濫用
云計算資源濫用主要包括兩個方面,一是使用外掛搶占免費試用主機,甚至惡意欠費,因為云計算的許多業(yè)務(wù)屬于后付費業(yè)務(wù),惡意用戶可能使用虛假信息注冊,不停的更換信息使用資源,導(dǎo)致云服務(wù)提供商產(chǎn)生資損。作為安全部門,需要對這種行為進行控制。
另一方面,許多攻擊者也會租用云服務(wù)器,進行垃圾郵件發(fā)送、攻擊掃描、欺詐釣魚之類的活動,甚至用來做botnet的C&C。安全部門需要能準(zhǔn)確、實時的發(fā)現(xiàn)這種情況,并通過技術(shù)手段攔截。
不良信息主要是指云服務(wù)器用戶提供一些色情、賭博之類的服務(wù),云服務(wù)提供商需要能夠及時識別制止,防止帶來業(yè)務(wù)風(fēng)險。
要解決上述的這些風(fēng)險,基于傳統(tǒng)的防御思路,需要在網(wǎng)絡(luò)中部署訪問控制策略,實施流量監(jiān)控系統(tǒng)等等東西。但是對于云來說,實施這些東西會遇到巨大的挑戰(zhàn)。
傳統(tǒng)時代,所有的流量都會通過交換機進行。通過netflow、snmp、ACL等手段可以做到足夠完善的流量監(jiān)控和訪問控制策略。但是在云時代,不跨越宿主機的VM之間的流量在宿主機的內(nèi)存中直接交換完畢,網(wǎng)絡(luò)部門、安全部門無法查看、控制這些流量。
為了解決云服務(wù)器被入侵的問題,安全部門需要在服務(wù)器上部署各種安全產(chǎn)品,但是不幸的是在云計算時代,這些服務(wù)器的所有權(quán)并不歸屬云提供商,安全部門同樣沒有權(quán)限對這些機器進行操作。
也就是說,在云時代,安全部門只是隔靴搔癢的來解決安全問題。
業(yè)務(wù)多樣化帶來防御復(fù)雜性
傳統(tǒng)IDC時代,安全部門聯(lián)合網(wǎng)絡(luò)部門劃分一個一個的安全域,DNS服務(wù)器歸DNS區(qū)域,WEB服務(wù)器歸WEB區(qū)域,數(shù)據(jù)庫服務(wù)器歸數(shù)據(jù)庫區(qū)域,一切都井井有條。但是在云時代,數(shù)以十萬計的用戶在幾十萬的云服務(wù)器上,運行著各種各樣的服務(wù)。他們的PV、QPS、響應(yīng)時間要求各不相同。
而安全方案又不可能有放之四海皆準(zhǔn)的萬能藥,拿DDoS防御為例,CC攻擊最常見的防御方案為客戶端meta跳轉(zhuǎn)、302跳轉(zhuǎn)甚至驗證碼。對于普通的以PC為主要客戶的網(wǎng)站來說,這么做沒有任何問題。但是對于以手機APP為主要客戶的網(wǎng)站來說,這么做就是滅頂之災(zāi),手機APP由于訪問的是WEB API接口,一般不會解析這種客戶端跳轉(zhuǎn),更不用說填寫驗證碼了,將導(dǎo)致業(yè)務(wù)完全不可用。
業(yè)務(wù)的這種復(fù)雜性,給安全防御帶來不小的挑戰(zhàn)。
隱私與監(jiān)控的平衡
擔(dān)心隱私,擔(dān)心數(shù)據(jù)安全是目前上云的最大阻力,但是為了解決云計算資源濫用、個性化安全策略等許多問題,都需要做流量監(jiān)控,可能引起用戶的擔(dān)憂。作為云計算安全的設(shè)計者,需要小心的把握兩者的平衡。
在阿里云,安全部門是作為公司成立的第一批員工加入的,初期占公司總員工總數(shù)的10%以上。從一開始,我們就將云的安全性作為首要問題。2013年12月10日訊,英國標(biāo)準(zhǔn)協(xié)會(簡稱BSI)宣布阿里云計算有限公司(簡稱阿里云)獲得全球首張云安全國際認證金牌(CSA-STAR),這也是BSI向全球云服務(wù)商頒發(fā)的首張金牌。
分布式虛擬交換機
為了解決云VM的網(wǎng)絡(luò)控制問題,我們設(shè)計了一套分布式的虛擬交換機,并提供WEB API供外部調(diào)用。分布式虛擬交換機部署在每一臺宿主機里面,與控制中心通信,上報、接收安全策略。它主要提供兩大功能:
自動遷移的安全組策略
在云時代,不同的用戶共用同一段IP地址,基于IP地址已經(jīng)難以區(qū)分業(yè)務(wù)了。因此,我們使用用戶ID來做區(qū)分,基于用戶ID來實現(xiàn)安全域,實施安全策略。當(dāng)用戶的VM出現(xiàn)故障遷移到其它宿主機時,這個VM的安全策略會自動遷移過去。
動態(tài)綁定過濾
我們借鑒思科的DAI技術(shù),實現(xiàn)了對數(shù)據(jù)包的動態(tài)檢查,在VM發(fā)出的數(shù)據(jù)包出虛擬網(wǎng)卡之前做一次過濾,剔除偽造的報文。如偽造源IP地址的報文,偽造源MAC地址的報文。靠近源端過濾,可以有效的減輕惡意流量對網(wǎng)絡(luò)造成的影響。
基于數(shù)據(jù)分析的云盾系統(tǒng)
基于數(shù)據(jù)分析的個性化安全,與監(jiān)控惡意行為類似。我們統(tǒng)計并繪制每個云服務(wù)器的 BPS、PPS、QPS時間曲線圖,掌握最終用戶的訪問規(guī)律。根據(jù)User-Agent、源IP地址歸屬分析移動APP、PC的訪問分布。基于這些統(tǒng)計數(shù)據(jù),我們定制每個云VM的WAF防御策略,DDoS防御觸發(fā)閾值、清洗閾值等,這就是阿里云的云盾系統(tǒng)。
其次,由于前文描述過的大規(guī)模的原因,我們的云盾系統(tǒng)每天可以捕獲大量的惡意IP地址,包括WEB攻擊行為、DDoS攻擊行為、密碼破解行為、惡意注冊行為等等。我們的安全系統(tǒng)將這些IP地址作為統(tǒng)一的資源庫提供,所有的安全產(chǎn)品進行聯(lián)動,在攻擊者對某個VM進行攻擊之前就完成了防御。
由于有了這些數(shù)據(jù)的整合,阿里云的云盾形成一個完整的體系,在各個不同的層面形成防御,組建戰(zhàn)略縱深。各個子產(chǎn)品的數(shù)據(jù)打通,互相協(xié)助,一同進化,保護著云平臺的安全。
鑒于隱私的考慮,我們不對應(yīng)用層數(shù)據(jù)做監(jiān)控,而是通過對五元組之類的數(shù)據(jù)做宏觀統(tǒng)計,發(fā)現(xiàn)惡意用戶對云主機的濫用。
凌晨1點到9點之間,云VM在最外做端口掃描,因為許多主機不存活,導(dǎo)致出流量遠大于進流量,而且具備非常典型的攻擊特征,他只嘗試訪問大量IP地址的22、、1433、3389端口。在上午10點半左右,進的流量開始大起來,而且目的端口不變,目的IP是前面IP地址的子集。這說明,攻擊者已經(jīng)提取了開放服務(wù)的主機,在進行密碼掃描了。
使用這種方式,我們避免了侵犯隱私,又能夠?qū)崿F(xiàn)對惡意行為的偵測。
就我個人的理解,云的安全不會是由云服務(wù)提供商一家來做,一定是將網(wǎng)絡(luò)開放出來由眾多的安全服務(wù)廠商提供自己的產(chǎn)品,為形形色色的用戶提供個性化、定制化的產(chǎn)品和服務(wù)。