异常检测方法、异常检测装置以及程序与流程
未命名
07-23
阅读:60
评论:0

1.本公开涉及对车载网络中发送的消息的异常进行检测的异常检测方法、异常检测装置以及程序。
背景技术:
2.近年来,在汽车中的系统中大多配置有称为电子控制单元(ecu:electronic control unit)的装置。将这些ecu相连的网络称为车载网络。在车载网络中存在很多规格。其中最主流的车载网络之一是can(controller area network,控制器局域网),也称为can总线。
3.can总线被设计成避免汽车的ecu之间的大量物理配线。can数据包即消息的有效载荷包含来自车速传感器、加速度传感器、横摆率传感器等称为检测车辆的举动的传感器的一个以上的ecu的数据。
4.在can总线上,各ecu利用事先分配的id将消息广播通信。但是,现状的can总线的安保功能不充分,因此有可能插入导致网络攻击的非法的消息、即有可能被注入攻击。另外,注入攻击是通常的网络攻击之一。
5.因此,为了检测并应对针对can总线的注入攻击,提出了很多技术(例如非专利文献1)
6.在非专利文献1中公开了使用深度神经网络(dnn)根据can数据包高精度地检测can总线中的攻击的技术。
7.在先技术文献
8.非专利文献
9.非专利文献1:min-joo kang and je-won kang.intrusion detection system using deep neural network for in-vehicle network security.plos one,11(6):e0155781,2016.
技术实现要素:
10.发明要解决的问题
11.但是,在非专利文献1所公开的技术中,随着网络攻击手法变得智能,有可能无法检测can总线中的攻击。
12.本公开是鉴于上述的情况而完成的,其目的在于提供一种能够高精度地检测针对车载网络的攻击的异常检测方法、异常检测装置以及程序。
13.解决问题的手段
14.为了解决上述问题,本公开的一个方式的异常检测方法,用于检测车载网络系统中的网络的异常,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,在所述异常检测方法中,将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕
cnn即学习完毕的卷积神经网络,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。
15.此外,这些全面的或具体的技术方案既可以通过系统、方法、集成电路、计算机程序或计算机可读取的cd-rom等记录介质来实现,也可以通过系统、方法、集成电路、计算机程序以及记录介质的任意组合来实现。
16.发明的效果
17.根据本公开的异常检测方法等,能够高精度地检测对车载网络的攻击。
附图说明
18.图1是表示实施方式1的异常检测装置的概要的图。
19.图2a是表示实施方式1的can总线数据帧的结构的图。
20.图2b是实施方式1的注入攻击的攻击手法的说明图。
21.图3是表示通过软件实现实施方式的异常检测装置的功能的计算机的硬件结构的一例的图。
22.图4是表示实施方式1的异常检测装置的结构的一例的框图。
23.图5是表示图4所示的输入处理部的详细结构的一例的框图。
24.图6a是实施方式1的窗口生成处理部的窗口的生成方法的说明图。
25.图6b是表示实施方式1的窗口生成处理部生成的子窗口的尺寸的一例的图。
26.图7是表示实施方式1的窗口生成处理部生成的当前的子窗口中包含攻击消息的情况的一例的图。
27.图8a是概念性地表示未受到追加型攻击的情况下的正常的消息序列的接收间隔的图。
28.图8b是概念性地表示受到了追加型攻击的情况下的异常的消息序列的接收间隔的图。
29.图9a是概念性地表示未受到追加型攻击的情况下的正常的消息序列的传感器值的图。
30.图9b是概念性地表示受到了追加型攻击的情况下的异常的消息序列的传感器值的图。
31.图10a是表示实施方式1的未受到追加型攻击的情况下的消息序列的接收间隔的图像的一例的图。
32.图10b是表示实施方式1的受到了追加型攻击的情况下的消息序列的接收间隔的图像的一例的图。
33.图11a是表示实施方式1的未受到追加型攻击的情况下的消息序列的传感器值的图像的一例的图。
34.图11b是表示实施方式1的受到了追加型攻击的情况下的消息序列的传感器值的图像的一例的图。
35.图12是实施方式1的对学习完毕的cnn的处理的概念图。
36.图13是用于概念性地说明图12所示的学习完毕的cnn的处理流程的图。
37.图14是表示实施方式1的学习完毕的cnn的结构的一例的图。
38.图15是表示实施方式1的异常检测装置的动作概要的流程图。
39.图16是表示实施方式2的异常检测装置的结构的一例的框图。
40.图17是表示实施方式2的消息分类处理部的详细结构的一例的框图。
41.图18是用于概念性地说明实施方式2的异常检测的粒度的图。
42.图19是用于概念性地说明实施方式2的cnn消息分类器(cnn message classifier)的处理流程的图。
43.图20a是表示实施方式2的输入到消息分类器的多个消息和特征量的具体例的图。
44.图20b是表示实施方式2的消息分类器的判定结果的具体例的图。
45.图21是用于概念性地说明实施方式2的消息分类器进行的特征提取处理的图。
46.图22是用于概念性地说明实施方式2的lstm消息分类器(lstm message classifier)的处理流程的图。
47.图23a是表示实施方式2的输入到消息分类器的多个消息和特征量的具体例的图。
48.图23b是表示实施方式2的消息分类器的判定结果的具体例的图。
49.图24是用于说明针对同值攻击的消息级别的分类的问题及其对策的图。
50.图25是用于概念性地说明通过计算消息序列中的消息之间的传感器值的差来判定是否发生同值攻击的图。
51.图26是表示实施方式2的异常检测装置的动作概要的流程图。
52.图27是表示图26所示的步骤s243的详细处理的一例的流程图。
53.图28是表示图26所示的步骤s243的详细处理的另一例的流程图。
54.图29是表示实施方式2的变形例的包含在一定期间内的全部消息能够基于接收间隔来分类的情况下的异常的消息序列的一例的图。
55.图30是表示实施方式2的变形例的包含在一定期间内的全部消息能够基于接收间隔来分类的情况下的异常的消息序列的分类结果的一例的图。
56.图31是表示实施方式2的变形例的包含在一定期间内的全部消息无法基于接收间隔来分类的情况下的异常的消息序列的分类结果的一例的图。
57.图32是表示图28所示的步骤s2434a的详细处理的一例的流程图。
58.图33a是概念性地表示图32所示的步骤s24345中为“是”的情况下的一例的图。
59.图33b是概念性地表示图32所示的步骤s24347中为“是”的情况下的一例的图。
60.图33c是概念性地表示图32所示的步骤s24347中为“否”的情况下的一例的图。
61.图34是表示图28所示的步骤s2435a的详细处理的一例的流程图。
62.图35是表示图28所示的步骤s2435a的详细处理中使用的判定规则的图。
63.图36a是用于概念性地说明无法分类的消息是否为攻击的末端的图。
64.图36b是用于概念性地说明图35所示的同一组内的接收间隔规则的图。
65.图36c是概念性地表示图34所示的步骤s24354中为“是”的情况下的一例的图。
66.图36d是概念性地表示图34所示的步骤s24354中为“是”的情况下的一例的图。
67.图36e是表示图34所示的步骤s24359的判定结果的一例的图。
具体实施方式
68.本公开的一个方式的异常检测方法,用于检测车载网络系统中的网络的异常,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,在所述异常检测方法中,将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕cnn即学习完毕的卷积神经网络,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。
69.由此,通过使用多个消息的接收间隔或传感器值的推移的图像,能够高精度地检测在一定期间的消息序列中存在追加型攻击。因此,能够高精度地检测对车载网络的攻击。
70.在此,例如,通过使用滑动窗口分割从所述网络接收的消息序列,取得所述一定期间所包含的多个消息,通过根据所取得的所述多个消息来生成表示所述多个消息的接收间隔的图像数据或者表示所述多个消息的传感器值的推移的图像,由此将所述多个消息的接收间隔或者传感器值的推移进行图像数据化。
71.这样,通过使用滑动窗口,实现一定期间的消息序列的接收处理的高速化,所以能够减少时间上的延迟地进行对一定期间的消息序列存在追加型攻击的检测。
72.另外,例如,也可以是,在所述一定期间插入有攻击消息的情况下,进一步地,根据包含在所述一定期间的消息序列中的多个消息各自所包含的传感器值,基于预先确定的规则,判定所述多个消息是否为攻击消息。
73.由此,能够基于规则,对一定期间的消息序列所包含的多个消息中的每一个消息,判定是正常消息还是异常消息。
74.此外,例如,也可以是,在所述一定期间插入有攻击消息的情况下,进一步地,计算包含在所述一定期间的消息序列中的多个消息中的由在接收时刻前后的两个消息构成的所有组合的传感器值的差值,对计算出的所述差值进行分组,判定分组后的各组所包含的所有的所述差值是否为0,在所述所有的差值不为0的情况下,输出意思为在所述一定期间有插入了攻击消息的追加型攻击的检测结果,在所述所有的差值不为0的情况下,输出意思为在所述一定期间中所述差值不为0的组的消息不是攻击消息的所述检测结果。
75.由此,通过将不影响搭载有车载网络的车辆的举动的同值攻击处理为正常,能够抑制将正常消息判定为攻击消息的错误。因此,能够高精度地检测对车载网络的攻击。
76.此外,例如,也可以是,在所述一定期间插入有攻击消息的情况下,进一步地,使用与所述学习完毕cnn不同的学习完毕cnn,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息中的作为攻击消息的消息和被攻击的传感器。
77.由此,能够对一定期间的消息序列所包含的多个消息中的每一个消息,检测是正常消息还是异常消息。
78.此外,例如,也可以是,在所述一定期间插入有攻击消息的情况下,进一步地,使用学习完毕的lstm(long short-term memory,长短期记忆),从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息是否为攻击消息。
79.由此,能够对一定期间的消息序列所包含的多个消息中的每一个消息,判定是正常消息还是异常消息。
80.此外,例如,也可以是,在所述一定期间插入有攻击消息的情况下,进一步地,从包含在所述一定期间的消息序列中的多个消息各自所包含的传感器值,基于预先确定的规则,取得通过判定所述多个消息是否为攻击消息而得到的判定结果,使用与所述学习完毕cnn不同的学习完毕cnn,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息中的作为攻击消息的消息和被攻击的传感器,从而取得第一检测结果,使用学习完毕lstm,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息是否为攻击消息,从而取得第二检测结果,对所取得的所述判定结果、所述第一检测结果以及所述第二检测结果进行集成处理并输出,在所述集成处理中,通过选择所述判定结果、所述第一检测结果以及所述第二检测结果中的某一个,或者将所取得的所述判定结果、所述第一检测结果以及所述第二检测结果进行加权平均来进行整合。
81.由此,能够在抑制基于规则的、cnn以及lstm这样的各个结果的偏差的同时,输出选择或者组合了各个优点的结果,因此能够对一定期间的消息序列所包含的多个消息中的每一个消息,高精度地检测是正常消息还是异常消息。
82.另外,本公开的一个方式的异常检测装置是用于检测车载网络系统中的网络的异常的异常检测装置,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,所述异常检测装置具备处理器和存储器,将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕的cnn,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。
83.此外,这些概括性或具体的技术方案既可以通过系统、方法、集成电路、计算机程序或计算机可读取的cd-rom等记录介质来实现,也可以通过系统、方法、集成电路、计算机程序以及记录介质的任意组合来实现。
84.以下说明的实施方式均表示本公开的一具体例。以下的实施方式所示的数值、形状、构成要素、步骤、步骤的顺序等是一例,主旨不是限定本公开。另外,关于以下的实施方式中的构成要素中的、未记载在独立技术方案中的构成要素,作为任意的构成要素进行说明。另外,在所有的实施方式中,也可以将各自的内容组合。
85.(实施方式1)
86.以下,参照附图对实施方式1的异常检测装置10的信息处理方法等进行说明。
87.[1.异常检测装置10的概要]
[0088]
图1是表示实施方式1的异常检测装置10的概要的图。
[0089]
异常检测装置10是用于检测车载网络系统中的车载网络的异常的装置,该车载网络系统具备经由作为车辆内的网络的车载网络进行消息的收发的多个电子控制单元(ecu)。如图1所示,异常检测装置10接收在车载网络中流动的can数据流,输出以事件级别检测到车载网络的异常的检测结果。在此,can数据流是从车载网络接收的消息序列,包含多个消息。
[0090]
图2a是表示实施方式1的can总线数据帧的结构的图。
[0091]
图2a所示的can总线数据帧既称为can总线的can数据包也称为消息,以下称为消息。
[0092]
如图2a所示,消息的结构由sof(start of frame,帧起始)、id字段、rtr(remote transmission request,远程发送请求)、ide(identifier extension,标识符扩展)、预约位“r”、dlc(data length code,数据长度编码)、数据字段、crc(cyclic redundancy check,循环冗余校验)序列、crc定界符“del”、ack(acknowledgement,应答)间隙(slot)、ack定界符“del”、以及eof(end of frame,帧结束)的各字段构成。
[0093]
另外,消息为包含id字段、dlc以及包含主内容的数据字段这3个重要部分的简单结构。id用于识别消息。id字段例如由11bit构成,存放有表示数据的种类的值。例如具有较小值的id的消息比具有较大值的id的消息优先等,id的值也用于消息的优先级。dlc由4bit构成,是表示数据字段的长度的值。数据字段由最多64位构成,存放表示消息的内容的值。
[0094]
图2b是实施方式1的注入攻击的攻击手法的说明图。
[0095]
如上所述,注入攻击是对消息序列插入作为非法或异常的消息的攻击消息的网络攻击。注入攻击是通常的网络攻击之一,是在本实施方式中假设的网络攻击。如图2b所示,注入攻击的攻击手法能够分为追加型攻击和置换型攻击。
[0096]
追加型攻击是在正常的消息序列中插入攻击消息的攻击手法。即,如图2b所示,追加型攻击是通过将阴影实线圆所示的攻击消息插入阴影虚线圆所示的正常消息之间,在消息序列中插入攻击消息的注入攻击。
[0097]
置换型攻击是用攻击消息覆写正常消息的攻击手法。即,如图2b所示,置换型攻击是通过阴影实线圆所示的攻击消息置换阴影虚线圆所示的正常消息,在消息序列中插入攻击消息的注入攻击。
[0098]
[1.1异常检测装置10的硬件结构]
[0099]
图3是表示通过软件实现实施方式的异常检测装置10的功能的计算机1000的硬件结构的一例的图。
[0100]
如图3所示,计算机1000是具备输入装置1001、输出装置1002、cpu1003、内置存储装置1004、ram1005、读取装置1007、收发装置1008以及总线1009的计算机。输入装置1001、输出装置1002、cpu1003、内置存储装置1004、ram1005、读取装置1007以及收发装置1008通过总线1009连接。
[0101]
输入装置1001是输入按钮、触摸板、触摸面板显示器等成为用户界面的装置,受理用户的操作。另外,输入装置1001除了受理用户的接触操作以外,还可以是受理利用声音的操作、利用遥控等的远程操作的结构。
[0102]
输出装置1002兼作输入装置1001,由触摸板或触摸面板显示器等构成,通知应向用户通知的信息。
[0103]
内置存储装置1004是闪存等。另外,内置存储装置1004也可以预先存储用于实现异常检测装置10的功能的程序等。
[0104]
ram1005是随机存取存储器(random access memory),并且在执行程序或应用时利用于数据等的存储。
[0105]
读取装置1007从usb(universal serial bus,通用串行总线)存储器等记录介质读取信息。读取装置1007从记录有上述程序和应用的记录介质中读取该程序、应用,并存储在内置存储装置1004中。
[0106]
收发装置1008是用于以无线或有线方式进行通信的通信电路。收发装置1008例如
可以与连接在网络上的服务器装置或云进行通信,从服务器装置或云下载上述那样的程序、应用并存储在内置存储装置1004中。
[0107]
cpu1003是中央运算处理装置(central processing unit),将存储在内置存储装置1004中的程序、应用复制到ram1005中,并从ram1005依次读出并执行包含在该程序和应用中的命令。此外,可以从内置存储装置1004直接执行。
[0108]
[1.2异常检测装置10的结构]
[0109]
图4是表示实施方式1的异常检测装置10的结构的一例的框图。
[0110]
如图1所示,本实施方式的异常检测装置10由输入处理部11、事件分类处理部12以及输出处理部13构成。此外,输出处理部13不是必需的结构,只要能够取得事件分类处理部12的分类结果即可。
[0111]
[1.2.1输入处理部11]
[0112]
当被输入在车载网络中流动的can数据流时,输入处理部11取得多个消息。此外,输入处理器11将所取得的多个消息的接收间隔或传感器值的推移进行图像数据化。在本实施方式中,输入处理部11将从车载网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或传感器值的推移进行图像数据化。
[0113]
图5是表示图4所示的输入处理部11的详细结构的一例的框图。
[0114]
如图5所示,本实施方式的输入处理器11具备消息接收器111、窗口生成处理部112和图像化处理部113。
[0115]
[1.2.1.1消息接收部111]
[0116]
消息接收部111通过被输入在车载网络中流动的can数据流,从车载网络接收消息序列。
[0117]
[1.2.1.2窗口生成处理部112]
[0118]
窗口生成处理部112通过使用滑动窗口来分割由消息接收部111从车载网络接收的消息序列,取得包含在一定期间内的多个消息。
[0119]
图6a是实施方式1的窗口生成处理部112的窗口的生成方法的说明图。图6b是表示实施方式1的窗口生成处理部112生成的子窗口的尺寸的一例的图。另外,窗口意味着用于蓄积接收到的消息的缓冲区域。
[0120]
图6a的(a)示出了由消息接收部111接收的消息序列的一例。消息序列所包含的多个消息分别用圆来表示。图6a的(b)示出了由窗口生成处理部112生成的滑动窗口的一例。
[0121]
更具体而言,窗口生成处理部112生成分割为过去的子窗口、当前的子窗口和未来的子窗口这3个部分的滑动窗口。在此,如图6b所示,在本实施方式中,过去的子窗口的尺寸设定为200ms,当前的子窗口的尺寸设定为100ms,未来的子窗口的尺寸设定为100ms。
[0122]
图7是表示实施方式1的窗口生成处理部112生成的当前的子窗口中包含攻击消息的情况的一例的图。
[0123]
如图7所示,为了检测当前的子窗口中是否包含攻击事件,即是否插入有攻击消息,生成过去、当前、未来的子窗口。此外,通过生成未来的子窗口,虽然在检测时间中产生等待时间,但能够更可靠地检测在当前的子窗口中插入了攻击消息。
[0124]
[1.2.1.3图像化处理部113]
[0125]
根据由窗口生成处理部112取得的多个消息,图像化处理部113生成表示该多个消
息的接收间隔的图像数据或者表示多个消息的传感器值的推移的图像。这样,图像化处理部113根据由窗口生成处理部112取得的多个消息,对该多个消息的接收间隔或传感器值的推移进行图像数据化。
[0126]
在此,使用图8a~图9b,对受到了追加型攻击的情况与未受到追加型攻击的情况的差异进行说明。
[0127]
图8a是概念性地表示未受到追加型攻击的情况下的正常的消息序列的接收间隔的图。图8b是概念性地表示受到了追加型攻击的情况下的异常的消息序列的接收间隔的图。
[0128]
在can总线中,由于周期性地发送消息,因此如图8a所示,在正常的消息序列中,消息的接收间隔不混乱。另一方面,如图8b所示,在异常的消息序列中,消息的接收间隔混乱。换言之,比较图8a和图8b可知,当受到追加型攻击时,消息的接收间隔混乱。
[0129]
图9a是概念性地表示未受到追加型攻击的情况下的正常的消息序列的传感器值的图。图9b是概念性地表示受到了追加型攻击的情况下的异常的消息序列的传感器值的图。
[0130]
如图9a所示,在正常的消息序列中,消息所包含的传感器值不混乱。另一方面,如图9b所示,在异常的消息序列中,消息所包含的传感器值混乱。换言之,比较图9a和图9b可知,当受到追加型攻击时,消息的传感器值混乱。
[0131]
根据以上可知,若使用多个消息的接收间隔或多个消息的传感器值的推移,则能够检测是否受到了追加型攻击。
[0132]
因此,图像化处理部113根据由窗口生成处理部112取得的多个消息,将该多个消息的接收间隔或传感器值的推移进行图像数据化。
[0133]
图10a是表示实施方式1的未受到追加型攻击的情况下的消息序列的接收间隔的图像的一例的图。图10b是表示实施方式1的受到了追加型攻击的情况下的消息序列的接收间隔的图像的一例的图。
[0134]
图11a是表示实施方式1的未受到追加型攻击的情况下的消息序列的传感器值的图像的一例的图。图11b是表示实施方式1的受到了追加型攻击的情况下的消息序列的传感器值的图像的一例的图。图11a和图11b示出了多个图像作为一例。另外,图10a~图11b所示的各图像例如生成为96像素
×
96像素的图像。
[0135]
图像化处理部113根据由窗口生成处理部112取得的多个消息,将该多个消息的接收间隔进行图像数据化,由此能够得到例如图10a或图10b所示的图像。同样地,图像化处理部113通过根据由窗口生成处理部112取得的多个消息而将该多个消息的传感器值进行图像数据化,能够得到例如图11a或图11b所示的各图像。然后,当将图10a和图10b与图11a和图11b进行比较时可知,在受到追加型攻击的情况下的图像即图11a和图11b中,传感器值和消息接收频度中包含特征性的变化。
[0136]
[1.2.2事件分类处理部12]
[0137]
事件分类处理部12对从车载网络接收到的消息序列中的一定期间检测是否有追加型攻击。更具体而言,事件分类处理部12使用学习完毕的cnn(convolution neural networks)121来根据图像数据对包含在一定期间内的多个消息中是否插入有攻击消息进行分类。包含在一定期间内的多个消息是包含在上述当前的子窗口中的多个消息。
[0138]
学习完毕的cnn121是能够根据图像数据对包含在一定期间的多个消息中是否插入有攻击消息进行分类的事件分类器的一例。该事件分类器例如使用如图10a~图11b所示的图像即表示正常消息和攻击消息的传感器值或接收间隔的图像作为教师数据来学习。
[0139]
此外,事件分类器不限于是cnn121的情况,也可以是lstm(long short-term memory)或blstm(bi-directional long short-term memory,双向长短期记忆)。
[0140]
另外,事件分类处理部12也可以基于预先确定的规则,判定在一定期间内是否插入有攻击消息。在该情况下,事件分类处理部12根据由窗口生成处理部112取得的多个消息的接收频度或接收间隔的统计值,判定在一定期间内是否插入有攻击消息即可。作为这里的接收间隔的统计值,作为例子而举出多个消息的接收时刻的差、或多个消息的接收间隔的平均等。
[0141]
图12是实施方式1的对学习完毕的cnn121的处理的概念图。图13是用于概念性地说明图12所示的学习完毕的cnn121的处理流程的图。
[0142]
如图12所示,当输入表示一定期间内的多个消息的接收间隔的图像或表示传感器值的推移的图像时,学习完毕的cnn121对所输入的图像中包含的一定期间内的多个消息是否受到了追加型攻击进行分类。
[0143]
更具体而言,首先,如图13的(a)所示,从车载网络接收的消息序列使用滑动窗口被分割,从而取得包含在当前的子窗口中的多个消息。接着,在图13的(b)中,将包含在当前的子窗口中的多个消息的接收间隔或传感器值的推移进行图像数据化,并输入到事件分类器。接下来,在图13的(c)中,作为事件分类器的学习完毕的cnn121对包含在所输入的图像数据中的一定期间内的多个消息是否受到了追加型攻击进行分类。然后,在图13的(d)中,作为检测结果,学习完毕的cnn121输出是否有对包含在当前的子窗口中的多个消息的追加型攻击。
[0144]
图14是表示实施方式1的学习完毕的cnn121的结构的一例的图。
[0145]
即,cnn121例如具备多个卷积层、多个池化层、全连接层和自定义层,输入图像数据并输出分类结果。另外,自定义层用作进行图像分割(segmentation)的层。
[0146]
[1.2.3输出处理部13]
[0147]
输出处理部13在从车载网络接收到的消息序列中的一定期间内插入有攻击消息的情况下,输出意思为在该一定期间内有插入攻击消息的追加型攻击的检测结果。即,在由事件分类处理部12检测到对从车载网络接收到的消息序列中的一定期间有追加型攻击的情况下,输出处理部13输出表示该意思的检测结果。
[0148]
另一方面,在由事件分类处理部12检测到对该一定期间内没有追加型攻击的情况下,输出处理部13输出表示包含在该一定期间的多个消息正常的意思的检测结果。
[0149]
此外,在由事件分类处理部12检测到对该一定期间没有追加型攻击的情况下,输出处理部13还可以对包含在该一定期间的多个消息判定是否受到置换型攻击。在该情况下,输出处理部13能够通过使用例如cnn等神经网络模型,来判定是否对包含在该一定期间的多个消息进行了置换型攻击。然后,如果包含在该一定期间的多个消息中包含异常的消息,则输出处理部13判定为受到置换型攻击,并输出表示该意思的检测结果即可。另一方面,如果包含在该一定期间的多个消息中不包含异常的消息,则输出处理部13输出表示包含在该一定期间的多个消息正常的意思的检测结果即可。
[0150]
[1.3异常检测装置10的动作]
[0151]
接着,对如上所述构成的异常检测装置10的动作进行说明。
[0152]
图15是表示实施方式1的异常检测装置10的动作概要的流程图。
[0153]
首先,异常检测装置10对包含在子窗口(一定期间)的消息的接收间隔或传感器值的推移进行图像化(s11)。更具体而言,异常检测装置10将从车载网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化。由此,异常检测装置10能够得到表示多个消息的接收间隔或者传感器值的推移的图像。
[0154]
接着,异常检测装置10使用cnn对所输入的图像进行分类(s12)。更具体而言,异常检测装置10使用学习完毕的cnn根据在步骤s11中得到的表示多个消息的接收间隔或传感器值的推移的图像,对在该一定期间是否插入有攻击消息进行分类。
[0155]
接着,异常检测装置10判定步骤s12的分类结果是否表示有追加型攻击(s13)。
[0156]
在步骤s13中,在分类结果表示有追加型攻击的情况下(s13中为“是”),异常检测装置10向窗口内输出有追加型攻击的检测结果(s14)。即,异常检测装置10在该一定期间插入有攻击消息的情况下,输出意为在该一定期间有插入攻击消息的追加型攻击的检测结果。
[0157]
另一方面,在步骤s13中,在分类结果不表示有追加型攻击的情况下(s13中为“否”),异常检测装置10输出包含在窗口内没有追加型攻击的情况的除此之外的检测结果(s15)。
[0158]
[1.4效果等]
[0159]
如上所述,根据本实施方式的异常检测装置10和异常检测方法,当受到追加型攻击时,消息的接收间隔或传感器值混乱,因此通过使用多个消息的接收间隔或传感器值的推移的图像,能够高精度地检测在一定期间的消息序列中存在追加型攻击。另外,在受到追加型攻击的情况下消息的接收间隔或传感器值混乱,这是即使网络攻击手法变得智能也无法伪装的现象。因此,即使网络攻击手法变得智能,无法检测can总线中的攻击的可能性也低。
[0160]
因此,根据本实施方式的异常检测装置10和异常检测方法,能够高精度地检测针对车载网络的攻击。
[0161]
另外,通过使用滑动窗口,实现使一定期间的消息序列的接收处理高速化,所以能够减少时间上的延迟地进行对一定期间的消息序列中存在追加型攻击的检测。
[0162]
(实施方式2)
[0163]
在实施方式1中,说明了以窗口单位检测攻击事件,即检测在从车载网络接收到的消息序列中的一定期间的消息序列中是否受到了追加型攻击,但不限于此。在以窗口单位检测到攻击事件的情况下,也可以进一步以消息单位检测各消息是正常还是异常。即,在检测到一定期间的消息序列受到追加型攻击的情况下,可以进一步判定或检测该消息序列所包含的多个消息分别是正常消息还是攻击消息。以下将该情况作为实施方式2进行说明。
[0164]
[2.1异常检测装置10a的结构]
[0165]
图16是表示实施方式2的异常检测装置10a的结构的一例的框图。
[0166]
如图16所示,本实施方式的异常检测装置10a由输入处理部11a、事件分类处理部12、输出处理部13a和消息分类处理部14a构成。另外,对与图4相同的要素标注同一附图标
记,并省略详细的说明。
[0167]
[2.1.1输入处理部11a]
[0168]
当被输入在车载网络中流动的can数据流时,输入处理部11a取得多个消息。输入处理部11将所取得的多个消息的接收间隔或传感器值的推移进行图像数据化,并输出到事件分类处理部12。另外,输入处理部11将所取得的多个消息输出到消息分类处理部14a。
[0169]
更具体而言,输入处理部11a通过被输入在车载网络中流动的can数据流,从车载网络接收消息序列。输入处理部11a通过使用滑动窗口来分割从车载网络接收的消息序列,取得包含在一定期间内的多个消息。
[0170]
输入处理部11a根据包含在一定期间内的所取得的多个消息,生成表示该多个消息的接收间隔的图像数据或者表示多个消息的传感器值的推移的图像,并输出到事件分类处理部12。
[0171]
另外,输入处理部11a将所取得的包含在一定期间内的多个消息输出到消息分类处理部14a。此外,输入处理部11a也可以在事件分类处理部12中检测到攻击事件的情况下,将所取得的包含在一定期间内的多个消息输出到消息分类处理部14a。
[0172]
[2.1.2输出处理部13a]
[0173]
在事件分类处理部12中检测到攻击事件的情况下,输出处理部13向消息分类处理部14a发送指示,以便以消息单位检测各消息是正常还是异常,并从消息分类处理部14a取得检测结果。在该情况下,输出处理部13只要输出表示有在该一定期间内插入有攻击消息的追加型攻击的意思、和各消息正常或异常的意思的检测结果即可。
[0174]
此外,关于输出处理部13在事件分类处理部12中未检测到攻击事件的情况下,即由事件分类处理部12检测到该一定期间没有追加型攻击的情况下的功能,由于如实施方式中的说明所述,所以省略说明。
[0175]
[2.1.3消息分类处理部14a]
[0176]
在事件分类处理部12中以窗口单位检测到攻击事件的情况下,消息分类处理部14a以消息单位检测各消息是正常还是异常。更具体而言,在事件分类处理部12中以窗口单位检测到攻击事件的情况下,消息分类处理部14a被输入由输入处理部11a输入的一定期间的消息序列。消息分类处理部14a检测所输入的一定期间的消息序列所包含的多个消息分别是正常消息还是攻击消息。
[0177]
图17是表示实施方式2的消息分类处理部14a的详细结构的一例的框图。
[0178]
如图17所示,本实施方式的消息分类处理部14a具备cnn消息分类器(cnn message classifier)141、lstm消息分类器(lstm message classifier)142、人感消息分类器(human message classifier)143和集成(ensemble)处理部144。
[0179]
[2.1.3.1cnn消息分类器141]
[0180]
在在事件分类处理部12中以窗口单位检测到攻击事件的情况下,cnn消息分类器141输入由输入处理部11a输入的一定期间的消息序列。
[0181]
cnn消息分类器141使用学习完毕的cnn根据所输入的一定期间的消息序列所包含的多个消息,检测多个消息中的作为攻击消息的消息和被攻击的传感器。
[0182]
该学习完毕的cnn是与实施方式1的cnn121不同的cnn模型,并且是用于从消息序列将包含在该消息序列中的多个消息分别是攻击消息还是正常消息进行分类的消息分类
器的一例。该消息分类器例如具备多个卷积层、多个池化层以及全连接层,例如将图7所示那样的消息序列用作教师数据来学习。
[0183]
这里,使用图18说明实施方式2的异常检测的粒度。
[0184]
图18是用于概念性地说明实施方式2的异常检测的粒度的图。
[0185]
在图18的最上段示出从车载网络接收到的消息序列的一例,四边形表示各消息。
[0186]
实施方式2的异常检测装置10首先检测1)所示的窗口单位的粒度,即在信息序列的一定区间(一定期间)内是否发生攻击事件。接着,异常检测装置10检测2)所示的消息单位的粒度,即消息序列的一定区间(窗口单位)所包含的各消息是攻击消息还是正常消息。然后,如3)所示,异常检测装置10以传感器单位的粒度,即,使用各个消息所包含的传感器值,检测各消息是攻击消息还是正常消息。更具体而言,在消息中包含多个传感器值的情况下,异常检测装置10判定各个传感器值表示攻击还是表示正常。另一方面,在消息包含单个传感器值的情况下,异常检测装置10能够根据传感器值是表示攻击还是表示正常来判定消息是攻击消息还是正常消息。
[0187]
在本实施方式中,cnn消息分类器141以图18的2)所示的消息单位的粒度来检测各消息是正常(正常消息)还是异常(攻击消息)。
[0188]
以下,使用图19、图20a和图20b来概念性地说明cnn消息分类器141的处理。
[0189]
图19是用于概念性地说明实施方式2的cnn消息分类器141的处理流程的图。图19的(a)以与图7所示的消息序列同样的标记来表示,图19的(a)所示的消息序列相当于从图13的(a)所示的车载网络接收的消息序列。
[0190]
首先,如图19的(a)所示,从车载网络接收的消息序列使用滑动窗口而被分割,由此取得包含在当前的子窗口中的多个消息,并输入到作为消息分类器的学习完毕的cnn。
[0191]
图20a是表示实施方式2的输入到消息分类器的多个消息和特征量的具体例的图。
[0192]
在本实施方式中,当前的子窗口(1个窗口)所包含的例如72个消息被输入到消息分类器。这里,各消息中包含多个特征量。特征量包含作为一个以上的传感器值的传感器值和表示消息的接收间隔的值。例如,如图20a所示,作为传感器值,有由车速传感器得到的表示车速的传感器值、由转向角传感器得到的表示转向角的传感器值、由加速度传感器得到的表示加速度的传感器值等。包含传感器值和表示消息的接收间隔的值可以称为消息的特征量。
[0193]
接下来,在图19的(b)中,作为消息分类器的学习完毕的cnn对所输入的消息序列所包含的多个消息中的每一个消息是正常消息还是异常消息进行分类。另外,异常消息包含由处于攻击下的传感器得到的传感器值且表示异常值的传感器值,因此在本实施方式中称为攻击消息。
[0194]
然后,在图19的(c)中,作为检测结果,作为消息分类器的学习完毕的cnn输出包含在当前的子窗口中的多个消息中的每一个消息是正常消息还是攻击消息。
[0195]
图20b是表示实施方式2的消息分类器的判定结果的具体例的图。在图20a所示的例子中,设消息no3的速度值80km/h由于攻击而示出了异常,设其他传感器值正常。在该情况下,如图20b所示,作为消息分类器的学习完毕的cnn对消息no3异常进行分类,并且还将例如2等表示输出了消息no3的速度值的速度传感器的传感器id(索引)包含在内,并作为判定结果输出。
[0196]
此外,在1个消息中包含从多个传感器得到的传感器值的情况下,作为消息分类器的学习完毕的cnn无法以传感器单位判定是异常还是正常。1个消息中是否包含从多个传感器得到的传感器值根据车辆类型而不同。
[0197]
图21是用于概念性地说明实施方式2的消息分类器进行的特征提取处理的图。图21的(a)示出了输入到消息分类器的多个消息和特征量的具体例,与图20a相同。图21的(b)示出了对包含在当前的子窗口中的多个消息使用预先确定的小的滤波器进行卷积后的结果而得到的判定结果。
[0198]
在图21的(a)中,作为消息分类器的学习完毕的cnn对例如消息no1~3中的消息no1、例如消息no2~4中的消息no2、以及例如消息no3~5中的消息no3进行卷积。作为进行了这种特征提取处理的结果,作为消息分类器的学习完毕的cnn输出表示消息no3、no5异常并且由例如2的传感器id所示的速度传感器受到了攻击的判定结果(分类结果)。
[0199]
[2.1.3.2lstm消息分类器142]
[0200]
在在事件分类处理部12中以窗口单位检测到攻击事件的情况下,lstm消息分类器142输入由输入处理部11a输入的一定期间的消息序列。
[0201]
lstm消息分类器142使用学习完毕的lstm,从包含在所输入的一定期间的消息序列中的多个消息,检测多个消息是否为攻击消息。
[0202]
该学习完毕的lstm可以是blstm。该学习完毕的lstm是用于从消息序列对包含在该消息序列的多个消息分别是攻击消息还是正常消息进行分类的消息分类器的一例。该消息分类器例如使用图7所示的消息序列作为教师数据来学习。
[0203]
以下,使用图22、图23a以及图23b,概念性地说明lstm消息分类器142的处理。
[0204]
图22是用于概念性地说明实施方式2的lstm消息分类器142的处理流程的图。图22的(a)是与图19的(a)相同的图,图19的(a)所示的消息序列相当于从图13的(a)所示的车载网络接收的消息序列。图22的(b)示出了作为消息分类器的lstm是blstm的情况的例子。作为消息分类器的学习完毕的blstm是将两个blstm层和两个密集层(dense层)重叠而构成的。
[0205]
首先,如图22的(a)所示,从车载网络接收的消息序列使用滑动窗口而被分割,由此取得包含在当前的子窗口中的多个消息,并输入到作为消息分类器的blstm。
[0206]
图23a是表示实施方式2的输入到消息分类器的多个消息和特征量的具体例的图。另外,图23a是与图20a相同的图,因此省略说明。此外,图23a中虽未图示,但作为特征量还可以包含各传感器值的缺损状态。在该情况下,如果传感器值缺损则可以将传感器值表示为1,如果传感器值没有缺损则可以将传感器值表示为0。
[0207]
接着,在图22的(b)中,作为消息分类器的学习完毕的blstm对所输入的消息序列所包含的多个消息中的每一个消息是正常消息还是异常消息进行分类。
[0208]
然后,在图22的(c)中,作为检测结果,作为消息分类器的学习完毕的blstm输出包含在当前的子窗口中的多个消息中的每一个消息是正常消息还是攻击消息。
[0209]
图23b是表示实施方式2的消息分类器的判定结果的具体例的图。在图23a所示的例子中,消息no3的速度值80km/h由于攻击而表示异常,其他传感器值正常。在该情况下,如图23b所示,作为消息分类器的学习完毕的blstm在成为检测对象的传感器数及消息数中包含按照被攻击的传感器例如设为1的值、正常的传感器设为0的值进行分类后的结果,作为
判定结果而输出。
[0210]
[2.1.3.3人感消息分类器143]
[0211]
在事件分类处理部12中以窗口单位检测到攻击事件的情况下,人感消息分类器143输入由输入处理部11a输入的一定期间的消息序列。
[0212]
人感消息分类器143根据包含在所输入的一定期间的消息序列的多个消息各自所包含的传感器值,基于预先确定的规则来判定多个消息是否为攻击消息。
[0213]
这里,预先确定的规则是基于对于消息级别的分类有效的人类的直觉的规则。例如,如上所述,在追加型攻击中,攻击消息被插入到正常的消息序列之间,因此包含攻击消息的异常的消息序列的接收间隔混乱。此外,如对例如车速等速度的攻击那样,攻击消息所包含的传感器值偏离包含在正常的消息序列中的传感器值。即,在将攻击消息和包含在正常的消息序列中的正常消息进行了聚类(clustering)的情况下,形成协素群(coprime groups)。通过预先在规则中定义这样的人类的直觉,人感消息分类器143根据包含在一定期间的消息序列的多个消息各自所包含的传感器值来判定多个消息是否为攻击消息。
[0214]
另外,也存在攻击消息所包含的传感器值具有与正常的消息相同值的情况。将具有与正常的消息相同的传感器值的攻击消息的攻击称为同值攻击。将具有与正常的消息不同的传感器值的攻击消息的攻击称为移位(shift)攻击。以下,说明对于针对该同值攻击的消息级别的分类有效的人类的直觉。
[0215]
图24是用于说明针对同值攻击的消息级别的分类的问题点及其对策的图。在图24的(a)及(b)中,纵向表示传感器值,横向表示接收时刻。
[0216]
如图24的(a)所示,即使是被同值攻击的情况下,由于异常的消息序列的接收间隔混乱,也被检测为追加型攻击。但是,不知道异常的消息序列是如图24的(b)的上段还是下段那样排列。即,在被同值攻击的情况下,尽管检测为追加型攻击,但由于正常消息和攻击消息无法区分,很可能将正常消息误检测为攻击消息。
[0217]
另一方面,在被同值攻击的情况下,虽然消息序列的接收间隔混乱,但对车辆的副作用小。
[0218]
鉴于此,得到如下直觉:判定为同值攻击的攻击消息可以不作为异常检测的对象。因此,在检测到追加型攻击的情况下,进一步计算紧前的消息的传感器值的差,由此判定是同值攻击还是不是同值攻击。
[0219]
图25是用于概念性地说明通过计算消息序列中的消息之间的传感器值的差来判定是否发生同值攻击的图。
[0220]
图25的(a)示出了被同值攻击的消息序列。攻击消息由b、d、f的圆来表示,正常消息由a、c、e的圆来表示。
[0221]
在该情况下,如图25的(b)所示,a及b、c及d、e及f之间的差值为零(0),并且差值0是连续的,因此能够判定为受到同值攻击。因此,由a~f所示的消息序列分别可以判定为是正常消息。
[0222]
即,即使在检测到追加型攻击的情况下,在计算紧前的消息的传感器值的差,差为0是连续的,且判定为是同值攻击的情况下,也可以将判定为同值攻击的攻击消息判定为正常消息。另一方面,在差不为0的情况下,由于不是同值攻击,所以可以作为异常检测的对象,在后述的集成处理部144中利用其他消息分类器的结果。
[0223]
更具体而言,首先,人感消息分类器143计算包含在所输入的一定期间的消息序列的多个消息中的由在接收时刻前后的两个消息构成的所有组合的传感器值的差值。接着,人感消息分类器143对计算出的差值进行分组,判定分组后的各组所包含的所有差值是否为0。
[0224]
在所有的差值不为0的情况下,人感消息分类器143输出意思为在所输入的一定期间有插入了攻击消息的追加型攻击的检测结果。另一方面,在所有的差值不为0的情况下,人感消息分类器143决定为在所输入的一定期间内的、差值不为0的组的消息不是攻击消息,并输出检测结果。
[0225]
[2.1.3.4集成处理部144]
[0226]
集成处理是在机器学习中利用的手法,是能够一边抑制各个模型的预测结果的偏差一边输出将各个模型的优点组合后的预测结果的处理。
[0227]
在本实施方式中,集成处理部144堆叠cnn消息分类器141的检测结果、lstm消息分类器142的检测结果和人感消息分类器143的判定结果并输出。另外,集成处理部144也可以选择cnn消息分类器141的检测结果、lstm消息分类器142的检测结果以及人感消息分类器143的判定结果中的某一个并输出。
[0228]
更具体而言,首先,集成处理部144取得cnn消息分类器141的检测结果。换言之,集成处理部144使用与学习完毕的cnn不同的学习完毕的cnn从包含在一定期间的消息序列的多个消息中取得第一检测结果,该第一检测结果表明检测出了多个消息中的作为攻击消息的消息和受到攻击的传感器。另外,集成处理部144取得lstm消息分类器142的检测结果。换言之,集成处理部144使用学习完毕的lstm从包含在一定期间的消息序列的多个消息中取得第二检测结果,该第二检测结果表明检测出了多个消息是否为攻击消息。
[0229]
另外,集成处理部144取得人感消息分类器143的判定结果。换言之,集成处理部144取得由如下方式得到的判定结果:根据包含在一定期间的消息序列的多个消息各自所包含的传感器值,基于预先确定规则来判定多个消息是否为攻击消息。
[0230]
接着,集成处理部144对取得的判定结果、第一检测结果以及第二检测结果进行集成处理并输出。在集成处理中,集成处理部144选择判定结果、第一检测结果以及第二检测结果中的某一个,或者,通过对取得的判定结果、第一检测结果以及第二检测结果进行加权平均来进行整合。
[0231]
[2.2异常检测装置10a的动作]
[0232]
接着,对如上所述构成的异常检测装置10a的动作进行说明。
[0233]
图26是表示实施方式2的异常检测装置10a的动作概要的流程图。
[0234]
首先,异常检测装置10a以窗口单位进行输入处理(s21)。更具体而言,异常检测装置10a使用滑动窗口来分割从车载网络接收的消息序列,从而取得当前的子窗口(一定期间)所包含的多个消息。异常检测装置10a根据包含在一定期间内的所取得的多个消息,生成表示该多个消息的接收间隔的图像数据或者表示多个消息的传感器值的推移的图像。
[0235]
接着,异常检测装置10a进行事件分类处理(s22)。更具体而言,异常检测装置10a使用学习完毕的cnn121根据在步骤s21的输入处理中生成的、表示多个消息的接收间隔或传感器值的推移的图像,对在该一定期间内是否有插入了攻击消息的攻击事件进行分类。
[0236]
接着,异常检测装置10判定在步骤s22中进行的事件分类处理的分类结果是否表
示有追加型攻击(s23)。
[0237]
在步骤s23中,在分类结果表示有追加型攻击的情况下(s23中为“是”),异常检测装置10a进一步进行消息分类处理(s24)。更具体而言,异常检测装置10a进行检测包含在所输入的一定期间的消息序列的多个消息分别是正常消息还是攻击消息的处理。
[0238]
这里,说明步骤s24的详细处理。
[0239]
在步骤s24中,首先,异常检测装置10a进行cnn消息分类器处理(s241)、lstm消息分类器处理(s242)和人感消息分类器处理(s243)。此外,cnn消息分类器处理是由上述cnn消息分类器141进行的,lstm消息分类器处理是由上述lstm消息分类器142进行的,因此省略详细说明。同样,人感消息分类器处理由上述人感消息分类器143进行。关于该详细处理将后述。
[0240]
接下来,异常检测装置10a对在步骤s241得到的第一检测结果、在步骤s242得到的第二检测结果、在步骤s243得到的判定结果进行集成处理并输出。
[0241]
以下,返回图26继续说明。
[0242]
另一方面,在步骤s23中,在分类结果不表示有追加型攻击的情况下(s23中为“否”),异常检测装置10a向所输入的一定期间的消息序列输出表示没有追加型攻击的检测结果即表示正常的检测结果(s25)。
[0243]
图27是表示图26所示的步骤s243的详细处理的一例的流程图。
[0244]
在图27中,首先,异常检测装置10a计算接收消息的传感器值的差值(s2431)。更具体而言,异常检测装置10a计算在步骤s21的输入处理中取得的当前的子窗口(一定期间)所包含的多个消息中的、由接收时刻前后的两个消息构成的所有组合的传感器值的差值。
[0245]
接下来,异常检测装置10a对在步骤s2431中计算出的传感器值的差进行分组(分类)(s2432)。更具体而言,异常检测装置10a对在步骤s2431中计算出的、由在接收时刻前后的两个消息构成的所有组合的传感器值的差值进行分组,并且生成组。
[0246]
接下来,异常检测装置10a取得在步骤s2432中生成的各组所包含的差值(s2433)。
[0247]
接下来,异常检测装置10a判定在步骤s2433中取得的各组所包含的差值是否为0(s2434)。
[0248]
在步骤s2434中包含在组中的差值为0的情况下(s2434中为“是”),异常检测装置10a判定为差值0的同值攻击,并且判定为包含在组中的接收消息正常(s2435)。更具体而言,在包含在组中的差值为0的情况下,异常检测装置10a判定为包含在该组中的多个消息全部是正常消息。
[0249]
另一方面,在步骤s2434中包含在组中的差值不为0的情况下(s2434中为“否”),异常检测装置10a将组所包含的接收消息判定为检测对象(s2436)。更具体而言,在包含在组中的差值不为0的情况下,异常检测装置10a判定为该组所包含的多个消息中可能包含攻击消息,将该组所包含的多个消息判定为检测对象。
[0250]
这样,在被同值攻击的情况下,虽然检测为追加型攻击,但对车辆的副作用较小,因此通过将其作为正常消息来处理,抑制将正常消息误检测为攻击消息。
[0251]
[2.3效果等]
[0252]
如上所述,根据本实施方式的异常检测装置10和异常检测方法,以如下两个阶段检测对车载网络的攻击:检测在一定期间的消息序列中是否有攻击事件;在有攻击事件的
情况下检测攻击消息。由此,能够高精度地检测对车载网络的攻击。
[0253]
更具体而言,在检测攻击消息的阶段中,并行地进行使用了学习完毕的cnn的检测、使用了学习完毕的lstm的检测和基于预先确定的规则的检测,并对结果进行集成处理,由此能够将基于神经网络模型的检测和基于规则的检测相乘。
[0254]
由此,能够使攻击消息的误检测率接近零,因此能够高精度地检测对车载网络的攻击。
[0255]
(变形例)
[0256]
此外,在本变形例中,作为上述预先确定的规则的另一例,说明了如下情况:人感消息分类器143基于利用聚类和回归的规则,来判定包含在一定期间的消息序列中的多个消息中的每一个消息是否为攻击消息。换言之,异常检测装置10a不限于进行图27所示的详细处理作为图26所示的步骤s243的详细处理的情况,也可以进行以下说明的图28所示的详细处理。
[0257]
图28是表示图26所示的步骤s243的详细处理的另一例的流程图。
[0258]
在图28中,首先,异常检测装置10a计算接收间隔与传感器值的差(s2431a)。更具体而言,异常检测装置10a计算在步骤s21的输入处理中取得的当前的子窗口(一定期间)所包含的多个消息的接收间隔与由在接收时刻前后的两个消息构成的所有组合的传感器值的差值。
[0259]
接下来,异常检测装置10a基于在步骤s2431a中计算出的接收间隔来对消息进行分类(s2432a)。更具体而言,异常检测装置10a基于在步骤s2431a中计算出的接收间隔,将包含在一定期间内的多个消息分别分类为正常的消息和异常的消息。
[0260]
接着,异常检测装置10a在步骤s2432a中判定是否能够对包含在一定期间内的全部消息进行分类(s2433a)。
[0261]
在步骤s2433a中,在全部消息能够分类的情况下(s2433a中为“是”),异常检测装置10a基于步骤s2432a中的消息的分类结果,判定各传感器(s2434a)。
[0262]
在此,使用图29和图30,概念性地说明基于消息的接收间隔,包含在一定期间的全部消息能够分类为正常的消息和异常的消息(攻击消息)的情况。
[0263]
图29是表示实施方式2的变形例的包含在一定期间内的全部消息能够基于接收间隔来分类的情况下的异常的消息序列的一例的图。图29的(a)示出了攻击消息插入在正常消息紧后的情况。图29的(b)示出了攻击消息插入在正常消息紧前的情况。
[0264]
图30是表示实施方式2的变形例的包含在一定期间内的全部消息能够基于接收间隔来分类的情况下的异常的消息序列的分类结果的一例的图。
[0265]
在图29的(a)和图29的(b)所示的情况下,攻击消息和正常消息的接收间隔是异常的间隔。另外,正常消息间的接收间隔是已知的。根据这些,例如图30所示,基于接收间隔,能够将全部消息分类为攻击消息和正常消息。
[0266]
另一方面,在步骤s2433a中,在无法对全部消息进行分类的情况下(s2433a中为“否”),异常检测装置10a通过多个规则来判定包含在一定期间内的消息和传感器(s2435a)。
[0267]
在此,使用图31,概念性地说明基于消息的接收间隔,无法将包含在一定期间内的全部消息分类为正常的消息和攻击的消息的情况。
[0268]
图31是表示实施方式2的变形例的包含在一定期间内的全部消息无法基于接收间隔来分类的情况下的异常的消息序列的分类结果的一例的图。
[0269]
例如,在攻击消息没有被插入在正常消息的紧前或紧后,而是被插入在正常消息的接收间隔的中间的情况下,如图31所示,无法正确地基于接收间隔对正常消息和攻击消息进行分类。即,在攻击消息插入在正常消息的接收间隔的中间的情况下,若仅是异常的消息序列的接收间隔,则会发生无法区分攻击消息和正常消息的情况。
[0270]
以下,在步骤s2434a和步骤s2435a中,首先,说明步骤s2434a的详细处理,即,在所有消息都能够分类的情况下的各传感器的判定处理。
[0271]
图32是表示图28所示的步骤s2434a的详细处理的一例的流程图。图33a是概念性地表示图32所示的步骤s24345中为“是”的情况下的一例的图。图33b是概念性地表示图32所示的步骤s24347中为“是”的情况下的一例的图。图33c是概念性地表示图32所示的步骤s24347中为“否”的情况下的一例的图。
[0272]
在步骤s2434a中,首先,异常检测装置10a判定消息内是否存在多个传感器的信息(s24341)。更具体而言,异常检测装置10a判定在包含在一定期间内的全部消息的每一个消息中是否包含从多个传感器得到的传感器值。
[0273]
在步骤s24341中,在消息内有多个传感器的信息的情况下(s24341中为“是”),异常检测装置10a采用在图28所示的步骤s2432a中进行的全部消息的分类结果(s24342)。更具体而言,异常检测装置10a在包含在一定期间内的全部消息的每一个消息中不包含从多个传感器得到的传感器值的情况下,将在步骤s2432a中进行的全部消息的分类结果作为步骤s24342的详细处理的结果输出。
[0274]
另一方面,在步骤s24341中,在消息内没有多个传感器的信息的情况下(s24341中为“否”),异常检测装置10a对每个传感器进行步骤s24343~步骤s24348的处理。更具体而言,在步骤s24341中,在消息内没有多个传感器的信息的情况下(s24341中为“否”),异常检测装置10a基于消息的接收间隔,进行分为两组的处理(s24343)。
[0275]
接着,异常检测装置10a使用在图28所示的步骤s2431a中计算出的差值,判定在步骤s24343中划分的两组中的至少一个组中传感器值的差值是否一定(s24344)。
[0276]
在步骤s24344中,在至少一个组中传感器值的差值不是一定的情况下(s24344中为“否”),异常检测装置10a前进至步骤s24342。
[0277]
另一方面,在步骤s24344中,在至少一个组中传感器值的差值一定的情况下(s24344中为“是”),异常检测装置10a判定跨两组的传感器值是否为相同值(s24345)。
[0278]
在步骤s24345中,在跨两组的传感器值是相同值的情况下(s24345中为“是”),异常检测装置10a前进至步骤s24348。更具体而言,在跨两组的传感器值是相同值的情况下,例如,如图33a所示,攻击消息和正常消息的传感器值是平坦的,攻击消息和正常消息之间无法区分。因此,异常检测装置10a前进至步骤s24348,将所有消息判定为正常消息。
[0279]
另一方面,在步骤s24345中,在跨两组的传感器值不是相同值的情况下(s24345中为“否”),异常检测装置10a使用k-均值法(k-means法)等作为聚类的算法,关于传感器值分为两组(s24346)。
[0280]
接着,异常检测装置10a判定步骤s24346的处理结果是否有具有相同值的传感器值的组(s24347)。
[0281]
在步骤s24347中,在没有具有相同值的传感器值的组的情况下(s24347中为“是”),处理前进至步骤s24348。更具体而言,在步骤s24346中的处理的结果为没有具有相同值的传感器值的组的情况下,例如,被认为是如图33b所示正常的传感器值是复制地排列并且正常传感器值(固定值)是变动的。因此,异常检测装置10a前进至步骤s24348,将所有消息判定为正常消息。
[0282]
另一方面,在步骤s24347中,在有具有相同值的传感器值的组的情况下(s24347中为“否”),前进至步骤s24342。更具体而言,例如,在步骤s24346的处理的结果为有具有相同值的传感器值的组的情况下,被认为是如图33c所示划分为正常的传感器值且是一定的值的传感器值的组、和固定值的组这两组。因此,异常检测装置10a前进至步骤s24342,采用在步骤s2432a中进行的全部消息的分类结果。
[0283]
这样,异常检测装置10a能够通过将接收间隔和传感器值聚类并且进行正常或异常分组来判定在图28所示的步骤s2433a中被分类的消息是否为由同值攻击引起的(是由同值攻击还是移位攻击引起的)。
[0284]
接下来,说明图28所示的步骤s2435a的详细处理,即,在无法对全部消息进行分类的情况下的各传感器的判定处理。
[0285]
图34是表示图28所示的步骤s2435a的详细处理的一例的流程图。图35是表示图28所示的步骤s2435a的详细处理中使用的判定规则的图。图36a是用于概念性地说明无法分类的消息是否为攻击的末端的图。图36b是用于概念性地说明图35所示的同一组内的接收间隔规则的图。图36c和图36d是概念性地表示图34所示的步骤s24354中为“是”的情况下的一例的图。图36e是表示图34所示的步骤s24359的判定结果的一例的图。
[0286]
在步骤s2435a中,首先,异常检测装置10a判定是否为攻击的末端(end)(s24351)。更具体而言,异常检测装置10a判定在步骤2433a中无法分类的消息是否为成为末端的攻击消息的后续的正常消息。
[0287]
这里,在图36a中,在消息序列中,例示了无法在当前的子窗口中分类的作为a示出的消息,并且例示了成为末端的攻击消息的作为b示出的消息。即,如图36a所示,在作为b示出的消息是攻击消息的末端的情况下,仅作为a示出的当前的子窗口的第一个消息的接收间隔变短,而随后的消息的接收间隔正常。
[0288]
在是攻击的末端的情况下,能够如上所述地进行假设,因此在本变形例中,异常检测装置10a根据是否满足以下3个条件来确认是否为攻击的末端。是否满足3个条件是指是否满足如下条件:仅当前的子窗口的第一个消息无法分类、并且其他消息表示正常的接收间隔、并且在过去的子窗口中受到了追加型攻击。
[0289]
在步骤s24351中,在确认了是攻击的末端的情况下(s24351中为“是”),异常检测装置10a前进至步骤s24352,将所有的传感器判定为正常(s24352)。
[0290]
另一方面,在步骤s24351中,在确认了不是攻击的末端的情况下(s24351中为“否”),异常检测装置10a对每个传感器进行步骤s24353~步骤s24359的处理。更具体而言,在步骤s24351中,在确认了不是攻击的末端的情况下(s24351中为“否”),异常检测装置10a使用k-均值法等作为聚类的算法,进行基于消息的接收间隔的聚类(s24353)。
[0291]
接着,异常检测装置10a判定进行聚类而生成的组所包含的多个消息是否具有明显异常的接收间隔并且不是复制模式(同值)(s24354)。
[0292]
在步骤s24354,在具有明显异常的接收间隔并且不是复制模式(同值)的情况下(s24354中为“是”),基于同一组内的接收间隔规则进行判定(s24355)。
[0293]
这里,具有明显异常的接收间隔的情况相当于例如由于攻击消息和正常消息的接收间隔混乱等而能够根据消息的接收间隔明显地分类为正常组、攻击组的情况。
[0294]
此外,在同一组内的接收间隔规则中,具有相同接收间隔的消息被预先确定为具有相同的判定结果。更具体而言,在同一组内的接收间隔规则中,例如预先确定有图35的最上段所例示的规则。
[0295]
在图35所示的同一组内的接收间隔规则中,确定了如果分类为正常组则判定为其接收间隔正常,如果分类为攻击组则判定为其接收间隔异常(被攻击)。这是因为,例如,如图36b所示,具有相同接收间隔的消息彼此被分类到相同组中。更具体而言,例如,在消息包含在框a中的情况下,该消息被分类到正常组,因此能够判定为其接收间隔是正常的。同样地,在消息包含在框b中的情况下,该消息被分类到攻击组,因此能够判定为其接收间隔是异常的,受到攻击。
[0296]
另一方面,在步骤s24354中,在明显没有异常的接收间隔或者是复制模式(同值)的情况下(s24354中为“否”),前进至步骤s24356,使用同值攻击判定规则进行判定(s24356)。
[0297]
这里,没有异常的接收间隔的情况例如如图36c所示,相当于攻击消息插入在正常消息的周期的中间,攻击消息和正常消息的接收间隔变得大致相等的情况。此外,没有异常的接收间隔的情况也相当于从窗口的中途插入了攻击消息的情况。例如,复制模式(同值)的情况例如如图36d所示,相当于在插入了具有与正常消息的传感器值(正常值)相同的传感器值的攻击消息的情况。
[0298]
此外,同值攻击判定规则例如是在图35的中段例示的预先确定的规则。即,在图35所示的同值攻击判定规则中,确定计算紧前消息的传感器值和差值来进行分组,将差值持续为0的组判定为正常,将差值持续不为0的组判定为异常。
[0299]
接着,异常检测装置10a判定是否有未分类的消息(s24357)。
[0300]
在步骤s24357中,在没有未分类的消息的情况下(s24357中为“否”),由于全部消息能够分类,因此异常检测装置10a结束处理。
[0301]
另一方面,在步骤s24357中,在有未分类的消息的情况下(s24357中为“是”),判定过去的子窗口是否正常(s24358)。在此,异常检测装置10a通过判定过去的子窗口所包含的多个消息的传感器值是否全部正常,能够判定过去的子窗口是否正常。
[0302]
在步骤s24358,在过去的子窗口不正常的情况下(s24358中为“否”),处理前进至步骤s24355。
[0303]
另一方面,在步骤s24358中,在过去的子窗口正常的情况下(s24358中为“是”),异常检测装置10a使用回归判定规则进行判定(s24359)。
[0304]
在此,在回归判定规则中,预先确定有例如图35的最下段例示的规则。
[0305]
在图35所示的回归判定规则中,正常消息的传感器值连续变化,因此确定为如果回归误差小则判定为正常,如果回归误差大则判定为异常。例如,如图36e所示,在由框围绕的过去的子窗口是正常的情况下,假设接在过去的子窗口的最后的正常消息之后,在当前的子窗口内以相同倾向存在传感器值连续变化的正常消息的范围。因此,计算由框围绕的
过去的子窗口的回归直线,计算当前的子窗口内的消息所示的传感器值与回归直线的误差。由此,如果与当前的子窗口内的消息所示的传感器值的回归误差小则能够判定为正常,如果回归误差大则能够判定为异常(被攻击)。
[0306]
这样,异常检测装置10a在图28所示的步骤s2433a中对无法以接收间隔进行分类的消息进行分类,进而通过按每个传感器进行判定,能够判定无法以接收间隔进行分类的消息是正常还是异常。
[0307]
(其他实施方案的可能性)
[0308]
以上,在实施方式中对本公开的异常检测方法以及异常检测装置进行了说明,但关于实施各处理的主体、装置并不特别限定。也可以由嵌入在本地配置的特定的装置内的处理器等进行处理。另外,也可以通过配置在与本地的装置不同的场所的云服务器等进行处理。
[0309]
另外,本公开不限定于上述实施方式。例如,也可以将本说明书中记载的构成要素任意地组合、或者排除构成要素中的几个而实现的其他实施方式作为本公开的实施方式。另外,对上述实施方式实施本公开的主旨、即在不脱离请求保护范围所记载的语句所示的意思的范围内本领域技术人员想到的各种变形而得到的变形例也包含于本公开。
[0310]
另外,本公开还包含以下情况。
[0311]
(1)上述装置具体而言是由微处理器、rom、ram、硬盘单元、显示器单元、键盘、鼠标等构成的计算机系统。在所述ram或硬盘单元中存储有计算机程序。所述微处理器按照所述计算机程序进行动作,由此各装置实现其功能。这里,计算机程序是为了实现规定的功能而组合多个表示对计算机的指令的命令代码而构成的。
[0312]
(2)构成上述装置的构成要素的一部分或者全部也可以由1个系统lsi(large scale integration:大规模集成电路)构成。系统lsi是将多个构成部集成在一个芯片上而制造的超多功能lsi,具体而言,是包括微处理器、rom、ram等而构成的计算机系统。在所述ram中存储有计算机程序。所述微处理器按照所述计算机程序进行动作,由此系统lsi实现其功能。
[0313]
(3)构成上述装置的构成要素的一部分或全部也可以由能够在各装置上装卸的ic卡或单体模块构成。所述ic卡或所述模块是由微处理器、rom、ram等构成的计算机系统。所述ic卡或所述模块也可以包含上述的超多功能lsi。微处理器按照计算机程序进行动作,由此,所述ic卡或所述模块实现其功能。该ic卡或该模块也可以具有防篡改性。
[0314]
(4)另外,本公开也可以是上述所示的方法。另外,可以是通过计算机实现这些方法的计算机程序,也可以是由所述计算机程序构成的数字信号。
[0315]
(5)另外,本公开也可以是将所述计算机程序或所述数字信号记录于计算机可读取的记录介质、例如软盘、硬盘、cd-rom、mo、dvd、dvd-rom、dvd-ram、bd(blu-ray(注册商标)disc)、半导体存储器等。另外,也可以是记录在这些记录介质中的所述数字信号。
[0316]
另外,本公开也可以是经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等传送所述计算机程序或所述数字信号。
[0317]
另外,本公开也可以是具备微处理器和存储器的计算机系统,所述存储器存储有上述计算机程序,所述微处理器按照所述计算机程序进行工作。
[0318]
另外,也可以通过将所述程序或所述数字信号记录在所述记录介质中并进行移
送,或者将所述程序或所述数字信号经由所述网络等进行移送,从而利用独立的其他计算机系统来实施。
[0319]
工业上的可利用性
[0320]
本公开能够利用于对关于在车载网络中发送的消息的异常进行检测的异常检测方法、异常检测装置以及程序,特别是能够利用于与车载网络一起搭载于车辆而对关于在车载网络中发送的消息的异常进行检测的异常检测方法、异常检测装置以及程序。
[0321]
附图标记说明
[0322]
10、10a 异常检测装置
[0323]
11、11a 输入处理部
[0324]
12 事件分类处理部
[0325]
13、13a 输出处理部
[0326]
14a 消息分类处理部
[0327]
111 消息接收部
[0328]
112 窗口生成处理部
[0329]
113 图像化处理部
[0330]
121 cnn
[0331]
141 cnn消息分类器
[0332]
142 lstm消息分类器
[0333]
143 人感消息分类器
[0334]
144 集成处理部
[0335]
1000 计算机
[0336]
1001 输入装置
[0337]
1002 输出装置
[0338]
1004 内置存储装置
[0339]
1007 读取装置
[0340]
1008 收发装置
[0341]
1009 总线
技术特征:
1.一种异常检测方法,用于检测车载网络系统中的网络的异常,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,在所述异常检测方法中,将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕cnn即学习完毕的卷积神经网络,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。2.根据权利要求1所述的异常检测方法,其中,通过使用滑动窗口分割从所述网络接收的消息序列,取得所述一定期间所包含的多个消息,通过根据所取得的所述多个消息来生成表示所述多个消息的接收间隔的图像数据或者表示所述多个消息的传感器值的推移的图像,将所述多个消息的接收间隔或者传感器值的推移进行图像数据化。3.根据权利要求1或2所述的异常检测方法,其中,在所述一定期间插入有攻击消息的情况下,进一步地,根据包含在所述一定期间的消息序列中的多个消息各自所包含的传感器值,基于预先确定的规则,判定所述多个消息是否为攻击消息。4.根据权利要求1至3中任一项所述的异常检测方法,其中,在所述一定期间插入有攻击消息的情况下,进一步地,计算包含在所述一定期间的消息序列中的多个消息中的由在接收时刻前后的两个消息构成的所有组合的传感器值的差值,对计算出的所述差值进行分组,判定分组后的各组所包含的所有的所述差值是否为0,在所述所有的差值不为0的情况下,输出意思为在所述一定期间有插入了攻击消息的追加型攻击的检测结果,在所述所有的差值不为0的情况下,输出意思为在所述一定期间中所述差值不为0的组的消息不是攻击消息的所述检测结果。5.根据权利要求1或2所述的异常检测方法,其中,在所述一定期间插入有攻击消息的情况下,进一步地,使用与所述学习完毕cnn不同的学习完毕cnn,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息中的作为攻击消息的消息和被攻击的传感器。6.根据权利要求1或2所述的异常检测方法,其中,在所述一定期间插入有攻击消息的情况下,进一步地,使用学习完毕lstm即学习完毕的长短期记忆,从包含在所述一定期间的消息序列中的
多个消息,检测所述多个消息是否为攻击消息。7.根据权利要求1或2所述的异常检测方法,其中,在所述一定期间插入有攻击消息的情况下,进一步地,从包含在所述一定期间的消息序列中的多个消息各自所包含的传感器值,基于预先确定的规则,取得通过判定所述多个消息是否为攻击消息而得到的判定结果,使用与所述学习完毕cnn不同的学习完毕cnn,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息中的作为攻击消息的消息和被攻击的传感器,从而取得第一检测结果,使用学习完毕lstm,从包含在所述一定期间的消息序列中的多个消息,检测所述多个消息是否为攻击消息,从而取得第二检测结果,对所取得的所述判定结果、所述第一检测结果以及所述第二检测结果进行集成处理并输出,在所述集成处理中,通过选择所述判定结果、所述第一检测结果以及所述第二检测结果中的某一个,或者将所取得的所述判定结果、所述第一检测结果以及所述第二检测结果进行加权平均来进行整合。8.一种异常检测装置,用于检测车载网络系统中的网络的异常,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,其中,具备处理器和存储器,将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕cnn即学习完毕的卷积神经网络,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。9.一种程序,使计算机执行用于检测车载网络系统中的网络的异常的异常检测方法,该车载网络系统具备经由车辆内的所述网络进行消息的收发的多个电子控制单元,所述程序使所述计算机执行以下处理:将从所述网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或者传感器值的推移进行图像数据化,使用学习完毕cnn即学习完毕的卷积神经网络,根据图像数据,对在所述一定期间是否插入有攻击消息进行分类,在所述一定期间插入有攻击消息的情况下,输出意思为在所述一定期间内有插入攻击消息的追加型攻击的检测结果。
技术总结
一种异常检测方法,用于检测车载网络系统中的网络的异常,该车载网络系统具备经由车辆内的网络进行消息的收发的多个电子控制单元,该异常检测方法为:将从车载网络接收到的消息序列中的一定期间的消息序列所包含的多个消息的接收间隔或传感器值的推移进行图像数据化(S11),使用学习完毕的CNN,根据图像数据对一定期间是否插入有攻击消息进行分类(S12),在一定期间插入有攻击消息的情况下(S13中为“是”),输出意思为有在一定期间内有插入攻击消息的追加型攻击的检测结果(S14)。消息的追加型攻击的检测结果(S14)。消息的追加型攻击的检测结果(S14)。
技术研发人员:N
受保护的技术使用者:松下电器(美国)知识产权公司
技术研发日:2021.11.24
技术公布日:2023/7/22
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:车辆用灯具的制作方法 下一篇:包括氘代丁苯那嗪的胃滞留剂型的制作方法