APP下载

基于支持向量机的蠕虫检测技术

2012-10-17陈霜霜

网络安全技术与应用 2012年12期
关键词:蠕虫训练样本分类器

陈霜霜

江苏省盐城师范学院信息科学与技术学院 江苏 224002

0 前言

支持向量机(Support Vector Machine,SVM)是一种建立在统计学习理论基础之上的机器学习方法,根据 Vapnik结构风险最小化原则,将支持向量机问题归结为一个二次型方程求解问题,通过构造最优超平面,使不同类样本集与最优分类面之间的距离最大,以获得最好的泛化能力。此外,由于支持向量算法是一个凸优化问题,所以局部最优解一定是全局最优解,这是其他学习算法所不及的。蠕虫检测可看成是一个二类分类问题,支持向量机是一种典型的两类分类器,所以可将支持向量机用于蠕虫检测。假定大小k的训练样本集T={(x1,y1),(x2,y2)…(xk,yk)},(k∈ N),由两个类别组成,正常类及感染蠕虫类。如果向量xi属于正常类,则标记为正(yi=1),如果向量xi属于感染蠕虫类,则标记为负(yi=-1)。

1 核函数的选取

支持向量机的性能受核函数的影响比较大。核函数的选取以及核函数中参数的确定在不同的问题领域是不一样的,目前的做法一般都是根据经验选取。和常见的多项式核、Sigmoid函数相比,径向基函数RBF 核函数具有参数数量少、数值限制条件少等优点,所以本文选用径向基函数 k(x,y)=exp(-‖x-y‖2/ρ2)为核函数。对于参数 的选择有这样一个经验公式ρ=1/E(‖x-y‖2),x, y分别代表不同的训练样本 。

2 支持向量机方法实现蠕虫检测的基本思想

2.1 蠕虫检测指标的选取

尽管目前已提出各种蠕虫检测技术,但是如果蠕虫检测指标选取不好,将很难保证检测技术的有效性。由于蠕虫的目标是尽可能地传播,故蠕虫扫描时将发起大量具有随机目标地址的“第一次连接”(FCC,First Contact Connection)由于目标地址的随机性,因此“第一次连接”的失败概率很高;感染蠕虫的主机将会在尽量短的时间内感染尽量多的目标,发送连接请求的时间间隔会很短,而正常主机在进行网络访问的时候,对外发起连接请求的时间间隔会比较长。为了降低漏报率和误报率,本文采用了FCC失败连接概率和FCC连接速度这两个网络行为作为检测指标。

2.2 检测原理

根据主机当前产生的FCC连接是成功的还是失败的,以及本次FCC连接与上次FCC连接之间的时间间隔是大于还是小于设定的时间间隔,将该主机发送的连接请求分为X1、X2、X3、X4四种情况。X1为 Itv>Interval且连接失败,X2为Itv>Interval且连接成功,X3为 Itv<Interval且连接失败,X4为Itv<Interval且连接成功。其中,Itv表示本次FCC连接与上次FCC连接间的时间间隔,Interval表示设定的时间间隔,取值为0.2s。X1,X2,X3,X4为向量xi的四个分量特征,可将xi表示为 (xi1,xi2,xi3,xi4)T。在蠕虫检测中,将主机处于正常状态和感染蠕虫状态下获得的 X1,X2,X3,X4四种连接请求的频率作为两类训练样本的向量值。基于 SVM 分类器的蠕虫检测方法步骤如下:

步骤1将主机处于正常状态和发生蠕虫攻击时的四种连接请求的频率作为向量xi的四个分量特征,将向量xi构成训练样本集T={(x1,y1),(x2,y2)…(xl, yl)};

步骤2利用步骤 1所得到训练样本集训练 SVM 分类器,求出最优分类超平面;

步骤3对待检测主机的网络流量同样应用步骤 1,获得向量xi,然后利用训练过的 SVM 分类器进行分类,相应地得出待检测主机是否感染蠕虫。

3 实验

3.1 数据集的产生

实验我们采用windump软件在真实的网络环境产生并捕获数据包形成正常和异常数据集。为了使检测算法能够在计算机正常工作环境具有较高的准确率,并具有广泛的代表性,实验中考虑到用户的操作行为和后台程序对计算机性能参数造成的影响。在实验数据采样过程中在采样计算机上开启了若干应用程序,包括如office、IE浏览器、Windows Media Player等以及后台程序win RAR 等。当计算机处于正常的状态时进行多次采样,每次连续采样20分钟,获得正常标准数据集。在获取异常标准数据集时,考虑到蠕虫有多种类别。实验中所选取的蠕虫样本主要是具有不同的IP扫描方式,选取了Dabber.a、Deborm.y、Sasser.a、Lovesan.u 这4种蠕虫程序作为异常样本。分别注入以上4种蠕虫样本,每次连续采样20分钟,在采样的同时综合考虑了用户行为以及后台程序这两个因素。我们得到训练样本集 T={(0.35,0.64,0.01,0,1),(0.28,0.69,0.01,0.02,1),(0.27,0.69,0.02,0.01,1),(0,0,0.1,0.89,-1),(0.1,0.29,0.01,0.88,-1),(0.08,0.02,0.01,0.88,-1),(0,0,0.1,0.9,-1)}, 其中k=7。

3.2 实验结果

实验中我们对两类标准训练样本集中的部分样本以及CodeGreen.a, Doomran, Sluter, Dabber.a, Raleka.ab等未知扫描类蠕虫进行了检测。此外,考虑到目前 P2P程序会产生类蠕虫行为,可能会出现误报情况。我们对 PPlive和电驴这两个正常P2P程序的数据包也进行了检测。检测结果如表1所示。

表1 各待测样本检测结果

4 总结

本文依据蠕虫扫描时会产生 FCC失败连接概率高和FCC连接速度快这两个网络行为,提出了一种基于支持向量机的蠕虫检测算法。利用该方法能够有效地检测变速、慢速等未知的扫描类蠕虫,且不会对正常网络行为及P2P程序产生误报。当然,本文所提出的检测算法不能检测拓扑类及被动等待型蠕虫,如Email蠕虫、IM蠕虫,对这类蠕虫的检测还需作进一步地研究与探讨。

[1]刘华富,王仲.核函数对υ-支持向量机的泛化能力影响分析[J].计算机工程与科学.2007.

[2]邓乃扬,田英杰.数据挖掘中的新方法-支持向量机[M].北京:科学出版社.2004.

[3]向郑涛,陈宇峰,董亚波,鲁东明.蠕虫检测技术研究进展[J].计算机工程与设计.2009.

[4]陈宇峰.蠕虫模拟方法和检测技术研究.浙江大学2006年博士学位论文.2006.

猜你喜欢

蠕虫训练样本分类器
蠕虫状MoS2/C的制备及其在锂离子电池负极材料中的应用
人工智能
秋季谨防家禽蠕虫病
基于实例的强分类器快速集成方法
宽带光谱成像系统最优训练样本选择方法研究
加权空-谱与最近邻分类器相结合的高光谱图像分类
结合模糊(C+P)均值聚类和SP-V-支持向量机的TSK分类器
融合原始样本和虚拟样本的人脸识别算法
基于稀疏重构的机载雷达训练样本挑选方法
一种基于置换的组合分类器剪枝方法