APP下载

车联网环境下的DDoS攻击实时检测技术研究

2022-11-30于露李嘉彬薛质

铁道科学与工程学报 2022年10期
关键词:高斯分布信息熵滑动

于露,李嘉彬,薛质

(上海交通大学 电子信息与电气工程学院,上海 200240)

车联网(Internet of Vehicles,IoV)[1]是物联网(Internet of Things,IoT)[2]的一个重要分支领域,确保道路安全并为车辆提供可靠的网络服务是车联网在现实应用中最重要的目标[3-5]。分布式拒绝服务(Distributed Denial of Service,DDoS)攻击是最流行、最有效的入侵车联网的方法。在DDoS攻击中,攻击者通过攻击信息载体、形成通道阻塞,使得信道不再可用、信息无法到达节点[6],而车联网的点对点网络特性使得DDoS攻击从可能变为现实可行。人们对使用滑动时间窗口或信息熵的方法检测DDoS攻击已开展了各种研究。ZHAO等[7]提出了DDoS攻击检测两步法。FEINSTEIN等[8]研究了计算数据包属性的熵和频率排序分布来识别DDoS攻击的方法,但对于检测的准确性并没有详细讨论。LEE等[9]研究了基于信息论来检测网络入侵的方法。VIRMANI等[10]提出了一种用于网络入侵分析的熵偏差算法。HU等[11]提出了一种基于软件定义网络的DDoS攻击检测系统。WU等[12]将滑动窗口技术用于DDoS攻击检测。LI等[13]将此方法更新为逐个元素的滑动窗口,并只需计算滑动窗口中熵值的最值。已有基于信息熵的检测方法大都致力于加快计算速度,提高检测过程的灵敏度和鲁棒性,对于准确度没有较多提及。本文研究的检测方法可帮助实时地识别每个独立车联网区域边缘的DDoS攻击,无需任何中心支持,从而节省响应时间和计算能力,同时提高攻击检测的准确性与时效性。首先介绍实时检测系统架构,详细阐释信息熵计算器和异常检测算法,将传统软件定义网络中DDoS攻击检测的熵计算算法[4,14-15]改进为适合车联网场景的算法,并提出一种新的累计时间窗异常偏差检测算法,最后使用开源框架进行模拟,并用VeReMi数据集来验证和评价。

1 检测系统架构及原理

检测系统由车辆信息处理器、信息熵计算器和时间序列检测预警器组成,如图1所示。车辆信息处理器监控全网车辆信息,预处理交通数据,将数据转发到熵计算器。熵计算器计算信息熵并发送到信息检测预警器。信息检测预警器将熵值与给定的风险模型匹配,并判断是否发出警报。

1.1 异常检测模型概述

1.1.1 序列异常检测

本文探寻一种基于数据流的DDoS攻击实时检测算法,该算法需满足以下检测原则。

1) 准确性:准确判断攻击行为产生时间点,有较少漏判(False Negative)和误判(False Positive)。

2) 实时性:能够实时、异步处理数据流,并在攻击产生后较短时间内发出警告。

序列异常检测能识别序列中不正常的行为或事件,N-sigma统计法是传统序列偏差检测方法之一,但需要一定量的样本数据支持,无法满足实时检测。因此,考虑滑动时间窗方法,根据数据点前后时间窗的概率模型,判断该数据点的合法性。NAOHIRO等[16]提出过在故障探测领域使用累计异常时间窗检测法,核心思想是用一个滑动采样窗口记录n次的数值,并按照高斯分布模型对n个点进行统计。将第n+1个数据值放入窗口样本中,计算其分布位置。本文将其设计改进,并将累计时间窗用于DDoS检测。

1.1.2 信息处理

在正常的状态下,网络流量数据包的变化规律属于自然状态。在无外界干扰的情况下,车联网流量信息符合高斯分布的概率模型。本文将基于此项假设进行后续推导和验证。结合第1.1.1节,将已有数据集中数据包发生时间戳、车辆id等关键信息提取出来,转化为一个数据包信息熵的时间序列输入检测系统,最终通过检测系统,实时、准确地检测到时间序列中异常行为的发生。

1.2 信息熵计算器

1.2.1 可行性分析

因为熵对信息分布的变化很敏感,所以选择信息熵理论作为检测系统的数学基础。在车联网环境下的DDoS攻击,攻击者会创建大量虚假的车辆身份,以发送错误信息来控制整个对等网络,或者快速发送大量消息以阻塞网络通信。例如女巫DDoS攻击将导致短时间内车辆id的消息数量飙升。这使得基于信息熵的实时检测方法具有理论可行性。

1.2.2 滑动计算信息熵

滑动计算的概念很容易理解,即逐个元素的滑动宽度为ω的时间窗口,而并非是将整个序列分成独立的部分,同时计算每个窗口的熵值。

假设有序列Xn=[x1,x2,x3,…,xn],则宽度ω时间窗口的信息熵为H1=ent([x1,x2,…,xw]),可得:

1.2.3 增量计算信息熵

为了加快计算速度,采用增量计算的方法,使得不必每一次都计算整个时间窗口的全部熵值。展开式(1)中的熵函数可得:

其 中,xi是 数 组[xt,xt+1,…,xt+w-1]中 的 不 同 元素,且

其中,I表示信息量,每个时间t窗口信息熵值Ht都有相同的元素总量w。当时间窗口滑动时,会弹出子序列xt并有新序列xt+w进入,而其他元素保持不变,即信息量不会发生变化。那么为了计算新的熵值,就可以只考虑序列xt和xt+w对信息量产生的增量。

可得到:

因此

至此,已经成功地将滑动熵值计算的时间复杂度限制为O(1)。可在监测到新消息时立即计算出车辆id信息的熵值,并通过查看熵值曲线的急剧上升情况来识别DDoS攻击。

1.3 信息熵异常检测算法

1.3.1 时序滑动窗口异常检测

根据第1.2.1节,为了准确地定位出熵值时间序列中的急剧飙升,采用滑动时间窗结合高斯分布来进行实现检测。如果窗口时间点之后某个待评估熵值的反向累积分布概率高于阈值φ,则认为某一点存在较高异常的可能性,如图2所示。

设序列时间窗长度为w,异常检测阈值为φ",待检测点的熵值为e,e点前一个滑动窗口熵值的累积分布函数记为cdf(e),则该点的φ值为

如果熵值e的偏差越大(飙升),则cdf(e)值越大,1-cdf(e))值越小,φ值越大,其值可无限趋近于+∞。

算法流程如下。

输入:信息熵数据流[e1,e2,…,en,…]。

输出:检测到的攻击行为时序序号。

步骤1:当处理ei且i<ω时不做特殊处理,可理解为数据样本初始化。

步骤2:实时计算某一数据点ei且i≥w,ei前一个时间窗w[ei-w,ei-w+1,…,ei-1]的均值μ,标准差σ,获得前一个时间窗的高斯分布概率密度函数、累计分布函数。

步骤3:计算数据点ei之于时间窗w的φi值。

步骤4:如果φi>φ",则判定其为行为攻击产生的时序序号i,并发出警报。

步骤5:数据流处理下一个数据ei+1,重复步骤2~5,直至数据流结束。

其中,滑动时间窗的高斯分布模型可以通过递推法进行实时计算。

假设序列中ei-w开始长度为w的序列[ei-w,ei-w+1,…,ei-1]的均值为μi-w,标准差为σi-w,则序列中从ei-w+1开始,长度为w的序列[ei-w+1,ei-w+2,…,ei]的均值和标准差可计算:

当处理元素ei时,其前一个时间窗[ei-w,ei-w+1,…,ei-1]的高斯分布模型已确定,故理论上检测一个宽度为n的序列熵值的时间复杂度为O(n)。

1.3.2 检测算法优化

在真实的车联网网络场景中,网络延迟和流量波动是偶发且不可预测的。仅评估某时刻之于前一个时间窗的概率分布情况,可能会出现误判。所以对第1.3.1节的异常检测算法做了优化,在算法步骤4中增加一些二次确认(Double-Check)条件。

假设ei为异常发生点,计算其φ值的函数为Fi(x),算法阈值为φ"。在ei异常点随后的长度为o的 序 列 区 间Seq {ent}=[ei+1,ei+2,…,ei+o-1],需满足:

1) 序列区间中存在百分比至少为r的熵值,满足Fi(l)>φ",i+1≤l≤i+o-1。

2) 序列区间中最小值Seq {ent}min大于异常点的熵值。

二次确认(Double-Check)采用一个异步线程完成,即检测到ei为潜在异常点后,通过异步线程,观测在ei异常点随后的长度为o的序列区间,满足上述2个条件后,系统才会将ei数据点进行报警。如图3所示,二次确认保证了异常点后的整体递增性和算法结果一致性,由于二次确认工作的异步性,不会阻塞正常的观测流程,且重复计算Fi(l)的时间复杂度为O(1)。故带来的滞后影响很小,可忽略,这也将在后文的仿真结果中得以体现。

优化后的算法具有以下特点。

1) 能够检测数据飙升,灵敏地探测到熵值的增加,且幅度较大。

2) 保证单调性,异常点之后的一定大小窗口内熵值均大于异常点熵值。

3) 保证异常点之后的一定大小窗口内,熵值呈整体上升的趋势。

4) 优化后总体的算法复杂度为O(n*o),o为二次确认的偏移常量,o

2 检测系统仿真实验

2.1 数据准备

2.1.1 框架和数据集

仿真框架为Framework For Misbehavior Detection(F2MD),该框架重新创建构成非法行为检测链的所有元素,使用流行的卢森堡交通场景。LuST是由SUMO生成并使用真实数据验证的合成数据集,由卢森堡大学车辆实验室提供。表1描述了仿真运行环境信息。

表1 仿真环境信息Table 1 Simulation environment information

对于公共数据集,F2MD的作者KAMEL等[17]提供了多种类型的车联网中的攻击行为数据,并以VeReMi格式发布了上述攻击行为的模拟结果,这是第一个公开的不当行为检测数据集,VeReMi是目前该领域唯一的数据集。本文着眼于数据集中DDoS攻击相关的数据集进行实验,并采用第1.2节和1.3节所述的时序异常检测算法对数据集中的数据进行处理。

2.1.2 数据处理

本文主要使用VeReMi数据集中的DDos,DosDisruptive和DosRandomSybil子数据集,分别为传统DDoS,破坏性DDoS和随机女巫DDoS等类型的攻击数据集。检测主要作用于上述子数据集中的GroundTruth文件,该文件展示了针对地域全局范围内的真实网络流量回放,表2总结了检测系统的参数选择。滑动窗口的长度决定了算法的时间特性,ω越大则计算时间越长;阈值φ的选取决定了异常检测的灵敏度。选取ω和φ分别为10 000和10,并提出增加二次确认,以此保证异常偏差检测算法的实时性和准确性。这些关键参数均基于真实流量数据,并为了尽量减少假阳性(FP)和假阴性(FN)检测情况而选取的数值。

表2 检测系统参数Table 2 Parameters of the detection system

2.2 仿真结果展示

图4~图9展示了仿真实验中,针对VeReMi数据集中的3个子数据集分别得到网络流量信息熵的变化曲线和滑动窗口高斯分布采样的结果。

图4,图6和图8中分别展示了每个数据集中DDoS攻击真实发生的序列时刻和系统检测告警时刻。可以从中看出算法检测到的时刻与真实时刻几乎重合。图5,图7和图9采样了各数据集中正常状态和受攻击时刻时,信息熵时序窗口的高斯分布。从图中可以看出,受攻击状态时信息熵均值均大于正常状态,符合预期,同时验证了检测系统算法的理论基础。

3 检测系统评价

通常评价一个时序检测系统的标准是检测结果的准确性和灵敏度,包括检测正确(TP,TN)、假阳性检测(FP)、假阴性检测(FN)的比例。在本次实验中,针对目标VeReMi数据集的误报(TN)、漏报(FN)比例均为0,实现了100%成功检测。

实时性则是检测系统的另一个评价标准。由于采用二次确认的方法,本文牺牲了系统的部分检测速度,换取更高的准确率。不过二次确认的工作量具有常量级别的复杂度,且系统使用异步线程处理,所以对性能影响较小。如表3所示,在DDoS攻击发生后,系统一般延迟3~8 s内能够识别并发出报警信息。部分DDoS攻击情形下,熵值增量较为缓慢,阈值设置较高故灵敏度略有降低。检测系统发现有问题的时间序列后,计算其数据包的时间戳与实际攻击数据包的时间戳的差值,即为实际报警延迟时间。

表3 检测系统在各DDoS数据集下的性能表现Table 3 DDos attack detection system performance

4 结论

1) 重新设计策略,使得信息熵理论在车联网场景中的DDoS攻击检测中发挥作用。

2) 设计一种基于高斯分布模型的检测信息熵变化的算法——“累计异常时间窗”,应用于VeReMi公开数据集进行DDoS攻击识别检测。

3) 整体算法的时间复杂度为O(n),检测准确率达到100%,由于检测的攻击方式不同,报警时延的检测结果略有差异,但均在8 s以内。

4) 该实时检测系统可以更广泛地对不同类型的DDoS攻击进行检测,但由于目前应用的数据集数量有限,故对不同攻击的检测结果水平表现不一。同时也为今后车联网安全的DDoS攻击追踪和溯源提供了理论和实践参考。

猜你喜欢

高斯分布信息熵滑动
用于弯管机的钢管自动上料装置
基于信息熵可信度的测试点选择方法研究
针对移动端设计的基于滑动响应方式的验证码研究
近似边界精度信息熵的属性约简
Big Little lies: No One Is Perfect
在航集装箱船舶摇摆姿态的概率模型
不同分布特性随机噪声的FPGA实现
改进的自适应高斯混合模型运动目标检测算法
改进RRT在汽车避障局部路径规划中的应用
基于信息熵的承运船舶短重风险度量与检验监管策略研究