基于SVM 的VANET 黑洞攻击检测方法*
2015-03-27叶雪梅许馨月朱云杰戴宇佳蔡艳宁范青刚
叶雪梅,许馨月,朱云杰,戴宇佳,蔡艳宁,范青刚
(1.西安高技术研究所 计算机教研室,陕西 西安710025;2.西安高技术研究所202 教研室,陕西 西安710025)
0 引 言
车载自组网(vehicular Ad Hoc network,VANET)的广泛应用已使其安全性备受关注,保证VANET 的安全,对车辆行驶安全、消息及时传输有重大意义。将VANET 应用于民用或军用车队中,如,运输车队、领导车队或作战指挥车队,解决了车队内部之间通信的互联,并能够保证车队行进、获取重要消息等的整体一致性,但同时也面临着网络安全问题。在车队的组织与行进中,必须采取严密的安全防范措施来保障其顺利完成运输、指挥、作战等任务。而VANET 的安全研究是一个比较新的研究领域,多数学者的研究都停留在隐私保护、消息验证、数字签名等方面,对于VANET 受到入侵攻击展开的研究涉足甚少。一方面,由于车辆节点高速移动、拓扑变化频繁,捕捉与记录数据受到环境等因素影响较大;另一方面,VANET 的审计数据是局部的,只局限在无线通信的覆盖范围内,VANET 的入侵检测也只能是局部的。
黑洞攻击入侵VANET 会使得本应正常传递的数据在没有到达目的地之前就会被丢弃,使得网络内无法交流重要信息,造成通信不畅。针对黑洞攻击的检测,已有多种解决方案被提出,文献[1]提出了一种基于对响应节点的下游邻居节点验证的方法,这种方法能够解决单个恶意节点的黑洞攻击,但无法解决相互合作的恶意节点的黑洞攻击。文献[2,3]在文献[1]的基础上,提出了解决相互合作的中间恶意节点进行黑洞攻击的方法,但是无法实现对目的恶意节点发起的黑洞攻击。由于支持向量机(support vector machine,SVM)算法具有样本需求小、泛化能力好等特点,对任意节点都可以进行训练和检测,本文选择SVM 算法进行黑洞攻击的检测分析。
1 基于SVM 的入侵检测算法
SVM 是一类新型机器学习算法,它能够非常成功地解决分类和回归问题。在小样本的情况下,该算法具有建模精度高、推广能力强等特点,能够避免局部最优解与维数灾难,为解决入侵检测问题提供了重要思路。SVM 算法的关键是确定核函数与分类器。
1.1 核函数选择
在SVM 中,不同的核函数形成了不同的算法,导致样本在高维特征空间的分布形成不同的复杂度,主要的核函数有线性核函数、多项式核函数、径向基核函数及Sigmoid核函数[5]。
比较这几种核函数,可以发现其中有这样的关系:线性核函数是径向基核函数的特例,但径向基核函数可以将训练样本非线性地映射到高维空间,文献[6]证明了线性核函数的SVM 与径向基核函数的SVM 有相同的分类性能,但径向基核函数的适用范围更广;与多项式核函数相比,当多项式次数较高时,多项式核函数的计算复杂度增加较快,相比之下径向基核函数模型的计算复杂度较低;与Sigmoid核函数相比,Sigmoid 核函数对参数的选择有较高的要求,选取的参数如果不合适会导致训练效果变差。综上考虑,径向基核函数比较适合作为本文SVM 训练的核函数。
1.2 特征向量与分类器选择
在SVM 分类器的训练中,影响训练结果好坏的因素有多个,但是最主要的因素有两个:特征向量的选择与分类器的模型设计。针对这两个方面,解决的主要思路如下:
1)特征向量的选择是影响SVM 分类器检测效果的关键问题,选择能较好区分黑洞攻击与正常网络状态的特征,可使SVM 分类器达到较好的训练与检测效果。
由于检测关注的重点是车辆通信中数据的传输过程有无异常情况发生,因而选择路由层中与车载通信、网络数据包等相关的统计量作为特征,如一条通信链路中节点收发数据包的计数情况,具体的特征属性记录如表1 所示。
表1 黑洞攻击特征列表Tab 1 List of features of black hole attack
这四个特征都是路由层中数据包的动作事件的个数。且要特别注意,只有当本节点是源节点的时候才会有发送数据包的动作,CBRs_ij 才有计数,CBRs_ij 才有意义。只有当通信链路中存在入侵节点,且本节点正是入侵节点时,才会在路由层出现丢包现象,CBRd_ij 才有计数,但考虑到实际工作时,入侵节点本身出于“自我保护”是无法作为检测节点来对当前网络进行入侵检测的。因而,更确切地说,黑洞攻击存在的网络中,只有CBRr_ij 与CBRf_ij 比较适合作为特征向量。考虑任意非源节点与非目的节点,它们的CBRr_ij 数与CBRf_ij 数在每一条通信链路中计数相同,选择其中一个参量作为特征即可满足SVM 训练的要求,因而不失一般性,选择CBRr_ij 为黑洞攻击入侵检测的特征。
2)分类器的模型设计是SVM 算法的核心,分类效果的好坏直接影响实际应用中的检测性能。在入侵检测分类器的模型设计中,考虑到分类效果与泛化性能等因素,选取标准SVM 分类方法C-SVC[7]作为入侵检测的训练模型。
采用C-SVC 对VANET 进行入侵检测时,首先需要准备数据样本,进行数据预处理,然后提取重要的特征向量,优选训练参数,输入到SVM 进行训练,最后对新样本进行预测。这里需要注意的是,VANET 的动态拓扑性与节点的自治独立性使得每一个车辆节点只能检测自己的通信数据状态,因而,每一个节点都配备SVM 分类器,每个节点检测出的结果也只能代表在某一段时间内该节点参与的通信链路是否有入侵情况发生。实际应用中还要注意到,恶意节点出于自我保护,作为检测节点来对当前网络进行入侵检测的是不可靠的。
2 黑洞攻击仿真实验与检测结果分析
2.1 黑洞攻击入侵车队VANET 仿真实验
目前,国际上没有公认的VANET 通信数据的样本库,因而本文通过利用NS-2 仿真软件模拟车队行进过程中受到黑洞攻击的场景,获得VANET 在正常状态与异常状态时的通信数据作为训练样本。
首先对车队行进过程时的通信进行仿真实现,根据车队的实际应用要求,对车队做如下规定:
1)车队内部车辆之间保持跟随前进,不得任意更换车辆次序;
2)车队内部车辆及时调整行进速度,使得与车队整体的行驶速度保持一致,并能够保持基本一致的车距;
3)考虑专用车队的保密安全问题,故行驶过程中不与路边单元(RSU)和其他非车队内部车辆进行信息交换,也假定车队通信不会受到基站电波的干扰。
因此,车队行驶的道路环境可以简化为一个矩形区域,车队中的每一辆车是一个节点,假定各节点性能相同,通信与移动能力均正常,在矩形区域内排成直线匀速行驶。编写tcl 脚本,通过NS-2 仿真软件模拟车队行进1 000 s 的场景,具体仿真参数设置如表2。设置5#节点为黑洞攻击节点,通信链路设置为0#与19#节点进行通信互传。仿真效果如图1 所示,图为0#节点向19#节点发送路由请求分组。分别仿真网络正常和遭受黑洞攻击的状态,得到能完整记录各节点实时通信数据信息的trace 文件,黑洞攻击时的trace 文件样本如图2。
表2 场景参数设置Tab 2 Setting of parameters of scene
图1 车队模型通信Fig 1 Communication of fleet model
图2 Trace 文件样本Fig 2 Samples of trace files
对VANET 网络通信数据进行特征向量提取,是采用SVM 进行入侵检测的关键步骤。利用编写的awk 程序对网络正常和遭受入侵时的trace文件分别进行遍历,间隔0.5 s 统计一次通信情况,可得到特征向量样本,共有2 000 个正样本(正常网络)与2 000 个负样本(黑洞入侵),各取50%数据组成训练样本,另50%组成测试样本。
2.2 检测结果分析
LibSVM 软件是台湾大学开发的一个用于SVM 模式识别与回归的软件包,提供了交互检验的功能,本文利用libSVM 软件对训练参数进行优选。
在训练参数组合(C,σ)中,C 为惩罚因子,σ 为形状参数,不同的组合会训练产生不同分类性能的分类器。LibSVM 库提供了能对训练参数C 和σ 做优选的grid.py 文件,该文件利用了网格搜索法。利用grid.py 文件对分类器进行训练参数优选,得到最优参数,将最优参数输入到分类器中,训练出每个节点的分类器。最后利用训练好的分类器对测试样本进行检测,得到仿真结果如表3 所示。
表3 各节点仿真数据Tab 3 Simulation data of each node
为便于对仿真结果进行直观分析,利用Matlab 工具将各节点的检测率和误检率制作成如图3。
分析图3 可知,1#~4#,6#~18#节点的检测率几乎为100%,平均误检率为11.47%,具有较好的入侵检测性能。实际工作时,5#节点作为恶意节点是不能用于检测的;0#和19#节点作为源节点和目的节点,误检率过高,也不适合作为检测节点。
以上结果表明:在有黑洞攻击存在的车载自组网中,设计CBRr_ij 作为入侵检测特征是合适的,基于SVM 建立的黑洞攻击检测方法能有效解决黑洞攻击入侵检测的问题。
图3 各节点检测率和误检率分布Fig 3 Distribution of detection rate and false detection rate of each node
3 结束语
本文主要研究了车队VANET 遭受黑洞攻击的入侵检测问题,提出了一种基于SVM 的入侵检测方法。通过分析VANET 特点确定了核函数和SVM 分类器类型,根据通信数据传递规律设计了用于检测的特征向量。通过NS-2 仿真软件分别得到了车队VANET 正常和遭受黑洞攻击时的实验数据,在此基础上,利用LibSVM 软件对SVM 分类器进行了训练和检测,结果表明:对于非源、目的节点以及攻击节点,本文提出的检测方法具有较高的检测率和较低的误检率,较好地适应了基于单个节点通信数据判断当前网络状态的要求。
[1] Deng Hongmei,Li Wei,Agrawal Dharma P.Routing security in wireless Ad Hoc networks[J].IEEE Communication Magazine,2002,40(10):70-75.
[2] 刘书明,刘建伟,毛 剑.一种改进的AODV 安全路由协议[J].中国科学院研究生院学报,2011,28(6):801-805.
[3] Tamilselvan Latha,Sankaranarayanan V.Prevention of co-operative black hole attack in MANET[J].Journal of Networks,2008,3(5):13-20.
[4] 许建华,张学工,李衍达.支持向量机的新发展[J].控制与决策,2004,19(5):481-484,495.
[5] 汪廷华,陈峻婷.核函数的选择研究综述[J].计算机工程与设计,2012,33(3):1181-1186.
[6] 郭成报.支持向量机最优参数选取与应用[D].济南:山东大学,2011:18-19.
[7] Vladimir N Vapnik.统计学习理论[M].北京:电子工业出版社,2009:42-53.