左利云,陳一明
(茂名學院 實驗教學部,廣東 茂名 525000)
隨著并行計算、分布式計算和網格計算的發展,一種新型的計算方式——云計算(Cloud Computing)成為IT業內討論的焦點。云計算指的是Internet上作為服務提供的應用以及部署在數據中心的提供這些服務的軟件和硬件。這些服務被稱為SaaS(Software as Service),軟件即服務。數據中心的軟件及硬件就是所謂的“云”。
Sun、IBM、 微軟、Google、Amazon等信息業巨頭都已經參與到云計算的研究和開發中。Sun公司在2006年推出了基于云計算理論的 “黑盒子”計劃,已進入發售階段[1];IBM推出的“藍云”計劃[2-3];較為顯著的是 Google公司專門針對Web應用而設計的AppEngine[4]。同時,學術界也紛紛對云計算進行深層次的研究。例如谷歌與華盛頓大學和清華大學合作,啟動云計算學術合作計劃,推動云計算的普及,加緊對云計算的研究。我國的計算機研究人員遠在“云計算”這個名詞提出之前就有透明計算[5-6]的構思。透明計算體現了云計算的特征,即資源池動態的構建、虛擬化、用戶透明等。較近的研究有探討云計算理論及其關鍵技術等[7-8]。
云計算中的許多應用需即時互動響應終端應用程序的上傳、下載數據請求,這會導致嚴重的性能瓶頸,而且云計算的安全問題亦十分嚴峻。本文提出一種強耦合網絡代理模型以解決云計算固有的互動模式瓶頸,同時提出一種新的基于強耦合網絡代理模型的云安全分析算法。
Google的實踐表明,用廉價服務器組成的大規模集群,在可靠性、穩定性和計算能力上,均能達到大型計算機的標準。也就是說,對于Google每天需要處理的海量數據和復雜計算,在保證系統延展性和良好運行效率的基礎上,都可以通過架構在廉價集群之上的云計算平臺得以實現。在這個由近百萬臺廉價服務器組成的集群中,就單臺機器而言,性能并不出眾,但由它們構建起來的整個網絡所能提供的數據存儲能力和計算能力卻大得驚人[9-10]。
然而,這樣的云計算平臺在其面向終端應用程序的互動中所產生的瓶頸會嚴重影響整個系統的性能。尤其是高峰時段更會給整個系統帶來嚴重的危機。為解決此問題,本文提出了一種強耦合網絡代理模型。
代理網絡模型是基于云計算的服務 (泛指大規模的數據、計算或服務資源,提供給最終用戶和應用程序),通過強耦合代理網絡連接設置,有三個重要組成部分:云服務、代理網絡及應用程序啟動器,其模型如圖1所示。例如云服務S1可能是一個大型國際互聯網的服務(如Google地圖等),云服務S2則可能是提供的數據依賴計算機的計算資源(如亞馬遜EC2[11]),云服務 Sn可能是提供專業化的服務,或被其他應用程序使用的服務。節點 A、B、C、D、E、F、G 是代理節點, 而 P 是一個使用云服務的應用程序啟動器。
代理網絡是由一組邏輯節點相連而成,圖1中的實線代表代理節點之間及代理與云服務之間的相互作用,虛線表示云服務之間的相互邏輯作用。此代理模型可以提高分布式密集型數據應用程序的性能和可靠性。其表現如下:(1)與云服務的互動。代理可作為客戶端訪問云服務,這可以使代理以更好的網絡連接去訪問一個或多個云服務。如一個代理節點能以比客戶端高得多的帶寬訪問云服務。(2)計算。代理可以通過數據處理器對數據進行過濾、壓縮、合并、采集和轉換等。(3)緩存。代理可以高效存儲傳送數據到其他節點,也可以緩存可能被云服務重用的即時數據。(4)路由。代理可以作為應用程序流程的一部分傳遞數據至另一個代理。這很重要,因為應用程序與多個廣泛分布的云之間的相互作用需要統一有效的管理安排。而代理的真正優勢在于這些角色的聯合作用。如一個自瘦客戶網絡連接到PDA上,可利用高帶寬的代理與云服務的相互作用獲取大量輸出數據,并利用其強大的計算能力來處理數據。
應用程序啟動器(圖1中的P)是代理網絡中的一個節點,可代表應用程序,可以是終端用戶機,或工作調度等。它決定著應用程序的控制點和最終的資源分配。值得注意的是,終端用戶不一定一直作為應用程序啟動器,也可以將代理網絡中的其他控制點作為啟動器。代理網絡中也可以有很多應用程序啟動節點,并且一個節點此時作為啟動節點,在另一時刻也可能會作為普通代理節點。
代理網絡模型可加速提高其上應用程序的性能。模型中的每個實體都有其特殊的作用。其中,應用程序啟動器最適合保存私有數據,是用于執行應用程序的邏輯控制點;代理網絡的特別優勢在于,在不同的網絡位置能提供最好的網絡資源;云服務是提供數據支持和保持資源共享的強大性能保證。而這三者在整個模型中以強耦合方式聯系,故強耦合在此的含義是指一個處理單元的輸出會受另一個單元的影響。分布式應用程序即是應用程序啟動器、代理網絡和云服務這三個實體的耦合。如圖1中應用程序調用兩個云服務(S1和S2),經由數據處理器(如下面的分析過濾器等)實現過濾、壓縮、合并、采集和轉換等,然后用它們的中間數據作為輸入到S3產生終端數據輸出。代理A和B用來加快這一過程。A平行調用S1、S2處理輸出,并發送數據給調用S3的代理B。而代理 A和 B是由 P根據它們到 S1、S2和S3的網絡性能而選擇的。
現有云服務的互動模式決定了如果終端用戶應用程序資源受限,瓶頸問題將更加嚴重。而該模型可提高云計算中分布式數據密集型應用的性能和可靠性:能更有效地實現云服務的互動,如可以使云服務到客戶端擁有更高的帶寬;代理網絡還兼有緩存、路由和強大的計算功能。以上這些保證了云服務與終端應用程序的交流互動高速而有效。
強耦合網絡代理模型通過利用低延遲和高帶寬連接提供了可擴展資源,有利于云服務與終端用戶的互動,提高云服務與終端應用程序的交流速度(這些將通過后面的實驗予以驗證),同時也不免令人擔心置入這樣一個代理網絡,是否會給本就不令人放心的云計算的數據帶來更大的安全隱患?
云服務與終端用戶互動的加強、交流速度的加快會給云計算的安全帶來很大壓力。云計算是以數據為中心的,這意味著數據被轉移到了用戶不可控制的范圍,如何確保這些數據的安全(包括訪問控制、入侵防御、反異常部署、防止內部數據泄密和網絡內容與行為監控等)是急需解決的問題 (曾有2010年是云計算安全年的說法[12-13])。為此,本文嘗試在圖1的云服務及強耦合網絡代理之間加入一個如圖2所示的云安全分析器。期望給云計算的數據安全帶來一定保證,以使得代理網絡在帶來高性能的同時也同樣具有安全性。
事先需要把大量的非法的需過濾的條件登記在系統中,云安全分析處理器預先處理這些異常條件登記,當源源不斷的新數據到達時,處理器即對其進行實時處理。如果滿足先前定義的異常條件,則把這個新數據送給非法結果處理器;如果不滿足,則將合法的新數據輸出。

圖2 云安全分析處理器
在上面的安全分析器中,異常條件的設定很關鍵。本分析器的理論基礎是根據統計學原理,認為存在這樣的關鍵字集,即在異常數據和正常數據樣本中的出現頻率有明顯差異。關鍵字集在異常數據樣本中的出現頻率很高,而在正常數據樣本中的出現頻率相對很低,具有明顯差異。而且出現較多的關鍵詞大多都具有普遍意義,是異常數據行為不可缺少和不可替代的,也就是說,只要準確獲取了文本分析的關鍵字,異常文本的制造者就無法通過替代或者其他方式使異常躲過檢測。
異常條件是依據數據中關鍵字的危害指數而選取的。通過大量的實驗積累,根據關鍵字本身的破壞能力和關鍵字在異常數據樣本中出現的頻率給出危害指數的公式:

其中,H表示總的危害指數。D(i)表示狄拉克δ分布函數,當D(i)=0時,表示未與第i個關鍵字匹配;D(i)=1時,表示匹配。W(i)表示關鍵字與別的文本結合的行為產生的危害指數,簡稱行為危害系數,由其在異常數據樣本和正常數據樣本中的出現頻率差決定。當選取多個關鍵字時,實際上這個頻率差異的大小標志著它的可信性,不同的關鍵字出現一次所產生的危害指數與其出現多次的危害指數應當是不同的,根據大量的實驗,總結出選擇逐次折半的方法描述這個差別,故W(i)表示如下:

其中,w(i)為關鍵字自身原始具有的行為危害指數,會因與其他關鍵字結合而影響;n為匹配次數。H的收斂區域為2×w(i),即任意一個關鍵字在檢測時所帶來的行為危害指數不會小于其自身原始的行為危害指數,同時也不會大于其本身原始的行為危害指數的兩倍。
B(i)為關鍵字本身先天所具有的危害指數,不會受與其他關鍵字結合的影響:

算法描述如下:已知X個正常數據樣本,Y個異常數據樣本,通過對所有數據樣本的有效關鍵字進行統計學習,從而得到這些關鍵字的統計數值,找出在正常數據樣本與異常數據樣本中出現頻率差異較大的i個關鍵字,記錄其頻率和危害指數等屬性的一般規律后,對未知的待檢測數據樣本,統計這i個關鍵字及其屬性,將統計結果與事先得到的基于樣本的統計學習結果進行對比,由此來判別待測數據樣本是否為異常數據樣本。
假設有x個正常樣本,y個異常樣本。wx(i)表示第 i個關鍵字在正常數據樣本中的出現次數,wy(i)表示第 i個關鍵字在異常數據樣本中的出現次數,w(i)為第i個關鍵字的行為危害指數,B(i)為第i個關鍵字本身具有的危害指數,H為檢驗中的危害指數總和,ρ為閾值調整參數,t為中間變量。算法實現過程如圖3所示。
而算法中的報警閾值和匹配的關鍵字個數與匹配的危害組有關。考慮到整體選定的關鍵字個數和其所在的組可以得到它的歸一化系數:

圖3 云安全分析算法

其中ρ為閾值調整系數,用它來確定正常數據樣本與異常的邊界范圍。
本算法是基于不同的關鍵字在正常數據樣本和異常數據樣本中出現的頻率差異,通過計算這些關鍵字在待測數據樣本中的出現頻率及其他統計信息,判斷待測數據樣本是否為異常數據樣本,反映了異常數據樣本與正常數據樣本在關鍵字出現的頻率和行為特性上的特征。該特征不僅存在于己知的異常數據樣本中,也存在于未知數據樣本中。而且該算法也可單獨用于網絡數據安全監控,只是由于其統計信息的特點,更適合具有大量密集型分布應用程序的云計算系統,只有在云計算中方更能顯示其優勢。
同類的基于統計學的關于數據安全方向研究有RABEK J C.等對可執行程序中的系統調用進行統計分析,來檢測動態生成的變種惡意代碼[14];BHATTACHARYYA M等則針對通過Email傳播的惡意代碼構建了一個實驗系統,其主要思想也是統計分析[15];基于統計的理論在入侵檢測中也有過一些應用[16]。但它們的初始應用均是普通網絡,適用于云計算的報道較少見,而國內同類相關研究成果尚不多見。
為驗證強耦合代理模型及云安全分析算法的性能,本文利用云仿真軟件CloudSim設計了仿真實驗系統,其步驟如圖4所示。
首先評估網絡差異(如延遲、帶寬等)在多大程度上影響代理節點與現有云服務的部署,這將決定著云服務與客戶端之間的代理網絡模型是否有價值。
在具體操作時,先廣泛收集25個不同商業網絡服務加入云任務列表,每次代理網絡通過檢測獲取一個非常小的文件的時間來記錄每一個服務的響應延遲時間。隨機抽樣6個節點,并且每個節點取5次實驗的平均值,作出其最高響應時間、最低響應時間及平均響應時間曲線;針對同樣的25個云服務,獲取同樣的文件來記錄未使用代理網絡響應的延遲時間,作出響應時間曲線,如圖5所示。

圖4 云計算仿真實驗過程

圖5 云服務與應用程序響應延遲時間
實驗結果表明,不管網絡核心帶寬多么豐富,網絡節點仍會隨不同的云服務而顯示出差異,而具有較好連接的代理節點其響應時間有更大差異,但其響應時間的均值相對其他節點偏低。同時,使用強耦合代理網絡比不使用代理網絡有明顯較低的響應延遲時間。
通過觀察關鍵字個數、識別率、誤報率和閾值等參數來考察云安全分析算法的性能。實驗選取了40個病毒樣本作為異常樣本,這些樣本經諾頓和360等病毒識別軟件識別,并經實際的病毒執行測試確定。正常樣本同樣采用之前25個商業網站的客戶端腳本,同樣經病毒識別軟件識別和實際執行測試。從以上異常、正常樣本中選取可靠特征作為關鍵字。
識別率通過以下公式獲得:

誤報率情況與此類似,不再贅述。
而參數中最能影響算法性能的是關鍵字個數和報警閾值ρ。因為關鍵字越多,每一匹配到的關鍵字的權重就越小,造成匹配率增高,同時增加了冗余信息,并使重要的權重信息無法凸顯,會造成一定漏報;相反,較少關鍵字可能會丟失一些關鍵字信息,會造成一定漏報和誤報。為此,經反復實驗驗證得出圖6中不同關鍵字下的漏報率和誤報率。

圖6 不同關鍵字下漏報率和誤報率
由圖6可以看出,在關鍵字個數為30時,漏報率和誤報率都相對較小,因此選擇30作為算法最終關鍵字個數。
在選定不同關鍵字及其危險指數條件下,閾值的改變無疑也會對檢測結果造成相當大的影響。圖7為不同閾值下漏報率和誤報率的檢測情況。

圖7 不同閾值下漏報率和誤報率
由圖7分析得出,在隨機選取的測試樣本中,正常腳本的誤報集中在閾值的0.6倍和1.4倍左右。特別是當閾值取0的時候,得到了32%的誤報率,這說明抽取的大多數樣本中并不存在這些關鍵字。另外,算法中的閾值最終取1.6倍,因為此時誤報與漏報都處于最小,此時漏報率為1.63%,即識別率高達98.37%。但在某些網絡環境中,為提高可信指數可略微增大閾值系數。
云計算日趨發展壯大,但其中存在的問題亦不容忽視,在云服務與終端應用程序的互動中所產生的瓶頸會嚴重影響整個系統的性能,尤其是高峰時段更會給整個系統帶來嚴重的危機。本文提出的強耦合網絡代理模型二者之間做了很好的緩存、調度、計算、路由等工作,仿真實驗證明了模型的多功能多角色的作用大大降低了網絡響應的延遲時間。而基于統計學原理的云安全分析算法根據正常數據中文本代碼的危害指數與異常代碼出現的頻率,從而過濾不安全信息,它不但能對經過數據進行檢測,而且可以根據統計規律對未來數據中可能的出現的新的異常進行識別。實驗對異常數據的識別率高達98.37%,而誤報率雖然隨報警閾值系數ρ增大而增加,但均在合理可接受范圍內。該算法的缺點是主要針對網絡內容監控,如病毒入侵等,而對于訪問控制及防止內部數據泄密的效果不明顯,這有待進一步的研究。
[1]Sun的黑盒子—移動數據中心.http://www.biia.org.cn/a/jishushebei/20091222/821.html,2007.
[2]SIMS K.IBM introduces ready-to-use cloud computing collaboration services get clients started with cloud computing.http://www-03.ibm.com/press/us/en/pressrelease/22613.wss, 2007.
[3]IBM.IBM virtualization.http://www.ibm.com/virtualization,2009.
[4]蔡鍵,王樹梅.基于Google的云計算實例分析[J].網絡通訊及安全,2009(9):7093-7095.
[5]Zhang Yaoxue, Zhou Yuezhi.4VP+: a novel meta OS approach for streaming programs in ubiquitous computing[C].Proceedings of IEEE the 21st Int’l Conference. on Advanced Information Networking and Applications(AINA 2007), Los Alamitos: IEEE Computer Society, 2007:394-403.
[6]Zhang Yaoxue, Zhou Yuezhi.Transparent computing: a new paradigm for pervasive computing[C].Proceedings of the 3rd Int’l Conference.on Ubiquitous Intelligence and Computing(UIC 2006).Berlin, Heidelberg: Springer-Verlag,2006,4159:1-11.
[7]陳全,鄧倩妮.云計算及其關鍵技術[J].計算機應用,2009(9):2562-2567.
[8]陳濤.云計算理論及技術研究[J].重慶交通大學學報(社科版),2009(8):104-106.
[9]孫健,賈曉菁.Google云計算平臺的技術架構及對其成本的影響研究[J].電信科學,2010(1):38-43.
[10]陳康,鄭緯民.云計算:系統實例與研究現狀[J].軟件學報,2009(5):1338-1347.
[11]Ec2/s3.http://aws.amazon.com.
[12]陳怡樺.2010年云端安全年.http://domynews.blog.ithome.com.tw/post/1252/67523,2010.
[13]樂天.云計算還須邁過安全關[J].計算機世界,2008(7):39.
[14]RABEK J C, KHAZAN R I,LEWANDOWSKI S M, et al.Detection ofinjected, dynamically generated and obfuscated malieiouso code[J].Proceedings of the 2003 ACM Workshop on Rapid Malcode, Washington,DC,USA.2003:76-82.
[15]BHATTAEHARYYA M.An experimentalsystem for malieious email traeking. http://www.linkedin.com/pub/manasi bhattacharyya/4/968/A60,2002.
[16]WAENER D,DEAN R.Intrusiondetectionviastatic analysis[C].Proceedings of theIEEE Symposiumson Security and Privacy, 2001:156-168.