雲端計算的安全問題

佚名發表於2017-01-14

   1.  前言

  雲端計算已經是非常火爆的概念了,涉及的服務也非常多,彈性計算服務、檔案儲存服務、關聯式資料庫服務、key-value資料庫服務等等不勝列舉。本文將簡要闡述一下彈性計算服務的安全問題,因為彈性計算是應用得最普遍的雲服務,也是安全風險最大的雲服務。

  由於許多東西涉及公司機密,技術細節、實現或者新的方向,本文中不進行講解。有興趣的可以投一份簡歷過來,我們共同為雲端計算努力。

  2.  雲端計算帶來的新風險

  在雲端計算之前的時代,傳統IDC機房就面臨著許多的安全風險。然後這些問題毫無遺漏的傳遞到了雲端計算時代,不僅如此,雲端計算獨有的運作模式還帶來了更多新的問題。

  2.1.  雲內部的攻擊

  l 安全域被打破

  在對外提供雲端計算業務之前,網際網路公司使用獨立的IDC機房,由邊界防火牆隔離成內外兩塊。防火牆內部屬於可信區域,自己獨佔,外部屬於不可信區域,所有的攻擊者都在這裡。安全人員只需要對這一道隔離牆加高、加厚即可保障安全,也可以在這道牆之後建立更多的牆形成縱深防禦。

  但是在開始提供雲端計算業務之後,這種簡潔的內外隔離的安全方案已經行不通了。通過購買雲伺服器,攻擊者已經深入提供商網路的腹地,穿越了邊界防火牆。另外一方面,雲端計算內部的資源不再是由某一家企業獨享,而是幾萬、幾十萬甚至更多的互相不認識的企業所共有,當然也包含一些懷有惡意的使用者。顯然,按照傳統的方式劃分安全域做隔離已經行不通了,安全域被打破。

  l 新的攻擊方式

  傳統IDC時代攻擊者處於邊界防火牆外部,和企業伺服器、路由器之間只有IP協議可達,也就是說攻擊者所能發起的攻擊,只能位於三層之上。

  但是對於雲端計算來說,情況發生了變化。在一個大二層網路裡面,攻擊者所控制的雲伺服器與雲服務提供商的路由器二層相連,攻擊者可以在更低的層面對這些裝置發動攻擊,如基於ARP協議的攻擊,比如說常見的ARP欺騙攻擊,甚至更底層的乙太網頭部的偽造攻擊。

  關於乙太網頭部的偽造攻擊,我曾經遇到過一次。攻擊者傳送的資料包非常小,僅僅包含乙太網頭部共14個位元組,源和目的實體地址都是偽造的,上層協議型別為2個位元組的隨機資料,並非常見的IP協議或者ARP協議,對交換機造成了一些不良影響。

  l  虛擬層穿透

  雲端計算時代,一臺宿主機上可能執行著10臺虛擬機器,這些虛擬機器可能屬於10個不通的使用者。從某種意義上說,這臺物理機的功能與傳統IDC時代的交換機相當,它就是一臺交換機,承擔著這10臺虛擬機器的所有流量交換。

  入侵了一臺宿主機,其危害性與入侵了傳統時代的一個交換機新黨。但是與交換機相比,是這臺宿主機更容易被入侵還是交換機更容易被入侵?顯然是宿主機更容易入侵。

  首先,攻擊者的VM直接執行在這臺宿主機的記憶體裡面,僅僅是使用一個虛擬層隔離,一旦攻擊者掌握了可以穿透虛擬層的漏洞,毫不費力的就可以完成入侵,常見的虛擬化層軟體如xen、kvm都能找到類似的安全漏洞。

  其次,交換機的系統比較簡單,開放的服務非常有限。而宿主機則是一臺標準的Linux伺服器,執行著標準的Linux作業系統以及各種標準的服務,可被攻擊者使用的通道也多得多。

  2.2.  大規模效應

  l 傳統攻擊風險擴大

  為了方便讓VM故障漂移以及其它原因,雲端計算網路一般的都會基於大二層架構,甚至是跨越機房、跨越城市的大二層架構。一個VLAN不再是傳統時代的200來臺伺服器,數量會多達幾百臺、幾千臺。在大二層網路內部,二層資料交換依賴交換機的CAM表定址。當MAC地址的規模達到一定規模之後,甚至可能導致CAM表被撐爆。

  類似的,ARP欺騙、乙太網埠欺騙、ARP風暴、NBNS風暴等等二層內部的攻擊手法,危害性都遠遠超過了它們在傳統時代的影響。

  l 攻擊頻率急劇增大

  由於使用者的多樣性以及規模巨大,遭受的攻擊頻率也是急劇增大。以阿里雲現在的規模,平均每天遭受數百起起DDoS攻擊,其中50%的攻擊流量超過5GBit/s。針對WEB的攻擊以及密碼破解攻擊更是以億計算。

  這種頻度的攻擊,給安全運維帶來巨大的挑戰。

  2.3.  安全的責任走向廣義

  隨著更多的雲使用者入住,雲內部署的應用也更是五花八門。安全部門的需要負責的領域也逐漸擴大,從開始的保護企業內部安全,逐漸走向更上層的業務風險。

  l 雲端計算資源的濫用

  雲端計算資源濫用主要包括兩個方面,一是使用外掛搶佔免費試用主機,甚至惡意欠費,因為雲端計算的許多業務屬於後付費業務,惡意使用者可能使用虛假資訊註冊,不停的更換資訊使用資源,導致雲服務提供商產生資損。作為安全部門,需要對這種行為進行控制。

  另一方面,許多攻擊者也會租用雲伺服器,進行垃圾郵件傳送、攻擊掃描、欺詐釣魚之類的活動,甚至用來做botnet的C&C。安全部門需要能準確、實時的發現這種情況,並通過技術手段攔截。

  l 不良資訊處理

  不良資訊主要是指雲伺服器使用者提供一些色情、賭博之類的服務,雲服務提供商需要能夠及時識別制止,防止帶來業務風險。

  3.  技術挑戰

  要解決上述的這些風險,基於傳統的防禦思路,需要在網路中部署訪問控制策略,實施流量監控系統等等東西。但是對於雲來說,實施這些東西會遇到巨大的挑戰。

  3.1.  失控的雲

  傳統時代,所有的流量都會通過交換機進行。通過netflow、snmp、ACL等手段可以做到足夠完善的流量監控和訪問控制策略。但是在雲時代,不跨越宿主機的VM之間的流量在宿主機的記憶體中直接交換完畢,網路部門、安全部門無法檢視、控制這些流量。

  為了解決雲伺服器被入侵的問題,安全部門需要在伺服器上部署各種安全產品,但是不幸的是在雲端計算時代,這些伺服器的所有權並不歸屬雲提供商,安全部門同樣沒有許可權對這些機器進行操作。

  也就是說,在雲時代,安全部門只是隔靴搔癢的來解決安全問題。

  3.2.  業務多樣化帶來防禦複雜性

  傳統IDC時代,安全部門聯合網路部門劃分一個一個的安全域,DNS伺服器歸DNS區域,WEB伺服器歸WEB區域,資料庫伺服器歸資料庫區域,一切都井井有條。但是在雲時代,數以十萬計的使用者在幾十萬的雲伺服器上,執行著各種各樣的服務。他們的PV、QPS、響應時間要求各不相同。

  而安全方案又不可能有放之四海皆準的萬能藥,拿DDoS防禦為例,CC攻擊

  最常見的防禦方案為客戶端meta跳轉、302跳轉甚至驗證碼。對於普通的以PC為主要客戶的網站來說,這麼做沒有任何問題。但是對於以手機APP為主要客戶的網站來說,這麼做就是滅頂之災,手機APP由於訪問的是WEB API介面,一般不會解析這種客戶端跳轉,更不用說填寫驗證碼了,將導致業務完全不可用。

  業務的這種複雜性,給安全防禦帶來不小的挑戰。

  3.3.  隱私與監控的平衡

  擔心隱私,擔心資料安全是目前上雲的最大阻力,但是為了解決雲端計算資源濫用、個性化安全策略等許多問題,都需要做流量監控,可能引起使用者的擔憂。作為雲端計算安全的設計者,需要小心的把握兩者的平衡。

  4.  阿里雲的解決方案

  在阿里雲,安全部門是作為公司成立的第一批員工加入的,初期佔公司總員工總數的10%以上。從一開始,我們就將雲的安全性作為首要問題。2013年12月10日訊,英國標準協會(簡稱BSI)宣佈阿里雲端計算有限公司(簡稱阿里雲)獲得全球首張雲安全國際認證金牌(CSA-STAR),這也是BSI向全球雲服務商頒發的首張金牌。

  4.1.  分散式虛擬交換機

  為了解決雲VM的網路控制問題,我們設計了一套分散式的虛擬交換機,並提供WEB API供外部呼叫。分散式虛擬交換機部署在每一臺宿主機裡面,與控制中心通訊,上報、接收安全策略。它主要提供兩大功能:

  l 自動遷移的安全組策略

  在雲時代,不同的使用者共用同一段IP地址,基於IP地址已經難以區分業務了。因此,我們使用使用者ID來做區分,基於使用者ID來實現安全域,實施安全策略。當使用者的VM出現故障遷移到其它宿主機時,這個VM的安全策略會自動遷移過去。

  l 動態繫結過濾

  我們借鑑思科的DAI技術,實現了對資料包的動態檢查,在VM發出的資料包出虛擬網路卡之前做一次過濾,剔除偽造的報文。如偽造源IP地址的報文,偽造源MAC地址的報文。靠近源端過濾,可以有效的減輕惡意流量對網路造成的影響。

  4.2. 基於資料分析的雲盾系統

  基於資料分析的個性化安全,與監控惡意行為類似。我們統計並繪製每個雲伺服器的 BPS、PPS、QPS時間曲線圖,掌握終端使用者的訪問規律。根據User-Agent、源IP地址歸屬分析移動APP、PC的訪問分佈。基於這些統計資料,我們定製每個雲VM的WAF防禦策略,DDoS防禦觸發閾值、清洗閾值等,這就是阿里雲的雲盾系統。

  其次,由於前文描述過的大規模的原因,我們的雲盾系統每天可以捕獲大量的惡意IP地址,包括WEB攻擊行為、DDoS攻擊行為、密碼破解行為、惡意註冊行為等等。我們的安全系統將這些IP地址作為統一的資源庫提供,所有的安全產品進行聯動,在攻擊者對某個VM進行攻擊之前就完成了防禦。

雲端計算的安全問題 三聯

  由於有了這些資料的整合,阿里雲的雲盾形成一個完整的體系,在各個不同的層面形成防禦,組建戰略縱深。各個子產品的資料打通,互相協助,一同進化,保護著雲平臺的安全。

  4.3.  巨集觀分析統計

  鑑於隱私的考慮,我們不對應用層資料做監控,而是通過對五元組之類的資料做巨集觀統計,發現惡意使用者對雲主機的濫用。

圖2

  如上圖是一個典型的埠掃描之後做密碼掃描的例子。凌晨1點到9點之間,雲VM在最外做埠掃描,因為許多主機不存活,導致出流量遠大於進流量,而且具備非常典型的攻擊特徵,他只嘗試訪問大量IP地址的22、、1433、3389埠。在上午10點半左右,進的流量開始大起來,而且目的埠不變,目的IP是前面IP地址的子集。這說明,攻擊者已經提取了開放服務的主機,在進行密碼掃描了。

  使用這種方式,我們避免了侵犯隱私,又能夠實現對惡意行為的偵測。

  5.  總結

  就我個人的理解,雲的安全不會是由雲服務提供商一家來做,一定是將網路開放出來由眾多的安全服務廠商提供自己的產品,為形形色色的使用者提供個性化、定製化的產品和服務。

相關文章