賈布里 莫騰飛 武永成
摘? 要:近年來,云計算技術(shù)飛速發(fā)展,許多企業(yè)和機構(gòu)將自己的業(yè)務(wù)遷移到云上,這樣不僅降低費用,還能提高效率。但隨之而來的是云服務(wù)提供者和用戶被大量的惡意軟件攻擊。許多機器學(xué)習(xí)算法通過對云平臺上可能發(fā)生的行為進行預(yù)測,來保護云系統(tǒng)不受攻擊,取得了不錯的效果。但當(dāng)所學(xué)習(xí)的數(shù)據(jù)集較大和稀疏時,這些機器學(xué)習(xí)算法效果不是很好。本文采用了一種梯度提升的決策樹算法,能對云計算系統(tǒng)上的惡意軟件攻擊進行更準確的預(yù)測。實驗驗證了本方法的有效性。
關(guān)鍵詞:云計算安全? 機器學(xué)習(xí)? 梯度? 下采樣? 決策樹算法
中圖分類號:TP391? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻標識碼:A? ? ? ? ? ? ? ? ?文章編號:1674-098X(2021)06(a)-0072-04
A Gradient Boosting Machine Learning Algorithm for Cloud Security
Gabriel? MO Tengfei? WU Yongcheng*
(Jingchu University of Technology? ?Computer Engineering School, Jingmen, Hubei Province, 448000 China)
Abstract: In recent years, with the rapid development of cloud computing technology, many enterprises and institutions transfer their business to the cloud, which not only reduces costs, but also provides efficiency. But then it is easier for cloud service providers being attacked by a large number of malware. Many machine learning algorithms are used to protect the cloud system from attack by predicting the possible behavior on the cloud platform, and achieved good performance. However, when the data set is large and sparse, the effect of these machine learning algorithms is not good. In this paper, a gradient boosting decision tree algorithm is adopted, which can more accurately predict the malware attacks on cloud computing system. Experiment results show the effectiveness of the proposed method.
Key Words: Cloud computing security; Machine learning; Gradient; Down sampling; Decision tree algorithm
信息化時代,每家公司和機構(gòu)都利用計算機進行相關(guān)數(shù)據(jù)處理。對一家公司來說,一臺計算機的運算能力往往無法滿足需求,因此該單位就要購置一臺運算能力更強的計算機,也就是服務(wù)器。如果單位的規(guī)模再大一些,可能需要多臺服務(wù)器,組成一個數(shù)據(jù)中心。建立一個數(shù)據(jù)中心,除了巨大的初期建設(shè)成本之外,后期的計算機和網(wǎng)絡(luò)維護支出,都是中小型單位和企業(yè)難以支付的。云計算(Cloud Computing)就是在此背景下誕生的。云計算是以互聯(lián)網(wǎng)為基礎(chǔ)的分布式計算,使用者可以從云提供商那里隨時按需獲得自己所需的計算資源,像使用自來水一樣,按需付費即可,不必每家單位都建立和維護一個自己的服務(wù)器和數(shù)據(jù)中心,這樣大大降低了成本和提高了效率。
云計算提供的服務(wù)主要分3種:軟件即服務(wù)(SaaS,
Software as a Service)、基礎(chǔ)設(shè)施即服務(wù)(IaaS,
Infrastructure as a Service)、平臺即服務(wù)(PaaS, Platform as a Service)。但伴隨著云計算產(chǎn)生的安全問題,帶來很多挑戰(zhàn)[1-3]。比如對于公有云平臺,由于被很多租戶使用,這樣大大增加了某租戶非法訪問其他租戶的內(nèi)容和信息的風(fēng)險。
機器學(xué)習(xí)(Machine Learning)是人工智能(Artificial Intelligence, AI)中的一個跨學(xué)科的領(lǐng)域,它通過對相關(guān)的數(shù)據(jù)進行學(xué)習(xí),實現(xiàn)決策支持。在云計算安全性問題和云數(shù)據(jù)管理方面,機器學(xué)習(xí)是一種較高效的方法。一些機器學(xué)習(xí)的算法如線性回歸、支持向量機、貝葉斯等,和其他一些安全措施結(jié)合在一起,能用來提高云服務(wù)的安全性[4-6]。但是,當(dāng)這些機器學(xué)習(xí)算法學(xué)習(xí)的數(shù)據(jù)集較大且稀疏時,效果不是很理想[7]。
本文提出了一種梯度提升(Gradient Boosting)的決策樹(Decision Tree)算法,能對云計算系統(tǒng)上的惡意軟件攻擊進行更準確的預(yù)測。在一個較大且稀疏的數(shù)據(jù)集上,驗證了本算法在惡意軟件檢測率和運行時間方面的有效性。
1? 相關(guān)工作
盡管云計算服務(wù)迅猛發(fā)展,企業(yè)和個人都轉(zhuǎn)向利用云服務(wù),但其安全性問題的確是個嚴峻挑戰(zhàn)。A. Vieira采用決策樹和隨機森林對用戶的在線行為進行了預(yù)測[7]。決策樹是一種樹狀的決策工具,它包含一些分支和葉子。決策樹比其他的機器學(xué)習(xí)方法如人工神經(jīng)網(wǎng)絡(luò)(artificial neural network)、邏輯回歸(logistic regression)速度要快,且更容易可視化。它的缺點是容易產(chǎn)生對數(shù)據(jù)的過擬合。隨機森林(random forests)是一種用來進行分類或回歸的機器學(xué)習(xí)算法。它學(xué)習(xí)和訓(xùn)練一組決策樹,最后決策的結(jié)果由森林中每個決策樹輸出結(jié)果的眾數(shù)決定??傮w來說,它比單一的決策樹算法具有更高的準確性。但無論是決策樹還是隨機森林算法,如果學(xué)習(xí)的數(shù)據(jù)集很稀疏時,效果都不理想[7]。
H. Kuswanto等實現(xiàn)了一種基于邏輯回歸的算法,用來對用戶不良行為進行預(yù)測[8]。一般的邏輯回歸的因變量是二分類的,H. Kuswanto等的這種算法將邏輯回歸涉及的因變量劃分成幾個子空間,從而實現(xiàn)多分類。其目的是能對基于云服務(wù)的大數(shù)據(jù)集進行學(xué)習(xí),并準確預(yù)測用戶的不良行為。對于大的數(shù)據(jù)集,如果它是線性可分的,邏輯回歸具有優(yōu)勢,但它只適合預(yù)測離散數(shù)據(jù),而且當(dāng)數(shù)據(jù)集較大時,容易產(chǎn)生過擬合[9]。
2? 基于梯度提升的云安全算法
為了對惡意軟件攻擊進行預(yù)測,本文采用了一種梯度提升決策樹算法[10]。梯度提升(gradient boosting)是一種提升(boosting)算法,它屬于集成學(xué)習(xí)(ensemble learning)的一種。提升(boosting)是一種可將弱學(xué)習(xí)器提升為強學(xué)習(xí)器的算法。提升算法基于這樣一種思想:對于一個復(fù)雜的任務(wù),將多個分類器(classifier)的判斷總和得出的結(jié)果要比任何一個分類器單獨的判斷好。
2.1 梯度單向采樣方法
因為傳統(tǒng)的梯度提升決策樹算法很耗時,為減少性能開銷,許多方法被采用。例如可通過下采樣(downsample)方式來減少樣本的數(shù)量,從而減少運行時間。但它要考慮數(shù)據(jù)樣例的權(quán)重,所以不能直接用于梯度提升算法。同樣,減少每個數(shù)據(jù)樣例的特征數(shù)也是一個減少梯度提升算法運行時間的方法,但這樣會影響算法的精度。本文采用下采樣方法:采用了一種梯度單向采樣方法,用來減少樣本的數(shù)量。
雖然供學(xué)習(xí)的數(shù)據(jù)集中的每個實例數(shù)據(jù)沒有一個固有權(quán)重值,但在計算信息增益時,可以采用梯度,即:梯度越大的實例,對信息增益的貢獻率就越高。在采用下采樣將樣本數(shù)減少時,梯度小的樣本就被清洗掉了。這樣會帶來一個問題:整個數(shù)據(jù)集的數(shù)據(jù)分布被破壞了。為此,在梯度小的數(shù)據(jù)實例上進行隨機采樣,對梯度大的數(shù)據(jù)則全部保留[7]。具體算法如下:先對整個數(shù)據(jù)集中的實例按梯度進行排序,然后按從大到小的順序選出所有梯度高的實例(占整個數(shù)據(jù)集的a)。對剩余的實例,以采樣率b隨機選取。最后,對選擇的這些梯度較小的實例,按(1-a)/b 的比例進行對其權(quán)值擴大。這樣可以保證,在下采樣的情況下,原數(shù)據(jù)集的分布基本沒有被改變。
2.2 基于梯度提升的云安全算法
本文提出的基于梯度提升的云安全算法,完整描述如圖1所示。
算法中,損失函數(shù)采用交叉熵損失函數(shù),如公式(1)所示:
(1)
在二分類問題中,當(dāng)yi=1時,LogLoss= - logpi,預(yù)測輸出越接近真實樣本標簽1,損失越小。當(dāng)yi=0時,LogLoss= - log(1-pi ),預(yù)測輸出越接近真實樣本標簽0,損失越小。該公式的意義在于:當(dāng)預(yù)測類型與真實標簽的值越接近,損失函數(shù)的值越小,樣本的重要性就越高,越應(yīng)該在下采樣時被采樣。
3? 實驗
本算法使用的是微軟公司提供的一個云安全環(huán)境中惡意軟件預(yù)測數(shù)據(jù)集[11]。該數(shù)據(jù)集有訓(xùn)練數(shù)據(jù)4.04GB,測試數(shù)據(jù)3.55GB。先用訓(xùn)練數(shù)據(jù)對算法進行訓(xùn)練,得到分類器。然后用學(xué)習(xí)到的分類器,在測試數(shù)據(jù)上進行測試,分析預(yù)測的準確性。因為數(shù)據(jù)量很大,所以采用傳統(tǒng)的隨機森林等算法將非常耗時。由于本算法采用下采樣方法,大大減少了訓(xùn)練數(shù)據(jù)的樣本數(shù),將在基本不影響預(yù)測精度的情況下,大大減少運行時間。
測試數(shù)據(jù)的輸出包含2個屬性值:userID和Has Detection,在預(yù)測結(jié)果和用戶之間建立一種映射關(guān)系。同時,在用戶與其所占的地理位置之間也有關(guān)聯(lián)。根據(jù)對惡意軟件預(yù)測的概率,對用戶未來的網(wǎng)絡(luò)攻擊行為進行預(yù)測,從而保護云安全。
在該數(shù)據(jù)集上,分別采用隨機森林、簡單隨機下采樣算法、基于梯度提升的云安全算法進行實驗。簡單隨機下采樣算法很簡單,即直接在訓(xùn)練數(shù)據(jù)集上,按a+b的比例,選取樣本。實驗環(huán)境是Inter Core i5-4210H CPU和Windows8 操作系統(tǒng)。算法迭代次數(shù)為500?;谔荻忍嵘脑瓢踩惴▽嶒炞詈蟮臏蚀_率為70.08%,比隨機森林有所下降,但運行時間只有6h左右,時間大大減少。具體如表1所示。
4? 結(jié)語
隨著云計算的快速發(fā)展,云安全變得越來越重要。傳統(tǒng)的機器學(xué)習(xí)算法進行惡意軟件預(yù)測,當(dāng)數(shù)據(jù)集很大時,非常耗時。本文提出了一種基于梯度提升的云安全機器學(xué)習(xí)算法,采用了一種單向梯度采樣方法,在保持樣本分布不變的情況下,大大減少了訓(xùn)練樣本數(shù),實驗驗證了本算法的有效性。
參考文獻
[1] Mathkunti N.Cloud Computing: Security Issues [J].Int. J. Comput. Commun. Eng.,2014(3):259–263.
[2] 劉明,孫銀.淺談大數(shù)據(jù)云計算環(huán)境下的數(shù)據(jù)安全[J].南方農(nóng)機,2019,50(5):147.
[3] 高源,雷瑩瑩.云計算環(huán)境大數(shù)據(jù)安全和隱私保護策略研究[J].網(wǎng)絡(luò)空間安全,2017(6):7-9.
[4] Le Duc T., Leiva, R.G., Casari, P.Machine Learning Methods for Reliable Resource Provisioning in Edge-Cloud Computing: A Survey[J]. ACM Comput. Surv.,2019(52):1–39.
[5] 李丹彤,馮海云,高涌皓.一種基于機器學(xué)習(xí)算法的網(wǎng)絡(luò)安全評估方法[J].電子設(shè)計工程,2021,29(12): 138-142.
[6] Guo A J X, Zhu F.Spectral-spatial feature extraction and classification by ANN supervised with center loss in hyperspectral imagery[J].IEEE Transactions on Geoscience and Remote Sensing, 2019, 53(3):1755-1767.
[7] A. Vieira.Predicting online user behaviour using deep learning algorithms[J/OL].http://arxiv.org/abs/1511.06247.
[8] H. Kuswanto, A. Asfihani, Y. Sarumaha.? Logistic regression ensemble for predicting customer defection with very large sample size[J].Procedia Computer Science,2015,72:86–93.
[9] X. Chen, P. Ender, M. Mitchell,et al.Logistic regression with Stata[M].UCLA: Academic Technology Services, Statistical Consulting Group,2011.
[10] J. H. Friedman.Greedy function approximation: A gradient boosting machine[J].The Annals of Statistics,2001,29:1189–1232.
[11] Microsoft malware prediction dataset[EB/OL].https://www.kaggle.com/c/microsoft-malware-prediction/data.