(陆军工程大学,江苏 南京 210007)
在“大数据”时代背景下,网络用户数量正在逐年增加,再加上全球化的发展,数据资源呈现高度的信息化,信息资源与日俱增,2019 年2 月CNNIC 发布的第43 次《中国互联网络发展状况统计报告》显示,截至2018 年12 月,我国互联网普及率为59.6%,网民数量达8.29 亿,网络社会规模高居世界第一[1]。而随着黑客工具的逐渐泛滥,黑客门槛逐渐降低,大多数的信息资源不能得到很好的保护,导致用户信息泄露,网络信息安全面临更加严峻的考验。据测算,2014 年前11 个月,360网站安全检测平台共扫描各类网站164.2 万个,其中存在安全漏洞的网站有61.7 万个,占扫描网站总数的37.6%;存在高危安全漏洞的网站有27.9 万个,占扫描网站总数的17.0%[2]。
入侵检测系统(Intrusion Detection System,IDS)的引入是解决网络安全问题的可行方法之一,它是一种积极主动的实时安全防护技术,能够有效弥补防火墙的不足。与防火墙和其他安全措施相比,入侵检测系统提供了更主动、更实时和更完善的安全保护[3]。网络行为异常检测是入侵检测系统中的一个重要环节,它能实时跟踪关键网络特性(如流量、带宽使用和协议使用等),如果监测到有不寻常事件或趋势就会生成警报。网络行为数据的特点是数据量大、维数高(网络行为性质种类多)、样本容量小(异常数据仅占收集到的信息的一小部分),需要及时有效的处理和分析,使得网络行为异常检测成为一项非常困难的任务。
支持向量机(Support Vector Machine,SVM)是一种基于统计学习理论的机器学习方法,它将最大区间原理和核函数理论相结合,有效地解决了小样本、高维数、非线性、超学习、局部最优解等问题。它于1995 年由文献[4]正式发表,由于在文本分类任务中显示出卓越性能[5],很快成为机器学习的主流技术,并且直接掀起了“统计学习”在2000年前后的高潮。针对各式各样的需求,SVM 这个强大的机器学习算法被应用于各种不同的背景中,将SVM 应用于网络行为异常的高效性和准确性也已经得到许多研究者的认可。如文献[6]中,作者将一种聚类的SVM 应用在入侵检测背景下,提出了一种将聚类算法与SVM 相结合的方法来提高入侵检测系统的识别精度和识别率。文献[7]也将SVM 和网络入侵检测结合在一起,提出了一种基于自适应混沌粒子群优化SVM 参数算法的入侵检测模型。通过分析参数对SVM 模型的重要性,提出一种基于ICPSO-SVM 的入侵检测模型。
然而对于涉及大量样本和极其高维特征的大规模问题,现有的一些SVM 算法仍然具有挑战性,如何提高效率,使得SVM 算法能适用于大规模数据一直是研究重点。而稀疏支持向量机(Sparse-Support Vector Machine,S-SVM)在面对着海量高维数据的计算中,利用其特有的稀疏性,能起到更加高效的作用。
S-SVM 在面对着海量高维数据的计算中,利用其特有的稀疏性,能起到更加高效的作用。它是一种强大的数据分类技术,通过引入一种特殊的稀疏正则化约束模型,在选择数据特征的同时,对模型进行了研究,在预测中不仅具有较高的精度,而且具有良好的稀疏性[8]。
在对网络行为异常进行检测时,很多算法在面对大规模的网络行为数据时,由于存储限制和维数灾难,很难进行有效检测,本文主要针对这一问题,引入列生成和约束生成的方法求解S-SVM 模型,检测网络异常行为。并用HTTP DATASET CSIC 2010 数据集来评估此算法的可行性和准确性。
本文通过将列生成算法和约束生成算法结合起来求解稀疏支持向量机,来解决大规模网络行为异常检测问题。
首先基于稀疏支持向量机建立本文网络行为异常检测算法的模型为式(1)。
混合的列生成和约束生成算法的思想是希望降低高维海量网络行为异常检测问题的规模,即将原问题公式(1)限制到一个规模更小的限制问题即公式(2)中。原问题式中网络行为数据样本数量被定义为M,数据特征数量被定义为N,那么这个限制问题中的网络行为数据样本数量为P<M,数据特征数量为K<N。
为了方便计算,同样将此限制问题转换成对偶问题。
将求得的最优对偶变量定义为π*,当前最优特征权重定义为w*。
首先基于约束生成算法的原理,对网络行为数据样本进行添加,即通过公式(4)用当前最优特征权重w*求出未被当前限制问题公式(2)训练过的网络行为数据样本xi,k∈{xp+1,k,xp+2,k,…,xm,k}的检测数,来判断此网络行为数据样本能否添加到限制问题中。
在未被当前限制问题训练过的网络行为数据样本xp+1,k,xp+2,k,…,xm,k中找到I个满足>ε的网络行为数据样本,将这些数据样本添加到限制问题中,更新限制问题。
再基于列生成算法的原理,对网络行为数据特征进行添加,即通过公式(5),求非基变量wj∈{wk+1,wk+2,…,wn}的检验数,来寻找可以添加到基变量w1,w2,…,wk中的wj和它对应的特征向量xj。
找到J个满足<-ε的wj和它对应的特征向量xj,将这些wj和它对应的特征向量xj分别添加到基变量和限制问题公式(2)中,更新基变量和限制问题,再求解新的限制问题的对偶问题,循环添加未在当前限制问题中的网络行为数据的样本和特征。
直到没有可添加的数据特征wj时,判断用当前最优特征权重w*求出未被当前限制问题训练过的网络行为数据样本xi,k∈{xp+1,k,xp+2,k,…,xm,k}的检测数是否满足>ε,如果仍然有满足的数据样本,则再添加I个到限制问题中,如果没有满足的数据样本,则结束循环。当前最优特征权重w*,就是本节大规模网络行为异常检测问题模型中最优特征权重w。
HTTP DATASET CSIC 2010 数据集是由西班牙研究委员会(Spanish National Research Council,CSIC)信息安全研究所制作的,它是一个专门针对网站应用程序防火墙的测试集。数据集是自动生成的,包含36,000 个正常请求和25,000 多个异常请求,其中,异常的请求包括资料隐码攻击(SQL injection)、缓冲区溢出(buffer overflow)、信息收集(information gathering)、文件公开(files disclosure)、CRLF 注入漏洞(HTTP 响应拆分漏洞)、跨站脚本攻击(Cross Site Scripting,XSS)、服务端包含注入(Server Side Includes,SSI)、参数篡改(parameter tampering)等攻击。
经过预处理后,它是一个61065×33550的矩阵。随机从61065 个样本中抽取3000 个样本来对本文中介绍的基于列和约束生成算法求解的稀疏支持向量机(NLPL-S-SVM)进行实验。同样用此3000个样本的数据集对基于随机梯度下降算法求解的稀疏支持向量机(PGD-S-SVM)进行训练,并且将训练得到的评估性能进行对比,如图1 所示。
图1 NSPL-S-VM 算法和PGD-S-SVM 算法检测性能对比
从图中可以看出,本文的NSPL-S-SVM 算法在数据特征数量远大于样本数量的数据集上测试的准确率和检测率都比PGD-S-SVM 算法测试的值高。但是NSPL-S-SVM 算法将正常网络行为判定为异常网络行为的概率,即错误率比用PGD-S-SVM 高。
在海量高维的网络行为数据中,为了更有效地检测异常行为,本文针对大规模的网络行为数据提出了基于列和约束生成求解的稀疏支持向量机。实验结果表明,本文所提方法提高了网络行为异常检测系统对大规模网络行为数据的处理能力,有效避免了存储限制和维数灾难,证实了基于稀疏支持向量机能够有效解决网络行为异常检测问题,提高网络行为异常检测的准确性,删除冗余数据,降低数据维度,避免存储限制和维数灾难,证实了本文所提的基于稀疏支持向量机的网络行为异常检测算法是一种解决大规模网络行为数据检测问题的高效算法。