毛明揚 徐勝超
(廣州華商學院數據科學學院 廣州 511300)
在互聯網技術的支撐下,云平臺借助虛擬化技術將資源進行轉化,從而為用戶提供多樣化的資源,實現資源共享[1]。用戶根據需求在云平臺進行操作時,僅具有主機的使用權,不具備云平臺服務商處理數據的知情權[2],即缺少數據的物理控制權。云平臺具備方便易用和低成本的優點,但是也存在著嚴重的安全威脅。在云平臺多租戶的情況下,彼此隔離的數據在物理存儲過程中有可能是交叉的,為惡意攻擊創造了潛在的攻擊通道,因此云平臺的運行環境安全可信問題屬于目前學術界的關鍵問題[3]。
文獻[4]為了驗證云平臺的可信性,提出了一種基于多特征融合的云平臺異常檢測方法,以特征約束條件為前提,采用迭代法對多特征進行融合處理,得到最優解;構建增量模型,運用該模型對云平臺數據進行計算;將數據計算結果與融合結果相結合,實現平臺異常檢測,以此判斷云平臺的可信性。實驗結果表明,該方法具有數據采集實時性的特點,能夠獲取云平臺的實時運行狀態,但是可信性驗證結果的準確性不高。文獻[5]提出一種云架構綜合監控系統的可靠性驗證方法,首先分析云架構綜合監控系統的架構特點,然后建立故障樹,獲取系統可信性影響因素的底事件,最后根據分析結果驗證系統的可信性。實驗結果表明,該方法在可信性驗證中對于系統故障問題能夠獲取較高的檢測率,但是由于系統中數據量較大,無法實現準確的可信性驗證結果。文獻[6]提出了一種基于事件B的云平臺服務驗證方法,該方法從行為、語義、資源分配和結構四個層面進行驗證,采用Event-B方法將復雜問題轉換成簡單問題。驗證結果表明,該方法能夠為驗證問題提供嚴格的數學推理與證明,具有精細化的特點。
針對上述問題,本文設計一種云平臺運行環境可信性驗證算法,為提升云平臺運行環境的可信性提供有力的數據支持,提升新形勢下云平臺快速發展的科技競爭力,確保云平臺產業高速及穩定發展。
以云平臺服務提供商、用戶與云平臺提供驗證服務的可信第三方為主體,結合可信第三方主動與持續監控的可信性驗證思想,為用戶提供具備針對性的可信性驗證服務。本文面向云平臺的運行環境可信性驗證算法的總體架構如圖1所示。

圖1 可信性驗證算法總體架構
通過可信思想構建云平臺可信性驗證體系結構,該體系結構和已有云平臺形成并立的雙體系結構,實現共同保護可信性驗證證據與可信性驗證機制的目標;基于可信連接架構思想連接可信第三方和云平臺網絡,保護用戶與云平臺服務提供商的隱私,同時為雙方提供中立與雙向的可信性驗證服務。可信性驗證第三方執行云平臺可信性驗證的主體過程是將可信性證據收集代理安裝于目標云平臺內部,負責收集目標云服務與資源等信息。
云平臺主要包含基礎設施即服務層(Infrastructure as a Service,IaaS)、平臺即服務層(Platform as a Service,PaaS)與軟件即服務層(Software as a Service,SaaS),通過研究這三層的可信性動態驗證算法,實現云平臺的運行環境可信性驗證。
2.2.1 IaaS層可信性驗證
云平臺的運行環境可信性驗證需要IaaS層基礎設施的支持,IaaS層的硬件會出現安全漏洞與潛在的側信道,當攻擊者利用IaaS層硬件的安全漏洞與潛在的側信道,就會降低云平臺運行環境的可信性[7],破壞其安全。
利用基于漏洞特征信息流跟蹤與關鍵過程重構的IaaS層固件安全性驗證方法,挖掘IaaS層固件漏洞,驗證IaaS層的安全性;該方法包含獲取設備固件、初步分析設備固件與反匯編關鍵代碼三部分。通過集成固件映像解析與目標文件平臺識別等開源自動工具獲取設備固件;觀察云平臺啟動的關鍵服務,定位與分析云平臺IaaS層運行環境內包含的配置文件與初始化腳本等重要文件的分布,判斷并采集有關固件設備的全部重要信息,初步獲取可能隱藏于腳本內的安全漏洞與缺省配置內的隱藏后門;反匯編關鍵服務程序與對外接口程序,逆向分析固件設備,發現其漏洞。
以側信道為出發點,利用基于側信道分析的云平臺運行環境數據泄露檢測方法,檢測云平臺運行環境內硬件基礎設施是否存在泄露用戶數據的風險,其檢測原理如圖2所示。

圖2 數據泄露檢測原理
基于側信道分析的云平臺運行環境數據泄露檢測方法是通過硬件組件或數字設備的有意和無意發射信號,利用變體二進制頻移鍵調制泄露數據,經由基于軟件的虛擬示波器捕獲與解碼發射的信號。檢索接收到的信息過程為:先提取及計算發射信號的尖峰;再平滑處理原始數據;最后解調平滑后的數據,使其形成真實有效的載荷數據。傳輸數據的接收步驟如下:
步驟1:預處理并歸一化處理發射的信號;
步驟2:實施小波變換,計算歸一化后發射信號的尖峰;
步驟3:計算原始數據的峰值間隔,將其轉換成頻率信號,利用低通濾波器平滑處理頻率信號,估計并應用處理后頻率信號的閾值,結合閾值計算脈沖寬度,提取原始數據位;
步驟4:進行比特幀報頭檢測與調制,并對比特幀荷載進行調節。
2.2.2 PaaS層可信性驗證
云平臺的PaaS層負責部署驗證程序代理,如果程序代理被惡意破壞,那么云平臺運行環境可信性驗證過程將不可信,為解決這一問題,設計一種適用于云平臺PaaS層運行環境可信性驗證環境的agent保護機制(agent protection mechanism,APM)保障云平臺運行環境可信性驗證過程的可信性,其實施步驟如下:
步驟1:利用計算機架構構建的內存鎖機制保護agent內核態保護模塊的完整性;
步驟2:通過agent內核態保護模塊保護可信性驗證程序代理agent,利用云節點控制寄存器的狀態,確保內存鎖機制的安全性[8],信任關系以信任鏈的形式,使其從寫保護位的準確性擴展至agent內核態保護模塊,再擴展至可信性驗證程序代理agent,確??尚判则炞C程序代理agent在云平臺內獲取的驗證數據的完整性,提升云平臺運行環境可信性驗證過程的可信度[9];
步驟3:云平臺服務提供商和可信第三方隨機質詢云節點控制寄存器內的寫保護位狀態,agent內核態保護模塊對可信性驗證程序代理agent實施完整性驗證,并檢查agent內核態保護模塊執行命令的準確性,將質詢與驗證結果傳輸至可信第三方,借助第三方實現可信性驗證。
2.2.3 SaaS層可信性驗證
云平臺的SaaS層負責直接為云用戶提供可信性驗證算法的計算服務。利用故障樹分析法分析云平臺運行環境的可信性與安全狀況,通過可信第三方為SaaS層的故障樹分析法提供可信性驗證用例,確立頂事件。圖3為具體的分析流程。

圖3 故障樹分析法的流程
故障樹分析法的主要思想是利用邏輯代數以與門、或門以及非門的方式,連接基本事件、中間事件以及頂事件。通過該方法可以得到事故的最小割集,最小割集表示云平臺運行環境的危險性[10],各最小割集均能夠導致頂事件出現,說明計算獲取的最小割集越多,云平臺運行環境越危險,即可信性越低。這種方法利于針對該事件及時制定解決方案,降低云平臺運行環境中事故發生概率。
定量分析通過對比分析頂事件發生概率和預計目標值驗證云平臺運行環境的可信性,利用定量分析結果判斷故障對云平臺運行環境可信性造成的傷害,進而制定云平臺運行環境可信性提升方法[11~12]。
在頂事件發生概率計算的過程中,首先用Bi表示獨立事件,然后計算邏輯或門事件的概率:

其中,事件發生次數為n。
再通過式(2)計算邏輯與門事件的概率:

其中,i=1,2,…,n。
將基本事件發生概率進行劃分,具體可以分為人為失誤概率與運行環境元件故障概率[13],其中,運行環境元件故障概率可以通過式(3)進行計算:

其中,γ表示單元故障率;μ表示單元修復率。由于真實環境內存在濕度與溫度等影響因素[14~15],因此,將綜合修正系數設置成K,單元故障率的實驗值設置成γ0,λ=Kλ0,那么元件平均故障時間與γ0之間的關系表達式如下:

其中,表示元件故障間隔的平均值,其計算公式如下:

其中,故障持續時間為ti。
故障分析樹通過頂事件發生概率與預計目標值的對比結果獲取云平臺運行環境可信性驗證結果,并傳輸至可信第三方,由可信第三方輸出可信性驗證等級至云用戶,可信性驗證等級分別是不可信與可信。
為了驗證面向云平臺的運行環境可信性驗證算法的有效性,進行仿真實驗驗證。
實驗在Matlab軟件下進行驗證,首先搭建一個仿真實驗平臺,平臺架構如圖4所示。

圖4 仿真實驗平臺
具體實驗參數設置如表1所示。

表1 實驗平臺參數
實驗中用到的數據來自KDD CUP-99數據集,該數據集中包含大量的網絡攻擊類型,并生成了網絡攻擊的真實數據集,共包含500萬條以上的數據。在該數據集中抽取部分數據,形成4個數據集,用于本文實驗研究。表2為具體的實驗數據。

表2 實驗數據參數
在上述實驗環境下,對云平臺的可信性進行驗證,為了確定本文方法是否具備有效性,將文獻[5]方法和文獻[6]方法作為對比方法,分析不同方法的應用效果。
以云平臺為實驗對象,在該云平臺運行環境內隨機選取10個應用程序,利用wu-ftpd的攻擊實驗方法攻擊這10個應用程序,利用本文算法驗證該云平臺運行環境內所選的10個應用程序的可信性,“√”表示該程序受到攻擊,驗證結果如表3所示。
根據表3可知,該云平臺運行環境內的10個應用程序在8種攻擊類型下均受到不同程度的攻擊,破壞其可信性,本文算法能夠驗證出該云平臺運行環境的不可信狀態。實驗證明:本文算法能夠有效驗證出云平臺運行環境是否可信。

表3 云平臺可信性驗證結果
利用本文算法對云平臺運行環境的主要故障事件導致頂事件發生所占的概率、結構重要度與概率重要度實施計算,結構重要度表示影響云平臺可信性主要故障事件指標的重要程度。影響云平臺運行環境可信性的主要故障事件指標如表4所示;主要故障事件結構重要度與概率重要度的計算結果如圖5、圖6、圖7所示。

圖5 導致頂事件發生所占的概率

表4 影響云平臺運行環境的可信性指標
根據圖5可知,云平臺故障對云平臺運行環境不可信性的影響明顯高于應用軟件故障,原因是應用軟件故障能夠自行修復時間較短并不影響云平臺的運行環境。
根據圖6、圖7可知,本文算法分析得出:結構重要度最高的故障類型為緩存服務器故障;概率重要度最高的故障類型為數據庫服務器故障,最低的故障類型為瀏覽器故障。綜合分析可知,應用故障中人為操作失誤導致云平臺運行環境不可信的值最高,原因是出現人為操作失誤的頻率較高,瀏覽器故障導致云平臺運行環境不可信的值最低,原因是瀏覽器故障能夠自行修復且修復時間較快。實驗證明:本文算法能夠有效獲取影響云平臺運行環境可信性的故障事件,進而驗證云平臺環境是否可信;同時本文算法還分析得出云平臺故障對云平臺運行環境可信性的影響明顯高于應用軟件故障。

圖6 結構重要度

圖7 概率重要度
為了進一步驗證本文方法的有效性,將文獻[5]方法和文獻[6]方法作為對比方法,將驗證結果準確性作為實驗指標,對比不同方法的驗證效果,結果如圖8所示。

圖8 驗證結果準確性對比結果
分析圖8可知,隨著迭代次數的增加,本文方法的可信性驗證結果準確率呈現出持續增長的趨勢,并且準確率較傳統方法優勢明顯,其準確率最高值接近90%。而文獻[5]方法和文獻[6]方法的驗證結果準確率存在波動,準確率最高未超過65%。通過上述實驗結果可知,本文方法的云平臺運行環境可信性驗證結果更加可靠,這是因為本文方法采用故障樹分析法驗證云平臺運行環境可信性,該方法可以得到事故的最小割集,并且通過IaaS層、PaaS層和SaaS層分層的形式,對可信性進行驗證,進一步提升了驗證結果的可靠性。
目前云平臺屬于信息技術領域重要的技術趨勢之一,以后會有更多的服務應用于云平臺內。影響服務向云平臺內遷移的關鍵障礙為云平臺運行環境的可信性,為此以提升云平臺運行環境可信性為目的,本文提出面向云平臺的運行環境可信性驗證算法,設計云平臺運行環境中IaaS層、PaaS層與SaaS層的可信性驗證算法,驗證出導致云平臺運行環境不可信的因素并及時改進,有利于提升云平臺的可靠性。