system: [SYSTEM]

user: 4. 特征概述和分类器训练 4.1. Sybil攻击特征提取 采用Veins仿真框架模拟车联网中车辆间的信息传递，收集流量信息，将此流量信息作为整个实验过程中的训练数据和测试数据。Veins中的道路交通仿真由SUMO执行，而网络仿真由OMNeT++与物理层建模工具包MiXiM一起执行，可以为无线电干扰以及静态和移动障碍物的遮挡提供精确的模型，可以模拟现实环境中信号传递因物理阻碍和干扰带来的影响。Veins还提供了数据传递API，使得入侵检测系统可以通过端口的方式实时接收车联网中的模拟数据。Veins规定：模拟车辆中的正常节点在模拟环境中运行的各个运动学信息必须遵从表2中的特征范围。 Table 2 Feature rang 模拟特征 描述 Position Range (位置范围) 车辆所处的位置需要合理，Veins规定车辆位置必须限定在模拟道路上。 Speed Range (速度范围) 车辆的速度要在合理的范围内，Veins规定模拟环境中车辆的最大行驶速度不超过40 km/h。 Heading Range (方向范围) 车辆行驶的方向在一定时间内需要保持一致。 Acceleration Range (加速度范围) 车辆的加速度要在合理的范围内，Veins规定模拟环境中车辆的最大加速度不超过3 m/s 2 。 Maximum Separation Distance (最大接收距离) Veins规定车辆接收消息的最大距离为420 m。 Beacon Frequency (发送消息频率) Veins规定车辆发送消息的频率不高于0.99个/秒。 表2. 特征范围 模拟车联网环境中的车辆各个运动特征均应该保持在上述范围之内。2.1小节所提到的各种sybil攻击方法中，恶意节点发送攻击类型的信息，其消息内容或是具有一定的随机性，或是和车联网中其他模拟车辆的消息内容重叠。因此，利用车联网环境的运动学范围特征可以对消息内容的置信度进行评估，并以此作为判断sybil攻击的依据。 4.1.1. Sybil攻击特征概述 从2.1节中sybil攻击的攻击方式来看，攻击消息主要和Position、Speed、Heading和Acceleration四个特征有很大的关联。然而，某一时刻的车辆运动学信息在可信范围之内并不代表下一时刻该车辆的运动学信息也在可信范围之内，比如在Grid Sybil Attack中，恶意节点可以通过细致的计算来模拟正常车辆的运动，使得在一段时间内幽灵车辆的运动信息符合正常车辆运动信息，因此，仅通过上述四个特征难以判断。同时，车辆运动学信息的各个方面在可信范围之内并不代表整个消息是可信的，比如，在接收到信息的两个时刻，同一车辆的位置和速度都可信，但车辆以可信范围内的速度运行，经过两个时刻的时间间隔，并不足以从前一个时刻位置达到后一时刻位置。因此，我们还需要考虑特征之间的相互关联性，以此来增强车辆消息可信度的判断依据。 4.1.2. Sybil攻击特征分析 考虑车辆运动学特征的可信范围和运动学特征之间的联系，本次实验利用了Joseph等人提出的置信度计算方法CaTch [ 5 ]，该解决方案在执行基本的不良行为检查时会考虑到移动性信息的不确定性，再进一步展开运动学基本特征，并根据各个基本特征之间的联系计算置信度。总结如下： 1) Range plausibility (rP) ：接收范围合理性，代表接收消息车辆和发送消息车辆距离小于模拟特征规定的最大距离420m。 2) Position plausibility (pP)：位置合理性，车辆的位置限定在道路上，而不能出现在障碍物中。 3) Speed plausibility (sP)：速度合理性，模拟车辆的速度不能超过规定的最大速度。 4) Position consistency (pC)：位置一致性，同一模拟车辆的两个时刻的位置距离小于一定的阈值。 5) Speed consistency (sC)：速度一致性，两个时刻内同一车辆的速度变化需要小于加速度的最大阈值。 6) Position speed consistency (psC)：位置速度一致性，两个不同时刻同一车辆的位置和速度之间存在关联，位置的变化必须保持速度在阈值之内。 7) Positon speed memory consistency(psmC)：多时刻位置速度一致性，记录了多个时刻同一车辆的位置和速度之间的关联，位置变化与速度变化保持关联。 8) Position heading consistency (phC)：位置方向一致性，两个时刻的同一车辆的位置和车辆行进的方向之间存在关联。车辆在一段时间内的运动和其方向保持一致，和位置变化矢量之间存在关联。 9) Beacon frequency (bF)：信标频率，模拟车辆发送消息具有一定的时间间隔，发送消息频率不超过0.99个/秒。 10) Intersection check (inT)：交叉检测，同一时刻同一位置不能存在多个车辆。 11) Sudden appearance (sA)：新出现车辆的检测，接收到的新出现的车辆位置必须在合理的范围内。 12) Kalman Filter Tracking：使用卡尔曼过滤方式 [ 6 ]，通过计算得到几种检测特征： -卡尔曼位置速度一致性(kPSCP，kPSCS，kPSCSP，kPSCSS)， -卡尔曼位置一致性(kPC)， -卡尔曼位置加速度一致性(kPAC)， -卡尔曼速度一致性(kSC)。 根据表2总结的本次实验的6个特征范围，可以计算得到范围特征、合理性特征总计18个特征的置信度作为本次实验的检测特征，用于判断该消息是否为攻击类型的消息。 4.2. 基于MLP的分类器训练 4.2.1 . 数据集收集 本文使用F2MD框架来评估基于流量统计的解决方案 [ 7 ]。Paris Scalay是Veins内置的由SUMO生成的模拟场景，我们将Paris Scalay交通方案用于车辆跟踪。模拟场景的拓扑结构由市区组成，住宅区道路和主干道与高速公路相连。在模拟环境中可以投放发送恶意攻击(sybil攻击)的节点，并通过监听端口的方式收集车联网模拟环境内部的流量信息。在每一种场景中，恶意节点的比例为5%。我们分以下两种情况收集流量数据。 1) 600 s时长的、包含单一sybil攻击的流量：对于2.1小节中提到的各种sybil攻击类型，我们分别收集了600 s的流量统计结果，通过数据收集模块的整理和计算，得到了如表3的结果。 Table 3 Sample information in 600 s traffi 流量包含的攻击类型 样本总数/条 正负样本比值 DosRandomSybilAttack 50，770 6.97:1 DataReplaySybilAttack 43，279 7.02:1 DosDisruptiveSybilAttack 53，238 6.04:1 Grid Sybil Attack 54，663 6.42:1 表3. 600 s流量中的样本信息 2) 1200 s时长的、包含各种sybil攻击的流量：经过数据收集模块的整理和计算，并去除重复数据后，得到样本总数为88，645。各类型样本比例为5.03:1.09:1:1.34:1.22。 收集600 s时长的、包含单一sybil攻击的流量数据，其意义在于判断各种sybil攻击类型消息和正常流量消息间的区别，同时判断各个特征对于识别攻击的贡献程度。而收集1200 s时长的、包含各种sybil攻击的流量数据，意义在于训练一个多分类器来区分sybil攻击的类别。 4.2.2. 数据预处理 通过分析收集到的流量数据，可以总结出以下几个特点，并根据特点进行对应的数据预处理操作。 1) 数据归一化：归一化的目的就是使得预处理的数据被限定在一定的范围内，从而消除奇异样本数据导致的不良影响；同时，如若不进行归一化处理，在进行梯度下降的时候，梯度的方向就会偏离最小值的方向，走很多弯路，导致训练时间过长。 在4.1.2小节中，根据置信度的计算，各个特征的取值范围存在一定的差异，为了减轻这种情况带来的影响，方便后续的数据处理过程，同时加快网络学习速度，可以对各个特征进行归一化，使得所有样本的输入信号均方差相比很小。 2) 平衡正负样本：根据4.2.1小节统计得到的样本比例，可以观察到正负样本不够平衡，而样本不平衡会使得我们的分类模型存在严重偏向，即将攻击类型消息判断为正常消息。从测试结果上来看，会表现为有太多的False Positive。因此，本文采用Random Under Sample的欠采样方式来平衡正负样本。 4.2.3. 分类器训练和结果分析 我们分别对预处理后的600 s样本数据进行了训练，并利用F1得分(F1 Score，F1 Score是准确率和召回率整合在一起的判定标准，是统计学中用来衡量二分类模型精确度的一种指标)来衡量入侵检测模型的表现，综合考虑入侵检测模型的检测准确率和误报率，F 1 得分的计算公式如(1)所示。 F 1 = 2 ⋅ p r e c i s i o n ⋅ r e c a l l p r e c i s i o n + r e c a l l (1) 经过多次训练得到F 1 得分最高的MLP的各项重要参数和结果平均值如表4所示，F 1 得分的计算公式如公式。 Table 4 Classifier parameters and results in single sybil attack detectio 输入信号个数 隐藏层节点 激活函数 学习率 迭代次数 18 18 Relu 0.001 200 Sybil攻击类型 准确率 召回率 F1得分 支持数据数量 DosRandom 0.995 0.982 0.991 4226 Data Replay 0.951 0.920 0.936 2119 Dos Disruptive 0.981 0.986 0.984 4239 Grid 0.843 0.842 0.843 2130 表4. 单一sybil攻击检测分类器的参数和结果 这一步主要是比较了各种类别的sybil攻击和正常消息，判断各类sybil攻击消息和正常消息是否具有比较大的区别。从训练结果可以看出，对于各种类型的sybil攻击方式，使用MLP进行训练和判断均达到比较好的预测效果。原因在于Dos Random Sybil Attack由于内容的随意填充，其大部分特征(尤其是pP，sP特征)的置信度很低，容易区分；而Data Replay Sybil Attack通过跟踪车辆的方式发送消息，其inT置信度数值比较低，也能被区分；Dos Disruptive Sybil Attack因为同时具有Dos Random 和Data Replay类型的特征，使得MLP能很好地做出检测。 Grid Sybil Attack通过严密的计算来模拟幽灵车辆，因而相比于其他类型而言识别率较低。通过图7各个特征的得分情况可以看到，MLP在判断Grid类型时主要考虑了卡尔曼滤波器求得的特征和psC、psmC等一致性特征，也验证了一致性特征在检验sybil攻击方面的有效性。 图7. 二分类器特征得分 对预处理后的1200 s样本数据进行二分类训练和多分类训练，经过多次测试得到F1分数最高的MLP的各项重要参数如表5所示。 Table 5 Two classifier parameters and result 输入信号个数 隐藏层节点 激活函数 学习率 迭代次数 18 18 Relu 0.001 200 类型 准确率 召回率 F1得分 支持数据数量 Genuine 0.861 0.954 0.903 5851 Misbehavior 0.942 0.855 0.897 5839 表5. 二分类器参数和结果 结合600 s训练集得到的结果看来，正常消息和sybil攻击消息的区别较为明显。对sybil攻击类型的识别有着比较高的准确率。但同时因为存在Grid Sybil Attack的攻击，使得一部分正常消息被误判为Grid类型消息。 多分类器参数和结果如表6所示： Table 6 Multi-classifier parameters and result 输入信号个数 隐藏层节点 激活函数 学习率 迭代次数 18 36 Relu 0.001 200 类型 准确率 召回率 F1得分 支持数据数量 Genuine 0.878 0.850 0.864 2240 Grid 0.868 0.791 0.830 2342 DataReplay 0.853 0.751 0.802 2252 DosRandom 0.752 0.986 0.870 2278 DosDisruptive 0.724 0.653 0.689 2323 表6. 多分类器参数和结果 图8显示了使用MLP训练时各个特征的重要性，并以得分的形式给出。 图8. 二分类器特征得分 由之前二分类器的结果分析得知，异常行为和正常消息具有比较大的区分度，使用MLP训练的结果能够识别异常行为。但在sybil的多分类识别中，通过对结果进行分析可以得到下述结论：真实Data Replay类型的消息容易被误判为Dos Disruptive类型，而Dos Disruptive类型的数据同样比较容易被误判为Dos Random类型和Data Replay类型。主要原因在于Dos Disruptive Sybil Attack是Data Replay Sybil Attack和Dos Random Sybil Attack的结合体，其特征的置信度均和前两种攻击有着比较大的联系。