用于检测CAN总线中的攻击的方法和装置与流程

文档序号:32566935发布日期:2022-12-16 21:32阅读:114来源:国知局
用于检测CAN总线中的攻击的方法和装置与流程
用于检测can总线中的攻击的方法和装置
1.相关申请的交叉引用
2.本技术要求于2021年6月16日提交至韩国知识产权局(kipo)的韩国专利申请第10-2021-0078080号以及2022年5月23日提交kipo的韩国申请第10-2022-0062705号的优先权,其整体内容通过引用并入本文。
技术领域
3.本公开涉及车载网络中的入侵检测方法及装置,尤其涉及一种通过使用生成预训练变换器2(gpt2)深度学习网络对控制器局域网(can)总线进行入侵检测的方法及装置。


背景技术:

4.控制器局域网(can)总线协议已被引入以通过使用单个公共总线来支持车辆中的各种控制器之间的通信。但是,由于它的设计没有考虑安全性,因此面临各种攻击的威胁。由于连接到can总线的控制器在车辆正常操作状况下传送时段性和非时段性信号,因此如果通过按出现顺序收集can信号的标识符(id)来配置can id的序列,则该序列将具有特定的模式。因此,当学习正常操作状况下的can id序列的模式时,可以检测由于攻击的出现而导致的can id序列的模式的变化。然而,当检测目标can id序列中仅包括极少数的攻击id时,可能很难检测到相应的模式变化。因此,为了检测对can总线的攻击,需要不同于现有检测技术的检测技术。


技术实现要素:

5.因此,本公开的示例性实施方式旨在提供通过使用gpt2深度学习网络对can总线进行入侵检测的方法和装置。
6.根据本发明的第一示例性实施方式,一种通过处理器执行的用于can的入侵检测方法可以包括:按出现顺序从can收集can id;从收集到的can id生成预定数量l个can id的序列,l为大于或等于1的整数;以及将序列输入到双向gpt2网络并且计算与序列对应的损失函数的值,其中,当允许的can id的数量为k时,将序列中的允许的can id按大小排序并且转换为0到k-1的值,将序列中的不允许的can id转换为k,将序列输入到双向gpt2网络,并且k为等于或大于1的整数。
7.双向gpt2网络可以包括前向gpt模块、后向gpt模块和全连接层。
8.在计算损失函数的值时,可以将序列按原序输入到前向gpt模块,并且可以将序列按逆序输入到后向gpt模块。
9.在计算损失函数的值时,可以将与属于序列的从第0个can id至第l-2个can id的can id对应的嵌入向量输入到前向gpt模块,并且前向gpt模块可以输出具有与嵌入向量相同维度的e维向量,其对应于第1个至第(l-1)个can id。
10.在计算损失函数的值时,可以将与属于序列的从第(l-1)个can id至第1个can id的can id对应的嵌入向量输入到后向gpt模块,并且后向gpt模块可以输出具有与嵌入向量
相同维度的e维向量,其对应于第(l-2)个至第0个can id。
11.在计算损失函数的值时,可以将前向gpt模块的输出和后向gpt模块的输出级联以生成2e
×
l矩阵,2e
×
l矩阵可以通过全连接层转换为(k+1)
×
l矩阵,并且(k+1)
×
l矩阵可以通过softmax层变换为概率矩阵。
12.损失函数可以被定义为前向gpt模块、后向gpt模块和全连接层可以被训练以使损失函数的值最小,是用于训练的第n个正常can id序列的第l个变量,并且是针对实际生成的can id,其为真实值。
13.入侵检测方法还可以包括:将损失函数的值与阈值进行比较;以及当损失函数的值等于或大于阈值时,将与序列对应的时段确定为存在入侵的时段,其中损失函数可以被定义为定义为是与检测目标序列对应的第m个canid序列的第l个变量,并且是针对实际生成的can id,其为真实值。
14.根据本发明的第二示例性实施方式,一种用于can的入侵检测装置可以包括:处理器;存储器,存储一个或更多个可由处理器执行的指令,以及收发器,连接到can的总线以执行通信,其中当由处理器执行时,一个或更多个指令使入侵检测装置:按照出现的顺序从can收集can id;从收集到的can id生成预定数量l个can id的序列,l为大于或等于1的整数;以及将序列输入到双向gpt2网络并且计算与序列对应的损失函数的值,其中当允许的can id的数量为k时,将序列中的允许的can id按大小排序并且转换为0到k-1的值,将序列中的不允许的can id转换为k,将序列输入到双向gpt2网络,并且k为等于或大于1的整数。
15.双向gpt2网络可以包括前向gpt模块、后向gpt模块和全连接层。
16.在计算损失函数的值时,可以将序列按原序输入到前向gpt模块,并且可以将序列按逆序输入到后向gpt模块。
17.在计算损失函数的值时,可以将与属于序列的从第0个can id至第l-2个can id的can id对应的嵌入向量输入到前向gpt模块,并且前向gpt模块可以输出具有与嵌入向量相同维度的e维向量,其对应于第1个至第(l-1)个can id。
18.在计算损失函数的值时,可以将与属于序列的从第(l-1)个can id至第1个can id的can id对应的嵌入向量输入到后向gpt模块,并且后向gpt模块可以输出具有与嵌入向量相同维度的e维向量,其对应于第(l-2)个至第0个can id。
19.在计算损失函数的值时,可以将前向gpt模块的输出和后向gpt模块的输出级联以生成2e
×
l矩阵,2e
×
l矩阵可以通过全连接层转换为(k+1)
×
l矩阵,并且(k+1)
×
l矩阵可以通过softmax层变换为概率矩阵。
20.损失函数可以被定义为
前向gpt模块、后向gpt模块和全连接层可以被训练以使损失函数的值最小,是用于训练的第n个正常can id序列的第l个变量,并且是针对实际生成的can id,其为真实值。
21.一个或更多个指令还可以使入侵检测装置:将损失函数的值与阈值进行比较;以及当损失函数的值等于或大于阈值时,将与序列对应的时段确定为存在入侵的时段,其中损失函数可以被定义为损失函数可以被定义为是与检测目标序列对应的第m个can id序列的第l个变量,并且是针对实际生成的can id,其为真实值。
22.当使用本公开提出的用于使用双向gpt2网络检测对can总线的攻击的方法及装置时,即使在can id序列中包括少量的攻击id时,也能有效地检测到攻击。因此,能够提高安装有can总线的车载网络的安全性。
附图说明
23.图1是示出一般can数据帧的结构的概念图。
24.图2是用于描述can的当前连接结构的问题的概念图。
25.图3是用于描述将can id转换为二进制数并且通过将其视为二进制图像来执行入侵检测的传统方法的概念图。
26.图4是示出gpt2网络中的信号流的概念图。
27.图5是用于描述应用于gpt2网络的掩蔽自注意力的概念图。
28.图6是示出根据本公开的示例性实施方式的双向gpt2网络的结构的框图。
29.图7是示出根据本公开的示例性实施方式的用于对can总线的入侵检测的双向gpt2网络的训练过程的流程图。
30.图8是用于描述根据本公开的示例性实施方式的由双向gpt2网络计算损失函数的值的过程的流程图。
31.图9是用于描述根据本公开的示例性实施方式的使用双向gpt2网络用于对can总线进行入侵检测的入侵检测过程的流程图。
32.图10是用于描述根据本公开的示例性实施方式的入侵检测装置的配置的框图。
33.图11是示出攻击can id的注入间隔的经验累积密度函数(ecdf)的图表。
34.图12是示出关于l=256的一个can id序列内的攻击id的数量的ecdf的图表。
35.图13是示出所提出的针对模仿攻击的作为l的函数以确定can id序列的最合适长度l的方法的roc性能的图表。
36.图14是示出关于l=256的攻击的nll值的ecdf的图表。
37.图15是比较l=256的入侵检测方法的模仿攻击的roc性能的图表。
具体实施方式
38.本文公开了本公开的实施方式。然而,本文所公开的具体结构和功能细节仅代表用于描述本公开的实施方式的目的。因此,本公开的实施方式可以以许多替代形式来实施并且不应被解释为限于在此阐述的本公开的实施方式。
39.因此,尽管本公开能够具有各种修改和替代形式,但是其特定实施方式在附图中以示例的方式示出并且将在本文中详细描述。然而,应该理解的是,本公开并非旨在将本公开限制为所公开的特定形式,而是相反,本公开将涵盖落入本公开的精神和范围内的所有修改、等同和替代方案。在附图的描述通篇中,相同的附图标记表示相同的元件。
40.应当理解,尽管在本文中可以使用术语第一、第二等来描述各种元件,但是这些元件不应受这些术语的限制。这些术语仅用于区分一个元件与另一个元件。例如,可以将第一元件称为第二元件,并且类似地,可以将第二元件称为第一元件,而不脱离本公开的范围。如本文所使用的,术语“和/或”包括一个或更多个相关联的列出项目的任何和所有组合。
41.应当理解,当一个元件被称为“连接”或“耦接”到另一个元件时,它可以直接连接或耦接到另一个元件,或者可以存在中间元件。相反,当一个元件被称为“直接连接”或“直接耦接”到另一个元件时,不存在中间元件。用于描述元件之间的关系的其他用语应以类似的方式解释(即“之间”与“直接之间”、“相邻”与“直接相邻”等)。
42.本文使用的术语仅出于描述特定实施方式的目的,而非旨在限制本公开。如本文使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。将进一步理解,术语“包括”、“包含”和/或“具有”,当在本文中使用时,指明所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除存在或添加一个或更多个其他的特征、整数、步骤、操作、元件、部件和/或它们的组合。
43.除非另有定义,否则本文使用的所有术语(包括技术和科学术语)与本公开所属领域的普通技术人员通常理解的含义相同。将进一步理解,术语,诸如在常用词典中定义的术语,应被解释为具有与其在相关技术的上下文中的含义一致的含义,并且不会以理想化或过于正式的意义来解释,除非在此明确如此定义。
44.在下文中,将参照附图更详细地描述本公开的示例性实施方式。为了便于在描述本公开时的一般理解,附图中相同的部件通过相同的附图标记表示,并且将省略对其的重复描述。
45.can总线协议是一种标准通信协议,专为电子控制单元(ecu)之间的高效通信设计而无需车辆中的主机。can总线协议由bosch于1983年开发,由于其简单而高效的结构,于1993年被确立为iso 11898标准。can总线借助于广播方法操作,使得当一个设备传送消息时,连接到总线的每个设备都可以接收到它。在这种情况下,传送由can id和消息组成的can数据帧,并且连接到can总线的任意设备接收与特定canid对应的can数据帧。
46.图1是示出一般can数据帧的结构的概念图。
47.参照图1,can通信协议中使用的帧结构可以包括帧开始(sof)字段、标识符(id)字段、远程传送请求(rtr)字段、控制字段、数据字段、循环冗余校验(crc)字段,应答(ack)字段和帧结束(eof)字段。由于id字段使用11比特位,因此最多可以支持从0x000到0x7ff的2,048个can id。此外,根据数据帧的can id值确定传送优先级,并且id值越低,传送优先级越高。具体地,当使用不同can id的ecu同时传送消息时,通过比特级监控来对传送ecu传送的
can id和其他ecu传送的can id进行监控,并且可以识别其他ecu传送的消息是否比传送ecu的消息具有更高的优先级。由此,传送具有较低优先级的can数据帧的ecu能够在can id传送时段期间检测具有较高优先级的can数据帧正在传送,并且等待直到具有较高优先级的can数据帧的传送完成,从而在没有冲突的情况下传送其自身的消息。
48.can总线协议是在没有加密或认证特征的情况下开发的,因为在其开发时没有考虑安全性。由于许多设备,诸如蓝牙设备、第3代/第4代(3g/4g)设备、wi-fi设备、无线通信传感器、全球定位系统(gps)接收器和车辆控制器以及ecu可以在不考虑安全性的情况下并联连接到单个物理总线,因此ecu很容易受到来自外部的攻击。
49.图2是用于描述can的当前连接结构的问题的概念图。
50.参照图2,例示了如下情况:其中用于控制对安全至关重要的速度和方向的ecu与控制通用串行总线(usb)和wi-fi通信的外部设备一起通过一个can总线连接。如果攻击者能够通过获得负责外部通信的设备的控制来访问can总线,则其可以通过传送恶意消息或保存正常帧并重新传送它们来干扰ecu的正常操作。此外,某些ecu可以通过传送重复的错误消息而被关闭,并且改变关于车辆的行驶方向和速度的信息可能导致故意事故。这种攻击是可能的,因为can数据帧不包括发送者的信息并且因此很容易被模仿。
51.在正常情况下,can id在can总线上按特定顺序生成,并且被分配了按照特定顺序生成的can id的can数据帧被传送。如果存在来自外部的攻击,则can id的出现顺序发生变化的概率极大。在现有的研究中,已经提出了将can id的序列转换为图像并且应用基于生成对抗网络(gan)结构的无监督学习或基于卷积神经网络(cnn)结构的有监督学习的入侵检测方法。然而,现有研究具有以下问题。虽然can id的序列是整数值的排列,但是现有研究通过转换为图像以间接方式检测can id出现顺序的变化。例如,在现有研究中,如果不存在的(即不允许的)can id看起来与图像上的现有的(即允许的)can id几乎相似,则可能无法检测到它。
52.图3是用于描述将can id转换为二进制数并且通过将其视为二进制图像来执行入侵检测的传统方法的概念图。
53.如图3所示,在现有研究中,通过将can id转换为二进制数并且将经转换的二进制数识别为二进制图像来检测攻击。但是,在这种情况下,仅通过can id的出现顺序的改变才能检测到攻击。即使仅改变了构成can id的一个比特位,它也可能不是允许的can id,但可能无法很好地被检测到。
54.为了解决上述问题,本公开提出了一种使用用于通过自然语言学习生成句子的生成预训练变换器2(gpt2)深度学习结构来检测对can总线的攻击的方法和装置。特别地,本公开提出了一种使用以双向方式组合的两个gpt模块的方法和装置,使得可以使用相对于检测时间的过去和未来的can id二者。
55.gpt2是一种深度学习结构,其通过自然语言学习生成句子。在gpt2的训练过程中,给定句子,将构成该句子的每个词转换为与从预先生成的语料库中搜索到的词对应的整数值。在经转换的整数被转换成嵌入向量之后,依次输入到变换器,并且变换器预测输入词的下一个词。可以训练gpt2网络以使预测词和真实词之间的交叉熵最小。经过上述训练处理的gpt2网络可以针对输入词预测语料库中存在的词中出现概率最高的下一个词。此外,当预测词被再次输入到gpt2网络时,可以预测下一个词,使得句子的生成成为可能。gpt2网络
可以通过使用这样的句子生成功能来写文章。
56.图4是示出gpt2网络中的信号流的概念图。
57.参照图4,当均被转换为嵌入向量ei的词标记(token)被依次输入到变换器时,在最后一层输出对应词之后出现的词的概率。
58.图5是用于描述应用于gpt2网络的掩蔽自注意力概念的概念图。
59.参照图5,由于gpt2并行处理一次输入的所有词,如果不采取行动,则关于稍后将出现的词的信息可用于预测下一个词。为了解决该问题,使用了掩蔽自注意力技术。也就是说,为了预测下一个词,使用掩蔽来仅使用关于之前输入的词的信息。这种掩蔽自注意力技术可以应用于将can id的序列输入到gpt2模块的处理中,这将在后面进行描述。
60.入侵检测的训练过程
61.在下文中,将描述根据本公开的示例性实施方式的用于对can总线执行入侵检测方法的双向gpt2网络的结构以及使用该结构的用于入侵检测的训练过程。
62.图6是示出根据本公开的示例性实施方式的双向gpt2网络的结构的框图。
63.参照图6,双向gpt2网络可以配置有前向gpt模块610、后向gpt模块620、级联单元630、作为全连接层的线性层640、softmax函数(或层)650等。双向gpt2网络可以在被加载到本公开的can总线入侵检测装置中之前进行训练。在下文中,将描述双向gpt2网络的训练过程。
64.图7是示出根据本公开的示例性实施方式的用于针对can总线的入侵检测的双向gpt2网络的训练过程的流程图。
65.首先,可以按照出现的顺序收集在can总线上接收到的can数据帧的can id(s710)。可以从收集的can id生成由预定数量l(l是大于或等于1的整数)个can id组成的can id的序列(s720)。
66.这种情况下,当允许的can id的数量为k(k为大于等于1的整数)时,可以将序列中的允许的can id按大小排序并且转换为0到k-1的值,并且序列中的所有不允许的can id都可以转换为k。
67.例如,如果当k=4时允许的can id为0x003、0x008、0x010和0x013,则它们可以分别转换为0、1、2和3。因此,在步骤s710中收集的can id中的每个允许的can id可以被转换为0到k-1之一。另一方面,在步骤s710中收集的can id中的所有不允许的can id可以被转换为整数值k。例如,序列中包括的所有不允许的can id(例如,0x000、0x015)可以被转换为4。
68.然后,可以将can id序列输入到双向gpt2网络,并且可以计算与该序列对应的损失函数的值(s730)。
69.图8是用于描述根据本公开的示例性实施方式的由双向gpt2网络计算损失函数的值的过程的流程图。
70.参照图8,步骤s720的序列可以按原序输入到前向gpt模块610,并且可以按逆序输入到后向gpt模块620(s810)。
71.具体地,l个can id的序列可以按原序输入到前向gpt模块610。此外,l个can id的序列可以按逆序输入到后向gpt模块620。更具体地,如下式1所示,与属于该序列的从第0个can id至第(l-2)个can id的can id对应的嵌入向量可以被输入到前向gpt模块610,并且
可以输出与从第一个can id至第(l-1)个can id的can id对应的e维向量(s720)。
72.[式1]
[0073][0074]
此外,如下式2所示,与属于该序列的第(l-1)个can id至第一个can id的can id对应的嵌入向量可以按出现的逆序输入到后向gpt模块620,并且可以输出与从第(l-2)个can id至第0个can id的can id对应的e维向量(s730)。
[0075]
[式2]
[0076][0077]
这里,和中的每一个可以是具有与嵌入向量的维度相同的维度的e维向量。因此,前向gpt模块的输出和后向gpt模块的输出可以分别是尺寸为e
×
(l-1)的矩阵。
[0078]
前向gpt模块610的输出和后向gpt模块620的输出可以通过级联单元630进行级联以生成2e
×
l矩阵,如下式3所示(s840)。
[0079]
[式3]
[0080][0081]
这里,可以将反向gpt模块620的输出转换回逆序以匹配正向gpt模块610的输出顺序,并且可以插入零向量0以生成2e
×
l尺寸的矩阵。
[0082]
式3的矩阵可以被输入到全连接层640,可以转换为尺寸为(k+1)
×
l的矩阵,并且可以通过softmax层输出作为下式4的概率矩阵(s850)。这里,概率矩阵可以是表示构成序列的每个can id的概率为0、被转换为整数值的允许的can id之一(即,0到k-1)或不允许的一个can id(即k)的矩阵。
[0083]
[式4]
[0084][0085]
下式5的损失函数可以使用概率矩阵来计算(s860)。返回参照图7,可以执行前向gpt模块610、后向gpt模块620和全连接层630的训练以使下式5(即,损失函数)最小(s740)。
[0086]
[式5]
[0087][0088]
这里,是用于训练的第n个正常can id序列的第l个变量,并且是针对实际生成的can id(即,真实值)。
[0089]
入侵检测过程
[0090]
在下文中,将描述根据本公开的示例性实施方式的使用双向gpt2网络的can总线的入侵检测过程。在入侵检测中,可以使用通过上述训练过程训练的双向gpt2网络。基本上,使用双向gpt2网络的入侵检测过程可以类似于上述训练过程。
[0091]
图9是用于描述根据本公开的示例性实施方式的使用双向gpt2网络对can总线进行入侵检测的入侵检测过程的流程图。
[0092]
可以将与检测目标时段对应的第m个can id序列输入到训练的双向gpt2网络(s910),其包括如下式6中定义的预定数量l个can id。
[0093]
[式6]
[0094][0095]
在这种情况下,如上文所述的训练过程,当允许的can id数量为k(k为大于或等于1的整数)时,序列中的允许的can id可以按大小排序并且转换为0到k-1的值,并且序列中的所有不允许的can id都可以转换为k。然后,序列可以被输入到双向gtp2网络。
[0096]
例如,如果当k=4时允许的can id为0x003、0x008、0x010和0x013时,它们可以被分别转换为0、1、2和3。因此,在步骤s710中收集的can id中的每个允许的can id可以被转换为0到k-1之一。另一方面,在步骤s710中收集的can id中所有不允许的can id可以被转换为整数值k。例如,序列中包括的所有不允许的can id(例如,0x000、0x015)可以被转换为4。
[0097]
在经过训练的双向gpt2网络中,可以通过上述步骤s810至s860来计算下式7的损失函数。这里,由式7定义的损失函数的值可以称为“异常分数”,因为它确定输入序列是否异常。
[0098]
[式7]
[0099][0100]
这里,是与检测目标时段对应的第m个正常can id序列的第l个变量,并且是针对实际生成的can id(即,真实值)。
[0101]
通过将计算的异常分数与阈值t进行比较,可以确定检测目标序列是否正常(s930)。具体地,如果异常分数大于阈值t,则将与检测目标序列对应的时段确定为存在攻击的时段,并且当异常分数低于阈值t时,将与检测目标序列对应的时段确定为正常时段。
[0102]
此外,通过确定的时段的联合,可以确定最终攻击时段i*,如下式8至10所示。
[0103]
[式8]
[0104][0105]
[式9]
[0106]i(m)
=[m,(m+l-1)]
[0107]
[式10]
[0108][0109]
入侵检测装置的配置
[0110]
根据本公开的示例性实施方式的用于对can总线进行入侵检测的装置可以是连接到车辆中的can总线的设备。例如,车辆的主机或车载网络的网关可以用作入侵检测装置。替选地,车辆的主机或网关可以被配置为包括入侵检测装置。另一方面,侵入检测装置可以被实现为存在于车辆内部或外部的诊断装置,或者可以包括在诊断装置中。
[0111]
图10是用于描述根据本公开的示例性实施方式的入侵检测装置的配置的框图。
[0112]
参照图10,入侵检测装置1000可以包括至少一个处理器1010、存储器1020和连接到用于执行通信的can总线的收发器1030。此外,入侵检测装置1000还可以包括输入接口装置1040、输出接口装置1050、存储装置1060等。入侵检测装置1000中包括的各个部件可以通过总线1070连接以彼此通信。然而,入侵检测装置1000中包括的各个部件可以不连接到公共总线1070,而是通过单独的接口或单独的总线连接到处理器1010。例如,处理器1010可以通过专用接口连接到存储器1020、收发器1030、输入接口设备1040、输出接口设备1050和存储设备1060中的至少一个。
[0113]
处理器1010可以执行存储器1020和存储设备1060中的至少一个中存储的程序。处理器1010可以指中央处理单元(cpu)、图形处理单元(gpu)或者其上执行根据本公开的实施方式的方法的专用处理器。存储器1020和存储设备1060中的每一个可以由易失性存储介质和非易失性存储介质中的至少之一构成。例如,存储器1020可以包括只读存储器(rom)和随机存取存储器(ram)中的至少之一。
[0114]
上述双向gpt2网络可以在训练状态下存储在存储器1020和/或存储设备1060中。替选地,上述双向gpt2网络可以在被安装在入侵检测装置1000上时进行训练。
[0115]
当上述双向gpt2网络在被安装在入侵检测装置1000上时被训练时,处理器1010可以执行用于执行参照图7至图8描述的步骤的指令以训练双向gpt2网络。
[0116]
此外,处理器1010可以通过执行用于执行参照图7至图8描述的步骤的指令,通过使用经训练的双向gpt2网络来确定can id序列是否正常。
[0117]
性能评估
[0118]
为了验证本发明所提出的入侵检测方法的性能,收集并使用了来自2020款hyundai avante cn7的can总线信号。正常的can总线信号包括总共90个有效的can id。出于训练目的,车辆绕市区行驶了大约1.8小时,除非另有说明,否则收集了大约15,900,000个can id序列。出于评估目的,攻击进行了大约0.34小时,并且获得了大约3,300,000个can id序列。在收集评估数据的处理中,作为对目标车辆的攻击,进行了泛洪攻击、模仿攻击、重放攻击和模糊攻击。进行攻击的详细方法如下。在泛洪攻击中,大约154,200个can id“0
×
000”的实例(具有最高优先级的id)被注入到can总线中。在模仿攻击中,从合适的can id的组中选择了2个有效的can id,并且大约7,800个它们被注入。在重放攻击中,在设置的时间段内记录了大约47,600个正常的can总线信号,然后将它们重新注入。在模糊攻击中,can id是随机生成的,并且大约89,900个它们被注入。表1总结了训练和评估数据的组成。
[0119]
[表1]
[0120][0121]
除非另有说明,否则在提出的方法中应用了以下设置:can id序列长度,l=256;词和位置嵌入向量的维度,e=128;前向和后向gpt网络中的注意力头数,h=8;前向和后向gpt网络中变换器解码器块的数量,g=6;每层的丢弃(dropout)概率,0.1。仅使用由上述正常can总线信号组成的训练数据进行训练。在该处理中,小批量尺寸被设置为32,并且使用自适应矩估计(adam)优化算法进行了10代的训练。如果在评估处理中识别出一个或更多个攻击can id存在于长度为l的can id序列中,则该序列被认为是攻击序列。表2总结了所提出方法的超参数。
[0122]
[表2]
[0123][0124]
真阳性率(tpr)和假阳性率(fpr)被用作评估性能的指标。tpr是正确确定为攻击(即真阳性)的can id序列数量与攻击can id序列的总数量之比,并且fpr是错误确定为攻击(即假阳性)的can id序列数量与正常can id序列的总数量之比。此外,基于这些性能指标,接收器操作特性(roc)曲线用于直观地示出利用各种阈值的入侵检测装置的性能。roc曲线是通过在二维图形的横轴和纵轴上分别绘制与每个阈值对应的fpr和tpr值来构建的。为了比较不同方法的roc性能,使用曲线下面积(auc)。auc值是通过对给定roc曲线下方的面积进行归一化来计算的,导致auc值为1以获得完美的性能。典型的性能检测器可以呈现出介于0和1之间的各种auc值。因此,可以推断出所考虑的检测器的auc值越高,其性能就越高。此外,f度量(f-measure),即精度和召回率的调和平均值(即tpr)如下式11定义。
[0125]
[式11]
[0126][0127]
这里,精度是实际攻击can id序列的数量与被识别为攻击的can id序列总数量之比。较高的f度量值被认为对应于较高的检测能力。
[0128]
图11是示出攻击can id的注入间隔的经验累积密度函数(ecdf)的图表。
[0129]
例如,在泛洪攻击的情况下,注入间隔被设置为3,这意味着通过can总线传送的每
三个can数据帧中就有一个来自泛洪攻击。对于泛洪攻击、模糊攻击和重放攻击,我们可以看到由于这些攻击的性质,攻击can id的大多数注入间隔都低于10。因此,这些攻击预计很容易被注意到,导致合理的检测性能,因为即使can id序列的长度l不大,也会有足够数量的攻击id。相比之下,模仿攻击仅使用2个有效的can id进行,意味着攻击id的注入间隔是相对大的。具体地,大约12%的模仿攻击的注入间隔超过100。因此,当l=100时,大约12%的模仿攻击将在相应的can id序列内仅产生一个攻击id。
[0130]
图12是示出关于l=256的一个can id序列内的攻击id的数量的ecdf的图表。
[0131]
可以看出,对于模仿攻击,一个can id序列中确实存在很少的攻击id,最小为1到最大为11。具体地,在大约5%的所有模仿can id序列中,存在2个或更少的模仿攻击。换言之,在大量的模仿can id序列中出现的模仿攻击太少,预计会导致此类攻击的检测性能下降。
[0132]
图13是示出所提出的针对模仿攻击的作为l的函数以确定can id序列的最合适长度l的方法的roc性能的图表。
[0133]
正如之前小节所预测的,当l=64或128时,单个序列内的模仿攻击数量太少,意味着检测性能低。另一方面,当l=256时,检测性能得到提高,因为在大多数情况下,每个序列都存在两个或更多个模仿攻击。此外,l=256时的auc性能分别比l=64和l=128的情况高约6.9%和1.5%。因此,除非另有说明,否则所有后续结果的l=256。
[0134]
图14是示出关于l=256的攻击的nll值的ecdf的图表。
[0135]
在泛洪攻击、模糊攻击和重放攻击的情况下,由于一个can id序列内的攻击id太多,因此nll值与其正常水平相比往往非常大。但是,由于模仿攻击产生的攻击id数量相对少,因此相应的nll值较低。
[0136]
在下文中,所提出的(proposed)方法的性能将与现有入侵检测方法的性能进行比较。考虑比较的第一种入侵检测方法是双向马尔可夫(bi-markov)方法,其中二阶马尔可夫链模型以双向方式组合。在该方法中,训练数据用于估计can id序列在前向和后向方向中的二阶转移概率,并且该值可用于计算被评估序列的对数概率以确定攻击状态。为了研究由于所提出方法的双向结构而获得的性能增益,在第二种考虑的方法中,gpt网络仅应用于正向(即单向gpt网络)。由于该方法仅使用单向gpt网络,因此单向gpt网络中的变换器解码器块的数量g被设置为12以保持与所提出方法相似的复杂度。为了将gpt模型与lstm模型的性能进行比较,第三种考虑的方法是双向lstm(bi-lstm)方法,其使用两个lstm网络而非所提出的方法中使用的gpt2网络。在该方法中,与所提出的方法相同维度(e=128)的词嵌入向量被传递给前向和后向lstm网络,并且具有层归一化的每个lstm网络由具有维度128的隐藏状态和单元状态的堆叠的6个lstm单元组成。
[0137]
图15是比较l=256的入侵检测方法的模仿攻击的roc性能的图表。
[0138]
如所预期的,与其他方法相比,所提出的方法的auc性能有所提高。特别地,与单向gpt模型相比,所提出的在前向和后向方向中组合gpt网络的模型可以在相同的复杂度下实现更高的性能。此外,基于gan的方法无法检测到模仿攻击,因为从仅包含少量模仿攻击的can id序列转换而来的二进制图像看起来与对应于正常can id序列的图像非常相似。
[0139]
表3比较了关于模仿攻击的不同入侵检测方法的tpr性能。与其他方法相比,所提出的方法还呈现出tpr的增加。例如,在0.5%的fpr处,与双向马尔可夫方法相比,该方法的
tpr性能提高了大约207.4%。
[0140]
[表3]
[0141][0142]
表4总结了不同入侵检测方法在0.5%的fpr处的假阴性率(fnr)和f度量(f-measure)方面的性能。
[0143]
[表4]
[0144][0145]
这里,fnr是被错误确定为正常的攻击数量与实际攻击总数量之比,并且较低的fnr值对应于较好的性能。可以看出,与其他比较方法相比,针对模仿攻击的fnr性能从最低约9%降低到最高约17.9%。在f度量的情况下,可以看出模仿攻击的性能从最低约23.2%提高到最高约108.6%。
[0146]
本公开的示例性实施方式可以实现为可由各种计算机执行并记录在计算机可读介质上的程序指令。计算机可读介质可以包括程序指令、数据文件、数据结构或它们的组合。记录在计算机可读介质上的程序指令可以是专门为本公开而设计和配置的,或者可以是计算机软件领域的技术人员公知和可用的。
[0147]
计算机可读介质的示例可以包括诸如rom、ram和闪存的硬件设备,其被专门配置用于存储和执行程序指令。程序指令的示例包括由例如编译器产生的机器代码,以及可由计算机使用解释器执行的高级语言代码。以上示例性硬件设备可以被配置为作为至少一个软件模块来操作以便执行本公开的实施方式,反之亦然。
[0148]
尽管已经详细描述了本公开的实施方式及其优点,但是应当理解,在不脱离本公开的范围的情况下,可以在本文中进行各种改变、替换和变更。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1