毛明揚(yáng) 徐勝超
(廣州華商學(xué)院數(shù)據(jù)科學(xué)學(xué)院 廣州 511300)
在互聯(lián)網(wǎng)技術(shù)的支撐下,云平臺借助虛擬化技術(shù)將資源進(jìn)行轉(zhuǎn)化,從而為用戶提供多樣化的資源,實現(xiàn)資源共享[1]。用戶根據(jù)需求在云平臺進(jìn)行操作時,僅具有主機(jī)的使用權(quán),不具備云平臺服務(wù)商處理數(shù)據(jù)的知情權(quán)[2],即缺少數(shù)據(jù)的物理控制權(quán)。云平臺具備方便易用和低成本的優(yōu)點,但是也存在著嚴(yán)重的安全威脅。在云平臺多租戶的情況下,彼此隔離的數(shù)據(jù)在物理存儲過程中有可能是交叉的,為惡意攻擊創(chuàng)造了潛在的攻擊通道,因此云平臺的運(yùn)行環(huán)境安全可信問題屬于目前學(xué)術(shù)界的關(guān)鍵問題[3]。
文獻(xiàn)[4]為了驗證云平臺的可信性,提出了一種基于多特征融合的云平臺異常檢測方法,以特征約束條件為前提,采用迭代法對多特征進(jìn)行融合處理,得到最優(yōu)解;構(gòu)建增量模型,運(yùn)用該模型對云平臺數(shù)據(jù)進(jìn)行計算;將數(shù)據(jù)計算結(jié)果與融合結(jié)果相結(jié)合,實現(xiàn)平臺異常檢測,以此判斷云平臺的可信性。實驗結(jié)果表明,該方法具有數(shù)據(jù)采集實時性的特點,能夠獲取云平臺的實時運(yùn)行狀態(tài),但是可信性驗證結(jié)果的準(zhǔn)確性不高。文獻(xiàn)[5]提出一種云架構(gòu)綜合監(jiān)控系統(tǒng)的可靠性驗證方法,首先分析云架構(gòu)綜合監(jiān)控系統(tǒng)的架構(gòu)特點,然后建立故障樹,獲取系統(tǒng)可信性影響因素的底事件,最后根據(jù)分析結(jié)果驗證系統(tǒng)的可信性。實驗結(jié)果表明,該方法在可信性驗證中對于系統(tǒng)故障問題能夠獲取較高的檢測率,但是由于系統(tǒng)中數(shù)據(jù)量較大,無法實現(xiàn)準(zhǔn)確的可信性驗證結(jié)果。文獻(xiàn)[6]提出了一種基于事件B的云平臺服務(wù)驗證方法,該方法從行為、語義、資源分配和結(jié)構(gòu)四個層面進(jìn)行驗證,采用Event-B方法將復(fù)雜問題轉(zhuǎn)換成簡單問題。驗證結(jié)果表明,該方法能夠為驗證問題提供嚴(yán)格的數(shù)學(xué)推理與證明,具有精細(xì)化的特點。
針對上述問題,本文設(shè)計一種云平臺運(yùn)行環(huán)境可信性驗證算法,為提升云平臺運(yùn)行環(huán)境的可信性提供有力的數(shù)據(jù)支持,提升新形勢下云平臺快速發(fā)展的科技競爭力,確保云平臺產(chǎn)業(yè)高速及穩(wěn)定發(fā)展。
以云平臺服務(wù)提供商、用戶與云平臺提供驗證服務(wù)的可信第三方為主體,結(jié)合可信第三方主動與持續(xù)監(jiān)控的可信性驗證思想,為用戶提供具備針對性的可信性驗證服務(wù)。本文面向云平臺的運(yùn)行環(huán)境可信性驗證算法的總體架構(gòu)如圖1所示。
圖1 可信性驗證算法總體架構(gòu)
通過可信思想構(gòu)建云平臺可信性驗證體系結(jié)構(gòu),該體系結(jié)構(gòu)和已有云平臺形成并立的雙體系結(jié)構(gòu),實現(xiàn)共同保護(hù)可信性驗證證據(jù)與可信性驗證機(jī)制的目標(biāo);基于可信連接架構(gòu)思想連接可信第三方和云平臺網(wǎng)絡(luò),保護(hù)用戶與云平臺服務(wù)提供商的隱私,同時為雙方提供中立與雙向的可信性驗證服務(wù)??尚判则炞C第三方執(zhí)行云平臺可信性驗證的主體過程是將可信性證據(jù)收集代理安裝于目標(biāo)云平臺內(nèi)部,負(fù)責(zé)收集目標(biāo)云服務(wù)與資源等信息。
云平臺主要包含基礎(chǔ)設(shè)施即服務(wù)層(Infrastructure as a Service,IaaS)、平臺即服務(wù)層(Platform as a Service,PaaS)與軟件即服務(wù)層(Software as a Service,SaaS),通過研究這三層的可信性動態(tài)驗證算法,實現(xiàn)云平臺的運(yùn)行環(huán)境可信性驗證。
2.2.1 IaaS層可信性驗證
云平臺的運(yùn)行環(huán)境可信性驗證需要IaaS層基礎(chǔ)設(shè)施的支持,IaaS層的硬件會出現(xiàn)安全漏洞與潛在的側(cè)信道,當(dāng)攻擊者利用IaaS層硬件的安全漏洞與潛在的側(cè)信道,就會降低云平臺運(yùn)行環(huán)境的可信性[7],破壞其安全。
利用基于漏洞特征信息流跟蹤與關(guān)鍵過程重構(gòu)的IaaS層固件安全性驗證方法,挖掘IaaS層固件漏洞,驗證IaaS層的安全性;該方法包含獲取設(shè)備固件、初步分析設(shè)備固件與反匯編關(guān)鍵代碼三部分。通過集成固件映像解析與目標(biāo)文件平臺識別等開源自動工具獲取設(shè)備固件;觀察云平臺啟動的關(guān)鍵服務(wù),定位與分析云平臺IaaS層運(yùn)行環(huán)境內(nèi)包含的配置文件與初始化腳本等重要文件的分布,判斷并采集有關(guān)固件設(shè)備的全部重要信息,初步獲取可能隱藏于腳本內(nèi)的安全漏洞與缺省配置內(nèi)的隱藏后門;反匯編關(guān)鍵服務(wù)程序與對外接口程序,逆向分析固件設(shè)備,發(fā)現(xiàn)其漏洞。
以側(cè)信道為出發(fā)點,利用基于側(cè)信道分析的云平臺運(yùn)行環(huán)境數(shù)據(jù)泄露檢測方法,檢測云平臺運(yùn)行環(huán)境內(nèi)硬件基礎(chǔ)設(shè)施是否存在泄露用戶數(shù)據(jù)的風(fēng)險,其檢測原理如圖2所示。
圖2 數(shù)據(jù)泄露檢測原理
基于側(cè)信道分析的云平臺運(yùn)行環(huán)境數(shù)據(jù)泄露檢測方法是通過硬件組件或數(shù)字設(shè)備的有意和無意發(fā)射信號,利用變體二進(jìn)制頻移鍵調(diào)制泄露數(shù)據(jù),經(jīng)由基于軟件的虛擬示波器捕獲與解碼發(fā)射的信號。檢索接收到的信息過程為:先提取及計算發(fā)射信號的尖峰;再平滑處理原始數(shù)據(jù);最后解調(diào)平滑后的數(shù)據(jù),使其形成真實有效的載荷數(shù)據(jù)。傳輸數(shù)據(jù)的接收步驟如下:
步驟1:預(yù)處理并歸一化處理發(fā)射的信號;
步驟2:實施小波變換,計算歸一化后發(fā)射信號的尖峰;
步驟3:計算原始數(shù)據(jù)的峰值間隔,將其轉(zhuǎn)換成頻率信號,利用低通濾波器平滑處理頻率信號,估計并應(yīng)用處理后頻率信號的閾值,結(jié)合閾值計算脈沖寬度,提取原始數(shù)據(jù)位;
步驟4:進(jìn)行比特幀報頭檢測與調(diào)制,并對比特幀荷載進(jìn)行調(diào)節(jié)。
2.2.2 PaaS層可信性驗證
云平臺的PaaS層負(fù)責(zé)部署驗證程序代理,如果程序代理被惡意破壞,那么云平臺運(yùn)行環(huán)境可信性驗證過程將不可信,為解決這一問題,設(shè)計一種適用于云平臺PaaS層運(yùn)行環(huán)境可信性驗證環(huán)境的agent保護(hù)機(jī)制(agent protection mechanism,APM)保障云平臺運(yùn)行環(huán)境可信性驗證過程的可信性,其實施步驟如下:
步驟1:利用計算機(jī)架構(gòu)構(gòu)建的內(nèi)存鎖機(jī)制保護(hù)agent內(nèi)核態(tài)保護(hù)模塊的完整性;
步驟2:通過agent內(nèi)核態(tài)保護(hù)模塊保護(hù)可信性驗證程序代理agent,利用云節(jié)點控制寄存器的狀態(tài),確保內(nèi)存鎖機(jī)制的安全性[8],信任關(guān)系以信任鏈的形式,使其從寫保護(hù)位的準(zhǔn)確性擴(kuò)展至agent內(nèi)核態(tài)保護(hù)模塊,再擴(kuò)展至可信性驗證程序代理agent,確保可信性驗證程序代理agent在云平臺內(nèi)獲取的驗證數(shù)據(jù)的完整性,提升云平臺運(yùn)行環(huán)境可信性驗證過程的可信度[9];
步驟3:云平臺服務(wù)提供商和可信第三方隨機(jī)質(zhì)詢云節(jié)點控制寄存器內(nèi)的寫保護(hù)位狀態(tài),agent內(nèi)核態(tài)保護(hù)模塊對可信性驗證程序代理agent實施完整性驗證,并檢查agent內(nèi)核態(tài)保護(hù)模塊執(zhí)行命令的準(zhǔn)確性,將質(zhì)詢與驗證結(jié)果傳輸至可信第三方,借助第三方實現(xiàn)可信性驗證。
2.2.3 SaaS層可信性驗證
云平臺的SaaS層負(fù)責(zé)直接為云用戶提供可信性驗證算法的計算服務(wù)。利用故障樹分析法分析云平臺運(yùn)行環(huán)境的可信性與安全狀況,通過可信第三方為SaaS層的故障樹分析法提供可信性驗證用例,確立頂事件。圖3為具體的分析流程。
圖3 故障樹分析法的流程
故障樹分析法的主要思想是利用邏輯代數(shù)以與門、或門以及非門的方式,連接基本事件、中間事件以及頂事件。通過該方法可以得到事故的最小割集,最小割集表示云平臺運(yùn)行環(huán)境的危險性[10],各最小割集均能夠?qū)е马斒录霈F(xiàn),說明計算獲取的最小割集越多,云平臺運(yùn)行環(huán)境越危險,即可信性越低。這種方法利于針對該事件及時制定解決方案,降低云平臺運(yùn)行環(huán)境中事故發(fā)生概率。
定量分析通過對比分析頂事件發(fā)生概率和預(yù)計目標(biāo)值驗證云平臺運(yùn)行環(huán)境的可信性,利用定量分析結(jié)果判斷故障對云平臺運(yùn)行環(huán)境可信性造成的傷害,進(jìn)而制定云平臺運(yùn)行環(huán)境可信性提升方法[11~12]。
在頂事件發(fā)生概率計算的過程中,首先用Bi表示獨立事件,然后計算邏輯或門事件的概率:
其中,事件發(fā)生次數(shù)為n。
再通過式(2)計算邏輯與門事件的概率:
其中,i=1,2,…,n。
將基本事件發(fā)生概率進(jìn)行劃分,具體可以分為人為失誤概率與運(yùn)行環(huán)境元件故障概率[13],其中,運(yùn)行環(huán)境元件故障概率可以通過式(3)進(jìn)行計算:
其中,γ表示單元故障率;μ表示單元修復(fù)率。由于真實環(huán)境內(nèi)存在濕度與溫度等影響因素[14~15],因此,將綜合修正系數(shù)設(shè)置成K,單元故障率的實驗值設(shè)置成γ0,λ=Kλ0,那么元件平均故障時間與γ0之間的關(guān)系表達(dá)式如下:
其中,表示元件故障間隔的平均值,其計算公式如下:
其中,故障持續(xù)時間為ti。
故障分析樹通過頂事件發(fā)生概率與預(yù)計目標(biāo)值的對比結(jié)果獲取云平臺運(yùn)行環(huán)境可信性驗證結(jié)果,并傳輸至可信第三方,由可信第三方輸出可信性驗證等級至云用戶,可信性驗證等級分別是不可信與可信。
為了驗證面向云平臺的運(yùn)行環(huán)境可信性驗證算法的有效性,進(jìn)行仿真實驗驗證。
實驗在Matlab軟件下進(jìn)行驗證,首先搭建一個仿真實驗平臺,平臺架構(gòu)如圖4所示。
圖4 仿真實驗平臺
具體實驗參數(shù)設(shè)置如表1所示。
表1 實驗平臺參數(shù)
實驗中用到的數(shù)據(jù)來自KDD CUP-99數(shù)據(jù)集,該數(shù)據(jù)集中包含大量的網(wǎng)絡(luò)攻擊類型,并生成了網(wǎng)絡(luò)攻擊的真實數(shù)據(jù)集,共包含500萬條以上的數(shù)據(jù)。在該數(shù)據(jù)集中抽取部分?jǐn)?shù)據(jù),形成4個數(shù)據(jù)集,用于本文實驗研究。表2為具體的實驗數(shù)據(jù)。
表2 實驗數(shù)據(jù)參數(shù)
在上述實驗環(huán)境下,對云平臺的可信性進(jìn)行驗證,為了確定本文方法是否具備有效性,將文獻(xiàn)[5]方法和文獻(xiàn)[6]方法作為對比方法,分析不同方法的應(yīng)用效果。
以云平臺為實驗對象,在該云平臺運(yùn)行環(huán)境內(nèi)隨機(jī)選取10個應(yīng)用程序,利用wu-ftpd的攻擊實驗方法攻擊這10個應(yīng)用程序,利用本文算法驗證該云平臺運(yùn)行環(huán)境內(nèi)所選的10個應(yīng)用程序的可信性,“√”表示該程序受到攻擊,驗證結(jié)果如表3所示。
根據(jù)表3可知,該云平臺運(yùn)行環(huán)境內(nèi)的10個應(yīng)用程序在8種攻擊類型下均受到不同程度的攻擊,破壞其可信性,本文算法能夠驗證出該云平臺運(yùn)行環(huán)境的不可信狀態(tài)。實驗證明:本文算法能夠有效驗證出云平臺運(yùn)行環(huán)境是否可信。
表3 云平臺可信性驗證結(jié)果
利用本文算法對云平臺運(yùn)行環(huán)境的主要故障事件導(dǎo)致頂事件發(fā)生所占的概率、結(jié)構(gòu)重要度與概率重要度實施計算,結(jié)構(gòu)重要度表示影響云平臺可信性主要故障事件指標(biāo)的重要程度。影響云平臺運(yùn)行環(huán)境可信性的主要故障事件指標(biāo)如表4所示;主要故障事件結(jié)構(gòu)重要度與概率重要度的計算結(jié)果如圖5、圖6、圖7所示。
圖5 導(dǎo)致頂事件發(fā)生所占的概率
表4 影響云平臺運(yùn)行環(huán)境的可信性指標(biāo)
根據(jù)圖5可知,云平臺故障對云平臺運(yùn)行環(huán)境不可信性的影響明顯高于應(yīng)用軟件故障,原因是應(yīng)用軟件故障能夠自行修復(fù)時間較短并不影響云平臺的運(yùn)行環(huán)境。
根據(jù)圖6、圖7可知,本文算法分析得出:結(jié)構(gòu)重要度最高的故障類型為緩存服務(wù)器故障;概率重要度最高的故障類型為數(shù)據(jù)庫服務(wù)器故障,最低的故障類型為瀏覽器故障。綜合分析可知,應(yīng)用故障中人為操作失誤導(dǎo)致云平臺運(yùn)行環(huán)境不可信的值最高,原因是出現(xiàn)人為操作失誤的頻率較高,瀏覽器故障導(dǎo)致云平臺運(yùn)行環(huán)境不可信的值最低,原因是瀏覽器故障能夠自行修復(fù)且修復(fù)時間較快。實驗證明:本文算法能夠有效獲取影響云平臺運(yùn)行環(huán)境可信性的故障事件,進(jìn)而驗證云平臺環(huán)境是否可信;同時本文算法還分析得出云平臺故障對云平臺運(yùn)行環(huán)境可信性的影響明顯高于應(yīng)用軟件故障。
圖6 結(jié)構(gòu)重要度
圖7 概率重要度
為了進(jìn)一步驗證本文方法的有效性,將文獻(xiàn)[5]方法和文獻(xiàn)[6]方法作為對比方法,將驗證結(jié)果準(zhǔn)確性作為實驗指標(biāo),對比不同方法的驗證效果,結(jié)果如圖8所示。
圖8 驗證結(jié)果準(zhǔn)確性對比結(jié)果
分析圖8可知,隨著迭代次數(shù)的增加,本文方法的可信性驗證結(jié)果準(zhǔn)確率呈現(xiàn)出持續(xù)增長的趨勢,并且準(zhǔn)確率較傳統(tǒng)方法優(yōu)勢明顯,其準(zhǔn)確率最高值接近90%。而文獻(xiàn)[5]方法和文獻(xiàn)[6]方法的驗證結(jié)果準(zhǔn)確率存在波動,準(zhǔn)確率最高未超過65%。通過上述實驗結(jié)果可知,本文方法的云平臺運(yùn)行環(huán)境可信性驗證結(jié)果更加可靠,這是因為本文方法采用故障樹分析法驗證云平臺運(yùn)行環(huán)境可信性,該方法可以得到事故的最小割集,并且通過IaaS層、PaaS層和SaaS層分層的形式,對可信性進(jìn)行驗證,進(jìn)一步提升了驗證結(jié)果的可靠性。
目前云平臺屬于信息技術(shù)領(lǐng)域重要的技術(shù)趨勢之一,以后會有更多的服務(wù)應(yīng)用于云平臺內(nèi)。影響服務(wù)向云平臺內(nèi)遷移的關(guān)鍵障礙為云平臺運(yùn)行環(huán)境的可信性,為此以提升云平臺運(yùn)行環(huán)境可信性為目的,本文提出面向云平臺的運(yùn)行環(huán)境可信性驗證算法,設(shè)計云平臺運(yùn)行環(huán)境中IaaS層、PaaS層與SaaS層的可信性驗證算法,驗證出導(dǎo)致云平臺運(yùn)行環(huán)境不可信的因素并及時改進(jìn),有利于提升云平臺的可靠性。