了解云計算的漏洞 |
發(fā)布時間: 2012/7/28 10:06:00 |
關于云計算安全性的討論往往失于對一般問題和云計算特定問題未加區(qū)分。為了讓關于安全漏洞的討論更加明了,根據(jù)風險要素與云計算的可靠定義,作者制定了一些指標。 每一天,每一條剛剛出爐的新聞、博客文章或其他的一些發(fā)行物都在提醒我們云計算的安全風險和威脅。多數(shù)情況下,安全問題都被認為是采用云計算的道路上最大的障礙。但這種關于云計算安全問題的論調(diào)反而讓找到一個完善的方法來評估實際的安全后果變得更加困難,原因有如下兩點:首先,在有關風險的這些討論中,很大一部分都對一些基本的術語詞匯——包括風險,威脅和漏洞——不加區(qū)分地交替使用,而不考慮各自實際的含義;其次,并不是每一個被提出來的問題,都是特別與云計算的背景對應。 為了更好地理解云計算在安全問題上所帶來的新課題,我們必須分析云計算是如何影響了既有的安全問題。這里的一個關鍵因素是安全漏洞:云計算使得一些大家已經(jīng)耳熟能詳?shù)穆┒醋兊酶油怀,并且貢獻了一些新成員。然而,在我們仔細分析特定于云計算語境的漏洞之前,我們必須先確定到底什么才算得上是一個真正的“漏洞”。 漏洞:概述漏洞是一個突出的風險因素。ISO 27005中把風險定義為“一種潛在的可能性,即某種特定的威脅利用一項或一組設施的漏洞來造成組織的破壞,”對其的度量應包括發(fā)生的概率以及事件的后果[1]。Open Group的風險分類法提供了一個有用的危險因素總覽(見圖1) 。 (點擊圖像放大。) 圖1.在Open Group的風險分類法所總結的會造成風險的因素。風險等于造成損害的事件的發(fā)生頻率(左)和可能的損失幅度(右)的乘積。而漏洞則對造成損害的事件的發(fā)生頻率具有影響。 Open Group的分類法中使用了與ISO 27005一樣的兩條頂級風險因素:有害事件的發(fā)生概率(在這里稱為造成損害的事件的發(fā)生頻率)和其后果(在這里稱為可能的損失幅度)?赡艿膿p失幅度的子要素(如圖1右側所示)影響一個有害事件的最終代價。而(在圖1左側的)造成損害的事件的發(fā)生頻率的子因素相對而言較為復雜。當一個威脅載體(例如說黑客)成功地利用了一個漏洞的時候就會發(fā)生造成損害的事件,這種情況發(fā)生的頻率取決于兩個因素:
這第二個因素讓我們接近得到一個有用的對于漏洞的定義。 定義漏洞據(jù)Open Group的風險分類法,
因而,在描述漏洞時必須放在防止某種特定類型的攻擊的背景下來考慮。這里可以舉一個真實世界的例子,如果一輛汽車不能夠保護它的駕駛者在正面被一輛以六十英里行駛的卡車撞擊時免受傷害,這就是一個漏洞;這輛汽車的潰縮吸能區(qū)的強度相對于卡車的沖力來說太弱了。而相對于來自一輛自行車、甚或一輛中速行駛小型轎車的攻擊而言,這款車的抵抗力則完全足夠了。 我們可以還把計算機的漏洞描述成——也就是你可以用供應商所提供的補丁來彌補的安全相關錯誤——某種抵抗能力的弱化或消失。比方說,一個緩沖區(qū)溢出漏洞削弱了系統(tǒng)的防止任意代碼執(zhí)行的強度,而攻擊者是否會利用此漏洞則完全取決于他們的能力。 漏洞和云計算的風險現(xiàn)在,我們將從右側的風險因素樹開始,著手探討云計算如何影響圖1中的風險因素。 從云客戶的角度來看,右側所描述的可能的對未來損失的幅度的處理完全沒有受到云計算的影響:事件的后果和最終的代價——就假定是來自于機密的泄露——完全一樣,不論這種數(shù)據(jù)的泄露是發(fā)生在云平臺還是傳統(tǒng)的IT基礎設施。而從云服務供應商的角度來看,事情就有一點不一樣了:因為云計算系統(tǒng)以前是相互隔離在相同的基礎設施上的,一個造成損害的事件可能帶來相當大的影響。但是這個實際情況是很容易把控和納入風險評估的:看起來不需要在概念上做出什么變化來適應云計算環(huán)境下的影響分析。 因此,我們必須在圖1的左側——造成損害的事件的發(fā)生頻率——來找找是否有些什么變化。云計算可以改變一個有害事件的發(fā)生概率。正如我們后面還會指出的那樣,云計算會導致漏洞要素發(fā)生相當大的變化。當然,移植到云基礎設施可能會改變攻擊者的訪問級別和動機,以及工作量和風險——這是在以后的工作中必須考慮的一個事實。但是,對支持特定于云計算的風險評估而言,從考察特定于云計算的漏洞的嚴格本質(zhì)入手似乎最有效益。 云計算真的有所謂“特定于云計算”的漏洞嗎?如果是這樣的話,在云計算的本質(zhì)中必然存在某些因素讓一個漏洞成為特定于云計算的漏洞。 從本質(zhì)上講,云計算把已知的技術(如虛擬化)用巧妙的方法結合起來,“從流水線”上提供IT服務,產(chǎn)生了規(guī)模經(jīng)濟的效果。下面我們將更加詳細地討論什么是核心技術,以及這些技術在云計算的應用中有哪些關鍵的特性。 核心云計算技術云計算非常依賴于現(xiàn)有的幾樣核心技術能力:
隨著云計算的發(fā)展,這份核心技術的清單很有可能擴大。 基本特征在其基本的云特性的描述[2]中,美國國家標準與技術研究所(NIST)敏銳地指出了從流水線上提供IT服務意味著什么:
NIST的云計算定義框架,包括其關鍵特性列表,現(xiàn)在已經(jīng)演化成為事實上的定義云計算的標準。 特定于云計算的漏洞根據(jù)我們前面介紹的云計算的抽象視圖,我們現(xiàn)在可以下手定義什么構成了特定于云的漏洞。我們可以說一個漏洞是特定于云的,條件是其:
我們現(xiàn)在來研究這四項指標。 核心技術漏洞云計算的核心技術——Web應用程序和服務、虛擬化和加密——存在一些漏洞,有些是固有于技術本身,而另一些則是普遍存在于該技術的流行實現(xiàn)方式中。這里舉這些漏洞的三個例子,包括虛擬機逃逸、會話控制和劫持以及不安全或過時的加密。 首先,虛擬化的本質(zhì)就決定了存在攻擊者從一個虛擬環(huán)境中成功逃脫的可能性。因此,我們必須把這個漏洞歸類于固有于虛擬化、與云計算高度相關的那一類漏洞。 其次,Web應用技術必須克服這樣一個問題,即從設計的初衷來說,HTTP協(xié)議是無狀態(tài)協(xié)議,而Web應用程序則需要一些會話狀態(tài)的概念。有許多技術能夠實現(xiàn)會話處理,而許多會話處理的實現(xiàn)都容易遭受會話控制和劫持,這一點隨便一個具有豐富Web應用安全經(jīng)驗的安全專業(yè)人士都可以作證。會話控制/劫持漏洞是Web應用技術所固有的呢,抑或“只是”常見于許多當前實現(xiàn)?這一點是值得商榷的。不過,在任何情況下,這樣的漏洞當然和云計算有關系。 最后,密碼分析學的進步可以使任何加密機制或算法變得不再安全,因為總是有新奇的破解方法被找出來。而更為普遍的情況是,加密算法實現(xiàn)被發(fā)現(xiàn)具有關鍵的缺陷,可以讓原本的強加密退化成弱加密(有時甚至相當于完全不加密)。在沒有加密來保護云里的數(shù)據(jù)保密性和完整性的情況下,無法想象云計算能夠獲得廣泛的應用,因而可以說不安全或過時的加密漏洞與云計算有著非常密切的關系。 關鍵的云特性的漏洞正如我們前面提到的,NIST描述了五個關鍵的云計算特性:按需自助服務,無處不在的網(wǎng)絡接入,資源池,敏捷的彈性和可度量的服務。 下面是一些源自上述一種或以上特性的漏洞的例子:
接下來我們可以利用NIST的完善的云計算定義來思考云計算問題。 已知安全控制的缺陷如果云計算創(chuàng)新直接導致在實施控制上的困難,標準安全控制漏洞就應該認為是特定于云計算的。這種漏洞也被稱為控制的挑戰(zhàn) 。 在這里,我們剖析這種控制的挑戰(zhàn)的三個例子。第一個挑戰(zhàn)是虛擬網(wǎng)絡提供的基于網(wǎng)絡的控制不足。由于云服務自身的性質(zhì)的限制,對IaaS的網(wǎng)絡基礎設施的管理訪問和量身定制網(wǎng)絡基礎設施的能力通常是有限的,因此無法應用標準控制,如基于IP網(wǎng)絡的分區(qū)。此外,標準的技術,如基于網(wǎng)絡的漏洞掃描通常被IaaS提供商所禁止,原因之一是無法把友好的掃描從攻擊者的活動區(qū)別開來。最后,像虛擬化這樣的技術意味著網(wǎng)絡流量同時產(chǎn)生在真實和虛擬的網(wǎng)絡中,比如,當托管在同樣服務器上的兩個虛擬機環(huán)境(VMEs)通信的時候。這些問題構成了一個控制的挑戰(zhàn),因為基于嘗試和測試的網(wǎng)絡級安全控制在一個給定的云環(huán)境中可能無法正常工作。 第二個挑戰(zhàn)是在差勁的密鑰管理程序。正如在一項最近的歐洲網(wǎng)絡和信息安全局的研究所表明的一樣[3],云計算基礎設施需要管理和存儲許多不同種類的密鑰。由于虛擬機不會有一個固定的硬件基礎設施,并且基于云的內(nèi)容往往是地理上分散的,更難以對云計算基礎設施的密鑰實施標準控制——如硬件安全模塊(HSM)存儲。 最后,安全指標沒有根據(jù)云基礎設施進行調(diào)整。目前,還沒有這樣一種標準化的特定于云計算的安全指標,讓云客戶可以使用它來監(jiān)視云資源的安全狀態(tài)。在這樣的安全指標被制定和實施之前,對安全評估、審計和問責的控制會更加困難和昂貴,甚至可能是不可能開展的。 最新的云計算實例中常見的漏洞雖然云計算相對年輕,但在市場上已經(jīng)存在無數(shù)的云計算實例。因此,我們?yōu)榍笆龅娜椞囟ㄓ谠朴嬎愕穆┒粗笜搜a充第四個實證指標:如果一個漏洞在最新的云計算實例中很常見,就必須認為它是特定于云計算的。這些漏洞的例子包括注入漏洞和薄弱的身份驗證方案。 針對注入漏洞的攻擊是指操縱服務或應用輸入來以開發(fā)者意想之外的方式來解釋或執(zhí)行輸入的片段。注入漏洞的例子包括:
此外,許多廣泛使用的身份驗證機制是很薄弱的。例如,用于驗證的用戶名和密碼是薄弱的,原因如下:
身份驗證機制的實現(xiàn)也可能有弱點并導致被攻擊,例如憑證攔截和重播。當前最新的云計算服務中的大多數(shù)都采用了用戶名和密碼的身份驗證機制。 架構組件和漏洞云服務模式通常分為SaaS,PaaS和IaaS,在給定云基礎設施時,每一種模式都會影響暴露出來的漏洞。增加更多的結構性到服務模式堆棧會有所幫助:圖2中給出了一種云計算參考架構,明確了最重要的安全相關的云計算組件,而且為了分析安全問題提供了一個云計算的抽象概述。 圖2.云計算參考架構。我們建立了特定于云計算的漏洞到這個參考架構的組件之間的映射關系,這樣讓我們大致了解有哪些漏洞可能會與一個給定的云計算服務相關。 這個參考架構是基于在洛杉磯的加州大學和IBM開展的工作[4]之上的。它繼承了分層的方法,因為層可以囊括一個或多??個服務組件。在這里,我們使用“服務”在廣義上的概念,既可能包括物質(zhì)(如建筑、電力和硬件),也可能包括非物質(zhì)(如運行時環(huán)境)。對于云計算的軟件環(huán)境和云軟件基礎設施這兩層,這個模型明確了層中的三個主要的服務組件——計算、存儲以及通信。頂層服務可以由堆棧更下層來實現(xiàn),事實上跳過中間層。例如,云端的Web應用程序可以用傳統(tǒng)的方式實施和操作——也就是說,在一個標準的操作系統(tǒng)上運行,而無需使用專用的云計算軟件的基礎設施和環(huán)境組件。從這樣的分層和組合性可以知道,在模型的任何層之間,都可能從場地內(nèi)服務或功能供應轉換到服務和功能外包。 除了原有的模式,我們還確定了若干層服務的相關支持功能,并將它們添加到模型中,垂直覆蓋幾個水平層。 我們的云計算參考架構有三個主要部分:
此外,我們明確地把將云服務消費者和云計算基礎設施分開的網(wǎng)絡表示出來,因為云資源是通過(通常是不可信的)網(wǎng)絡進行訪問的這一個事實是云計算的主要特點之一。 使用云計算參考架構的結構,我們現(xiàn)在可以挨個討論架構的組成部分,并給出每個組成部分特定于云計算的漏洞的例子。 云計算軟件基礎設施和環(huán)境云計算軟件基礎設施層把作為服務提供給上層的基本IT資源抽象成為一個抽象層次,這些資源包括:計算資源(通常是VME——虛擬機環(huán)境)、存儲以及(網(wǎng)絡)通訊。這些服務可單獨使用,典型場景是用于存儲服務中,但他們也經(jīng)常捆綁在一起,這時服務器就會附有網(wǎng)絡連接,(通常)還提供對存儲的訪問能力。這種捆綁在一起的服務通常簡稱為IaaS,無論是否帶有存儲能力。 云計算的軟件環(huán)境層在應用平臺層面提供服務:
在基礎設施和環(huán)境層存在的漏洞通常都與這兩層提供的三種資源類型的某一種密切相關。然而,跨租戶訪問漏洞就與所有三種類型的資源都有關系。我們前面描述的虛擬機逃逸漏洞的就是一個典型的例子。我們用它作為一個核心虛擬化技術所固有的漏洞的例子,但也可以認為它根本上是來自于資源池的本質(zhì)特征:當使用資源池時,跨資源的未經(jīng)授權的訪問將成為一個問題。因此對PaaS而言,就算用于隔離不同的租戶(和租戶服務)的技術未必基于虛擬化(不過這其實是一個越來越流行的趨勢)的時候,跨租戶訪問漏洞也還是會產(chǎn)生影響。同樣,云存儲容易導致交叉租戶存儲訪問,云通信——以虛擬網(wǎng)絡的形式——容易導致交叉租戶網(wǎng)絡訪問。 計算資源一組高度重要的計算資源漏洞是與如何處理虛擬機映像有關:提供幾乎相同的服務器映像的唯一可行的辦法——從而為虛擬服務器提供按需服務——是通過克隆模板鏡像來實現(xiàn)。 有漏洞的虛擬機模板鏡像會導致許多操作系統(tǒng)或應用程序上的漏洞傳播到更多系統(tǒng)。攻擊者可能偽裝成服務客戶租用一個虛擬服務器以獲得管理員權限,這樣就能夠分析系統(tǒng)的構成方式、補丁版本,甚至是具體代碼,從而獲得在攻擊其他客戶的鏡像時有用??的信息。另外一個有關的問題是,鏡像有可能是來自于不可信來源,這種現(xiàn)象隨著IaaS服務的虛擬鏡像交易市場的出現(xiàn)更為突出。在這種情況下會存在一些風險,比如鏡像可能被動過手腳,從而為攻擊者提供后門。 虛擬機復制造成的數(shù)據(jù)泄漏也是一個類似的漏洞,原因同樣在于為了提供隨需服務而進行鏡像克隆。克隆會導致虛擬機機密數(shù)據(jù)的泄漏問題:一個操作系統(tǒng)的某些元素——如主機密鑰和加密字符串——本來應該完全屬于一臺主機,可是克隆卻可能破壞這個關于隱私的隱含前提。這次同樣是虛擬機鏡像的新興交易市場——比如說亞馬遜EC2——會引出一個相關的問題:用戶可以把運行中的鏡像轉換成模板,并向其他用戶來提供模板鏡像。根據(jù)在創(chuàng)建模板前該鏡像被使用的情況,此鏡像有可能會包含用戶并不愿意公開的內(nèi)容。 這里還有一些控制上的問題,其中一些與應用加密有關。如果介于硬件與操作系統(tǒng)間的虛擬化抽象層在為虛擬機運行環(huán)境生成隨機數(shù)的時候發(fā)生問題,這種薄弱的隨機數(shù)生成機制可能會導致加密上的漏洞,因為要生成隨機數(shù)往往需要硬件級別的信息源。虛擬化可能在利用這樣的信息源上存在缺陷,或者說在同一臺主機上容納多個虛擬機運行環(huán)境可能會窮盡可用的信息源,導致薄弱的隨機數(shù)生成機制。我們前面也提到了,這個抽象層還讓先進的安全控制——像是硬件安全模塊——的使用更加復雜,結果就可能是蹩腳的密鑰管理程序。 存儲除了由于資源池和彈性的特性所引起的數(shù)據(jù)恢復上的漏洞,還有一個與介質(zhì)擦除相關的控制問題,在云計算環(huán)境中這往往是很難或不可能實現(xiàn)的。例如,在一個生命周期的末尾,如果一個磁盤仍被另一租客使用,就不能執(zhí)行要銷毀物理硬盤的數(shù)據(jù)銷毀政策。 由于加密技術經(jīng)常被用來克服與存儲相關的漏洞,這一核心技術的漏洞——不安全或過時的加密和蹩腳的密鑰管理——在云存儲中有著特殊地位。 通信云通信服務最突出的例子是為IaaS環(huán)境中的虛擬機運行環(huán)境提供網(wǎng)絡支持。由于資源池,幾個客戶可能擁有同樣的網(wǎng)絡基礎設施組件:共享網(wǎng)絡基礎設施組件的漏洞——像是DNS服務器或動態(tài)主機配置協(xié)議中的漏洞,或IP協(xié)議的漏洞——可能在IaaS的基礎設施中引發(fā)基于網(wǎng)絡的跨租戶的攻擊。 虛擬化網(wǎng)絡還提出了一個控制上的問題:在云服務中,與上面其他問題一樣,IaaS的網(wǎng)絡基礎設施的管理權限訪問和剪裁網(wǎng)絡基礎設施的可能性通常是受限的。此外,諸如虛擬化等技術的使用會導致網(wǎng)絡流量不僅發(fā)生在“真正的”網(wǎng)絡上,同時也發(fā)生在虛擬網(wǎng)絡中(如在同一服務器上托管的兩個虛擬機運行環(huán)境之間的通信),大多數(shù)虛擬網(wǎng)絡的實現(xiàn)只提供了集成基于網(wǎng)絡安全的有限可能性。總而言之,這形成了一個控制上的問題,即不充分的基于網(wǎng)絡的控制,因為基于嘗試與測試的網(wǎng)絡級別安全控制可能在某些云計算環(huán)境下無法工作。 云計算Web應用程序Web應用使用瀏覽器技術來在前段執(zhí)行用戶交互。隨著基于瀏覽器的技術如JavaScript、Java、Flash和Silverlight被更多地采用,Web云計算應用可以被分為兩種:
今后,對于一些不需要頻繁訪問遠端數(shù)據(jù)的情況,開發(fā)商將越來越多地使用一些技術,像是谷歌Gears等,來允許脫機使用Web應用的瀏覽器組件。我們已經(jīng)描述了兩個典型的Web應用程序技術漏洞:會話控制和劫持漏洞,以及注入漏洞。 其他特定于Web應用程序的漏洞與瀏覽器的前端組件有關。其中包括客戶端的數(shù)據(jù)操作的漏洞,用戶可利用其操縱應用程序組件發(fā)送到服務器的應用程序組件的數(shù)據(jù),從而攻擊Web應用。換句話說,服務器組件收到的輸入是不是“預期”的客戶端組件發(fā)送的輸入,而是變更過的或是完全由用戶生成的輸入。此外,Web應用程序還依賴于瀏覽器的機制以隔離嵌入到應用程序(如廣告、Mashup組件等)的第三方內(nèi)容。因此,瀏覽器的隔離漏洞可能允許第三方內(nèi)容來操作的Web應用程序。 服務和API雖說云計算基礎設施的所有層次看起來都明顯提供服務,但要討論云計算基礎設施的安全性,還是值得特別地考慮所有基礎設施的服務和應用的編程接口。大多數(shù)服務都可能是Web服務,從而也具有許多Web應用程序漏洞。事實上,Web應用程序層可能完全由一個或多個Web服務實現(xiàn),這樣應用的URL只會把瀏覽器組件暴露給用戶。因此,配套服務和API函數(shù)也具有Web應用程序層的許多漏洞。 管理訪問NIST的云計算定義指出云服務的核心特征之一是:可以快速準備并發(fā)布,只需要最小的管理工作或服務提供商的配合。因此,每個云服務的一個共同點是管理接口,這會直接導致非法訪問管理接口的漏洞。此外,因為經(jīng)常使用Web應用或服務實現(xiàn)管理訪問,它通常也會帶來與Web應用層和服務/API組件同樣的漏洞。 標識、身份驗證、授權和審計機制所有的云服務(以及每個云服務的管理界面)都需要身份管理、認證、授權和審計(IAAA)的機制。在一定程度上,這些機制的某些部分可能被分離出來,作為一個獨立的IAAA服務以供其他服務使用。足夠的授權檢查(這必然會用到身份驗證和/或從IAA服務收到的授權信息)和云基礎設施的審計這兩個IAAA要素是每個服務實現(xiàn)的不可分割的部分。 IAAA組件相關聯(lián)的大部分漏洞必須被視為特定于云計算,因為它們在當前最新的云計算實例中很常見。前面我們已經(jīng)舉了薄弱的用戶認證機制的例子,其他的例子還包括:
以云服務提供商的經(jīng)驗而言,在所有這些IAAA漏洞中,目前驗證問題是主要的漏洞,因為它讓用戶放在云服務里的數(shù)據(jù)蒙受風險[5] 。 提供商所有云計算組件的漏洞,或者更確切地說,無法讓用戶像控制自己的基礎設施一樣控制云計算基礎設施,通常都讓提供商感到擔心?刂品矫娴恼n題有:安全審計不足的可能,以及認證方式和安全度量在云計算中沒有得到采用這樣一個事實。此外,審計、認證與持續(xù)安全檢測這樣的標準安全控制沒有被有效地實施。 云計算還處于不斷發(fā)展的階段,隨著該領域的成熟,更多的特定于云的漏洞肯定還會出現(xiàn),而舊的威脅也會減弱。從Open Group的風險分類,加上我們在此識別出的特定于云計算的漏洞的四項指標,我們得到了精確的關于漏洞的定義,提高了準確度和清晰度,而這正是目前為止的對云計算安全性的討論中所缺乏的。 一些本來成功的安全控制在云計算的背景下變得無效,這些情況在安全控制的問題中往往很突出。因此,這些問題對于進一步的云計算安全研究具有特殊的意義。事實上,目前有許多努力——如安全度量和認證方式的開發(fā) 本文出自:億恩科技【www.allwellnessguide.com】 |