賈布里 莫騰飛 武永成
摘? 要:近年來,云計(jì)算技術(shù)飛速發(fā)展,許多企業(yè)和機(jī)構(gòu)將自己的業(yè)務(wù)遷移到云上,這樣不僅降低費(fèi)用,還能提高效率。但隨之而來的是云服務(wù)提供者和用戶被大量的惡意軟件攻擊。許多機(jī)器學(xué)習(xí)算法通過對(duì)云平臺(tái)上可能發(fā)生的行為進(jìn)行預(yù)測,來保護(hù)云系統(tǒng)不受攻擊,取得了不錯(cuò)的效果。但當(dāng)所學(xué)習(xí)的數(shù)據(jù)集較大和稀疏時(shí),這些機(jī)器學(xué)習(xí)算法效果不是很好。本文采用了一種梯度提升的決策樹算法,能對(duì)云計(jì)算系統(tǒng)上的惡意軟件攻擊進(jìn)行更準(zhǔn)確的預(yù)測。實(shí)驗(yàn)驗(yàn)證了本方法的有效性。
關(guān)鍵詞:云計(jì)算安全? 機(jī)器學(xué)習(xí)? 梯度? 下采樣? 決策樹算法
中圖分類號(hào):TP391? ? ? ? ? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A? ? ? ? ? ? ? ? ?文章編號(hào):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
信息化時(shí)代,每家公司和機(jī)構(gòu)都利用計(jì)算機(jī)進(jìn)行相關(guān)數(shù)據(jù)處理。對(duì)一家公司來說,一臺(tái)計(jì)算機(jī)的運(yùn)算能力往往無法滿足需求,因此該單位就要購置一臺(tái)運(yùn)算能力更強(qiáng)的計(jì)算機(jī),也就是服務(wù)器。如果單位的規(guī)模再大一些,可能需要多臺(tái)服務(wù)器,組成一個(gè)數(shù)據(jù)中心。建立一個(gè)數(shù)據(jù)中心,除了巨大的初期建設(shè)成本之外,后期的計(jì)算機(jī)和網(wǎng)絡(luò)維護(hù)支出,都是中小型單位和企業(yè)難以支付的。云計(jì)算(Cloud Computing)就是在此背景下誕生的。云計(jì)算是以互聯(lián)網(wǎng)為基礎(chǔ)的分布式計(jì)算,使用者可以從云提供商那里隨時(shí)按需獲得自己所需的計(jì)算資源,像使用自來水一樣,按需付費(fèi)即可,不必每家單位都建立和維護(hù)一個(gè)自己的服務(wù)器和數(shù)據(jù)中心,這樣大大降低了成本和提高了效率。
云計(jì)算提供的服務(wù)主要分3種:軟件即服務(wù)(SaaS,
Software as a Service)、基礎(chǔ)設(shè)施即服務(wù)(IaaS,
Infrastructure as a Service)、平臺(tái)即服務(wù)(PaaS, Platform as a Service)。但伴隨著云計(jì)算產(chǎn)生的安全問題,帶來很多挑戰(zhàn)[1-3]。比如對(duì)于公有云平臺(tái),由于被很多租戶使用,這樣大大增加了某租戶非法訪問其他租戶的內(nèi)容和信息的風(fēng)險(xiǎn)。
機(jī)器學(xué)習(xí)(Machine Learning)是人工智能(Artificial Intelligence, AI)中的一個(gè)跨學(xué)科的領(lǐng)域,它通過對(duì)相關(guān)的數(shù)據(jù)進(jìn)行學(xué)習(xí),實(shí)現(xiàn)決策支持。在云計(jì)算安全性問題和云數(shù)據(jù)管理方面,機(jī)器學(xué)習(xí)是一種較高效的方法。一些機(jī)器學(xué)習(xí)的算法如線性回歸、支持向量機(jī)、貝葉斯等,和其他一些安全措施結(jié)合在一起,能用來提高云服務(wù)的安全性[4-6]。但是,當(dāng)這些機(jī)器學(xué)習(xí)算法學(xué)習(xí)的數(shù)據(jù)集較大且稀疏時(shí),效果不是很理想[7]。
本文提出了一種梯度提升(Gradient Boosting)的決策樹(Decision Tree)算法,能對(duì)云計(jì)算系統(tǒng)上的惡意軟件攻擊進(jìn)行更準(zhǔn)確的預(yù)測。在一個(gè)較大且稀疏的數(shù)據(jù)集上,驗(yàn)證了本算法在惡意軟件檢測率和運(yùn)行時(shí)間方面的有效性。
1? 相關(guān)工作
盡管云計(jì)算服務(wù)迅猛發(fā)展,企業(yè)和個(gè)人都轉(zhuǎn)向利用云服務(wù),但其安全性問題的確是個(gè)嚴(yán)峻挑戰(zhàn)。A. Vieira采用決策樹和隨機(jī)森林對(duì)用戶的在線行為進(jìn)行了預(yù)測[7]。決策樹是一種樹狀的決策工具,它包含一些分支和葉子。決策樹比其他的機(jī)器學(xué)習(xí)方法如人工神經(jīng)網(wǎng)絡(luò)(artificial neural network)、邏輯回歸(logistic regression)速度要快,且更容易可視化。它的缺點(diǎn)是容易產(chǎn)生對(duì)數(shù)據(jù)的過擬合。隨機(jī)森林(random forests)是一種用來進(jìn)行分類或回歸的機(jī)器學(xué)習(xí)算法。它學(xué)習(xí)和訓(xùn)練一組決策樹,最后決策的結(jié)果由森林中每個(gè)決策樹輸出結(jié)果的眾數(shù)決定??傮w來說,它比單一的決策樹算法具有更高的準(zhǔn)確性。但無論是決策樹還是隨機(jī)森林算法,如果學(xué)習(xí)的數(shù)據(jù)集很稀疏時(shí),效果都不理想[7]。
H. Kuswanto等實(shí)現(xiàn)了一種基于邏輯回歸的算法,用來對(duì)用戶不良行為進(jìn)行預(yù)測[8]。一般的邏輯回歸的因變量是二分類的,H. Kuswanto等的這種算法將邏輯回歸涉及的因變量劃分成幾個(gè)子空間,從而實(shí)現(xiàn)多分類。其目的是能對(duì)基于云服務(wù)的大數(shù)據(jù)集進(jìn)行學(xué)習(xí),并準(zhǔn)確預(yù)測用戶的不良行為。對(duì)于大的數(shù)據(jù)集,如果它是線性可分的,邏輯回歸具有優(yōu)勢(shì),但它只適合預(yù)測離散數(shù)據(jù),而且當(dāng)數(shù)據(jù)集較大時(shí),容易產(chǎn)生過擬合[9]。
2? 基于梯度提升的云安全算法
為了對(duì)惡意軟件攻擊進(jìn)行預(yù)測,本文采用了一種梯度提升決策樹算法[10]。梯度提升(gradient boosting)是一種提升(boosting)算法,它屬于集成學(xué)習(xí)(ensemble learning)的一種。提升(boosting)是一種可將弱學(xué)習(xí)器提升為強(qiáng)學(xué)習(xí)器的算法。提升算法基于這樣一種思想:對(duì)于一個(gè)復(fù)雜的任務(wù),將多個(gè)分類器(classifier)的判斷總和得出的結(jié)果要比任何一個(gè)分類器單獨(dú)的判斷好。
2.1 梯度單向采樣方法
因?yàn)閭鹘y(tǒng)的梯度提升決策樹算法很耗時(shí),為減少性能開銷,許多方法被采用。例如可通過下采樣(downsample)方式來減少樣本的數(shù)量,從而減少運(yùn)行時(shí)間。但它要考慮數(shù)據(jù)樣例的權(quán)重,所以不能直接用于梯度提升算法。同樣,減少每個(gè)數(shù)據(jù)樣例的特征數(shù)也是一個(gè)減少梯度提升算法運(yùn)行時(shí)間的方法,但這樣會(huì)影響算法的精度。本文采用下采樣方法:采用了一種梯度單向采樣方法,用來減少樣本的數(shù)量。
雖然供學(xué)習(xí)的數(shù)據(jù)集中的每個(gè)實(shí)例數(shù)據(jù)沒有一個(gè)固有權(quán)重值,但在計(jì)算信息增益時(shí),可以采用梯度,即:梯度越大的實(shí)例,對(duì)信息增益的貢獻(xiàn)率就越高。在采用下采樣將樣本數(shù)減少時(shí),梯度小的樣本就被清洗掉了。這樣會(huì)帶來一個(gè)問題:整個(gè)數(shù)據(jù)集的數(shù)據(jù)分布被破壞了。為此,在梯度小的數(shù)據(jù)實(shí)例上進(jìn)行隨機(jī)采樣,對(duì)梯度大的數(shù)據(jù)則全部保留[7]。具體算法如下:先對(duì)整個(gè)數(shù)據(jù)集中的實(shí)例按梯度進(jìn)行排序,然后按從大到小的順序選出所有梯度高的實(shí)例(占整個(gè)數(shù)據(jù)集的a)。對(duì)剩余的實(shí)例,以采樣率b隨機(jī)選取。最后,對(duì)選擇的這些梯度較小的實(shí)例,按(1-a)/b 的比例進(jìn)行對(duì)其權(quán)值擴(kuò)大。這樣可以保證,在下采樣的情況下,原數(shù)據(jù)集的分布基本沒有被改變。
2.2 基于梯度提升的云安全算法
本文提出的基于梯度提升的云安全算法,完整描述如圖1所示。
算法中,損失函數(shù)采用交叉熵?fù)p失函數(shù),如公式(1)所示:
(1)
在二分類問題中,當(dāng)yi=1時(shí),LogLoss= - logpi,預(yù)測輸出越接近真實(shí)樣本標(biāo)簽1,損失越小。當(dāng)yi=0時(shí),LogLoss= - log(1-pi ),預(yù)測輸出越接近真實(shí)樣本標(biāo)簽0,損失越小。該公式的意義在于:當(dāng)預(yù)測類型與真實(shí)標(biāo)簽的值越接近,損失函數(shù)的值越小,樣本的重要性就越高,越應(yīng)該在下采樣時(shí)被采樣。
3? 實(shí)驗(yàn)
本算法使用的是微軟公司提供的一個(gè)云安全環(huán)境中惡意軟件預(yù)測數(shù)據(jù)集[11]。該數(shù)據(jù)集有訓(xùn)練數(shù)據(jù)4.04GB,測試數(shù)據(jù)3.55GB。先用訓(xùn)練數(shù)據(jù)對(duì)算法進(jìn)行訓(xùn)練,得到分類器。然后用學(xué)習(xí)到的分類器,在測試數(shù)據(jù)上進(jìn)行測試,分析預(yù)測的準(zhǔn)確性。因?yàn)閿?shù)據(jù)量很大,所以采用傳統(tǒng)的隨機(jī)森林等算法將非常耗時(shí)。由于本算法采用下采樣方法,大大減少了訓(xùn)練數(shù)據(jù)的樣本數(shù),將在基本不影響預(yù)測精度的情況下,大大減少運(yùn)行時(shí)間。
測試數(shù)據(jù)的輸出包含2個(gè)屬性值:userID和Has Detection,在預(yù)測結(jié)果和用戶之間建立一種映射關(guān)系。同時(shí),在用戶與其所占的地理位置之間也有關(guān)聯(lián)。根據(jù)對(duì)惡意軟件預(yù)測的概率,對(duì)用戶未來的網(wǎng)絡(luò)攻擊行為進(jìn)行預(yù)測,從而保護(hù)云安全。
在該數(shù)據(jù)集上,分別采用隨機(jī)森林、簡單隨機(jī)下采樣算法、基于梯度提升的云安全算法進(jìn)行實(shí)驗(yàn)。簡單隨機(jī)下采樣算法很簡單,即直接在訓(xùn)練數(shù)據(jù)集上,按a+b的比例,選取樣本。實(shí)驗(yàn)環(huán)境是Inter Core i5-4210H CPU和Windows8 操作系統(tǒng)。算法迭代次數(shù)為500。基于梯度提升的云安全算法實(shí)驗(yàn)最后的準(zhǔn)確率為70.08%,比隨機(jī)森林有所下降,但運(yùn)行時(shí)間只有6h左右,時(shí)間大大減少。具體如表1所示。
4? 結(jié)語
隨著云計(jì)算的快速發(fā)展,云安全變得越來越重要。傳統(tǒng)的機(jī)器學(xué)習(xí)算法進(jìn)行惡意軟件預(yù)測,當(dāng)數(shù)據(jù)集很大時(shí),非常耗時(shí)。本文提出了一種基于梯度提升的云安全機(jī)器學(xué)習(xí)算法,采用了一種單向梯度采樣方法,在保持樣本分布不變的情況下,大大減少了訓(xùn)練樣本數(shù),實(shí)驗(yàn)驗(yàn)證了本算法的有效性。
參考文獻(xiàn)
[1] Mathkunti N.Cloud Computing: Security Issues [J].Int. J. Comput. Commun. Eng.,2014(3):259–263.
[2] 劉明,孫銀.淺談大數(shù)據(jù)云計(jì)算環(huán)境下的數(shù)據(jù)安全[J].南方農(nóng)機(jī),2019,50(5):147.
[3] 高源,雷瑩瑩.云計(jì)算環(huán)境大數(shù)據(jù)安全和隱私保護(hù)策略研究[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] 李丹彤,馮海云,高涌皓.一種基于機(jī)器學(xué)習(xí)算法的網(wǎng)絡(luò)安全評(píng)估方法[J].電子設(shè)計(jì)工程,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.