1.本申请涉及信息技术领域,更具体地涉及异常消息的识别方法、异常消息识别模型的训练方法及装置。
背景技术:2.随着汽车的电动化,车载通信网络支持的电子控制系统、传感器、致动器、电子控制单元(electronic control unit,ecu)以及通信接口不断增加,使得车载通信网络以及通过通信系统进行通信的部件越来越容易受到攻击,例如,网络攻击、黑客攻击、干扰车载网络的操作等,可能会危及车辆安全和性能。上述车辆中电子控制系统日益复杂的情况,增加了识别、检测车辆中的各部件之间的异常消息的难度。
3.目前,通常采用入侵检测系统(intrusion detection system,ids)对车辆中的异常消息进行识别。ids是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。ids主要是基于机器学习(machine learning,ml)实现的,即通过基于机器学习的方法对异常消息识别模型进行训练,并使用训练完成的异常消息识别模型对车辆中传输的信息进行识别,以提高信息传输的安全性。
4.基于现有的异常消息识别方案,在对异常消息识别模型进行训练时,仅输入两条消息之间的特征值的差异值(例如,到达时间间隔),后期在基于该异常消息识别模型对异常消息进行识别时,也是基于两条消息之间的差异值进行的。然而,实际情况中每两条消息都不是严格按照一个相同的差异值进行传输的,每两条消息之间可能对应多种差异值,这样,上述基于差异值进行训练得出的异常消息识别模型不够准确,继而也会降低基于该异常消息识别模型识别异常消息的准确度。
技术实现要素:5.本申请提供一种异常消息的识别方法、异常消息识别模型的训练方法及装置,以提高异常消息识别模型的准确性,进而提高基于该异常消息识别模型识别异常消息的准确度。
6.第一方面,提供了一种识别异常消息的方法,包括:安全执行单元seu接收第一消息,并确定所述第一消息的特征值与第二消息的特征值之间的第一差异值,所述第二消息为在接收所述第一消息之前接收到的消息;所述seu从预设的多个差异类中确定所述第一差异值对应的差异类,所述多个差异类中不同的差异类对应差异值的不同的取值范围;所述seu将所述第一差异值对应的差异类的标识输入预存的异常消息识别模型,以确定所述第一消息为异常消息或非异常消息。
7.在本申请实施例中,通过将两条消息的特征值之间的差异值对应的取值范围划分为多个差异类,并将多个差异类中第一差异值对应的差异类的标识输入异常消息识别模型,以确定第一消息为异常消息或非异常消息,避免了现有技术中,仅向异常消息识别模型输入两个消息之间的特征值的差异值(例如,到达时间间隔),有利于提高基于异常消息识
别模型进行异常消息识别的准确度。
8.可选地,上述第二消息为非异常消息。有利于避免由于第二消息为异常消息而导致第二消息的特征值异常,从而影响第一差异值,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
9.在一种可能的实现方式中,所述特征值为消息的到达时间,所述第一差异值为所述第一消息的到达时间与所述第二消息的到达时间之间的到达时间间隔。
10.在本申请实施例中,通过将两条消息之间的到达时间间隔对应的取值范围划分为多个差异类,并将多个差异类中第一消息与第二消息之间的到达时间间隔对应的差异类的标识输入异常消息识别模型,以确定第一消息为异常消息或非异常消息,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
11.在一种可能的实现方式中,所述方法还包括:所述seu确定所述第一消息的特征值与第三消息的特征值之间的第二差异值,所述第三消息为在接收所述第一消息之前接收到的非异常消息;所述seu从所述多个差异类中确定所述第二差异值对应的差异类;所述seu将所述第一差异值对应的差异类的标识输入预存的异常消息识别模型,以确定所述第一消息为异常消息或非异常消息,包括:所述seu将所述第一差异值对应的差异类的标识,以及所述第二差异值对应的差异类的标识输入所述异常消息识别模型,以确定所述第一消息为异常消息或非异常消息。
12.在本申请实施例中,确定第一消息的特征值与第三消息的特征值之间的第二差异值,并将第二差异值对应的差异类的标识与第一差异值对应的差异类的标识都出入异常消息识别模型,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
13.在一种可能的实现方式中,所述特征值为消息的到达时间,所述第二差异值为所述第一消息的到达时间与所述第三消息的到达时间之间的到达时间间隔。
14.在本申请实施例中,确定第一消息与第三消息之间的到达时间间隔,并将第一消息与第三消息之间的到达时间间隔对应的差异类的标识,与第一消息与第二消息之间的到达时间间隔对应的差异类的标识都出入异常消息识别模型,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
15.在一种可能的实现方式中,所述多个差异类中不同的差异类对应差异值的不同的取值范围属于预设的多个取值范围,所述预设的多个取值范围是基于自然断点算法,对所述特征值的第一取值范围进行划分得到的,所述第一取值范围的上限为所述异常消息识别模型的训练数据集中所述特征值对应的最大值,所述第一取值范围的下限为所述数据集中所述特征值对应的最小值。
16.在本申请实施例中,基于自然断点算法将特征值对应的第一取值范围划分为上述多个取值范围,以对应不同的差异类,有利于提高多个取值范围划分的合理性。
17.在一种可能的实现方式中,所述方法还包括:所述seu确定所述第一消息的特征信息,所述第一消息的特征信息包括所述第一消息的有效载荷中每个字节对应的载荷数据的,所述第一消息的长度或所述第一消息的消息标识中的一种或多种;所述seu将所述第一差异值对应的差异类的标识输入预存的异常消息识别模型,包括:所述seu将所述第一差异值对应的差异类的标识以及所述第一消息的特征信息,输入所述异常消息识别模型。
18.在本申请实施例中,将所述第一差异值对应的差异类的标识以及所述第一消息的
特征信息,输入所述异常消息识别模型,有利于提高异常消息识别模型识别异常消息的准确性。
19.第二方面,提供一种异常消息识别模型的训练方法,包括:获取训练数据集,所述训练数据集包含n条第一训练消息,以及n条第一训练消息的n个第一差异值对应的n个差异类的n个标识,所述n个第一差异值为所述n条第一训练消息的特征值与对应的n条第二训练消息的特征值之间的差异值,所述n条第一训练消息与所述n条第二训练消息一一对应,所述n条第二训练消息为在对应的所述n条第一训练消息到达目标节点之前到达的消息,所述n个差异类中不同的差异类对应差异值不同的取值范围,其中,n为大于1的正整数;基于所述训练数据集对预存的原始异常消息识别模型进行训练,得到异常消息识别模型,所述异常消息识别模型用于确定待识别消息为异常消息或非异常消息。
20.在本申请实施例中,通过将n条第一训练消息的n个第一差异值对应的n个差异类的n个标识作为训练数据集,并基于该训练数据集对原始异常消息识别模型进行训练,避免了现有技术中,直接基于将两个消息之间的特征值的差异值(例如,到达时间间隔),对原始异常消息识别模型进行训练,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
21.可选地,上述n条第一训练消息的特征值可以为n条第一训练消息到达目标节点的到达时间,n条第二训练消息的特征值可以为n条第二训练消息到达目标节点的到达时间,上述n条第一训练消息的n个第一差异值,可以为n条第一训练消息与n条第二训练消息到达目标节点的到达时间间隔。
22.在本申请实施例中,通过将n条第一训练消息的n个第一差异值对应的n个差异类的n个标识作为训练数据集中的训练数据,并基于该训练数据集对原始异常消息识别模型进行训练,避免了现有技术中,直接基于将两个消息之间的特征值的差异值(例如,到达时间间隔),对原始异常消息识别模型进行训练,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
23.可选地,上述n条第二训练消息中的至少部分消息为非异常消息。有利于避免由于第二消息为异常消息而导致第二消息的特征值异常,从而影响第一差异值,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
24.在一种可能的实现方式中,所述训练数据集还包括所述n条第一训练消息的n个第二差异值对应的n个差异类的n个标识,所述n个第二差异值为所述n条第一训练消息的特征值与对应的n条第三训练消息的特征值之间的n个差异值,所述n条第一训练消息与所述n条第三训练消息一一对应,所述n条第三训练消息为在对应的第一训练消息到达所述目标节点之前到达的消息,且所述n条第三训练消息为非异常消息。
25.在本申请实施例中,通过将n条第一训练消息的n个第二差异值对应的n个差异类的n个标识作为训练数据集,其中n条第三训练消息为非异常消息,并基于该训练数据集对原始异常消息识别模型进行训练,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
26.可选地,上述n条第一训练消息的特征值可以为n条第一训练消息到达目标节点的到达时间,n条第三训练消息的特征值可以为n条第三训练消息到达目标节点的到达时间,上述n条第一训练消息的n个第二差异值,可以为n条第一训练消息与n条第三训练消息到达
目标节点的到达时间间隔。
27.在本申请实施例中,通过将n条第一训练消息的n个第二差异值对应的n个差异类的n个标识作为训练数据集中的训练数据,并基于该训练数据集对原始异常消息识别模型进行训练,避免了现有技术中,直接基于将两个消息之间的特征值的差异值(例如,到达时间间隔),对原始异常消息识别模型进行训练,有利于提高基于异常消息识别模型进行异常消息识别的准确度。
28.在一种可能的实现方式中,在基于所述训练数据集对预存的原始异常消息识别模型进行训练,得到异常消息识别模型之前,所述方法还包括:确定所述多条训练消息的特征值的最大值和所述特征值的最小值;根据所述最大值和所述最小值确定所述特征值的取值范围;将所述特征值的取值范围划分为不重叠的多个子范围,每个子范围对应一个第一差异类。
29.在本申请实施例中,基于多条训练消息的特征值的最大值和所述特征值的最小值,确定特征值的取值范围,并将所述特征值的取值范围划分为不重叠的多个子范围,其中,每个子范围对应一个第一差异类,即提供了一种确定多个差异类的通用方法,以扩大本申请实施例的应用场景。
30.第三方面,提供了一种识别异常消息的装置,所述装置包括用于执行第一方面或第一方面任一种可能实现方式中的各个单元。
31.第四方面,提供了一种识别异常消息的装置,所述装置包括用于执行第二方面或第二方面任一种可能实现方式中的各个单元。
32.第五方面,提供了一种识别异常消息的装置,所述装置具有实现上述第一方面的方法设计中的装置的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
33.第六方面,提供了一种识别异常消息的装置,所述装置具有实现上述第二方面的方法设计中的装置的功能。这些功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的单元。
34.第七方面,提供了一种计算设备,包括输入输出接口、处理器和存储器。该处理器用于控制输入输出接口收发信号或信息,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该计算设备执行上述第一方面中的方法。
35.第八方面,提供了一种计算设备,包括输入输出接口、处理器和存储器。该处理器用于控制输入输出接口收发信号或信息,该存储器用于存储计算机程序,该处理器用于从存储器中调用并运行该计算机程序,使得该计算设备执行上述第二方面中的方法。
36.第九方面,提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
37.第十方面,提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
38.第十一方面,提供了一种芯片系统,该芯片系统包括处理器,用于计算设备实现上述方面中所涉及的功能,例如,生成,接收,发送,或处理上述方法中所涉及的数据和/或信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存终端设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包括芯片和其他分立器件。
附图说明
39.图1是本申请实施例的异常消息识别模型应用的系统架构的示意图。
40.图2是本申请实施例的运行异常消息识别模型的硬件设备的示意图。
41.图3是本申请实施例适用的车辆300的功能框图。
42.图4示出了传统的异常消息识别模型的示意图。
43.图5是本申请实施例的异常消息的识别方法示意性流程图。
44.图6是本申请实施例中到达时间间隔与多个差异类之间的对应关系的示意图。
45.图7是本申请实施例的异常消息识别模型的示意图。
46.图8是本申请另一实施例的异常消息识别方法的流程图。
47.图9是本申请另一实施例的异常消息识别模型的示意图。
48.图10是本申请实施例提供了一种系统架构1000的示意图。
49.图11是本申请实施例的异常消息识别模型的训练方法的示意性流程图。
50.图12是本申请另一实施例的异常消息识别模型的训练方法的示意性流程图。
51.图13是本申请实施例的异常消息的识别装置的示意图。
52.图14是本申请实施例的异常消息识别模型的训练装置的示意图。
53.图15是本申请另一实施例的计算设备的示意图。
具体实施方式
54.下面将结合附图,对本申请中的技术方案进行描述。
55.为了便于理解,下文结合图1介绍本申请实施例的异常消息识别模型应用的系统架构的示意图。图1所示的系统100包括执行设备210、训练设备220、数据库230、客户设备240、数据存储系统250以及数据采集设备260。
56.数据采集设备260用于采集消息的特征数据并存入数据库230,训练设备220基于数据库230中维护的训练数据生成目标模型/规则201(即上文的异常消息识别模型)。下面将更详细地描述训练设备220如何基于训练数据得到目标模型/规则201,以使得目标模型/规则201能够识别异常消息。
57.需要说明的是,上述异常消息识别模型的训练过程请参见下文中图所示的方法,为了简洁,在此不再具体赘述。
58.训练设备220得到的目标模型/规则可以应用不同的系统或设备中。在本申请实施例中,上述目标模型/规则可以应用于船舶中通信网络或车载网络,例如,can。
59.执行设备210可以调用数据存储系统250中的数据、代码等,也可以将数据、指令等存入数据存储系统250中。可选地,上述执行设备210可以包括计算模块211、输入/输出(input/output,i/o)接口212。
60.i/o接口212,用于与外部设备进行数据交互,“用户”可以通过客户设备240向i/o接口212输入数据。
61.计算模块211使用目标模型/规则201对输入的待识别的消息数据进行处理,以确定待识别的消息为异常消息或非异常消息。
62.最后,i/o接口212将处理结果返回给客户设备240,提供给用户。可选地,上述客户设备240可以是船舶中的显示装置,以提醒用户识别出异常消息。上述客户设备240还可以
是车载设备中的显示装置,以提供用户识别出异常消息。
63.需要说明的是,训练设备220可以针对不同的目标,基于不同的数据生成相应的目标模型/规则201,以给用户提供更佳的结果。
64.在图1中,用户可以手动指定输入执行设备210中的数据,例如,在i/o接口212提供的界面中操作。另一种情况下,客户设备240可以自动地向i/o接口212输入数据并获得结果,如果客户设备240自动输入数据需要获得用户的授权,用户可以在客户设备240中设置相应权限。用户可以在客户设备240查看执行设备210输出的结果,具体的呈现形式可以是显示、声音、动作等具体方式。客户设备240也可以作为数据采集端将采集到消息的特征数据存入数据库230。
65.值得注意的,图1仅是本发明实施例提供的一种系统架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图1中,数据存储系统250相对执行设备210是外部存储器,在其它情况下,数据存储系统250也可以将数据存储系统250置于执行设备210中。
66.下文结合图2介绍本申请实施例的运行异常消息识别模型的硬件设备的示意图。需要说明的是,本申请实施例中的异常消息检测模型可以通过图2所示的神经网络处理器50实现。
67.神经网络处理器(neural
‑
network processing unit,npu)50作为协处理器挂载到主中央处理器(host central processing unit,host cpu)上,由host cpu分配任务。npu的核心部分为运算电路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据并进行运算。
68.在一些实现中,运算电路503内部包括多个处理单元(process engine,pe)。在一些实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
69.举例来说,假设有输入矩阵a,权重矩阵b,输出矩阵c。运算电路从权重存储器502中取矩阵b相应的数据,并缓存在运算电路中每一个pe上。运算电路从输入存储器501中取矩阵a数据与矩阵b进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器(accumulator)508中。
70.向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/非全连接层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归一化(local response normalization)等。
71.在一些实现方式中,向量计算单元507能将经处理的输出的向量存储到统一缓存器506。例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如用于在神经网络中的后续层中的使用。
72.统一存储器506用于存放输入数据以及输出数据。
73.存储单元访问控制器(direct memory access controller,dmac)505用于将外部
存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
74.总线接口单元(bus interface unit,biu)51,用于通过总线实现主cpu、dmac和取指存储器509之间进行交互。
75.与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504使用的指令。
76.控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过程。
77.一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(on
‑
chip)存储器,外部存储器为该npu外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random access memory,ddr sdram)、高带宽存储器(high bandwidth memory,hbm)或其他可读可写的存储器。
78.上文结合图1和图2介绍了本申请实施例适用的通用架构的示意图,下文以车辆为例,结合图3介绍本申请实施例使用的场景。也就是说,图3所述的车辆300可以作为系统100中的客户设备240。图2中所示的npu 50可以作为车辆300中安全执行单元(security enforcement units,seu)中的一部分,或者,npu 50可以充当seu的角色,实现seu对应的功能。
79.图3是本申请实施例适用的车辆300的功能框图。图3所示的车辆300包括seu 310、车载网络的通信总线320以及功能子系统330。
80.seu 310,用于对车载网络中传输的消息进行监控,例如,基于异常消息识别模型,识别车载网络中的传输的消息,以确定车载网络中是否存在异常消息。
81.上述seu 310可以连接至车载网络的通信总线320,可以监视通过通信总线320的消息,以检测上述异常消息(又称“异常消息”),可选地,还可以执行针对上述异常消息相关的操作,例如,发出警告等。
82.需要说明的是,上述车载网络中传输的消息可以理解为,通过车载网络从第一车载设备传输至第二车载设备的消息,其中,第一车载设备和/或第二车载设备可以是车辆中的电子控制单元(electronic control unit,ecu),或者还可以是微控制单元(microcontroller unit,mcu)等,本申请实施例对车载设备的具体形式不作限定。
83.车载网络的通信总线320,可以理解为车载网络中的通信干线,用来在车载网络的各个节点之间传输消息。
84.在本申请实施例中,上述消息可以是通过通信总线传输的任意数据格式,例如,可以是单个数据包、信号、帧等。本申请实施例对此不作具体限定。
85.上述车载网络的通信总线320可以是任何类型的车载网络的通信总线,本申请实施例对此不作限定。例如,上述车载网络可以是基于控制器局域网络(controller area network,can)的车载网络。此时,车载网络中传输的消息可以是基于can协议的消息,例如,消息可以包括can id以及最多8个字节的有效载荷数据。
86.可选地,在车载网络中,具有相同功能,或者出于相同目的发送的消息可以具有相同的标识符或标识(id),例如,can协议规定的消息中携带的can id。
87.功能子系统330,用于实现车辆300所需的各种功能。例如,可以包括行进系统、传感器系统、控制系统等。
88.其中,行进系统可包括为车辆提供动力运动的组件。在一个实施例中,行进系统可包括引擎、能量源、传动装置和车轮/轮胎。传动装置可以将来自引擎的机械动力传送到车轮。传动装置可包括变速箱、差速器和驱动轴。在一个实施例中,传动装置还可以包括其他器件,比如离合器。
89.传感器系统可包括感测关于车辆周边的环境的信息的若干个传感器。例如,传感器系统可包括定位系统、惯性测量单元(inertial measurement unit,imu)、雷达、激光测距仪以及相机等。传感器系统还可包括被监视车辆的内部系统的传感器(例如,车内空气质量监测器、燃油量表、机油温度表等)。来自这些传感器中的一个或多个的传感器数据可用于检测对象及其相应特性(位置、形状、方向、速度等)。这种检测和识别是自主车辆的安全操作的关键功能。
90.控制系统为控制车辆及其组件的操作。控制系统可包括各种元件,其中包括转向系统、油门、制动单元、传感器融合算法、计算机视觉系统、路线控制系统以及障碍物避免系统。
91.需要说明的是,本申请实施例的功能子系统330还可以包括转向子系统等其他子系统,为了简洁,不再一一列举。
92.基于现有的异常消息识别方案,在对异常消息识别模型进行训练时,仅输入两条消息之间的特征值的第一差异值(例如,到达时间间隔),后期在基于该异常消息识别模型对异常消息进行识别时,也是基于两条消息之间的第一差异值进行的。
93.然而,实际情况中每两条消息都不是严格按照一个相同的第一差异值进行传输的,每两条消息之间可能对应多种第一差异值,这样,上述基于第一差异值进行训练得出的异常消息识别模型不够准确,继而也会降低基于该异常消息识别模型识别异常消息的准确度。
94.为了便于理解,下文以两条消息之间的特征值的第一差异值为到达时间间隔,且异常消息识别模型为深度神经网络(deep neural network,dnn)为例,结合图4介绍的传统的异常消息识别方法。图4示出了传统的异常消息识别模型的示意图。
95.dnn 400可以理解为具有很多层隐含层120的神经网络,这里的“很多”并没有特别的度量标准,我们常说的多层神经网络和深度神经网络其本质上是同一个东西。从dnn 100按不同层的位置划分,dnn 400内部的神经网络可以分为三类:输入层410,隐含层420,输出层430。一般来说第一层是输入层410,最后一层是输出层430,中间层420的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然dnn看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,是输入向量,是输出向量,b是偏移向量,w是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量经过如此简单的操作得到输出向量。由于dnn层数多,则系数和偏移向量的数量也就是很多了。以一个l层的dnn为例,如:第l层的第j个神经元的线性系数定义为其中j=(1,2,
…
,n),l=(1,2,
…
,n),n、n为正整数。上标l代表系数w所在的层数,而下标对应的是输出的第l层索引j和输入
的第l层索引k。注意,输入层是没有参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。
96.当上述dnn作为异常消息识别模型时,输入向量包括待识别消息的有效载荷中每一位的载荷数据待识别消息的长度i
len
,待识别消息对应的标识i
id
以及待识别消息与上一条消息之间的到达时间间隔i
diff'
。上述输出向量可以用于指示待识别消息为异常消息或者非异常消息。
97.也就是说,传统的方案中,由于车载网络中具有相同id的消息都是周期性传输的,因此,在基于异常消息识别模型对待识别消息进行识别时,需要向异常消息识别模型输入待识别消息与上一条消息之间的i
diff'
,以通过i
diff'
与预设周期之间的差异程度,确定待识别消息为异常消息或非异常消息。
98.然而,在实际的消息传输过程中,具有相同id的消息并不都是按照一个相同的周期进行传输的,具有相同id的消息通常会对应对个不同的周期,此时,如果基于传统的方案对待识别消息进行识别,会限制异常消息识别模型的准确度。
99.因此,为了避免上述问题,本申请实施例提供了一种新的异常消息的识别方法,即在基于异常消息识别模型对待识别消息(下文又称“第一消息”)的过程中,向异常消息识别模型输入第一消息的特征值与第二消息的特征值之间的第一差异值所对应的差异类,其中不同的差异类对应的差异值的取值范围不同,有利于提高基于异常消息识别模型进行异常消息识别的准确度。下文结合图5介绍本申请实施例的异常消息的识别方法。
100.图5是本申请实施例的异常消息的识别方法示意性流程图。图5所示的方法500包括步骤510至步骤530。
101.510,seu接收第一消息,并确定第一消息的特征值与第二消息的特征值之间的第一差异值,第二消息为在接收第一消息之前接收到的消息。
102.上述第一消息的特征值与第二消息的特征值用于度量消息的相同属性,例如,特征值为消息的到达时间。或者,上述第一消息的特征值与第二消息的特征值用于表示消息中作用相同的特征。例如,可以指指消息中有效载荷的值。
103.可选地,上述特征值可以指消息中有效载荷的值,此时,第一消息的特征值与第二消息的特征值之间的第一差异值,可以理解为,第一消息中有效载荷的值与第二消息中有效载荷的值之间的第一差异值。例如,第一消息用于指示将车辆的车速调整为第一车速,则第一消息可以通过第一消息中的有效载荷的值指示第一车速。第二消息用于指示将车辆的车速调整为第二车速,则第二消息可以通过第二消息中的有效载荷的值指示第二车速。上述第一差异值用于指示第一车速和第二车速之间车速的变化量。
104.可选地,上述特征值还可以指示消息的到达时间,此时,第一消息的特征值与第二消息的特征值之间的第一差异值,可以理解,第一消息的到达时间与第二消息的到达时间之间的时间间隔,又称第一到达时间间隔。
105.可选地,上述第二消息可以为第一消息的上一条消息,可以理解为,第二消息为seu在接收第一消息之前接收到的上一条消息。也就是说,第一消息和第二消息可以为相邻的两条消息。
106.可选地,上述第二消息为非异常消息。这样,在后续基于第一差异值识别第一消息
为异常消息或者非异常消息时,有利于提高识别第一消息的准确性。避免了由于第二消息本身为异常消息,从而导致第一差异值的异常。当然,在本申请实施例中,也可以不用确定第二消息为异常消息或非异常消息。
107.应理解,上述第二消息为非异常消息,且第二消息为第一消息的上一条消息,也就是说,第二消息为第一消息的上一条非异常消息。此时,第二消息可能与第一消息为相邻的消息,即第一消息的上一条消息为非异常消息,则上一条消息为第二消息。然而,如果第一消息的上一条消息为异常消息,那么第二消息为在第一消息之前发送,且与第一消息的到达时间间隔最近的一条消息。
108.需要说明的是,上述第二消息是否为异常消息,可以基于异常消息识别模型对第二消息进行识别后的结果确定。
109.520,seu从预设的多个差异类中确定第一差异值对应的差异类,多个差异类中不同的差异类对应差异值不同的取值范围,其中差异值可以表示两条消息的特征值之间的差异程度。
110.上述第一差异值对应的差异类,可以理解为,该第一差异值所属的取值范围对应的差异类。例如,上述第一差异值为第一消息和第二消息之间的到达时间间隔时,上述多个差异类中不同的差异类对应到达时间间隔不同的取值范围。
111.图6是本申请实施例中到达时间间隔与多个差异类之间的对应关系的示意图。假设上述差异类用“类
1”表示,到达时间间隔对应的取值范围包括[0,t1]、(t1,t2]、(t2,t
x
]、(t
x
,t
max
]以及(t
max
,t
∞
]。其中,[t1,t
max
]为厂商规定的到达时间间隔的取值范围,或者说该范围内的到达时间间隔是非异常的。(t
max
,t
∞
]表示位于[t1,t
max
]之外的到达时间间隔的取值范围,(t
max
,t
∞
]为到达时间间隔的异常取值范围。则[0,t1]对应的类1的标识为0,(t1,t2]对应的类1的标识为1,(t2,t
x
]对应的类1的标识为2,(t
x
,t
max
]对应的类1的标识为x,(t
max
,t
∞
]对应的类1的标识为
‑
1。
[0112]
530,seu将第一差异值对应的差异类的标识输入预存的异常消息识别模型,以确定第一消息为异常消息或非异常消息。
[0113]
上述异常消息可以理解为与异常有关的消息,可以包括基于偏离期望有效载荷值(内容值)或偏离期望时序来发送的消息。
[0114]
上述基于ml的异常消息识别模型可以是基于ml的数学模型,例如,可以是dnn或者卷积神经网络等,本申请实施例上述数学模型的具体形式不作限定。
[0115]
以异常消息识别模型为dnn为例,结合图7介绍本申请实施例的异常消息识别模型。需要说明的是,图7所示的模型框图与图4所示的模型结构相似,仅对输入层以及输入向量有改进,因此,为了简洁,具有相同功能的模型框架使用与图4中相同的编号,并且其具体功能下文不再赘述。
[0116]
图7是本申请实施例的异常消息识别模型的示意图。图7所示的异常消息识别模型700包括输入层710,隐含层420,输出层430。向输入层710输入的输入向量可以包括上述第一差异值所属的差异类的标识i
diff'
,第一消息中每一位的值第一消息的长度i
len
,第一消息的标识i
id
。
[0117]
通常,在车载网络通信领域,具有相似或者相同功能的消息的消息id相同,具有相似或者相同功能的消息之间的特征值的变化也更加规律,更加符合上文中按照多个周期传
输,或者多次传输时有效载荷的值的差异不会太大。因此,本申请实施例的方案也适用于这种场景中,即第一消息和第二消息具有相同的消息id。例如,基于can的通信网络中,第一消息和第二消息具有相同的can id。当然,也可以对第一消息和第二消息的消息标识不作限定。
[0118]
如上文所述,在识别第一消息的过程中,可以不关注第二消息是否为异常消息,但是,如果第二消息为异常消息,那么在一定程度上第二消息的特征值会影响第一消息的识别结果。为了避免这种情况,提高识别异常消息的准确性,在本申请实施例中,还可以再向异常消息识别模型输入第一消息的特征值与上一条非异常消息(又称第三消息)的特征值之间的差异程度。下文结合图6进行介绍本申请另一实施例的异常消息识别方法。
[0119]
图8是本申请另一实施例的异常消息识别方法的流程图。图8所示的方法在上述方法500的基础上还包括步骤810至步骤830。
[0120]
810,seu确定第一消息的特征值与第三消息的特征值之间的第二差异值,第三消息为在接收第一消息之前接收到的非异常消息。
[0121]
其中,关于上述第三消息的特征值的含义,与上文中第二消息的特征值的含义相似,请参照上文的介绍,为了简洁,在次不再赘述。
[0122]
需要说明的是,当上文中第二消息为非异常消息时,第三消息与第二消息为相同的消息,则上述第二差异值与第一差异值相同。当上文的第二消息为异常消息时,第二消息与第三消息是不同的消息,则上述第二差异值与第一差异值也不相同。
[0123]
可选地,上述第三消息可以为第一消息的上一条非异常消息,可以理解为,第三消息为seu在接收第一消息之前接收到的上一条非异常消息。也就是说,第一消息和第三消息可以为相邻的两条消息,也可以为不相邻的两条消息。
[0124]
820,从多个差异类中确定第二差异值对应的差异类。
[0125]
如上文所述,差异类对应差异值的不同的取值范围,从多个差异类中确定第二差异值对应的差异类,可以理解为,从多个差异类中确定第二差异值所属的取值范围对应的差异类。
[0126]
上述步骤530包括:830,seu将第一差异值对应的差异类的标识,以及第二差异值对应的差异类的标识输入异常消息识别模型,以确定第一消息为异常消息或非异常消息,其中,差异类的标识用于唯一标识对应的差异类。
[0127]
需要说明的是,当上述第一差异值和第二差异值相同时,上述第一差异值对应的差异类的标识与第二差异值对应的差异类的标识相同。当上述第一差异值和第二差异值不同时,上述第一差异值对应的差异类的标识与第二差异值对应的差异类的标识可能相同也可能不同。
[0128]
以异常消息识别模型为dnn为例,结合图8介绍本申请实施例的异常消息识别模型。需要说明的是,图9所示的模型框图与图7所示的模型结构相似,仅对输入层以及输入向量有改进,因此,为了简洁,具有相同功能的模型框架使用与图7中相同的编号,并且其具体功能下文不再赘述。
[0129]
图9是本申请另一实施例的异常消息识别模型的示意图。图9所示的异常消息识别模型900包括输入层910,隐含层420,输出层430。向输入层910输入的输入向量可以包括上述第一差异值对应的差异类的标识i
diff'
,第二差异值对应的差异类的标识i
honest
‑
diff'
,第一
消息中每一位的值第一消息的长度i
len
,第一消息的标识i
id
。
[0130]
通常,在车载网络通信领域,具有相似或者相同功能的消息的消息id相同,具有相似或者相同功能的消息之间的特征值的变化也更加规律,更加符合上文中按照多个周期传输,或者多次传输时有效载荷的值的差异不会太大。因此,本申请实施例的方案也适用于这种场景中,即第一消息、第二消息以及第三消息具有相同的消息id。例如,基于can的通信网络中,第一消息、第二消息以及第三消息具有相同的can id。当然,也可以对第一消息、第二消息以及第三消息的消息标识不作限定。
[0131]
上文结合图5至图9介绍了本申请基于异常消息识别模型对第一消息是否为异常消息进行推理的过程。下文结合图10至图12介绍异常消息识别模型的训练过程。需要说明的是,训练过程中与上述推理过程中,代表相同含义的特征使用相同的术语,例如,特征值。为了简洁,下文不再具体赘述。
[0132]
下文中涉及的训练过程可以由上文中的seu执行,也可以由云端实现,本申请实施例对此不作限定。当训练过程由seu执行时,seu的架构可以参见图1所示,由训练设备220对异常消息识别模型进行训练。为了便于理解,在介绍本申请实施例的异常消息识别模型的训练方法之前,下文结合图10主要介绍云端计算的架构,并以异常消息识别模型为rnn为例介绍模型的训练过程。
[0133]
图10是本申请实施例提供了一种系统架构1000的示意图。执行设备1010由一个或多个服务器实现,可选的,与其它计算设备配合,例如:数据存储、路由器、负载均衡器等设备;执行设备1010可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备1010可以使用数据存储系统1050中的数据,或者调用数据存储系统1050中的程序代码实现本申请实施例的异常消息识别模型的训练方法,具体地训练方法将在下文中介绍,为了简洁,在此不再赘述。
[0134]
用户可以操作各自的用户设备(例如本地设备1001和本地设备1002)与执行设备1010进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能手机、平板电脑、智能汽车或其他类型蜂窝电话等。
[0135]
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备1010进行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
[0136]
在另一种实现中,执行设备1010的一个方面或多个方面可以由每个本地设备实现,例如,本地设备1001可以为执行设备1010提供本地数据或反馈计算结果。
[0137]
dnn中的每一层的工作可以用数学表达式来描述:从物理层面dnn中的每一层的工作可以理解为通过五种对输入空间(输入向量的集合)的操作,完成输入空间到输出空间的变换(即矩阵的行空间到列空间),这五种操作包括:1、升维/降维;2、放大/缩小;3、旋转;4、平移;5、“弯曲”。其中1、2、3的操作由完成,4的操作由+b完成,5的操作则由a()来实现。这里之所以用“空间”二字来表述是因为被分类的对象并不是单个事物,而是一类事物,空间是指这类事物所有个体的集合。其中,w是权重向量,该向量中的每一个值表示该层神经网络中的一个神经元的权重值。该向量w决定着上文所述的输入空间到输出空间的空间变换,即每一层的权重w控制着如何变换空间。训练dnn的目的,也就是最终得到训练好的神经网络的所有层的权重矩阵(由很多层的向量w形成的权重矩阵)。因此,神经网络的训练过程本质上就是学习控制空间变换的方式,更具体的就是学习权重矩
阵。
[0138]
因为希望dnn的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为dnn中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到神经网络能够预测出真正想要的目标值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么dnn的训练就变成了尽可能缩小这个输出值的过程。
[0139]
下文将结合图11介绍本申请实施例的异常消息识别模型的训练方法。图11是本申请实施例的异常消息识别模型的训练方法的示意性流程图。图11所示的方法包括步骤1110和步骤1120。
[0140]
1110,获取训练数据集,训练数据集包含n条第一训练消息,以及n条第一训练消息对应的n个第一差异值对应的n个差异类的n个标识,n个第一差异值为n条第一训练消息的特征值与对应的n条第二训练消息的特征值之间的差异值,n条第一训练消息与n条第二训练消息一一对应,n条第二训练消息为在对应的n条第一训练消息到达目标节点之前到达的消息,n个差异类中不同的差异类对应差异值不同的取值范围,其中,n为大于1的正整数。
[0141]
上述目标节点为通信网络中的接收n条第一训练消息以及n条第二训练消息的节点。
[0142]
n个第一差异值为n条第一训练消息中每条第一训练消息的特征值与第二训练消息的特征值之间的差异值,也就是说,每条第一训练消息都有对应的第二训练消息。
[0143]
需要说明的是,通常为了提高训练数集的多样性,上述n个第一差异值可以是部分相同,以提高训练异常消息识别模型的准确性。
[0144]
可选地,上述n条第一训练消息和n条第二训练消息可以具有相同的标识,例如,在can车载网络中,上述n条第一训练消息和n条第二训练消息可以携带相同的can id。
[0145]
可选地,上述n条第二训练消息可以是对应的第一训练消息的上一条消息。
[0146]
可选地,上述n条第二训练消息还可以是非异常消息,以提高训练异常消息识别模型的准确度。当然,本申请实施例也可以不关注n条第二训练消息为异常消息还是非异常消息。
[0147]
需要说明的是,若第二训练消息为非异常消息,且第二训练消息为第一训练消息的上一条消息时,若第一训练消息的上一条训练消息为非异常消息时,则上一条消息为第二训练消息。若第一训练消息的上一条训练消息为异常消息时,上述第二训练消息为与第一训练消息的到达时间间隔最短的非异常消息。应理解,上述说明以上述n条第二训练消息中的一条第二训练消息为例进行,其他第二训练消息也适用该说明。
[0148]
1120,基于训练数据集对预存的原始异常消息识别模型进行训练,得到异常消息识别模型,异常消息识别模型用于确定待识别消息为异常消息或非异常消息。
[0149]
如上文所述,为了进一步提高训练异常消息识别模型的准确性,还可以向原始异常消息检测模型输入n个第二差异值,即n条第一训练消息的特征值与对应的n条非异常消息(又称“第三训练消息”)的特征值之间的n个差异值。
[0150]
也就是说,训练数据集还包括n条第一训练消息的n个第二差异值对应的n个差异类的n个标识,n个第二差异值为n条第一训练消息的特征值与对应的n条第三训练消息的特征值之间的n个差异值,n条第一训练消息与n条第三训练消息一一对应,n条第三训练消息为在对应的第一训练消息到达目标节点之前到达的消息,且n条第三训练消息为非异常消息。
[0151]
可选地,上述n条第一训练消息和n条第三训练消息可以具有相同的标识,例如,在can车载网络中,上述n条第一训练消息和n条第三训练消息可以携带相同的can id。
[0152]
可选地,上述n条第三训练消息可以是对应的第一训练消息的上一条消息。此时,上述n条第三训练消息可能是与对应的第一训练消息相邻的消息,上述n条第三训练消息也可能是与对应的第一训练消息不相邻(或者说间隔)的消息。以第一训练消息1为例,当第一训练消息1的上一条消息为非异常消息时,则第一训练消息1对应的第三训练消息与第一训练消息1相邻。当第一训练消息1的上一条消息为异常消息时,则第一训练消息1对应的第三训练消息与第一训练消息1不相邻,此时,第一训练消息1对应的第三训练消息为与第一训练消息1的到达时间间隔最短的非异常消息。
[0153]
需要说明的是,当n条第一训练消息中的某一条第一训练消息对应的上一条训练消息为非异常消息时,则与该第一训练消息对应的第二训练消息和与该第一训练消息对应的第三训练消息可以是一条训练消息,此时,该第一训练消息对应的第一差异值和该第一训练消息对应的第一差异值相同。
[0154]
可选地,上述特征值可以是消息的到达时间,则n个第一差异值为n条第一训练消息与对应的n条第二训练消息之间的到达时间间隔,n个第二差异值为n条第一训练消息与对应的n条第三训练消息之间的到达时间间隔。
[0155]
下文以特征值为到达时间为例,结合表1介绍了本申请实施例的训练数据集的一种可能的实现方式。表1中列出了训练数据集中6条消息对应的信息。需要说明的是,表1所示的6条消息的序号仅是为了便于说明,在实际的训练数据集中可以不存在。
[0156]
表1
[0157]
序号i
diff
i
id
i
len
i
p1
i
p2
i
p3
i
p4
i
p5
i
p6
i
p7
i
p8
i
honst
‑
diff
标签10768820718878610012823201207688207188786100144216013076982066721129040144940140181086712729195107214178228
‑1‑
152768820718078610016020821629138721100100501613521
[0158]
消息1对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“768”,对应的消息长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为207,对应的第二个字节i
p2
中的有效载荷为188,对应的第三个字节i
p3
中的有效载荷为78,对应的第四个字节i
p4
中的有效载荷为61,对应的第五个字节i
p5
中的有效载荷为0,对应的第六个字节i
p6
中的有效载荷为0,对应的第七个字节i
p7
中的有效载荷为128,对应的第八个字节i
p8
中的有效载荷为232,对应的第二差异类的标识i
honst
‑
diff
为0,对应的标签(label)为1,表示消息1为非异常消息。
[0159]
消息2对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“768”,对应的消息
长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为207,对应的第二个字节i
p2
中的有效载荷为188,对应的第三个字节i
p3
中的有效载荷为78,对应的第四个字节i
p4
中的有效载荷为61,对应的第五个字节i
p5
中的有效载荷为0,对应的第六个字节i
p6
中的有效载荷为0,对应的第七个字节i
p7
中的有效载荷为144,对应的第八个字节i
p8
中的有效载荷为216,对应的第二差异类的标识i
honst
‑
diff
为0,对应的标签为1,表示消息2为非异常消息。
[0160]
消息3对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“769”,对应的消息长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为20,对应的第二个字节i
p2
中的有效载荷为66,对应的第三个字节i
p3
中的有效载荷为72,对应的第四个字节i
p4
中的有效载荷为112,对应的第五个字节i
p5
中的有效载荷为90,对应的第六个字节i
p6
中的有效载荷为40,对应的第七个字节i
p7
中的有效载荷为144,对应的第八个字节i
p8
中的有效载荷为94,对应的第二差异类的标识i
honst
‑
diff
为0,对应的标签为1,表示消息3为非异常消息。
[0161]
消息4对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“769”,对应的消息长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为67,对应的第二个字节i
p2
中的有效载荷为127,对应的第三个字节i
p3
中的有效载荷为29,对应的第四个字节i
p4
中的有效载荷为195,对应的第五个字节i
p5
中的有效载荷为107,对应的第六个字节i
p6
中的有效载荷为214,对应的第七个字节i
p7
中的有效载荷为178,对应的第八个字节i
p8
中的有效载荷为228,对应的第二差异类的标识i
honst
‑
diff
为
‑
1,对应的标签为
‑
1,表示消息4为异常消息。
[0162]
消息5对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“768”,对应的消息长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为207,对应的第二个字节i
p2
中的有效载荷为180,对应的第三个字节i
p3
中的有效载荷为78,对应的第四个字节i
p4
中的有效载荷为61,对应的第五个字节i
p5
中的有效载荷为0,对应的第六个字节i
p6
中的有效载荷为0,对应的第七个字节i
p7
中的有效载荷为160,对应的第八个字节i
p8
中的有效载荷为208,对应的第二差异类的标识i
honst
‑
diff
为2,对应的标签为1,表示消息5为非异常消息。
[0163]
消息6对应的第一差异类的标识i
diff
为0,对应的消息标识i
id
为“913”,对应的消息长度i
len
为8字节,对应的第一个字节i
p1
中的有效载荷为72,对应的第二个字节i
p2
中的有效载荷为11,对应的第三个字节i
p3
中的有效载荷为0,对应的第四个字节i
p4
中的有效载荷为0,对应的第五个字节i
p5
中的有效载荷为100,对应的第六个字节i
p6
中的有效载荷为50,对应的第七个字节i
p7
中的有效载荷为16,对应的第八个字节i
p8
中的有效载荷为135,对应的第二差异类的标识i
honst
‑
diff
为2,对应的标签为1,表示消息6为非异常消息。
[0164]
在实际获取训练数据时,直接得到的可能是两条消息的特征值之间的差异值(例如,第一差异值和/或第二差异值),因此,在将差异值映射到差异类得到例如上述表1所示的训练数据集之前,需要基于差异值可能的取值范围进行差异类的划分,使得不同的差异类对应差异值不同的取值范围。即在步骤1110之前,上述方法还包括:步骤1130至步骤1150。图12示出了本申请另一实施例的异常消息识别模型的训练方法的示意性流程图。
[0165]
1130,确定多条第一训练消息对应的目标差异值的最大值和特征值的最小值。
[0166]
上述目标差异值可以是上文中的第一差异值也可以是上文中的第二差异值。
[0167]
上述多条第一训练消息可以是上述训练数据集中包括的n条第一训练消息,也可以是与上述训练数据集中包括的n条第一训练消息无关的第一训练消息,本申请实施例对此不作具体限定。
[0168]
1140,根据最大值和最小值确定目标差异值的第一取值范围。
[0169]
可以将上述最大值作为取值范围的上限,将上述最小值作为取值范围的下限,以将取值范围的上限与取值范围的下限之间的连续区间作为取值范围。
[0170]
1150,将目标差异值的第一取值范围划分为不重叠的多个取值范围,每个目标差异值的取值范围对应一个差异类。
[0171]
上述多个取值范围中不同的取值范围对应不同的差异类,最终,多个取值范围对应的多个差异类即为上文中的n个差异类。
[0172]
需要说明的是,上述第一取值范围划分为不重叠的多个取值范围的方法有很多种,例如,可以基于jenks自然断点算法将第一取值范围划分为多个取值范围。该方法旨在确定将目标差异值划分到不同差异类中的最佳配置,因此,该方法减小了差异类内的差异并使差异类间的差异最大化,基于jenks自然断点算法划分出的差异类又称jenks类。又例如,可以直接上述第一取值范围划分为大小相等的间隔,因此,划分出的差异类又称线性类。又例如,还可以将第一取值范围划分为包含同等数量的训练消息的多个间隔。
[0173]
在上述取值范围划分完成后,可以将n条第一训练消息对应的第一差异值和/或第二差异值进行差异类区间的映射,即步骤1160,将n条第一训练消息对应的n个第一差异值和/或n个第二差异值映射到对应的差异类,以确定n个第一差异值对应的差异类标识,和/或n个第二差异值对应的差异类标识。也就是说,上述步骤1130至步骤1160可以理解为在对原始异常消息识别模型进行训练之前的准备过程。
[0174]
下文以特征值为到达时间,表1为训练数据集为例,介绍从表2到表1的生成过程,即上文的“准备过程”。表2示出了本申请实施例的数据集的一种可能的实现方式。需要说明的是,表2与表1中含义相同的参数使用的标识相同,为了简洁,下文不再具体赘述。另外,表2所示的6条消息的序号也仅是为了便于说明,在实际的训练数据集中可以不存在。
[0175]
表2
[0176]
消息1对应的第一差异值t
diff
为0,对应的第二差异值t
honst
‑
diff
为0。消息2对应的第一差异值t
diff
为0.014914,对应的第二差异值t
honst
‑
diff
为0.014914。消息3对应的第一差异值t
diff
为0.014706,对应的第二差异值t
honst
‑
diff
为0.014706。消息4对应的第一差异值t
diff
为0,对应的第二差异值t
honst
‑
diff
为0。消息5对应的第一差异值t
diff
为0.020089,对应的第二差异值t
honst
‑
diff
为0.020089。消息6对应的第一差异值t
diff
为0.049258,对应的第二差异值t
honst
‑
diff
为0.049258。
[0177]
假设将取值范围和差异类的对应完成后,消息标识为768的消息可以对应5个差异类,其中,差异类0对应的取值范围为[0.0,0.01752499999997781],差异类1对应的取值范围
为(0.01752499999997781,0.019290000000182772],差异类2对应的取值范围为(0.019290000000182772,0.020568000000366737],差异类3对应的取值范围为(0.020568000000366737,0.022227000000043518],差异类4对应的取值范围为(0.022227000000043518,0.02717000000001235]。
[0178]
消息标识为769的消息可以对应5个差异类,其中,差异类0对应的取值范围为[0.0,0.01753699999999725],差异类1对应的取值范围为(0.01753699999999725,0.019297000000278786],差异类2对应的取值范围为(0.019297000000278786,0.020578000000227803],差异类3对应的取值范围为(0.020578000000227803,0.022238000000015745],差异类4对应的取值范围为(0.022238000000015745,0.027170999999995615]。
[0179]
消息标识为913的消息可以对应5个差异类,其中,差异类0对应的取值范围为[0.0,0.047295999999732885],差异类1对应的取值范围为(0.047295999999732885,0.04900800000001482],差异类2对应的取值范围为(0.04900800000001482,0.05000099999998042],差异类3对应的取值范围为(0.05000099999998042,0.05100100000004204],差异类4对应的取值范围为(0.05100100000004204,0.052717999999913445]。
[0180]
因此,消息1的消息标识为“768”,对应的第一差异值t
diff
为0属于差异类0对应的取值范围[0.0,0.01752499999997781],则对应的第一差异类的标识i
diff
为0,如表1所示。消息1对应的第二差异值t
honst
‑
diff
为0也属于差异类0对应的取值范围[0.0,0.01752499999997781],则对应的第二差异类的标识i
honst
‑
diff
为0,如表1所示。
[0181]
消息2的消息标识为“768”,对应的第一差异值t
diff
为0.014914属于差异类0对应的取值范围[0.0,0.01752499999997781],则对应的第一差异类的标识i
diff
为0,如表1所示。消息2对应的第二差异值t
honst
‑
diff
为0.014914也属于差异类0对应的取值范围[0.0,0.01752499999997781],则对应的第二差异类的标识i
honst
‑
diff
为0,如表1所示。
[0182]
消息3的消息标识为“769”,对应的第一差异值t
diff
为0属于差异类0对应的取值范围[0.0,0.01753699999999725],则对应的第一差异类的标识i
diff
为0,如表1所示。消息3对应的第二差异值t
honst
‑
diff
为0也属于差异类0对应的取值范围[0.0,0.01753699999999725],则对应的第二差异类的标识i
honst
‑
diff
为0,如表1所示。
[0183]
消息4的消息标识为“769”,对应的第一差异值t
diff
为0属于差异类0对应的取值范围[0.0,0.01753699999999725],则对应的第一差异类的标识i
diff
为0,如表1所示。消息4对应的第二差异值t
honst
‑
diff
为0也属于差异类0对应的取值范围[0.0,0.01753699999999725],则对应的第二差异类的标识i
honst
‑
diff
为0,如表1所示。
[0184]
消息5的消息标识为“768”,对应的第一差异值t
diff
为0.020089属于差异类2对应的取值范围(0.019290000000182772,0.020568000000366737],则对应的第一差异类的标识i
diff
为2,如表1所示。消息5对应的第二差异值t
honst
‑
diff
为0.020089也属于差异类2对应的取值范围(0.019290000000182772,0.020568000000366737],则对应的第二差异类的标识i
honst
‑
diff
为2,如表1所示。
[0185]
消息6的消息标识为“913”,对应的第一差异值t
diff
为0.049258属于差异类2对应的取值范围(0.04900800000001482,0.05000099999998042],则对应的第一差异类的标识
i
diff
为2,如表1所示。消息6对应的第二差异值t
honst
‑
diff
为0.049258也属于差异类2对应的取值范围(0.04900800000001482,0.05000099999998042],则对应的第二差异类的标识i
honst
‑
diff
为2,如表1所示。
[0186]
综上,完成了将表2所示的到达时间间隔与差异类的映射过程。
[0187]
需要说明的是,假设上述用于映射第一差异值的n个差异类(又称第一差异类),上述用于映射第二差异值的n个差异类(又称第二差异类),则第一差异类和第二差异类可以是同一个差异类,也可以是不同的差异类。
[0188]
也就是说,上述第一差异类和第二差异类可以分别确定,其确定的具体过程可以参见上文所述,为了简洁不再具体赘述。
[0189]
需要说明的是,上述准备过程除了图12所示的方法外,还可以由厂家直接配置,例如,由厂家将每个id对应的多个到达时间间隔作为上述多个差异类对应的取值范围。本申请实施例对此不作具体限定。
[0190]
以上结合准备过程、训练过程以及推理过程介绍了申请实施例的异常消息识别方法,本申请实施例的方法相对于传统的异常消息识别方法而言,准确度较高。下文结合表3和4介绍针对本申请实施例的方案在不同场景下的关于准确率的仿真结果。其中,表3示出了本申请实施例的方法应用于伪装攻击(camouflage)评估时的准确率。表4示出了本申请实施例的方法应用于随机磁盘操作系统(disk operating system,dos)攻击时的准确率。
[0191]
需要说明的是,表3和表4的仿真结果是基于特征值为到达时间,每种消息id对应6种差异类,这6种差异类中包含一个差异类用于对应异常消息的差异值的取值范围。
[0192]
在下文所示的表3和表4中分别基于真正类(true positives,tp)、假正类/误报(false positives,fp)、真负类(true negative,tn)、假负类/漏报(false,negative fn)以及准确率(accuracy)5个方面展示本申请实施例的方案与传统的方案之间的比较结果。其中,tp表示使用异常消息识别模型进行识别的过程中,消息被预测为正类且消息为正类的次数。fp表示使用异常消息识别模型进行识别的过程中,消息被预测为负类且消息为正类的次数。tn表示使用异常消息识别模型进行识别的过程中,消息被预测为负类且消息为负类的次数。fn表示使用异常消息识别模型进行识别的过程中,消息被预测为负类且消息为正类的次数。
[0193]
需要说明的是,上述负类用于指示消息为异常消息,上述正类用于指示消息为非异常消息。
[0194]
表3
[0195][0196][0197]
表3中示出了采用本申请实施例的识别伪装攻击的方法的准确率为测试c3至c6的准确率,分别为:99.60、99.61、99.33、99.99。传统的识别伪装攻击的方法的准确率为测试c1和c2的准确率,分别为:98.37、99.52。如表3所示,测试c3至c6的准确率高于测试c1和c2的准确率。
[0198]
表4
[0199][0200][0201]
表4中示出了采用本申请实施例的识别随机dos攻击的方法的准确率为测试r3至
r6的准确率,分别为99.95、99.89、98.21以及99.94。传统的识别随机dos攻击的方法的准确率为测试r1和r2的准确率,分别为97.81和99.90。如表4所示,测试r3至r6的准确率普遍高于测试r1和r2的准确率。
[0202]
上文结合图1至图12介绍了本申请实施例的异常消息的识别方法,下文结合图13至图15介绍本申请实施例的装置。应理解,需要说明的是,图13至图15所示的装置可以实现上述方法中各个步骤,为了简洁,在此不再赘述。
[0203]
图13是本申请实施例的异常消息的识别装置的示意图。图13所示的装置1300包括:接收单元1310和处理单元1320。
[0204]
接收单元1310,用于接收第一消息,并确定所述第一消息的特征值与第二消息的特征值之间的第一差异值,所述第二消息为在接收所述第一消息之前接收到的消息;
[0205]
处理单元1320,用于从预设的多个差异类中确定所述第一差异值对应的差异类,所述多个差异类中不同的差异类对应差异值的不同的取值范围;
[0206]
所述处理单元1320,还用于将所述第一差异值对应的差异类的标识输入预存的异常消息识别模型,以确定所述第一消息为异常消息或非异常消息。
[0207]
可选地,所述特征值为消息的到达时间,所述第一差异值为所述第一消息的到达时间与所述第二消息的到达时间之间的到达时间间隔。
[0208]
可选地,所述处理单元1320还用于:确定所述第一消息的特征值与第三消息的特征值之间的第二差异值,所述第三消息为在接收所述第一消息之前接收到的非异常消息;从所述多个差异类中确定所述第二差异值对应的差异类;将所述第一差异值对应的差异类的标识,以及所述第二差异值对应的差异类的标识输入所述异常消息识别模型,以确定所述第一消息为异常消息或非异常消息。
[0209]
可选地,所述特征值为消息的到达时间,所述第二差异值为所述第一消息的到达时间与所述第三消息的到达时间之间的到达时间间隔。
[0210]
可选地,所述第二消息为非异常消息。
[0211]
可选地,所述多个差异类中不同的差异类对应差异值的不同的取值范围属于预设的多个取值范围,所述预设的多个取值范围是基于自然断点算法(例如,jenks自然断点算法),对所述特征值的第一取值范围进行划分得到的,所述第一取值范围的上限为所述异常消息识别模型的训练数据集中所述特征值对应的最大值,所述第一取值范围的下限为所述数据集中所述特征值对应的最小值。
[0212]
可选地,所述处理单元还用于:确定所述第一消息的特征信息,所述第一消息的特征信息包括所述第一消息的有效载荷中每个字节对应的载荷数据的,所述第一消息的长度或所述第一消息的消息标识中的一种或多种;将所述第一差异值对应的差异类的标识以及所述第一消息的特征信息,输入所述异常消息识别模型。
[0213]
图14是本申请实施例的异常消息识别模型的训练装置的示意图。图14所示的装置包括:获取单元1410和处理单元1420。
[0214]
获取单元1410用于获取训练数据集,所述训练数据集包含n条第一训练消息,以及n条第一训练消息的n个第一差异值对应的n个差异类的n个标识,所述n个第一差异值为所述n条第一训练消息的特征值与对应的n条第二训练消息的特征值之间的差异值,所述n条第一训练消息与所述n条第二训练消息一一对应,所述n条第二训练消息为在对应的所述n
条第一训练消息到达目标节点之前到达的消息,所述n个差异类中不同的差异类对应差异值不同的取值范围,其中,n为大于1的正整数。
[0215]
所述处理单元1420用于基于所述训练数据集对预存的原始异常消息识别模型进行训练,得到异常消息识别模型,所述异常消息识别模型用于确定待识别消息为异常消息或非异常消息。
[0216]
可选地,所述训练数据集还包括所述n条第一训练消息的n个第二差异值对应的n个差异类的n个标识,所述n个第二差异值为所述n条第一训练消息的特征值与对应的n条第三训练消息的特征值之间的n个差异值,所述n条第一训练消息与所述n条第三训练消息一一对应,所述n条第三训练消息为在对应的第一训练消息到达所述目标节点之前到达的消息,且所述n条第三训练消息为非异常消息。
[0217]
可选地,所述特征值为消息的到达时间,所述n个第一差异值为所述n条第一训练消息与对应的n条第二训练消息之间的到达时间间隔,所述n个第二差异值所述n条第一训练消息与对应的n条第三训练消息之间的到达时间间隔。
[0218]
可选地,所述处理单元1420还用于:确定所述多条训练消息的特征值的最大值和所述特征值的最小值;根据所述最大值和所述最小值确定所述特征值的取值范围;将所述特征值的取值范围划分为不重叠的多个子范围,每个子范围对应一个第一差异类。
[0219]
在可选的实施例中,所述接收单元1310可以为计算设备1500的输入/输出接口1530,所述处理单元1320可以为计算设备1500的处理器1520,计算设备1500还可以包括存储器1510,具体如图15所示。
[0220]
在可选的实施例中,所述获取单元1410可以为计算设备1500的输入/输出接口1530,所述处理单元1520可以为计算设备1500的处理器1520,所述计算设备1500还可以包括存储器1510,具体如图15所示。
[0221]
图15是本申请另一实施例的计算设备的示意图。图15所示的计算设备1500可以包括:存储器1510、处理器1520、输入/输出接口1530。其中,存储器1515、处理器1520和输入/输出接口1530通过内部连接通路相连,该存储器1515用于存储指令,该处理器1520用于执行该存储器1520存储的指令,以控制输入/输出接口1530接收输入的数据和信息,输出操作结果等数据。
[0222]
在实现过程中,上述方法的各步骤可以通过处理器1520中的硬件的集成逻辑电路或者软件形式的指令完成。结合本申请实施例所公开的异常消息的识别方法和/或异常消息识别模型的训练方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1510,处理器1520读取存储器1510中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
[0223]
应理解,本申请实施例中,该处理器可以为中央处理单元(central processing unit,cpu),该处理器还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可
以是任何常规的处理器等。
[0224]
应理解,本申请实施例中,该存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据。处理器的一部分还可以包括非易失性随机存取存储器。例如,处理器还可以存储设备类型的信息。
[0225]
应理解,在本申请实施例中,“与a相应的b”表示b与a相关联,根据a可以确定b。但还应理解,根据a确定b并不意味着仅仅根据a确定b,还可以根据a和/或其它信息确定b。
[0226]
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
[0227]
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
[0228]
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0229]
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0230]
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0231]
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够读取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字通用光盘(digital video disc,dvd))或者半导体介质(例如,固态硬盘(solid state disk,ssd))等。
[0232]
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵
盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。