论文部分内容阅读
摘 要:近年来,云计算技术飞速发展,许多企业和机构将自己的业务迁移到云上,这样不仅降低费用,还能提高效率。但随之而来的是云服务提供者和用户被大量的恶意软件攻击。许多机器学习算法通过对云平台上可能发生的行为进行预测,来保护云系统不受攻击,取得了不错的效果。但当所学习的数据集较大和稀疏时,这些机器学习算法效果不是很好。本文采用了一种梯度提升的决策树算法,能对云计算系统上的恶意软件攻击进行更准确的预测。实验验证了本方法的有效性。
关键词:云计算安全 机器学习 梯度 下采样 决策树算法
中图分类号: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
信息化時代,每家公司和机构都利用计算机进行相关数据处理。对一家公司来说,一台计算机的运算能力往往无法满足需求,因此该单位就要购置一台运算能力更强的计算机,也就是服务器。如果单位的规模再大一些,可能需要多台服务器,组成一个数据中心。建立一个数据中心,除了巨大的初期建设成本之外,后期的计算机和网络维护支出,都是中小型单位和企业难以支付的。云计算(Cloud Computing)就是在此背景下诞生的。云计算是以互联网为基础的分布式计算,使用者可以从云提供商那里随时按需获得自己所需的计算资源,像使用自来水一样,按需付费即可,不必每家单位都建立和维护一个自己的服务器和数据中心,这样大大降低了成本和提高了效率。
云计算提供的服务主要分3种:软件即服务(SaaS,
Software as a Service)、基础设施即服务(IaaS,
Infrastructure as a Service)、平台即服务(PaaS, Platform as a Service)。但伴随着云计算产生的安全问题,带来很多挑战[1-3]。比如对于公有云平台,由于被很多租户使用,这样大大增加了某租户非法访问其他租户的内容和信息的风险。
机器学习(Machine Learning)是人工智能(Artificial Intelligence, AI)中的一个跨学科的领域,它通过对相关的数据进行学习,实现决策支持。在云计算安全性问题和云数据管理方面,机器学习是一种较高效的方法。一些机器学习的算法如线性回归、支持向量机、贝叶斯等,和其他一些安全措施结合在一起,能用来提高云服务的安全性[4-6]。但是,当这些机器学习算法学习的数据集较大且稀疏时,效果不是很理想[7]。
本文提出了一种梯度提升(Gradient Boosting)的决策树(Decision Tree)算法,能对云计算系统上的恶意软件攻击进行更准确的预测。在一个较大且稀疏的数据集上,验证了本算法在恶意软件检测率和运行时间方面的有效性。 1 相关工作
尽管云计算服务迅猛发展,企业和个人都转向利用云服务,但其安全性问题的确是个严峻挑战。A. Vieira采用决策树和随机森林对用户的在线行为进行了预测[7]。决策树是一种树状的决策工具,它包含一些分支和叶子。决策树比其他的机器学习方法如人工神经网络(artificial neural network)、逻辑回归(logistic regression)速度要快,且更容易可视化。它的缺点是容易产生对数据的过拟合。随机森林(random forests)是一种用来进行分类或回归的机器学习算法。它学习和训练一组决策树,最后决策的结果由森林中每个决策树输出结果的众数决定。总体来说,它比单一的决策树算法具有更高的准确性。但无论是决策树还是随机森林算法,如果学习的数据集很稀疏时,效果都不理想[7]。
H. Kuswanto等实现了一种基于逻辑回归的算法,用来对用户不良行为进行预测[8]。一般的逻辑回归的因变量是二分类的,H. Kuswanto等的这种算法将逻辑回归涉及的因变量划分成几个子空间,从而实现多分类。其目的是能对基于云服务的大数据集进行学习,并准确预测用户的不良行为。对于大的数据集,如果它是线性可分的,邏辑回归具有优势,但它只适合预测离散数据,而且当数据集较大时,容易产生过拟合[9]。
2 基于梯度提升的云安全算法
为了对恶意软件攻击进行预测,本文采用了一种梯度提升决策树算法[10]。梯度提升(gradient boosting)是一种提升(boosting)算法,它属于集成学习(ensemble learning)的一种。提升(boosting)是一种可将弱学习器提升为强学习器的算法。提升算法基于这样一种思想:对于一个复杂的任务,将多个分类器(classifier)的判断总和得出的结果要比任何一个分类器单独的判断好。
2.1 梯度单向采样方法
因为传统的梯度提升决策树算法很耗时,为减少性能开销,许多方法被采用。例如可通过下采样(downsample)方式来减少样本的数量,从而减少运行时间。但它要考虑数据样例的权重,所以不能直接用于梯度提升算法。同样,减少每个数据样例的特征数也是一个减少梯度提升算法运行时间的方法,但这样会影响算法的精度。本文采用下采样方法:采用了一种梯度单向采样方法,用来减少样本的数量。
虽然供学习的数据集中的每个实例数据没有一个固有权重值,但在计算信息增益时,可以采用梯度,即:梯度越大的实例,对信息增益的贡献率就越高。在采用下采样将样本数减少时,梯度小的样本就被清洗掉了。这样会带来一个问题:整个数据集的数据分布被破坏了。为此,在梯度小的数据实例上进行随机采样,对梯度大的数据则全部保留[7]。具体算法如下:先对整个数据集中的实例按梯度进行排序,然后按从大到小的顺序选出所有梯度高的实例(占整个数据集的a)。对剩余的实例,以采样率b随机选取。最后,对选择的这些梯度较小的实例,按(1-a)/b 的比例进行对其权值扩大。这样可以保证,在下采样的情况下,原数据集的分布基本没有被改变。
2.2 基于梯度提升的云安全算法
本文提出的基于梯度提升的云安全算法,完整描述如图1所示。
算法中,损失函数采用交叉熵损失函数,如公式(1)所示:
(1)
在二分类问题中,当yi=1时,LogLoss= - logpi,预测输出越接近真实样本标签1,损失越小。当yi=0时,LogLoss= - log(1-pi ),预测输出越接近真实样本标签0,损失越小。该公式的意义在于:当预测类型与真实标签的值越接近,损失函数的值越小,样本的重要性就越高,越应该在下采样时被采样。
3 实验
本算法使用的是微软公司提供的一个云安全环境中恶意软件预测数据集[11]。该数据集有训练数据4.04GB,测试数据3.55GB。先用训练数据对算法进行训练,得到分类器。然后用学习到的分类器,在测试数据上进行测试,分析预测的准确性。因为数据量很大,所以采用传统的随机森林等算法将非常耗时。由于本算法采用下采样方法,大大减少了训练数据的样本数,将在基本不影响预测精度的情况下,大大减少运行时间。
测试数据的输出包含2个属性值:userID和Has Detection,在预测结果和用户之间建立一种映射关系。同时,在用户与其所占的地理位置之间也有关联。根据对恶意软件预测的概率,对用户未来的网络攻击行为进行预测,从而保护云安全。
在该数据集上,分别采用随机森林、简单随机下采样算法、基于梯度提升的云安全算法进行实验。简单随机下采样算法很简单,即直接在训练数据集上,按a+b的比例,选取样本。实验环境是Inter Core i5-4210H CPU和Windows8 操作系统。算法迭代次数为500。基于梯度提升的云安全算法实验最后的准确率为70.08%,比随机森林有所下降,但运行时间只有6h左右,时间大大减少。具体如表1所示。
4 结语
随着云计算的快速发展,云安全变得越来越重要。传统的机器学习算法进行恶意软件预测,当数据集很大时,非常耗时。本文提出了一种基于梯度提升的云安全机器学习算法,采用了一种单向梯度采样方法,在保持样本分布不变的情况下,大大减少了训练样本数,实验验证了本算法的有效性。
参考文献
[1] Mathkunti N.Cloud Computing: Security Issues [J].Int. J. Comput. Commun. Eng.,2014(3):259–263.
[2] 刘明,孙银.浅谈大数据云计算环境下的数据安全[J].南方农机,2019,50(5):147. [3] 高源,雷瑩莹.云计算环境大数据安全和隐私保护策略研究[J].网络空间安全,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].电子设计工程,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.
关键词:云计算安全 机器学习 梯度 下采样 决策树算法
中图分类号: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
信息化時代,每家公司和机构都利用计算机进行相关数据处理。对一家公司来说,一台计算机的运算能力往往无法满足需求,因此该单位就要购置一台运算能力更强的计算机,也就是服务器。如果单位的规模再大一些,可能需要多台服务器,组成一个数据中心。建立一个数据中心,除了巨大的初期建设成本之外,后期的计算机和网络维护支出,都是中小型单位和企业难以支付的。云计算(Cloud Computing)就是在此背景下诞生的。云计算是以互联网为基础的分布式计算,使用者可以从云提供商那里随时按需获得自己所需的计算资源,像使用自来水一样,按需付费即可,不必每家单位都建立和维护一个自己的服务器和数据中心,这样大大降低了成本和提高了效率。
云计算提供的服务主要分3种:软件即服务(SaaS,
Software as a Service)、基础设施即服务(IaaS,
Infrastructure as a Service)、平台即服务(PaaS, Platform as a Service)。但伴随着云计算产生的安全问题,带来很多挑战[1-3]。比如对于公有云平台,由于被很多租户使用,这样大大增加了某租户非法访问其他租户的内容和信息的风险。
机器学习(Machine Learning)是人工智能(Artificial Intelligence, AI)中的一个跨学科的领域,它通过对相关的数据进行学习,实现决策支持。在云计算安全性问题和云数据管理方面,机器学习是一种较高效的方法。一些机器学习的算法如线性回归、支持向量机、贝叶斯等,和其他一些安全措施结合在一起,能用来提高云服务的安全性[4-6]。但是,当这些机器学习算法学习的数据集较大且稀疏时,效果不是很理想[7]。
本文提出了一种梯度提升(Gradient Boosting)的决策树(Decision Tree)算法,能对云计算系统上的恶意软件攻击进行更准确的预测。在一个较大且稀疏的数据集上,验证了本算法在恶意软件检测率和运行时间方面的有效性。 1 相关工作
尽管云计算服务迅猛发展,企业和个人都转向利用云服务,但其安全性问题的确是个严峻挑战。A. Vieira采用决策树和随机森林对用户的在线行为进行了预测[7]。决策树是一种树状的决策工具,它包含一些分支和叶子。决策树比其他的机器学习方法如人工神经网络(artificial neural network)、逻辑回归(logistic regression)速度要快,且更容易可视化。它的缺点是容易产生对数据的过拟合。随机森林(random forests)是一种用来进行分类或回归的机器学习算法。它学习和训练一组决策树,最后决策的结果由森林中每个决策树输出结果的众数决定。总体来说,它比单一的决策树算法具有更高的准确性。但无论是决策树还是随机森林算法,如果学习的数据集很稀疏时,效果都不理想[7]。
H. Kuswanto等实现了一种基于逻辑回归的算法,用来对用户不良行为进行预测[8]。一般的逻辑回归的因变量是二分类的,H. Kuswanto等的这种算法将逻辑回归涉及的因变量划分成几个子空间,从而实现多分类。其目的是能对基于云服务的大数据集进行学习,并准确预测用户的不良行为。对于大的数据集,如果它是线性可分的,邏辑回归具有优势,但它只适合预测离散数据,而且当数据集较大时,容易产生过拟合[9]。
2 基于梯度提升的云安全算法
为了对恶意软件攻击进行预测,本文采用了一种梯度提升决策树算法[10]。梯度提升(gradient boosting)是一种提升(boosting)算法,它属于集成学习(ensemble learning)的一种。提升(boosting)是一种可将弱学习器提升为强学习器的算法。提升算法基于这样一种思想:对于一个复杂的任务,将多个分类器(classifier)的判断总和得出的结果要比任何一个分类器单独的判断好。
2.1 梯度单向采样方法
因为传统的梯度提升决策树算法很耗时,为减少性能开销,许多方法被采用。例如可通过下采样(downsample)方式来减少样本的数量,从而减少运行时间。但它要考虑数据样例的权重,所以不能直接用于梯度提升算法。同样,减少每个数据样例的特征数也是一个减少梯度提升算法运行时间的方法,但这样会影响算法的精度。本文采用下采样方法:采用了一种梯度单向采样方法,用来减少样本的数量。
虽然供学习的数据集中的每个实例数据没有一个固有权重值,但在计算信息增益时,可以采用梯度,即:梯度越大的实例,对信息增益的贡献率就越高。在采用下采样将样本数减少时,梯度小的样本就被清洗掉了。这样会带来一个问题:整个数据集的数据分布被破坏了。为此,在梯度小的数据实例上进行随机采样,对梯度大的数据则全部保留[7]。具体算法如下:先对整个数据集中的实例按梯度进行排序,然后按从大到小的顺序选出所有梯度高的实例(占整个数据集的a)。对剩余的实例,以采样率b随机选取。最后,对选择的这些梯度较小的实例,按(1-a)/b 的比例进行对其权值扩大。这样可以保证,在下采样的情况下,原数据集的分布基本没有被改变。
2.2 基于梯度提升的云安全算法
本文提出的基于梯度提升的云安全算法,完整描述如图1所示。
算法中,损失函数采用交叉熵损失函数,如公式(1)所示:
(1)
在二分类问题中,当yi=1时,LogLoss= - logpi,预测输出越接近真实样本标签1,损失越小。当yi=0时,LogLoss= - log(1-pi ),预测输出越接近真实样本标签0,损失越小。该公式的意义在于:当预测类型与真实标签的值越接近,损失函数的值越小,样本的重要性就越高,越应该在下采样时被采样。
3 实验
本算法使用的是微软公司提供的一个云安全环境中恶意软件预测数据集[11]。该数据集有训练数据4.04GB,测试数据3.55GB。先用训练数据对算法进行训练,得到分类器。然后用学习到的分类器,在测试数据上进行测试,分析预测的准确性。因为数据量很大,所以采用传统的随机森林等算法将非常耗时。由于本算法采用下采样方法,大大减少了训练数据的样本数,将在基本不影响预测精度的情况下,大大减少运行时间。
测试数据的输出包含2个属性值:userID和Has Detection,在预测结果和用户之间建立一种映射关系。同时,在用户与其所占的地理位置之间也有关联。根据对恶意软件预测的概率,对用户未来的网络攻击行为进行预测,从而保护云安全。
在该数据集上,分别采用随机森林、简单随机下采样算法、基于梯度提升的云安全算法进行实验。简单随机下采样算法很简单,即直接在训练数据集上,按a+b的比例,选取样本。实验环境是Inter Core i5-4210H CPU和Windows8 操作系统。算法迭代次数为500。基于梯度提升的云安全算法实验最后的准确率为70.08%,比随机森林有所下降,但运行时间只有6h左右,时间大大减少。具体如表1所示。
4 结语
随着云计算的快速发展,云安全变得越来越重要。传统的机器学习算法进行恶意软件预测,当数据集很大时,非常耗时。本文提出了一种基于梯度提升的云安全机器学习算法,采用了一种单向梯度采样方法,在保持样本分布不变的情况下,大大减少了训练样本数,实验验证了本算法的有效性。
参考文献
[1] Mathkunti N.Cloud Computing: Security Issues [J].Int. J. Comput. Commun. Eng.,2014(3):259–263.
[2] 刘明,孙银.浅谈大数据云计算环境下的数据安全[J].南方农机,2019,50(5):147. [3] 高源,雷瑩莹.云计算环境大数据安全和隐私保护策略研究[J].网络空间安全,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].电子设计工程,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.