异常检测方法、异常检测装置及异常检测系统与流程

文档序号:25544229发布日期:2021-06-22 07:31阅读:156来源:国知局
异常检测方法、异常检测装置及异常检测系统与流程

本申请是于2016年12月14日提交的申请号为201680051251.x、名称为“异常检测方法、异常检测装置及异常检测系统”的专利申请的分案申请。

本公开涉及检测关于车载网络中发送的消息的异常的技术。



背景技术:

近些年,在汽车中的系统内配置有多个被称为电子控制单元(ecu:electroniccontrolunit)的装置。连接这些ecu的网络称为车载网络。车载网络存在多种标准。作为其中最主流的车载网络之一,存在由iso11898-1规定的can(controllerareanetwork,控制器局域网)这一标准。

在can中,通信路径是由两条线构成的总线(can总线),与总线连接的ecu称为节点。与can总线连接的各节点对帧(消息)进行收发。另外,在can中不存在指示发送目的地或发送源的识别符,发送节点在每个帧中附加被称为消息id的id来进行发送(即通过向总线发送信号进行广播),各接收节点仅接收预先确定的消息id(即从总线读取信号)。在汽车中的系统内,多个ecu中的各ecu进行各种各样的帧的授受。

通过与can总线连接不正常节点、或者对具有与便携信息终端、车外的通信装置等进行通信的功能的ecu等进行攻击而使该ecu变化为不正常节点等,攻击者有可能向can总线发送攻击帧而不正常地控制汽车。攻击帧是通过不正常的攻击者向can总线发送的帧,是在车载网络的正常状态下本来不会发送的帧(异常消息)。

作为用于检测这样的攻击帧的技术,已知使用统计性方法来判定发送到can的总线上的帧是否为异常帧的技术(参照专利文献1、专利文献2)。

现有技术文献

专利文献

专利文献1:日本特开2015-026252号公报

专利文献2:日本特开2015-170121号公报



技术实现要素:

发明要解决的课题

为了进行车载网络上的攻击帧的检测(即异常的检测),专利文献1、2的技术不一定够用,期待用于异常检测的更进一步的技术的研究开发。

于是,本公开提供一种用于检测在汽车等车辆的车载网络中可能发送的异常消息(攻击帧)的有用的异常检测方法。

用于解决课题的技术方案

为了解决上述课题,本公开的一个技术方案的异常检测方法,是用于具备多个电子控制单元的车载网络系统中的异常检测的异常检测方法,所述多个电子控制单元遵循can(controllerareanetwork,控制器局域网)协议经由车辆内的总线进行消息的授受,所述异常检测方法包括:进行单位时间的决定;和进行使用了特征信息和预定模型的运算处理,根据该运算处理的结果判定是否异常,所述特征信息是基于在所述决定出的单位时间内从所述总线接收到的消息数的信息,所述预定模型表示与消息的出现频度相关的基准。

此外,这些总括性或具体的技术方案既可以通过装置、系统、集成电路、计算机程序或者计算机可读取的cd-rom等记录介质来实现,也可以通过装置、系统、方法、计算机程序和记录介质的任意组合来实现。

发明的效果

根据本公开,在由攻击者将攻击帧(消息)传播到总线上的情况下,可能成为由车载网络系统决定出的单位时间中的消息的数与基准不同,因此,可能检测到异常。

此外,从本说明书及附图的公开内容中可知晓本公开的进一步的效果及优点。上述进一步的效果及优点,可以单独地由本说明书及附图所公开的各种实施方式及特征提供而得到,无需一定要提供所有的效果及优点。

附图说明

图1是示出实施方式1的异常检测系统的整体构成的图。

图2是示出由can协议规定的数据帧的格式的图。

图3是电子控制单元(ecu)的构成图。

图4是示出接收id列表的一例的图。

图5是示出发动机ecu所发送的帧中的id以及数据域的一例的图。

图6是示出制动器ecu所发送的帧中的id以及数据域的一例的图。

图7是示出门开闭传感器ecu所发送的帧中的id以及数据域的一例的图。

图8是示出窗开闭传感器ecu所发送的帧中的id以及数据域的一例的图。

图9是实施方式1的网关的构成图。

图10是示出实施方式1的网关所保持的车辆识别信息的一例的图。

图11是示出实施方式1的网关所使用的传送规则的一例的图。

图12是实施方式1的服务器的构成图。

图13是示出实施方式1的服务器所保持的检测窗尺寸确定用表的一例的图。

图14是示出ecu中的帧发送处理时序的一例的图。

图15是示出实施方式1的网关中的帧传送处理时序的一例的图。

图16是示出实施方式1的网关以及服务器中的检测窗尺寸决定处理时序的一例的图。

图17是示出实施方式1的网关以及服务器中的学习处理时序的一例的图。

图18是用于说明实施方式1的网关所使用的检测窗的图。

图19是示出实施方式1的网关以及服务器中的模型更新处理时序的一例的图。

图20是示出实施方式1的网关以及服务器中的异常检测处理时序的一例的图。

图21是实施方式2的车辆的车载网络系统的构成图。

图22是实施方式2的网关的构成图。

图23是示出实施方式2的网关中的检测窗尺寸决定处理时序的一例的图。

图24是示出实施方式2的网关中的学习处理时序的一例的图。

图25是示出实施方式2的网关中的异常检测处理时序的一例的图。

图26是示出实施方式的变形例的检测窗的一例的图。

具体实施方式

(成为本公开的基础的见解等)

在由攻击者将攻击帧(消息)传播到车载网络的总线上的情况下,如果成为在单位时间内从总线接收到的帧的数与表示在正常状态下该单位时间内的帧的出现频度的基准(模型)不同,则能够检测异常。这是因为根据车载网络系统的构成、规格等(通过总线连接的ecu的编制、规格等),正常状态下的单位时间内的向总线发送的帧的出现频度会成为限定的。此时的单位时间是否恰当,会对异常的检测精度造成影响。于是,想到了在车辆的车载网络系统中,从多种时间范围中将单位时间决定(选定)为例如10ms等,能够使用所决定出的单位时间来检测异常的异常检测方法。车载网络系统的构成、规格等,例如会按各车辆或者按各车型等而不同,因此,作为一例,在车辆的车载网络系统中,能够基于用于该车辆、车型等的识别的车辆识别信息来决定单位时间。另外,由于攻击方法的变化、多样化等,适合用于区别被攻击后的状态和正常状态的单位时间不限于从过去不变,因此,为了检测车辆的车载网络系统中的异常,决定单位时间后再检测异常的方法会成为有用的方法。例如,基于从同一车型的多辆车辆中聚集到的涉及帧的信息的最新的解析结果等,决定用于异常检测的单位时间等会有用。

本公开的一个技术方案涉及的异常检测方法,是用于具备多个电子控制单元的车载网络系统中的异常检测的异常检测方法,所述多个电子控制单元遵循can(controllerareanetwork,控制器局域网)协议经由车辆内的总线进行消息的授受,所述异常检测方法包括:进行单位时间的决定;和进行使用了特征信息和预定模型的运算处理,根据该运算处理的结果判定是否异常,所述特征信息是基于在所述决定出的单位时间内从所述总线接收到的消息数的信息,所述预定模型表示与消息的出现频度相关的基准。由此,在由攻击者将攻击帧(消息)传播到总线上的情况下,可能成为由车载网络系统决定出的单位时间(例如10ms等)内的消息的数与基准不同,因此,能够恰当地检测异常。

另外,例如,也可以是,所述消息包含表示消息的种类的消息id,所述异常检测方法包括:决定步骤,进行单位时间的所述决定;确定步骤,确定特征向量作为所述特征信息,所述特征向量以在通过所述决定步骤决定出的单位时间内从所述总线接收到的各消息id的消息数为分量;以及判定步骤,使用通过所述确定步骤确定出的所述特征信息和所述预定模型进行所述运算处理,根据该运算处理的结果进行所述判定。由此,会确定车载网络系统中基于按消息的种类区分的接收数恰当地表示消息的出现状况的特征向量,会成为能够进行恰当的异常检测。

另外,例如,也可以是,在所述决定步骤中,基于用于所述车辆的识别的车辆识别信息进行单位时间的所述决定。由此,会成为能够与通过车辆识别信息识别的车载网络系统对应地进行高精度的异常检测。

另外,例如,也可以是,所述车辆识别信息表示所述车辆的制造商。由此,会能够与按各车辆制造商的车载网络的特征对应地确定用于异常检测的单位时间,因此,会成为能够进行高精度的异常检测。

另外,例如,也可以是,所述车辆识别信息表示所述车辆的车型。由此,会能够与按各车型的车载网络的特征对应地确定用于异常检测的单位时间,因此,会成为能够进行高精度的异常检测。

另外,例如,也可以是,所述车辆识别信息是用于将所述车辆与其它车辆进行区别的信息。由此,会成为能够进行适合各个按各车辆的车载网络系统的特征的异常检测。

另外,例如,也可以是,在所述决定步骤中,以将相互不同的多个种类的消息中发送周期最短的一个种类的消息的该发送周期设为单位时间的方式进行所述决定,所述相互不同的多个种类的消息是在通过所述车辆识别信息识别的车辆的集合中的各车辆的车载网络系统中在正常状态下应该向该车辆内的总线发送的消息。由此,会成为能够进行高精度的异常检测。

另外,例如,也可以是,在所述判定步骤中,使用与所述车辆识别信息对应的所述预定模型进行所述运算处理。由此,会利用与在车载网络系统中决定出的单位时间对应的预定模型和在车载网络中在单位时间内接收到的消息的数来检测异常,因此,会能够进行恰当的异常检测。

另外,例如,也可以是,在所述确定步骤中,按通过所述决定步骤决定出的各单位时间逐次确定基于在该单位时间内从所述总线接收到的消息数的所述特征信息,在所述判定步骤中,对于通过所述确定步骤逐次确定出的各所述特征信息使用该特征信息和所述预定模型进行所述运算处理,所述异常检测方法还包括基于通过所述确定步骤逐次确定出的多个所述特征信息对所述预定模型逐次进行更新的更新步骤。由此,对用于异常检测的预定模型逐次进行更新,因此,可能成为例如能够以与车载网络的最近的状况(例如车辆最近的使用状况等)对应的方式恰当地进行异常检测。

另外,例如,也可以是,在所述决定步骤中,基于在制造所述车辆时规定的信息在所述车辆中进行单位时间的所述决定,在所述确定步骤中,在所述车辆中确定所述特征信息。由此,能够基于制造车辆时规定的信息(例如车架编号等)决定车辆中成为用于异常检测的特征信息的生成的基础的单位时间,因此,会成为能够进行适合车辆的恰当的异常检测。

另外,例如,也可以是,在所述决定步骤中,在所述车辆的发动机启动或辅助设备开启时在所述车辆中进行单位时间的所述决定,在所述确定步骤中,在所述车辆中确定所述特征信息。由此,能够在开始使用车辆时(开始行驶时等),在车辆中决定成为用于异常检测的特征信息的生成的基础的单位时间,因此,可能成为例如能够以与最近的状况相适应的方式进行恰当的异常检测。

另外,例如,也可以是,在所述决定步骤中,按各预定时间进行单位时间的所述决定,在所述确定步骤中,按通过所述决定步骤决定出的最新的各单位时间逐次确定基于在该单位时间内从所述总线接收到的消息数的所述特征信息,在所述判定步骤中,对于通过所述确定步骤逐次确定出的各所述特征信息使用该特征信息和所述预定模型进行所述运算处理。由此,按各预定时间在车辆中决定成为用于异常检测的特征信息的生成基础的单位时间,因此,可能成为例如能够以与最近的状况相适应的方式进行恰当的异常检测。

另外,例如,也可以是,所述消息包含表示消息的种类的消息id,所述特征信息表示在所述决定出的单位时间内从所述总线接收到的所有的消息id的消息总数。由此,可能成为通过不区别id而能够有效地进行异常检测。

另外,本公开的一个技术方案涉及的异常检测装置,是在具备遵循can(controllerareanetwork,控制器局域网)协议经由车辆内的总线进行消息的授受的多个电子控制单元的车载网络系统中与所述总线连接来检测异常的异常检测装置,所述异常检测装置具备:接收部,其从所述总线接收消息;决定部,其决定单位时间;确定部,其确定特征信息,所述特征信息是基于在所述决定部所决定出的单位时间内通过所述接收部接收到的消息数的信息;以及判定部,其根据运算处理的结果判定是否异常,所述运算处理使用了通过所述确定部确定出的所述特征信息和表示与消息的出现频度相关的基准的预定模型。运算处理例如既可以在异常检测装置中进行,也可以在外部的装置(服务器)中进行,只要在异常检测装置的判定部中能够根据其结果来进行判定即可。在由服务器进行运算处理的情况下,也可以是,异常检测装置例如向服务器发送由确定部确定出的特征信息,从服务器接收运算处理的结果。由此,在通过攻击者将攻击帧(消息)传播到总线上的情况下,可能成为由异常检测装置决定出的单位时间(例如10ms等)内的消息的数与基准不同,因此,能够恰当地检测异常。

另外,本公开的一个技术方案涉及的异常检测系统,是具备一辆车辆和服务器的异常检测系统,所述一辆车辆具有具备多个电子控制单元和异常检测装置的车载网络系统,所述多个电子控制单元遵循can(controllerareanetwork,控制器局域网)协议经由所述一辆车辆内的总线进行消息的授受,所述异常检测装置与该总线连接,所述异常检测装置具备:从所述总线接收消息的接收部;决定部,其向所述服务器发送用于所述一辆车辆的识别的车辆识别信息,基于来自所述服务器的应答决定单位时间;确定部,其确定特征信息,所述特征信息是基于在所述决定部所决定出的单位时间内通过所述接收部接收到的消息数的信息;以及判定部,其根据运算处理的结果判定是否异常,所述运算处理使用了通过所述确定部确定出的所述特征信息和表示与消息的出现频度相关的基准的预定模型,所述服务器具备通信部,所述通信部从所述一辆车辆接收所述车辆识别信息,向所述一辆车辆发送表示基于该车辆识别信息确定出的单位时间的信息。例如,也可以是,判定部向服务器发送由确定部确定出的特征信息,根据来自服务器的应答(例如,表示是否异常的信息等)判定是否异常。在该情况下,服务器例如能够使用接收到的特征信息,进行与预定模型相关的运算处理,将基于该结果的信息作为针对所接收到的特征信息的应答而向车辆发送。由此,与车辆的车辆识别信息对应地决定单位时间,因此,能够恰当地进行与车辆的车载网络相关的异常与否的判定。

另外,例如,也可以是,所述服务器还具备学习部,所述学习部取得预定信息,基于该预定信息对表示与消息的出现频度相关的基准的基准模型进行更新,所述预定信息基于在基于从所述一辆车辆接收到的所述车辆识别信息确定出的单位时间内在通过该车辆识别信息识别的车辆的集合中的1辆以上的车辆的车载网络系统中从该车辆内的总线接收到的消息数,所述通信部向所述一辆车辆发送表示通过所述学习部更新后的所述基准模型的信息,所述异常检测装置基于表示从所述服务器接收到的所述基准模型的信息更新所述预定模型,所述判定部进行使用了所述特征信息和所述更新后的所述预定模型的运算处理,根据该运算处理的结果进行是否异常的所述判定。由此,在服务器中,通过使用了预定信息(例如与特征信息同样的信息)的学习来更新基准模型,该预定信息基于在通过车辆识别信息识别的车辆的集合(例如同一车型的车辆等)中的车载网络中接收到的消息的数。并且,在车辆的异常检测装置中,能够基于基准模型对预定模型进行更新,以使得例如使预定模型与基准模型一致,而利用于异常与否的判定。因此,在异常检测装置中,可能成为能够执行适合搭载本装置的车辆(通过车辆识别信息识别的车辆)的、恰当的异常检测(判定)。

此外,这些总括性或具体的技术方案既可以通过系统、方法、集成电路、计算机程序或者计算机可读取的cd-rom等记录介质来实现,也可以通过系统、方法、集成电路、计算机程序和记录介质的任意组合来实现。

以下,参照附图对使用实施方式涉及的异常检测方法的异常检测系统、异常检测装置等进行说明。在此所示的实施方式均表示本公开的一个具体例子。因此,以下的实施方式中示出的数值、构成要素、构成要素的配置以及连接方式、步骤(工序)以及步骤的顺序等是一个例子,并不限定本公开。关于以下的实施方式中的构成要素中的未记载在独立权利要求中的构成要素,是能够任意附加的构成要素。另外,各图是示意图,不一定是严格图示。

(实施方式1)

以下,作为本公开的一个实施方式,使用附图对在车辆中检测车载网络的异常的异常检测装置通过与车辆外部的服务器的协作来决定用于异常的检测的检测窗尺寸(单位时间)的异常检测系统进行说明。在该异常检测系统中,异常检测装置通过将搭载有本装置的车辆的车辆识别信息通知给服务器而得到应答,来决定用于异常检测的检测窗尺寸。

[1.1异常检测系统10的整体构成]

图1是示出实施方式1涉及的异常检测系统10的整体构成的图。

异常检测系统10具备具有车载网络系统的车辆和能够相互通信的服务器400。异常检测系统10也可以具备能够与服务器400通信的多辆车辆,但是在图1中,为了方便仅示出一辆车辆。

图1所示的车辆中的车载网络系统,是遵循can协议进行通信的网络通信系统的一例,是搭载有控制装置、传感器、致动器,用户接口装置等各种设备的车辆中的网络通信系统。该车载网络系统构成为包括搭载于车辆并与各种设备连接的ecu100a(发动机ecu)、ecu100b(制动器ecu)、ecu100c(门开闭传感器ecu)以及ecu100d(窗开闭传感器ecu)、总线200a、200b、网关300(异常检测装置的一例)。此外,在车载网络系统中除了网关300、ecu100a~100d以外还可以包括很多ecu,但是,在此为了方便而着眼于网关300以及ecu100a~100d来进行说明。ecu例如是包括处理器(微处理器)、存储器等数字电路、模拟电路,通信线路等的装置。存储器是rom、ram等,能够存储由处理器执行的控制程序(作为软件的计算机程序)。例如通过处理器按照控制程序(计算机程序)进行工作,由此ecu会实现各种功能。此外,计算机程序是为了实现预定功能而组合多个表示针对处理器的指令的命令代码而构成的。ecu能够遵循can协议并经由车辆内的总线200a、200b来进行帧的授受。

ecu100a~100d分别与发动机101、制动器102、门开闭传感器103、窗开闭传感器104等设备连接,取得该设备的状态,周期性地向由总线200a、总线200b等构成的车载网络发送表示状态的帧(数据帧)。

网关300与将ecu100a和ecu100b连接的总线200a、以及将ecu100c和ecu100d连接的总线200b连接,是具有将从一方的总线接收到的帧向另一方的总线传送的功能的一种ecu。另外,网关300是具有通过基于从总线接收到的帧而判定是否异常(例如判定是否处于攻击帧传播到了总线的异常状态)来检测异常并将该检测结果(异常检测结果)通知给服务器400的功能的异常检测装置。作为异常检测装置的网关300中的异常检测,大致通过根据使用了特征信息和预定模型的比较等运算处理的结果来判定是否异常,由此来进行,该特征信息是基于针对作为具有检测窗尺寸的时间长的期间的各检测窗在该检测窗内从与车载网络相关的总线200a、200b接收到的数据帧(消息)的数的信息,该预定模型表示与消息的出现频度相关的基准。另外,网关300具有通过经由网络40与服务器400进行通信来决定用于异常检测(异常与否的判定)的信息(例如检测窗尺寸、表示预定模型的信息等参数等)的功能。

服务器400是车辆外部的计算机,具有经由网络40与各车辆中的网关300进行通信并基于所接收到的车辆识别信息将异常检测用的信息(表示检测窗尺寸的信息等)应答(回复)给网关300的功能。另外,服务器400具有保存由网关300通知的异常检测结果的功能。另外,服务器400也可以具有与各车辆中的网关300进行通信并对由各车辆中的车载网络接收到的与帧相关的信息进行聚集、解析等的功能。此外,对于网络40中的通信,也可以适用无线通信或者有线通信的某种通信协议。

[1.2数据帧格式]

以下,对作为在遵循can协议的网络中使用的帧之一的数据帧(消息)进行说明。

图2是表示由can协议规定的数据帧的格式的图。在该图中示出了由can协议规定的标准id格式中的数据帧。数据帧由sof(startofframe,帧起始)、id域、rtr(remotetransmissionrequest,远程发送请求)、ide(identifierextension,标识符扩展)、预约位“r”、dlc(datalengthcode,数据长度码)、数据域、crc(cyclicredundancycheck,循环冗余校验)序列、crc定界符“del”、ack(acknowledgement,应答)间隙(slot)、ack定界符“del”以及eof(endofframe,帧结束)的各域构成。

sof由1比特的显性(dominant)构成。总线空闲的状态成为隐性(recessive),通过利用sof变更为显性,来通知帧的发送开始。

id域是由11比特构成的、保存表示数据种类的值即id(消息id)的域。在多个节点同时开始了发送的情况下,为了通过该id域进行通信仲裁,设计成使具有id小的值的帧成为高优先级。

rtr是用于识别数据帧和远程帧的值,在数据帧中由1比特显性构成。

ide和“r”两方都由1比特显性构成。

dlc由4比特构成,是表示数据域的长度的值。此外,将ide、“r”以及dlc一起称为控制域。

数据域是最大由64比特构成的表示要发送的数据的内容的值。能够按每8比特来调整长度。所发送的数据的规格,不在can协议中规定,而在车载网络系统中确定。因此,成为取决于车型、生产商(制造厂商)等的规格。

crc序列由15比特构成。根据sof、id域、控制域以及数据域的发送值来算出。

crc定界符是由1比特的隐性构成的表示crc序列的结束的分隔符号。此外,将crc序列以及crc定界符一起称为crc域。

ack间隙由1比特构成。发送节点将ack间隙设为隐性并进行发送。如果到crc序列为止能够正常接收,则接收节点将ack间隙设为显性并发送。由于显性比隐性优先,因此,如果在发送后ack间隙为显性,则发送节点能够确认某一个接收节点接收成功。

ack定界符是由1比特的隐性构成的表示ack的结束的分隔符号。

eof由7比特的隐性构成,表示数据帧的结束。

[1.3ecu100a的构成]

图3是ecu100a的构成图。ecu100a构成为包含帧收发部110、帧解释部120、接收id判断部130、接收id列表保持部140、帧处理部150、数据取得部160、帧生成部170。这些各构成要素的各功能例如通过ecu100a中的通信线路、用于执行保存于存储器的控制程序的处理器或者数字电路等来实现。此外,ecu100b~100d也具备与ecu100a同样的构成。

帧收发部110相对于总线200a收发遵循can协议的帧。从总线200a逐比特地接收帧,并传送给帧解释部120。另外,将从帧生成部收到通知的帧的内容发送给总线200a。

帧解释部120从帧收发部110接收帧的值,并进行解释,以使得向由can协议规定的帧格式中的各域进行映射。判断为id域的值传送给接收id判断部130。帧解释部120根据从接收id判断部130通知的判定结果,决定是将id域的值和id域之后出现的数据域传送给帧处理部150,还是在接收到该判定结果之后中止帧的接收(即中止作为该帧的解释)。另外,帧解释部120,在判断为是不遵循can协议的帧的情况下,向帧生成部170进行通知,以便发送错误帧。另外,在接收到错误帧的情况下、即在根据所接收到的帧中的值而解释为成为错误帧的情况下,帧解释部120自此之后丢弃该帧,即中止帧的解释。

接收id判断部130接收从帧解释部120通知的id域的值,依照接收id列表保持部140保持的消息id的列表,进行是否接收该id域之后的帧的各域的判定。接收id判断部130将该判定结果通知给帧解释部120。

接收id列表保持部140保持ecu100a接收到的id(消息id)的列表即接收id列表。图4示出接收id列表的一例。

帧处理部150根据所接收到的帧的数据,进行与按各ecu不同的功能相关的处理。例如,与发动机101连接的ecu100a具备若处于在时速超过了30km的状态下开着门的状态则鸣响警报声的功能。ecu100a例如具有用于鸣响警报声的扬声器等。并且,ecu100a的帧处理部150对从其它的ecu接收到的数据(例如表示门的状态的信息)进行管理,基于从发动机101取得的时速来进行在一定条件下鸣响警报声的处理等。此外,帧处理部150也可以进行与在此例示的以外的帧的数据相关的处理。

数据取得部160取得表示与ecu连接的设备、传感器等的状态的数据,并通知给帧生成部170。

帧生成部170依照从帧解释部120通知的指示错误帧的发送的通知,构成错误帧,将错误帧通知给帧收发部110并使帧收发部110发送错误帧。另外,帧生成部170对从数据取得部160通知的数据的值赋予预先确定的消息id来构成帧(数据帧),并通知给帧收发部110。此外,关于ecu100a~100d中的每一个发送的帧的内容,在下面使用图5~图8来进行说明。

[1.4接收id列表例]

图4是表示在ecu100a~100d中的每一个中保持的接收id列表的一例的图。在该图中例示的接收id列表用于选择性地接收包含作为id(消息id)的值是“1”、“2”、“3”以及“4”中的某一个的消息id的帧(消息)并对该帧(消息)进行处理。例如,在ecu100a的接收id列表保持部140中保持有图4的接收id列表时,对于消息id不是“1”、“2”、“3”以及“4”中的任一个的帧,中止帧解释部120对id域以后的帧的解释。

[1.5发动机ecu100a的发送帧例]

图5是表示从与发动机101连接的ecu100a发送的帧中的id(消息id)以及数据域(数据)的一例的图。ecu100a发送的帧的消息id是“1”。数据表示时速(km/小时),取最低0(km/小时)~最高180(km/小时)的范围的值,数据长是1字节。从图5的上面的行到下面的行,例示了与从ecu100a逐次发送的各帧对应的各消息id以及数据,表示从0km/小时起逐次加速1km/小时的情形。

[1.6制动器ecu100b的发送帧例]

图6是表示从与制动器102连接的ecu100b发送的帧中的id(消息id)以及数据域(数据)的一例的图。ecu100b发送的帧的消息id是“2”。数据用比率(%)表示制动的施加情况,数据长是1字节。关于该比率,将完全没有施加制动的状态设为0(%),将最大限度地施加制动的状态设为100(%)。从图6的上面的行到下面的行例示了与从ecu100b逐次发送的各帧对应的各消息id以及数据,表示从100%逐渐减弱制动的情形。

[1.7门开闭传感器ecu100c的发送帧例]

图7是表示从与门开闭传感器103连接的ecu100c发送的帧中的id(消息id)以及数据域(数据)的一例的图。ecu100c发送的帧的消息id是“3”。数据表示门的开关状态,数据长是1字节。关于数据的值,开着门的状态为“1”,门关闭的状态为“0”。从图7的上面的行到下面的行,例示了与从ecu100c逐次发送的各帧对应的各消息id以及数据,表示从开着门的状态逐渐地移向关闭的状态的情形。

[1.8窗开闭传感器ecu100d的发送帧例]

图8是表示从与窗开闭传感器104连接的ecu100d发送的帧中的id(消息id)以及数据域(数据)的一例的图。ecu100d发送的帧的消息id是“4”。数据用比率(%)表示窗(window)的开关状态,数据长是1字节。该比率是将窗完全关闭的状态设为0(%)、将窗全部打开的状态设为100(%)的比率。从图8的上面的行到下面的行,例示了与从ecu100d逐次发送的各帧对应的各消息id以及数据,表示从窗关闭的状态逐渐地打开的情形。

[1.9网关300的构成]

图9是网关300的构成图。网关300构成为包括帧收发部310、帧解释部320、接收id判断部330、接收id列表保持部340、加工处理部350、外部通信部360、车辆识别信息保持部361、异常检测处理部370、模型保持部371、传送处理部380和传送规则保持部381、帧生成部390。这些各构成要素的各功能例如通过网关300中的通信线路、用于执行保存于存储器的控制程序的处理器或者数字电路等来实现。

帧收发部310对于总线200a、200b分别收发遵循can协议的帧。帧收发部310作为从总线逐比特地接收帧的接收部发挥功能,并将所接收到的帧传送给帧解释部320。另外,基于表示从帧生成部390收到了通知的传送目的地的总线的总线信息以及帧,将该帧的内容逐比特地发送到总线200a、200b。

帧解释部320从帧收发部310接收帧的值,进行解释以使得向由can协议规定的帧格式中的各域进行映射。判断为id域的值被传送给接收id判断部330。帧解释部320根据从接收id判断部330通知的判定结果,决定将id域的值和id域之后出现的数据域(数据)传送给传送处理部380还是在收到该判定结果之后中止帧的接收。另外,帧解释部320将id域的值通知给加工处理部350。另外,帧解释部320在判断为是未遵循can协议的帧的情况下,向帧生成部390进行通知,以使得发送错误帧。另外,帧解释部320在接收到错误帧的情况下,即在根据所接收的帧中的值而解释为成为错误帧的情况下,自此之后丢弃该帧,即中止帧的解释。

接收id判断部330接收从帧解释部320通知的id域的值,依照接收id列表保持部340保持的消息id的列表,来进行是否接收该id域之后的帧的各域的判定。接收id判断部330将该判定结果通知给帧解释部320。

接收id列表保持部340保持网关300接收的id(消息id)的列表即接收id列表(参照图4)。

加工处理部350基于表示从服务器400通知的检测窗尺寸的信息来决定检测窗尺寸,并保持该检测窗尺寸。即加工处理部350作为决定检测窗尺寸的决定部来发挥功能。加工处理部350基于从帧解释部320通知的id域的值,对每个检测窗尺寸的时间长的检测窗,将从总线200a、200b逐次接收到的帧的集合(逐次通知的id域的值的集合)变换为表示检测窗内的按id(消息id)区分的帧的接收数(对检测窗尺寸的检测窗内的帧的接收以按id区分的方式进行计数而得到的计数数)的特征信息并将特征信息通知给外部通信部360。即加工处理部350也作为确定特征信息的确定部发挥功能。另外,加工处理部350将基于在检测窗尺寸的检测窗内从总线200a、200b逐次接收到的帧的数的该特征信息逐次通知给异常检测处理部370。

外部通信部360将车辆识别信息保持部361保持的车辆识别信息经由网络40通知(发送)给服务器400,作为应答,将表示从服务器400通知的检测窗尺寸的信息通知给加工处理部350。另外,外部通信部360将从加工处理部350通知的特征信息通知(发送)给服务器400。另外,外部通信部360将从服务器400通知的模型信息(表示表达与数据帧的出现频度相关的基准的基准模型的信息)通知给异常检测处理部370。另外,外部通信部360将从异常检测处理部370通知的异常检测结果通知(发送)给服务器400。

车辆识别信息保持部361保持用于车辆的识别的车辆识别信息。图10中示出车辆识别信息的一例。

异常检测处理部370经由外部通信部360取得从服务器400通知的模型信息,根据模型信息来更新模型保持部371保持的预定模型(表示与数据帧的出现频度相关的基准的模型)。例如,异常检测处理部370能够对预定模型进行更新,以使得预定模型与模型信息表示的基准模型一致。另外,异常检测处理部370作为判定部发挥功能,该判定部接收基于从帧解释部320通知的id域的值由加工处理部350变换后的特征信息,进行使用了模型保持部371保持的预定模型和该特征信息的运算处理,根据该运算处理的结果来判定是否异常。即,异常检测处理部370通过使用了特征信息以及预定模型的运算处理判定与从总线接收到的帧的集合相关的特征信息是否适合预定模型表示的基准。在该判定中,若被反映为特征信息的检测窗尺寸内的按id区分的数据帧的接收数符合预定模型表示的基准(例如表示正常状态下的数据帧的出现频度的基准),则判定为正常,若不符合基准(即脱离基准),则判定为异常。为了这样进行判定,运算处理被确定,运算处理例如是预定模型与特征信息的比较、算术运算、逻辑运算、条件判断等之类的各种处理的1个以上的组合。异常检测处理部370将通过该运算处理而得到的异常与否的判定结果(即异常检测结果)通知给外部通信部360。

模型保持部371保持从异常检测处理部370通知的预定模型。

传送处理部380根据传送规则保持部381保持的传送规则,与接收到的帧的id(消息id)相应地决定要传送的总线(传送目的地的总线),将表示要传送的总线的总线信息、从帧解释部320通知的消息id和数据通知给帧生成部390。

传送规则保持部381保持表示关于每一个总线的帧的传送的规则的信息即传送规则。图11示出传送规则的一例。

帧生成部390根据从帧解释部320通知的指示错误帧的发送的通知,构成错误帧,并将错误帧通知给帧收发部310并使帧收发部310发送错误帧。另外,帧生成部390使用从传送处理部380通知的消息id和数据来构成帧,并将该帧以及总线信息通知给帧收发部310。

[1.10车辆识别信息]

图10表示网关300保持的车辆识别信息的一例。车辆识别信息是用于车辆的识别的信息,在图10中示出车辆识别信息表示汽车制造商(车辆的制造商)、车型以及车架编号的例子。在该例中,例如,车架编号是将各车辆与其它车辆相区别的信息(用于识别各车辆的信息),由款式(车辆类型)和制造编号构成。在此,车型相同的车辆彼此的车载网络的构成相同,与传播到车载网络的can总线的数据帧(消息)的利用相关的规格(按各消息id的数据域的内容的规定等)相同。即,此处的车型相同的车辆例如是车辆款式相同的车辆。此外,车辆识别信息不限于此例,例如也可以是车辆识别编号(vin:vehicleidentificationnumber)等。例如,车辆识别编号中的从开头到序列编号前为止的位的值相同的车辆是同一车型的车辆。此外,车辆识别信息无需一定是仅通过这些使得各个车辆能够被识别的信息。例如,车辆识别信息可以是仅表示车辆的车型的信息,也可以是仅表示车辆的制造商的信息,还可以是仅表示车架编号的信息,或者也可以是将它们中的任一个与其它的信息组合而成的信息等。

[1.11传送规则]

图11表示网关300的传送规则保持部381保持的传送规则的一例。

该传送规则将传送源的总线、传送目的地的总线和传送对象的id(消息id)相关联。图11中的“*”表示与消息id无关地进行帧的传送。图11的例子表示设定为从总线200a接收到的帧与消息id无关地被传送到总线200b。另外,表示设定为从总线200b接收的帧中的仅消息id为“3”的帧被传送到总线200a。

[1.12服务器400的构成]

服务器400是存在于车辆外部例如能够管理多个车辆的计算机,包括存储器、硬盘等存储介质、处理器、通信线路等。

图12是服务器400的构成图。服务器400如该图所示那样构成为包括通信部410、数据储存部420、学习部430、检测窗尺寸确定部440、检测窗尺寸确定用表保持部450和异常检测结果保持部460。这些各构成要素通过服务器400中的通信线路、用于执行存储器所保存的控制程序的处理器等来实现。

通信部410经由网络40与各车辆的网关300进行通信。另外,通信部410将从网关300逐次通知的、反映了每个检测窗尺寸的按id区分的计数数的特征信息按各车辆进行区别地储存于数据储存部420。另外,通信部410将表示从学习部430通知的基准模型的模型信息通知(发送)给网关300。另外,通信部410将从网关300通知的车辆识别信息通知给检测窗尺寸确定部440,将表示从检测窗尺寸确定部440通知的检测窗尺寸的信息通知(发送)给网关300。另外,通信部410使异常检测结果保持部460保持从网关300通知的异常检测结果。

数据储存部420按各车辆区别地储存(保持)从通信部410通知的特征信息。

学习部430基于储存于数据储存部420的按各车辆的特征信息,构筑并保持与每个车辆对应的基准模型(表示与在车辆的车载网络的总线上出现的数据帧的出现频度相关的基准的模型),基于特征信息根据需要来更新基准模型。学习部430例如基于由通信部410以及数据储存部420逐次收集的特征信息,通过例如机器学习来逐次更新所保持的基准模型。

检测窗尺寸确定部440参照检测窗尺寸确定用表保持部450保持的检测窗尺寸确定用表,根据从通信部410通知的车辆识别信息来确定检测窗尺寸,并将表示所确定出的检测窗尺寸的信息通知给通信部410。

检测窗尺寸确定用表保持部450保持用于根据车辆识别信息来确定检测窗尺寸的检测窗尺寸确定用表。图13中示出检测窗尺寸确定用表的一例。

异常检测结果保持部460将从通信部410通知的异常检测结果对每个车辆作为日志来保持。此外,在服务器400管理多个车辆的情况下,既可以例如基于从车辆接收到的车辆识别信息对来自各车辆的信息进行分类并管理,也可以是例如车辆的网关300在将特征信息或者异常检测结果向服务器400发送时也附加车辆识别信息的全部或者一部分地进行发送。

[1.13检测窗尺寸确定用表]

图13表示由服务器400保持的检测窗尺寸确定用表的一例。图13所示的检测窗尺寸确定用表是将车辆识别信息与检测窗尺寸相关联的表。图13所例示的检测窗尺寸确定用表的车辆识别信息与图10的例子同样地包含汽车制造商、车型以及车架编号。该检测窗尺寸例如能够规定为与在通过车辆识别信息识别的车辆的集合中的各车辆的车载网络系统中在正常状态下应该向can总线发送的、多个种类的数据帧(即消息id相互不同的多个数据帧)中发送周期最短的一个种类的数据帧的该发送周期一致。为了确定该检测窗尺寸,能够参照车载网络系统的规格或者车载网络系统的正常状态的实际情况的分析结果等。例如,如果车辆识别信息是不能识别各个车辆而仅能识别车型的识别信息,则能够将检测窗尺寸规定为与在该车型的各车辆中的车载网络系统中在正常状态下发送的多个id的帧的发送周期中最短的周期一致。检测窗尺寸确定用表中的检测窗尺寸的确定方法也可以利用其它的方法,结果对于在车辆的异常检测装置(网关300)中确定检测窗尺寸以便能够恰当地区别正常状态和受攻击的状态是有用的。

[1.14ecu100a的帧发送处理]

图14表示ecu100a中的帧发送处理时序的一例。以下,参照该图对ecu100a的帧发送处理进行说明。

ecu100a通过数据取得部160从传感器取得数据(例如由与发动机101关联的传感器测定出的车速)(步骤s1101)。

接下来,ecu100a基于所取得的传感器的数据通过帧生成部170生成应该发送的帧(数据帧)(步骤s1102)。

接下来,ecu100a对总线200a发送(广播)所生成的帧(步骤s1103)。该步骤s1101至s1103的处理能够以大概一定的周期周期性地被反复。

在ecu100b~100d中,也能够按与ecu100a同样的步骤进行帧发送处理。但是,发送的周期可能按各ecu而不同。

[1.15网关300的帧传送处理]

图15表示网关300中的帧传送处理时序的一例。以下,参照该图对网关300的帧传送处理进行说明。网关300在每次从总线200a以及总线200b中的任一个接收帧(数据帧)时,进行该帧传送处理。在此,使用网关300将从总线200a接收到的帧传送给总线200b的例子来进行说明。

网关300接收被发送(广播)到总线200a的帧(步骤s1201)。

接下来,网关300确认传送规则(参照图11)(步骤s1202)。

网关300在基于传送规则判定为所接收到的帧是应该传送的帧的情况下,基于该帧的内容生成传送用帧(步骤s1203)。

接下来,网关300向总线200b发送(广播)传送用帧,结束帧传送处理(步骤s1204)。此外,在基于步骤s1202中确认出的传送规则判定为所接收到的帧不是应该传送的帧的情况下,网关300不进行帧的传送地结束帧传送处理。

[1.16检测窗尺寸决定处理时序]

图16表示通过网关300以及服务器400的协作进行的检测窗尺寸决定处理时序的一例。以下,参照该图对检测窗尺寸决定处理时序进行说明。

网关300取得车辆识别信息(步骤s1301)。网关300从车辆识别信息保持部361取得车辆识别信息。在车辆识别信息保持部361中例如既可以在向车辆搭载网关300时(例如车辆制造时等)保持车辆识别信息,又可以通过网关300从保持预先记录的车辆识别信息的车辆内的ecu接收该车辆识别信息,由此使车辆识别信息保持于车辆识别信息保持部361。

网关300向服务器400发送在步骤s1301中取得的车辆识别信息(步骤s1302a)。由此,服务器400接收车辆识别信息(步骤s1302b)。此外,网关30向服务器400发送车辆识别信息的时刻例如是向车辆搭载网关300时(例如制造车辆时等),但也可以是其它的时刻,该时刻也可以存在多个。作为其它的时刻(网关300向服务器400发送车辆识别信息的时刻)的例子,可以举出车辆行驶开始时等此类每当使用车辆时(例如车辆发动机启动时、辅助设备开启(acc-on)时等)、每隔预定时间(例如一天)等。并且,网关300能够与向服务器400发送车辆识别信息的时刻的到来相匹配地执行图16所示的检测窗尺寸决定处理时序全部。

在服务器400中,根据在步骤s1302b中接收到的车辆识别信息,利用检测窗尺寸确定部440来确定检测窗尺寸(步骤s1303),将表示所确定出的检测窗尺寸的信息(检测窗尺寸信息)作为对于车辆识别信息的应答向网关300发送(步骤s1304a)。由此,网关300接收检测窗尺寸信息(步骤s1304b)。

网关300根据所接收到的检测窗尺寸信息,在加工处理部350中决定检测窗尺寸,并保持检测窗尺寸(步骤s1305)。

[1.17学习处理时序]

图17示出通过网关300以及服务器400的协作进行的学习处理时序的一例。在学习处理时序中,在车辆的车载网络中将对网关300所接收到的帧的集合施加加工处理而得到的特征信息向服务器400发送,在服务器400中将特征信息向基准模型反映。以下,参照图17对学习处理时序进行说明。

网关300若在加工处理部350中在每个所保持的检测窗尺寸的时间长的检测窗中从总线200a以及总线200b接收帧(数据帧)(步骤s1401),则对检测窗内的按id(消息id)区分的帧的接收数进行计数(步骤s1402)。

加工处理部350判定与检测窗尺寸对应的时间的经过(即1个检测窗的结束期的到来)(步骤s1403),检测窗的结束期到来后,基于按id区分的帧的接收数(计数数)并通过加工处理生成特征信息(步骤s1404)。接着,网关300向服务器400发送在加工处理部350中生成的特征信息(步骤s1405a),在加工处理部350中,清空计数数(步骤s1406),并返回关于接下来的检测窗的处理(即返回步骤s1401中的处理)。此外,在步骤s1403中判定为检测窗的结束期未到来的情况下,网关300返回步骤s1401中的处理。

与步骤s1405a中的网关300对特征信息的发送相呼应,在服务器400中,接收特征信息(步骤s1405b),在学习部430中,将所接收到的特征信息反映为基准模型(步骤s1407)。此外,服务器400既可以在每次接收特征信息时进行向基准模型的反映,又可以在接收多个特征信息后将多个特征信息储存于数据储存部420,将多个特征信息汇总在一起在学习部430中进行特征信息向基准模型的反映。可料想该学习处理时序通过将与车辆的车载网络中在正常状态下接收到的帧相关的特征信息反映为基准模型,而使得基准模型成为与在该车辆的车载网络的总线上出现的帧的出现频度相关的基准。基准模型例如按从车辆取得的各车辆识别信息来确定。基准模型例如按各车辆确定,但是例如也可以设为在同一车型的车辆中为共同。即,基准模型与服务器400根据来自车辆的车辆识别信息发送了表示检测窗尺寸的信息的该发送目的地的车辆对应地存在,表示该基准模型的模型信息在下述的模型更新处理时序中被发送给该车辆。此外,特征信息向基准模型的反映,例如也可以通过利用使用了特征信息的机器学习对基准模型进行更新来进行。

以下,使用图18对在学习处理时序中使用的检测窗尺寸的时间长的检测窗和通过加工处理生成的特征信息的一例进行说明。

在网关300的加工处理部350中,在检测窗尺寸的时间长的各期间(各检测窗t1、t2、t3)中,确定基于在检测窗内从总线接收到的帧的数的特征信息。在图18中,作为特征信息示出了将按所接收到的各消息id的帧的数设为分量的特征向量确定为特征信息的例子。在图18中,将id为1的帧表现为id1,将id为2的帧表现为id2等。特征向量例如是将检测窗内的id1的接收数(计数数)、id2的接收数、id3的接收数、id4的接收数分别设为分量的向量。向量的分量数例如是出现在总线上的所有的消息id的数。在图18的例子中表示了具有按id1、id2、id3、id4的各接收数的顺序排列的分量的特征向量。在检测窗t1中,id1、id2、id3的接收数是1,id4的接收数是0,因此,检测窗t1中的特征向量成为“1、1、1、0、……”。另外,在检测窗t2中,id1、id2、id4的接收数为1,id3的接收数为0,因此,检测窗t2中的特征向量成为“1、1、0、1、……”。另外,在检测窗t3中,id1、id3的接收数为1,id2、id4的接收数为0,因此,检测窗t3中的特征向量成为“1、0、1、0、……”。此外,在网关300中,将在检测窗尺寸的期间内计数出的按各id接收到的帧的数反映为服务器400的基准模型之前的网关300与服务器400的处理(加工处理等)的分担可以是任意方式。另外,也可以是,在加工处理中,通过使用主分量分析等来减少作为特征信息的特征向量的维数(分量的数)。

也可以是,在服务器400中,在将特征信息反映为基准模型时,例如实施用于使得使用了与该基准模型同样的预定模型的网关300中的异常检测能够有效地被进行的加工等。作为一例,服务器400借助将作为从网关300逐次取得的特征信息的、减少了上述的维数等后的特征向量的集合设为适合kd树(k-dimensionaltree)等最邻近距离的计算的数据构造来进行向基准模型的反映。

[1.18模型更新处理时序]

图19表示通过网关300以及服务器400的协作进行的模型更新处理时序的一例。在模型更新处理时序中,将在服务器400中更新后的基准模型反映为车辆的网关300保持的预定模型。以下,参照图19对模型更新处理时序进行说明。模型更新处理时序可以在任意的时刻(例如每隔一天)执行。

服务器400作为上述的学习处理时序的结果判定是否存在基准模型的更新(基准模型的内容的变化)(步骤s1501)。在存在基准模型的更新的情况下,服务器400向网关300发送表示更新后的基准模型的模型信息(步骤s1502a)。与此相呼应,网关300接收表示基准模型的模型信息(步骤s1502b)。

网关300若接收到模型信息则在异常检测处理部370中根据模型信息对模型保持部371保持的预定模型进行更新(步骤s1503)。由此,预定模型例如成为与服务器400中的基准模型同样。

[1.19异常检测处理时序]

图20表示通过网关300以及服务器400的协作进行的异常检测处理时序的一例。异常检测处理时序例如在车辆被使用的阶段执行。包括网关300监视在车辆的车载网络的总线200a、200b上传播的帧,使用预定模型判定是否发生着异常状态,由此来检测异常的处理。预定模型构成为通过上述的模型更新处理时序成为与通过上述的学习处理时序更新后的基准模型同样。此外,上述的学习处理时序能够在该异常检测处理时序之前(例如,车辆使用前即制造或者检查阶段等)进行,但是,也可以在使用车辆的阶段与异常检测处理时序并行地进行。以下,参照图20对异常检测处理时序进行说明。

网关300若接收到帧(步骤s1601),则在加工处理部350中对检测窗尺寸的检测窗内的按id区分的帧的接收数进行计数(步骤s1602),并通过加工处理例如生成作为特征向量的特征信息(步骤s1603)。在1个检测窗内,步骤s1601~步骤s1602的处理被反复进行,在检测窗的结束期进行步骤s1603的特征信息的生成,并将计数按id区分的帧的接收数的计数器清空。

接下来,网关300利用异常检测处理部370接收在加工处理部350中生成的特征信息,判定该特征信息是符合模型保持部371保持的预定模型所表示的基准、还是脱离了该基准(步骤s1604)。即,异常检测处理部370进行使用了特征信息和预定模型的运算处理,根据该运算处理的结果,判定特征信息是否脱离了预定模型所表示的基准(即是否异常)。作为运算处理的一例,可以举出计算相对于预定模型表示的基准(例如正常状态的特征向量的分布)的最邻近距离,并与阈值进行比较的处理,该预定模型由作为从加工处理部350接收到的特征信息的特征向量(参照图18)的、kd树等数据构造表示。例如,设为最邻近距离依照正态分布,在脱离了由阈值确定的、相对于平均的标准偏差的固定倍(例如3倍)的范围内的情况下,判定为异常。

网关300在步骤s1604中判定为特征信息未脱离预定模型表示的基准(符合基准)的情况下,判定为正常(步骤s1605),不特别进行向服务器400的发送。另一方面,在判定为特征信息脱离了预定模型表示的基准的情况下,判定为异常(步骤s1606),并将异常检测结果发送给服务器400(步骤s1607a)。

服务器400在接收异常检测结果(步骤s1607b)时将异常检测结果作为日志来保存(步骤s1608)。

[1.20实施方式1的效果]

在实施方式1涉及的异常检测系统10中,作为搭载于车辆的异常检测装置的网关300,向服务器400发送用于该车辆的识别的车辆识别信息,基于来自服务器400的应答来决定检测窗尺寸(为了进行异常检测而用于计数帧的接收数的单位时间)。由此,可能成为按各车辆使用恰当的检测窗尺寸而能够高精度地进行车载网络的异常的检测。另外,在异常检测系统10中,为了学习用于异常判定(检测)的模型(预定模型或者基准模型),而进行用于生成与在网关300侧接收到的帧相关的特征向量的加工处理,由此,会可能减少与服务器400之间的通信量。另外,在加工处理中,也能够进行通过主分量分析等来减少特征向量的维等,由此会能够进一步减少通信量,另外,结果可能成为能够减少用于基于模型的异常判定的运算量。另外,服务器400通过进行数据(从车辆接收到的特征信息)的储存、反映了特征信息的模型的构筑(基准模型的更新等),能够不受车载的网关300的受限资源的限制地构筑最佳的模型。另外,可能成为网关300取得在服务器400中构筑(更新)后的基准模型,并用于异常判定(检测),据此能够在车辆中迅速地进行异常与否的判定(即异常检测)。并且,由于网关300将异常检测结果通知给服务器400,因此,在服务器400中将异常检测结果作为日志保存,能够对车辆进行管理,另外,可能成为基于该异常检测结果来构筑更恰当的基准模型等。另外,例如,在利用车辆识别信息表示了车型那样的情况下,服务器400通过从同一车型的多个车辆收集特征信息会能够恰当地将将与该车型对应的基准模型构筑为能够在该车型中区别受攻击的状况和正常状态。并且,服务器400对该同一车型的车辆的网关300发送表示基准模型的模型信息,由此,同一车型的各车辆能够基于与基准模型同样的预定模型来恰当地检测异常。此外,可能成为能够通过异常检测来进行针对异常的各种应对(警告的报知、用于安全的行驶控制和其它处理)。

(实施方式2)

以下,对于将实施方式1中示出的异常检测系统中的车辆的车载网络系统进行变形后的实施方式进行说明。

在实施方式1中,车辆的网关300通过与车辆外部的服务器400进行通信来决定检测窗尺寸,为了通过学习对成为用于车载网络的异常检测的预定模型的基础的基准模型进行更新,将基于检测窗尺寸的量的时间内的按id区分的帧的接收数的特征信息发送给服务器400。与此相对,在本实施方式中,对于车辆的车载网络系统中的异常检测装置独立地(即不依靠车辆外部的服务器)决定用于异常检测的检测窗尺寸的例子进行说明。

[2.1车载网络系统的构成]

图21示出本实施方式涉及的车辆的车载网络系统的构成。此外,对于与实施方式1(参照图1)同样的构成,在图21中标注与图1相同的标号,并省略说明。

图21所示的车辆中的车载网络系统构成为包括ecu100a、ecu100b、ecu100c及ecu100d、总线200a、200b和网关1300(异常检测装置的一例)。各ecu能够遵循can协议经由车辆内的总线200a、200b来进行帧的授受。

网关1300是将实施方式1中示出的网关300进行局部地变形后的异常检测装置,此处未特别示出的点,与网关300相同。

网关1300与总线200a以及总线200b连接,具有将从一方的总线接收到的帧传送给另一方的总线的功能,并且具有通过基于从总线接收到的帧而判定是否异常(例如判定是否处于攻击帧被传播到总线上的异常状态)来检测异常的功能。另外,网关1300具有决定用于异常检测(异常与否的判定)等的检测窗尺寸的功能和基于与在作为检测窗尺寸的时间长的期间的检测窗内在车载网络接收到的帧的数相关的特征信息来更新用于异常检测的预定模型的功能。

[2.2网关1300的构成]

图22是网关1300的构成图。网关1300构成为包括帧收发部310、帧解释部320、接收id判断部330、接收id列表保持部340、加工处理部1350、车辆识别信息保持部361、异常检测处理部1370、模型保持部1371、传送处理部380、传送规则保持部381、帧生成部390、检测窗尺寸决定部1440、检测窗尺寸确定用表保持部450、学习部1430、异常检测结果保持部1460。这些各构成要素的各功能例如通过网关1300中的通信线路、执行保存于存储器的控制程序的处理器或者数字电路等来实现。此外,对于与图9所示的网关300同样的构成或者与图12所示的服务器400同样的构成,在图22中标注同一标号,并省略说明。

检测窗尺寸决定部1440作为决定检测窗尺寸的决定部发挥功能。检测窗尺寸决定部1440根据车辆识别信息保持部361保持的车辆识别信息,并使用检测窗尺寸确定用表保持部450保持的检测窗尺寸确定用表(参照图13)来决定检测窗尺寸,并通知给加工处理部1350。

加工处理部1350通过对实施方式1中示出的加工处理部350的一部分进行变形而得到,保持从检测窗尺寸决定部1440通知的检测窗尺寸,基于从帧解释部320通知的id域的值,将按检测窗尺寸的时间长的各检测窗从总线200a、200b逐次接收到的帧的集合(逐次通知的id域的值的集合)变换为表示检测窗内的按id(消息id)区分的帧的接收数(以按id区分的方式计数在检测窗尺寸的检测窗内的帧的接收而得到的计数数)的特征信息,并定期地将特征信息通知给学习部1430。即加工处理部1350作为确定特征信息的确定部来发挥功能。另外,加工处理部1350向异常检测处理部1370逐次通知基于在检测窗尺寸的检测窗内逐次从总线200a、200b接收到的帧的数的该特征信息。

模型保持部1371保持预定模型(表示与出现在车辆的车载网络的总线上的数据帧的出现频度相关的基准的模型)。

学习部1430基于从加工处理部1350通知的特征信息,构筑预定模型并将预定模型保持于模型保持部1371。即,学习部1430基于特征信息来更新模型保持部1371保持的预定模型。学习部1430对预定模型的更新,能够通过与在实施方式1中示出的学习部430对基准模型的更新同样的方法来进行。学习部1430例如能够基于逐次通知的特征信息,并通过例如机器学习来逐次更新预定模型。

异常检测处理部1370基于从帧解释部320通知的id域的值接收在加工处理部1350中生成的特征信息,进行使用了模型保持部1371保持的预定模型和该特征信息的运算处理,并根据该运算处理的结果来判定是否异常。即,异常检测处理部1370作为通过使用了特征信息以及预定模型的运算处理来判定与从总线接收到的帧的集合相关的特征信息是否符合预定模型表示的基准的判定部来发挥功能。在该判定中,若反映为特征信息的检测窗尺寸内的按id区分的数据帧的接收数符合预定模型表示的基准(例如表示正常状态下的数据帧的出现频度的基准),则判定为正常,若不符合基准(即脱离了基准)则判定为异常。另外,异常检测处理部370将通过该运算处理得到的异常与否的判定结果(即异常检测结果)作为日志保存于异常检测结果保持部1460。

[2.3检测窗尺寸决定处理时序]

图23示出网关1300中的检测窗尺寸决定处理时序的一例。以下,参照该图对检测窗尺寸决定处理时序进行说明。执行该检测窗尺寸决定处理时序的时刻例如是向车辆搭载网关1300时(例如制造车辆时等),但是,也可以是其它的时刻,该时刻也可以存在多个。作为其它的时刻的例子,可以举出每当使用车辆时(例如车辆的发动机启动时、辅助设备开启(acc-on)时等)、每隔预定时间(例如一天)等。此外,对于与图16同样的步骤,在图23中标注同一标号,并适当省略说明。

网关1300取得车辆识别信息(步骤s1301)。

接下来,网关1300根据在步骤s1301中取得的车辆识别信息,使用检测窗尺寸确定用表(参照图13)来决定检测窗尺寸(步骤s2303)。网关1300保持所决定出的检测窗尺寸,在加工处理部1350中执行加工处理时使用检测窗尺寸。此外,网关1300也可以具有与车辆外部进行通信的功能,在该情况下,既可以通过通信从车辆外部取得检测窗尺寸确定用表,又可以通过从记录介质等读出检测窗尺寸确定用表而取得。

[2.4学习处理时序]

图24示出网关1300中的学习处理时序的一例。在学习处理时序中,网关1300通过基于对从总线200a、200b接收到的帧的集合施加加工处理而得到的特征信息的学习,来更新模型保持部1371保持的预定模型。以下,参照图24对学习处理时序进行说明。此外,关于与图17同样的步骤,在图24中标注同一标号,并适当省略说明。

网关1300当在每个检测窗尺寸的时间长的检测窗中从总线200a以及总线200b接收帧时(步骤s1401),对检测窗内的按id区分的帧的接收数进行计数(步骤s1402)。

加工处理部1350,在经过与检测窗尺寸相应的时间(检测窗的结束期到来)后,基于按id区分的帧的接收数(计数数)并通过加工处理来生成特征信息(步骤s1404)。

网关1300在学习部1430中将在加工处理部1350中生成的特征信息反映为模型保持部1371保持的预定模型(步骤s2407)。可料想该学习处理时序通过将与在车载网络中在正常状态下接收到的帧相关的特征信息反映为预定模型而使得预定模型成为与在该车载网络的总线上出现的帧的出现频度相关的基准。特征信息向预定模型的反映例如也可以通过使用了特征信息的机器学习来更新预定模型,据此来进行。此外,加工处理部1350与在实施方式1中示出的加工处理部350同样地,既可以将以在检测窗中接收到的各消息id的帧的数为分量的特征向量作为特征信息,又可以通过在加工处理中使用主分量分析等来减少特征向量的维数。另外,也可以是,学习部1430在将特征信息反映为预定模型时,例如实施用于使得使用了该预定模型的异常检测被有效地进行的加工等。作为一例,学习部1430凭借将特征向量的集合设为适合kd树等最邻近距离的计算的数据构造来进行向预定模型的反映。

接着步骤s2407的处理,网关1300将计数数清空(步骤s1406),返回步骤s1401中的处理。

[2.5异常检测处理时序]

图25表示网关1300中的异常检测处理时序的一例。异常检测处理时序例如在使用车辆的阶段被执行。在异常检测处理时序中,网关1300监视在车辆的车载网络的总线200a、200b上传播的帧,并使用预定模型来判定是否发生着异常状态,由此对异常进行检测。此外,上述的学习处理时序能够在该异常检测处理时序之前(例如,车辆使用前即制造或者检查阶段等)进行,但是,也可以在使用车辆的阶段与异常检测处理时序并行地进行。以下,参照图25对于异常检测处理时序进行说明。此外,关于与图20同样的步骤,在图25中标注了同一标号,并适当省略说明。

在网关1300中,在接收帧时(步骤s1601),在加工处理部1350中对检测窗尺寸的检测窗内的按id区分的帧的接收数进行计数(步骤s1602),通过加工处理例如生成作为特征向量的特征信息(步骤s1603)。在1个检测窗内,步骤s1601~步骤s1602的处理被反复执行,在检测窗的结束期进行步骤s1603的特征信息的生成,清空对按id区分的帧的接收数进行计数的计数器。

接下来,网关1300通过异常检测处理部1370接收在加工处理部1350中生成的特征信息,并且判定该特征信息符合模型保持部1371保持的预定模型所表示的基准、还是脱离了该基准(步骤s1604)。

网关1300,在步骤s1604中判定为特征信息不脱离预定模型表示的基准(符合基准)的情况下,判定为正常(步骤s1605),另一方面,在判定为特征信息脱离预定模型表示的基准的情况下,判定为异常(步骤s1606),并将该判定结果作为日志进行保存(步骤s2608)。此外,网关1300也可以使用该判定结果并通过机器学习(例如监督式学习)等来更新预定模型。

[2.6实施方式2的效果]

实施方式2涉及的异常检测装置(网关1300)即便不与服务器等进行通信也能够自己取得用于搭载有本装置的车辆的识别的车辆识别信息,并根据该车辆识别信息来决定检测窗尺寸(出于异常检测的目的而用于对帧的接收数进行计数的单位时间)。由此,可能成为网关1300能够对搭载了本装置的车辆使用恰当的检测窗尺寸来高精度地进行车载网络的异常检测。另外,可能成为网关1300进行反映了基于车载网络的监视生成的特征信息的预定模型的构筑(预定模型的更新等),并使用预定模型来进行异常判定(检测),因此能够在车辆中迅速地进行异常与否的判定(即异常检测)。另外,网关1300能够将异常与否的判定结果作为日志进行保存,能够活用该判定结果。

(其它变形例)

如上所述,作为本公开涉及的技术的例示,说明了实施方式1、2。然而,本公开涉及的技术不限定于此,在适当进行了变更、替换、附加、省略等的实施方式中也能够加以适用。例如,以下的变形例也包含在本公开的一个实施方式中。

(1)在上述实施方式中,示出了所决定出的检测窗尺寸的时间长的检测窗以不重复的方式连续的例子(参照图18),但是不限于与检测窗尺寸相应的期间即各检测窗以不重复的方式连续。如图26所示,也可以是,网关(异常检测装置)对也在与检测窗t1局部重复的检测窗ta内从总线接收的帧的数以按id区分的方式进行计数,由此,生成以按id区分的接收数(计数数)作为分量的特征向量并作为特征信息。在该情况下,例如也可以设为网关使表示检测窗ta的开始时间点与成为基准的开始时间点(例如现有的检测窗t1的开始时间点)之差即偏移时间的信息包含于特征信息并发送给服务器。另外,例如也可以设为将与检测窗尺寸(例如10ms)相应的各检测窗的开始时间点规定为每隔一定时间(例如1ms)等。另外,也可以设为将从总线接收到确定的id的帧的时刻等作为检测窗的开始时间点。

(2)在上述的实施方式中,将具有数据帧(消息)的传送功能的网关300、1300作为用于检测异常的异常检测装置的一例来示出,但是,异常检测装置只要是与1个以上的总线连接的装置即可,不需要一定具有传送功能。异常检测装置也可以是一并具有检测异常的功能以外的功能的ecu。另外,例如,异常检测装置既可以省略网关300、1300中的1个以上的构成要素,又可以使该1个以上的构成要素移动到其它的ecu。

(3)在上述实施方式中,以标准id格式(参照图2)记述了can协议中的数据帧(消息),但也可以是扩展id格式,消息id也可以是扩展id格式下的扩展id等。另外,在上述实施方式中示出的can协议也可以是还包含ttcan(time-triggeredcan)、canfd(canwithflexibledatarate)等派生协议的广义的含义。

(4)在上述实施方式1中,示出了网关300具有外部通信部360的例子,但是也可以经由与车载网络连接的主机单元(headunit)或者其它的ecu(具有与车外进行通信的功能的装置)来进行通信。主机单元例如是为了实现多媒体再现、汽车导航等功能而具有与车辆外部的通信功能的ecu。另外,也可以设为在车载网络中在与obd2(on-boarddiagnostics2)等诊断端口连接的诊断工具(故障诊断工具)等具有与服务器400的通信功能的情况下,网关300经由该诊断工具与服务器400进行通信。

(5)在上述实施方式中,网关300、1300在基于在检测窗尺寸的期间内的按id区分的帧的接收数的特征信息从预定模型表示的基准脱离的情况下判定为异常,但是,也可以是,通过使例如预定模型表示的内容相反,而将符合预定模型的情况(未脱离的情况)判定为异常,将脱离的情况判定为正常。另外,在实施方式1中设为仅在异常检测结果为异常的情况下,网关300向服务器400发送异常检测结果并在服务器400中保存异常检测结果,但是也可以设为在正常的情况下也保存异常检测结果。

(6)在上述实施方式中,示出了网关300、1300对在与检测窗尺寸相应的期间即检测窗内从总线接收到的数据帧的数以按id区分的方式进行计数,由此基于该接收数(计数数)生成特征信息的例子。但是,也可以设为特征信息基于以按id区分的方式计数出的计数数的总数(接收到的所有的id的数据帧的总数)来生成特征信息。此外,在该情况下,也可以设为与id无关地计数所接收到的数据帧的数,另外,基准模型或者预定模型设为同样的构成(即以不区别id的方式表示帧的出现频度的基准的构成),以使得能够与该特征信息进行对比。

(7)在上述实施方式中示出了预定模型表示能够与特征信息进行对比的基准(特征信息应该适合的基准)的例子,该特征信息基于由网关300、1300在检测窗尺寸的期间内从总线接收到的帧的数。此外,也可以将预定模型构成为表示能够与从总线接收到的帧进行对比的基准。在该情况下也可以设为省略图20以及图25中的步骤s1602、s1603,在步骤s1604中判定从总线接收到的帧是否符合(脱离)预定模型表示的基准。另外,在上述实施方式1中,设为通过在网关300中进行加工处理来生成特征信息并发送给服务器400(例如步骤s1404、s1405a),但是,也可以设为在网关300中,将关于从总线接收到的各帧的id以及接收时刻发送给服务器400,在服务器400中进行加工处理。

(8)在上述实施方式中示出的异常检测结果涉及的日志,也可以保存于服务器400以及网关1300以外的装置(例如车内的数据保存专用装置、存储器充足的主机单元等)。能够根据需要读出日志的信息,并将日志的信息活用于车辆的管理或者用于异常检测的模型的设计、构筑等。

(9)上述实施方式中的网关及其它的ecu,例如是包括处理器、存储器等的数字电路、模拟电路、通信线路等的装置,但也可以包括硬盘装置、显示器、键盘、鼠标等硬件构成要素。另外,也可以取代由处理器执行存储器所存储的控制程序并以软件方式来实现功能,而是通过专用的硬件(数字电路等)来实现其功能。

(10)上述实施方式中的构成各装置的构成要素的一部分或者全部也可以由一个系统lsi(largescaleintegration:大规模集成电路)构成。系统lsi是将多个构成部集成于一个芯片上而制造出的超多功能lsi,具体而言,是包含微处理器、rom、ram等而构成的计算机系统。所述ram中存储有计算机程序。所述微处理器按照所述计算机程序进行工作,由此系统lsi实现其功能。另外,构成上述各装置的构成要素的各部既可以单独地单芯片化,也可以以包含一部分或全部的方式单芯片化。另外,虽然此处设为系统lsi,但根据集成度不同,也可以称为ic、lsi、超大lsi(superlsi)、特大lsi(ultralsi)。另外,集成电路化的方法不限于lsi,也可以通过专用电路或者通用处理器实现。也可以利用能够在lsi制造后进行编程的fpga(fieldprogrammablegatearray;现场可编程门阵列)或者可以对lsi内部的电路单元的连接和/或设定进行重构的可重构处理器(reconfigurableprocessor)。进而,随着半导体技术的发展或者派生的其他技术的出现,如果出现能够替代lsi的集成电路化的技术,当然也可以利用该技术进行功能块的集成化。也存在适用生物技术的可能性。

(11)构成上述各装置的构成要素的一部分或者全部也可以由能够装卸于各装置的ic卡或者单体模块构成。所述ic卡或者所述模块是由微处理器、rom、ram等构成的计算机系统。所述ic卡或者所述模块也可以包含上述超多功能lsi。微处理器按照计算机程序进行工作,由此所述ic卡或者所述模块实现其功能。该ic卡或者该模块也可以具有抗篡改性。

(12)作为本公开的一个技术方案,例如也可以是包含图14~图17、图19、图20、图23~图25等所示的处理步骤的全部或一部分的异常检测方法。例如,异常检测方法是用于具备多个ecu的车载网络系统中的异常检测的异常检测方法,该多个ecu遵循can协议并经由车辆内的总线来进行消息的授受,该异常检测方法包括:进行单位时间(例如与检测窗尺寸相应的时间)的决定;和进行使用了特征信息和预定模型的运算处理,根据运算处理的结果来判定是否异常,该特征信息基于在所决定出的单位时间内从总线接收到的消息的数,该预定模型表示与消息的出现频度相关的基准。单位时间的决定例如能够基于车辆识别信息、与车辆有关的人员等的识别信息、其它的信息等来进行。消息包含表示消息的种类的消息id,异常检测方法例如包括:基于用于车辆识别的车辆识别信息来进行单位时间的决定的决定步骤(例如步骤s1305、s2303等);将以在决定步骤中决定出的单位时间(在多次进行决定的情况下,例如是最新的单位时间)内从总线接收到的各消息id的消息的数作为分量的特征向量确定为特征信息的确定步骤(例如步骤s1404等);以及使用在确定步骤中确定出的特征信息和预定模型来进行运算处理,根据运算处理的结果来进行是否异常的判定的判定步骤(例如步骤s1604等)。另外,例如,异常检测方法还包括基于在确定步骤中逐次确定出的多个特征信息来逐次更新预定模型的更新步骤(例如步骤s1503、s2407等)。另外,作为本公开的一个技术方案,既可以是利用计算机实现该异常检测方法涉及的处理的计算机程序,又可以是由所述计算机程序构成的数字信号。另外,作为本公开的一个技术方案,也可以将所述计算机程序或所述数字信号记录于计算机可读取的记录介质例如软盘、硬盘、cd-rom、mo、dvd、dvd-rom、dvd-ram、bd(blu-ray(注册商标)disc)、半导体存储器等。另外,也可以是记录在上述的记录介质中的所述数字信号。另外,作为本公开的一个技术方案,也可以将所述计算机程序或所述数字信号经由电通信线路、无线或有线通信线路、以因特网为代表的网络、数据广播等进行传送。另外,作为本公开的一个技术方案,也可以是具有微处理器和存储器的计算机系统,所述存储器记录有上述计算机程序,所述微处理器可以按照所述计算机程序进行工作。另外,也可以通过将所述程序或所述数字信号记录在所述记录介质中转移、或经由所述网络等将所述程序或所述数字信号进行转移,通过独立的其他的计算机系统来实施。

(13)通过将上述实施方式以及上述变形例中示出的各构成要素以及功能进行任意组合而实现的实施方式也包含在本公开的范围中。

产业上的可利用性

本公开能够利用于检测针对车载网络的攻击。

标号的说明

10异常检测系统;40网络;100a发动机ecu;100b制动器ecu;100c门开闭传感器ecu;100d窗开闭传感器ecu;101发动机;102制动器;103门开闭传感器;104窗开闭传感器;110、310帧收发部;120、320帧解释部;130、330接收id判断部;140、340接收id列表保持部;150帧处理部;160数据取得部;170、390帧生成部;200a、200b总线;300、1300网关(异常检测装置);350、1350加工处理部;360外部通信部;361车辆识别信息保持部;370、1370异常检测处理部;371、1371模型保持部;380传送处理部;381传送规则保持部;400服务器;410通信部;420数据储存部;430、1430学习部;440检测窗尺寸确定部;450检测窗尺寸确定用表保持部;460、1460异常检测结果保持部;1440检测窗尺寸决定部

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1