1.一种基于改进视觉自注意力模型的车载网络入侵检测方法,其特征在于,包括以下步骤:步骤S1、使用Car‑Hacking数据集,Car‑Hacking数据集是在执行消息注入攻击时通过车辆的OBD‑II端口记录CAN流量来构建的公共数据集,对Car‑Hacking数据集使用数值化和非线性转换进行预处理,处理结果作为本实验的原始数据,再将所述原始数据集随机划分为多组数据子集;
步骤S2、将多组所述数据子集转换成图片数据集;
步骤S3、使用粒子群算法进行特征选择,得到最优的特征子集;
步骤S4、按照特征子集对应的特征对原始数据进行提取,以生成新的数据集,然后再将新的数据集转换为图片,传入Vision transformer模型中进行训练;
步骤S5、将所述步骤S4训练好的模型嵌入到车辆中,可实现对车辆内部流量的实时监测,若发生攻击行为便可以即时告警。
2.根据权利要求1所述的基于改进视觉自注意力模型的车载网络入侵检测方法,其特征在于,所述步骤S1包括以下内容:步骤S101、将原始数据进行数值化和非线性转换处理;
步骤S102、从每一种流量中随机提取10%的数据集,进而生成m种长度相同的含有不同特征子集的数据子集,m<原始数据集中特征数量。
3.根据权利要求1所述的基于改进视觉自注意力模型的车载网络入侵检测方法,其特征在于,所述步骤S2包括以下内容:步骤S201、通过分位数归一化和数值缩放,使得数据大小在RGB色值范围,即0到255的范围,且将特征分布变换为正态分布,并根据正态分布重新计算所有特征值,使得大多数变量值接近中值,如公式(1)所示: (1)
其中,Y是随机变量,i角标代表每个数据对应一个随机变量;τ是Y的分位数,满足; 为Y 的条件中位数方程;au是数据集中某个数据点在排序之后在数据集中的位置,通常用百分位数表示,例如1‑100,按从小到大排序,25就是在0.25的位置;n则是数据集中的数据总量;
步骤S202、根据数据集的时间戳和特征大小将数据样本转换为块,根据最优特征子集中特征的数量q,取3×q个连续样本,使用Image库中的fromarray函数将其转换成q×q×3的图像,每个变换后的图像都是具有三个通道的方形彩色图像,并保留原始网络数据的时间序列相关性。
4.根据权利要求1所述的基于改进视觉自注意力模型的车载网络入侵检测方法,其特征在于,所述步骤S3包括以下步骤:步骤S301、每个粒子都由一个对特征子集进行编码的二进制向量表示,长度均为N,N表示所有特征总数;粒子中的每一位代表一个特征,其中1代表被选中的特征,0代表未被选中的特征;
步骤S302、种群初始化,将生成 P 个粒子作为初始种群,通过随机初始化来确定粒子的位置以及初始速度;
步骤S303、适应度函数计算,选用最小化模型损失作为适应度评价指标;
步骤S304、采用公式(2)更新粒子位置和速度;第i个粒子的位置向量由向量Xi = (xi1, xi2, xi3, ..., xid) 表示,其中xid表示第i个粒子位置的d维;第i个粒子的速度矢量表示为Vi = (vi1, vi2, vi3, ..., vid);第i个粒子的局部最佳位置由向量Pid = (pi1, pi2, pi3, ..., pid) 表示;目前找到的全局最佳位置由向量 Pgd = (pg1, pg2, pg3, ...,pgd)表示;
(2)
其中,vid为粒子的速度;ω为惯性因子,其值为非负数,当ω较大时全局寻优能力强、局部寻优能力弱;当ω较小时全局寻优能力弱、局部寻优能力强;c1和c2是学习因子,其值为非负数,是调整局部最优值和全局最优值权重的参数;r1和r2是介于(0,1)之间的随机数;pid为个体最优解,pgd为全局最优解;
公式 为速度更新公式,其由三
部分组成,ω∙vid为记忆项,表示上次速度大小和方向的影响; 为个体认知项,是从当前位置指向该粒子最优位置的一个向量,反应个体经验对于下一步移动的影响; 为全局认知项,是从当前位置指向全局最优位置的一个向量,反映了粒子间的协同合作,三部分共同决定一个粒子下一步的移动方向和距离;
公式 为位置更新公式;
步骤S305、停止条件如果迭代次数不超过允许的最大迭代次数,则将重复适应度函数计算、粒子位置和速度更新;直到迭代次数达到上限,才会将全局最优特征子集作为最终特征集。
5.根据权利要求1所述的基于改进视觉自注意力模型的车载网络入侵检测方法,其特征在于,所述步骤S4包括以下步骤:步骤S401、新的数据集依然是序列数据集,同步骤S2一样,先将序列数据转换成图像数据集;
步骤S402、对图片进行分割,转换成类似于文本语句的一个个patch,并将图片展成一个序列;
步骤S403、向每一个patch嵌入一个位置信息token,以保存patch之间的关联性;
步骤S404、Vision transformer编码器部分由重复堆叠L次的编码块组成,编码块之间具有相同的结构,但不共享权重;每个编码块有两个子层,其中一个子层包括线性归一化层、修改的多头注意力层和Dropout层,另一个子层包括线性归一化层、多层感知机和Dropout层;
步骤S405、使用修改的注意力机制,如公式(3)所示,控制掩码变量 的值来保留或删除部分头部: (3)
其中,Q、K、V分别代表查询、键和值的三元组,是通过预训练得到的初始值; 是代表{0,1}的掩码变量,用于控制是否删除头部;Concat指代的是全连接层;head指的是含有不o同Q、K、V的注意力公式;W是输出权重矩阵,用于将多个注意力头部的输出合并在一起;
步骤S406、经过Vision transformer模型的训练,得到适应于车联网的入侵检测模型。