CN111901344B - 一种can总线异常帧的检测方法及装置 - Google Patents
一种can总线异常帧的检测方法及装置 Download PDFInfo
- Publication number
- CN111901344B CN111901344B CN202010742106.4A CN202010742106A CN111901344B CN 111901344 B CN111901344 B CN 111901344B CN 202010742106 A CN202010742106 A CN 202010742106A CN 111901344 B CN111901344 B CN 111901344B
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- frames
- prediction
- data frame
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1425—Traffic logging, e.g. anomaly detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L2012/40208—Bus networks characterized by the use of a particular bus standard
- H04L2012/40215—Controller Area Network CAN
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biophysics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种CAN总线异常帧的检测方法及装置,在LSTM模型训练之前先分析CAN数据帧中数据域的变化规律,然后分割出多个可能表示单独信息的数据,将分割掩盖处理后的数据分别输入到不同的LSTM模型中进行训练。在检测过程中依然将CAN数据帧中的数据进行同样的分割掩盖处理,并输入到对应的LSTM模型当中进行预测,并将预测结果拼接到一起视为对下一帧的完整预测,假若预测结果与实际的下一帧差距很大,则该实际的下一帧可能为异常数据帧。本技术方案相较现有技术,其预测准确度更高。
Description
技术领域
本申请涉及人工智能技术领域,具体而言,涉及一种CAN总线异常帧的检测方法及装置。
背景技术
随着车联网的迅速发展,汽车在提升了与外界的信息交互能力的同时,也带来了不可控的风险,例如可能会面临对汽车网络的入侵攻击。传统的基于规则的入侵检测***往往存在着攻击特征库少的劣势,所以发挥的功能有限,而基于机器学习的入侵检测***能够及时发现CAN总线上的异常帧,进而对未知的风险进行防御,在安全方面发挥着奇效。
在现有的基于机器学习的入侵检测***中,一般采用的方式是,监听CAN总线并获得汽车在正常行驶过程中的CAN数据帧,然后,选择CAN数据帧的某一个ID,并根据所选的ID从这些CAN数据帧中筛选出相应的数据帧,将筛选出的数据帧依照时间顺序依次输入到已经配置好的长短期记忆(Long Short-Term Memory,LSTM)模型当中进行训练。在训练完成后,向训练好的LSTM模型中输入此ID对应的连续的多个数据帧,则可以预测下一帧的数据值。但是,一个CAN数据帧往往携带不止一条信息,并且这些信息之间可能不存在任何关系,因此,现有技术中LSTM模型的预测效果不佳。
发明内容
本申请实施例的目的在于提供一种CAN总线异常帧的检测方法及装置,以改善上述技术问题。
第一方面,本申请提供一种CAN总线异常帧的检测方法,所述CAN总线上连接有多个设备,且每一设备设有一对应的ID,所述方法包括:获取CAN总线上与一目标ID对应的连续的多个第一数据帧,所述第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一所述预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据;将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测,获得N个预测结果;将各个预测结果拼接形成完整的预测数据帧;根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧。
本申请根据数据帧中数据的分布特性,识别出携带不同信息的N个数据区,在异常帧的检测过程中基于不同类型的数据区分别生成预测输入帧,能够解决由于数据帧中多种类型的信息相互影响而导致LSTM模型预测效果不佳的难题,在预测结果的准确度上较现有技术有明显提升,进而能够准确发现CAN总线上的异常帧。
在一种可选的实施方式中,在根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧之前,所述方法还包括:计算所述多个第一数据帧中M个比特位对应的M个均值,其中,每一均值为所述多个第一数据帧在对应比特位的数据值的平均值;根据第一数据帧在对应比特位的数据值的平均值识别出每一第一数据帧的数据区,获得每一第一数据帧中每一数据区的目标数据,其中,所述数据区中各比特位的均值大于0且小于1。
经长期观察并分析真实CAN总线上的数据帧,发现数据帧中的各个比特位并不一定都含有特定的信息,比如某些比特位的值是静态不变的(恒为1或0),有些比特位的值变化比较活跃。基于此规律,可以通过计算每一比特位的均值识别出每一第一数据帧中的数据区。
在一种可选的实施方式中,所述根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,包括:根据每一第一数据帧分别复制出N个第一复制帧,每个第一复制帧与第一数据帧中的其中一个类型的数据区对应;将每个第一复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的预测输入帧。
在生成预测输入帧时,通过复制多份复制帧,并将每一复制帧中的无关比特位的数据值置零来构造预测样本,如此一来,每一预测输入帧中仅包括对应类型的数据区中的目标数据,有助于提高LSTM模型的预测效率和预测的准确度。
在一种可选的实施方式中,在将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测之前,所述方法还包括:获取CAN总线上与所述目标ID对应的连续的多个第二数据帧,所述第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;根据每一第二数据帧分别复制出N个第二复制帧,每个第二复制帧与第二数据帧中的其中一个类型的数据区对应;将每个第二复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的训练输入帧;将多个训练输入帧按照数据区的类型分别输入到对应的LSTM模型中进行训练。
在训练N个LSTM模型时,通过复制多份复制帧,并将每一复制帧中的无关比特位的数据值置零来构造训练样本,如此一来,每一训练输入帧中仅包括对应类型的数据区中的目标数据,每一LSTM模型仅需学习对应类型的数据区中的目标数据,有助于提高LSTM模型的训练效率,同时,使得每一LSTM模型的针对性更强。
在一种可选的实施方式中,在将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测之前,所述方法还包括:获取CAN总线上与所述目标ID对应的连续的多个第二数据帧,所述第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;分别提取每一第二数据帧中的每一数据区的片段,获得多个片段帧;将多个片段帧按照数据区的类型分别输入到对应的LSTM模型中进行训练。
在上述方案中,在对N个LSTM模型进行训练时,可以通过直接提取对应类型的数据区的数据片段,构造出训练样本,使得训练输入帧的获得更加简便。
在一种可选的实施方式中,在根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧之前,所述方法还包括:根据所述目标ID获取在训练对应的N个LSTM模型时得到的第二数据帧中静态区和数据区的分布规律;根据所述分布规律确定每一第一数据帧中的静态区和N个类型的数据区,获得每一第一数据帧中每一数据区的目标数据。
同一目标ID的数据帧中静态区和数据区的分布规律相同,因此,在进行异常帧的检测时,可以直接调取训练过程中获得的同一目标ID对应的静态区和数据区的比特位分布,从而直接确定出数据区以及获得目标数据,减少检测过程中的计算量。
在一种可选的实施方式中,所述根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧,包括:分别计算所述预测数据帧和所述下一数据帧之间每一相同比特位的数据值间的损失,获得多个损失值;计算所述多个损失值之和,作为本次预测的目标损失值;在所述目标损失值超过预设阈值时,确定所述下一数据帧为异常帧。
第二方面,本申请提供一种CAN总线异常帧的检测装置,所述CAN总线上连接有多个设备,且每一设备设有一对应的ID,所述装置包括:数据帧获取模块,用于获取CAN总线上与一目标ID对应的连续的多个第一数据帧,所述第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;预测数据生成模块,用于根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一所述预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据;模型预测模块,用于将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测,获得N个预测结果;数据帧拼接模块,用于将各个预测结果拼接形成完整的预测数据帧;异常帧判断模块,用于根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧。
第三方面,本申请提供一种存储介质,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如第一方面、第一方面中任一可选实施方式所述的方法。
第四方面,本申请提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如第一方面、第一方面中任一可选实施方式所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例中某一数据帧的帧结构示意图;
图2为本申请实施例中通过4个比特的数据去预测4个比特的数据的神经网络示意图;
图3为本申请实施例中某一数据帧的帧结构的又一示意图;
图4为本申请实施例中CAN总线异常帧的检测方法的流程图;
图5为本申请实施例中步骤150的一具体实施方式的流程图;
图6为步骤151-153中的损失值计算的简单示意图;
图7为本申请实施例中对N个LSTM模型进行训练的流程图;
图8为本申请实施例中对某一第二复制帧的操作示意图;
图9为本申请实施例中步骤120的一具体实施方式的流程图;
图10为本申请实施例中对N个LSTM模型进行训练的又一流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
LSTM是一种循环神经网络,它能处理具有时间序列性质的数据。本申请实施例使用LSTM模型来预测即将到来的CAN数据帧,并将预测的CAN数据帧与实际到来的CAN数据帧进行比较,当实际的CAN数据帧与预测的CAN数据帧差距较大时,那么表示该实际的CAN数据帧极有可能为异常的数据帧。
在汽车内的CAN总线上连接有多个设备,每一设备可以向CAN总线发送CAN数据帧,其他设备从CAN总线上获取对应的CAN数据帧,实现设备间的通信。每一设备设有一对应的ID,每一设备在向CAN总线发送CAN数据帧之前,确定接收此CAN数据帧的设备,并将接收此CAN数据帧的设备所对应的ID写入在CAN数据帧的ID字段中,从而生成CAN数据帧。其他设备可以从CAN总线上监听CAN数据帧,并根据CAN数据帧中的ID确定该CAN数据帧的接收方是否是自己,从而过滤掉不需要接收的信息。
在CAN总线上,某一CAN数据帧往往携带着多种类型的数据,其中,多种类型的数据例如包括车速数据、车门状态数据、车窗状态数据等。示例性地,图1示出了某一数据帧的帧结构示意图,某个ID对应的数据帧的数据域中包含8个字节共64比特的数据,从第0到第8比特表示车速,携带车速信息,从第36到第37比特表示车门状态,携带车门状态信息,从第60到第63比特表示车窗状态,携带车窗状态信息。
在现有的技术中,一般是直接将数据帧中的所有数据全部输入到LSTM模型当中,而由于该数据帧中可能同时携带有多种类型的信息,且这些信息之间不存在关联,致使LSTM模型的预测效果不佳。
为便于理解,下面以图2进行简单说明。图2所示是通过4个比特的数据去预测4个比特的数据的神经网络示意图,在输入数据和输出数据之间有一个神经网络的机器模型(例如为本实施例中的LSTM模型),此模型中包含一个隐藏层和6个神经元,每个神经元有多个输入节点和多个输出节点。其中实线具有相应的权重,即输入数据的每个比特的数据值乘以不同的权重,神经元根据权重把多个输入节点的数据进行线性组合,通过特定的运算后把结果输出,然后将各神经元的输出分别乘以不同的权重,获得输出数据,因此,输出数据中每个比特的数据值是根据输入数据的所有比特的数据值乘以不同的权重计算得到的。而进一步将输入数据从4个比特扩展到上述图1所示的示例,假设输入数据共有64个比特的数据值,那么该机器模型对车速(比特0到比特8)的数据值的预测会受到表示车窗状态的2个比特(比特36到比特37)的数据值的影响,以及受到表示车门状态的4个比特(比特60到比特63)的数据值的影响。同理,对车窗状态的预测和对车门状态的预测也会互受影响。
所以如果通过训练LSTM模型学习整个数据帧中所有比特位的数据值的变化规律,那么可能会学习到多个汽车属性的组合(比如车速、车门状态、车窗状态等),而优异的训练数据更是需要覆盖汽车的所有可能情况,如此复杂的组合无疑提升了模型学习的难度,对于训练数据的数量的要求也以几何的方式上升。
本申请实施例提出针对不同类型的数据分别训练不同的LSTM模型,并将训练后的各个LSTM模型针对性地仅用于对相应类型的数据进行预测。可以理解,使用LSTM模型去学习车速的变化情况并预测下一帧时的车速,其效率和准确度远远优于同时去学习车速、发动机速度、车门状态等一系列数据的组合。
经发明人观察并分析真实汽车中CAN总线上的数据帧,发现数据帧中的各个比特位并不一定都含有特定的信息,比如某些比特位的值是静态不变的(恒为1或0),有些比特位的值变化比较活跃,这些活跃的比特位往往携带有某一类型的信息。具体的,在图3中,沿用上述图1的示例,这些带有不同信息的活跃的比特位之间分隔有一个或者多个静态的比特位。比如,第9比特到35比特以及第38比特到第59比特的数据值恒为1或0。在本实施例中,将连续的静态的比特位作为一个静态区,将连续的动态的比特位作为一个数据区。需说明的是,同一ID对应的数据帧中静态区和数据区的分布规律相同,不同ID对应的数据帧中静态区和数据区的分布规律可能不同。
本实施例下文基于上述所发现的规律提出一种CAN总线异常帧的检测方法。图4示出了该检测方法的流程图,该检测方法可由任一电子设备执行,其包括如下步骤:
步骤110:获取CAN总线上与一目标ID对应的连续的多个第一数据帧。
目标ID为CAN总线上所连的多个设备中的一目标设备所对应的ID。在应用中,可以任意选取一想要进行异常帧检测的ID,并获取汽车在行驶过程中CAN总线上的CAN数据帧,根据每一CAN数据帧中的ID字段,可以从若干CAN数据帧中筛选出与该目标ID对应的多个第一数据帧,该多个第一数据帧为一系列时间连续的数据帧。
本实施例可以用于在汽车行驶过程中实时检测CAN总线上某一ID的数据帧中的异常帧,通过实时监听CAN总线上的数据,并过滤出目标ID的数据帧,进行异常帧检测,实时检测出车内的数据是否出现异常;当然,也可以先监听CAN总线上的数据,抓取CAN总线上的数据并保存到文件,在汽车行驶结束后通过读取文件进行异常帧的检测,实现事后的数据分析。
在该步骤110中,每一第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区。其中,N可以为大于等于1的整数。在每一数据帧中包括至少一个静态区和至少一个数据区。本实施例主要用于对数据帧中包括多个类型的数据区的场景,对于仅包含一个类型的数据区的数据帧也同样适用,而为便于阐述本技术方案,本实施例以N>2的应用场景为例进行说明。
步骤120:根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据。
步骤130:将多个预测输入帧按照数据区的类型分别输入到对应的多个LSTM模型中进行预测,获得N个预测结果。
每一目标ID对应一个LSTM模型的集合,在该集合中包括N个LSTM模型,LSTM模型的数量与第一数据帧中数据区的类型的数量相同,N个LSTM模型与数据区的N个类型一一对应。每一LSTM模型用于根据对应类型的多个预测输入帧生成对应的预测结果。
举一个示例进行说明:获取该目标ID对应的20个第一数据帧,其中,每一数据帧中包括三个类型的数据区,该三个类型的数据区分别携带车速、车门状态、车窗状态的数据信息。其中,根据任一第一数据帧中数据区的类型,生成三个不同类型的预测输入帧,于是,基于该20个第一数据帧共获得:与车速对应的20个预测输入帧、与车门状态对应的20个预测输入帧、与车窗状态对应的20个预测输入帧。该目标ID对应有三个LSTM模型,分别为LSTM模型_1、LSTM模型_2以及LSTM模型_3,其中,LSTM模型_1用于对车速数据进行预测,LSTM模型_2用于对车门状态进行预测,LSTM模型_3用于对车窗状态进行预测。在步骤130中,将与车速对应的20个预测输入帧输入到LSTM模型_1中,获得一个车速的预测结果,表示该20个第一数据帧的下一数据帧中的车速;将与车门状态对应的20个预测输入帧输入到LSTM模型_2中,获得一个车门状态的预测结果,表示该20个第一数据帧的下一数据帧中的车门状态;将与车窗状态对应的20个预测输入帧输入到LSTM模型_3中,获得一个车窗状态的预测结果,表示该20个第一数据帧的下一数据帧中的车窗状态。
步骤140:将各个预测结果拼接形成完整的预测数据帧。
按照数据区的类型,将多个预测输入帧分别输入至对应的N个LSTM模型中进行预测,每一LSTM模型输出一个对应的预测结果,共获得N个预测结果。将N个预测结果进行拼接,形成一个完整的预测数据帧。具体的,将N个预测结果与原先获取的静态区的数据值组合,获得预测数据帧。
步骤150:根据预测数据帧与多个第一数据帧的下一数据帧判断下一数据帧是否为异常帧。
在步骤150中,获取该多个第一数据帧的下一数据帧,并根据预测数据帧与该下一数据帧之间的差异程度判断该下一数据帧是否为异常帧,如果两者的差异程度超过预设程度,则判定该下一数据帧为异常帧,如果两者的差异程度未超过预设程度,则判断该下一数据帧不为异常帧。在该下一数据帧为异常帧时,生成告警信息,并通过任一手段向汽车的车辆控制***发出告警。
可选的,如图5所示,步骤150的具体实施方式包括:
步骤151:分别计算预测数据帧和下一数据帧之间每一相同比特位的数据值间的损失,获得多个损失值。
步骤152:计算该多个损失值之和,作为本次预测的目标损失值。
步骤153:在目标损失值超过预设阈值时,确定该下一数据帧为异常帧。
图6示出了在步骤151-153中,损失值计算的简单示意图。仍沿用前文的例子,本实施例获取连续的20个数据帧,对这20个数据帧进行预处理后获得输入至LSTM模型中的预测输入帧,并通过多个LSTM模型获得一个预测数据帧,即通过LSTM模型预测出在这20个数据帧之后的第21个数据帧(称为“预测第21帧”),并且,获取该20个数据帧之后的下一帧,即真实的第21个数据帧(称为“真实第21帧”)。如果每一第一数据帧中包括64个比特的数据,那么预测第21帧和真实第21帧中均包括相同比特的数据,即同样包含64个比特的数据。数据帧中每一比特位的数据值位于范围[0,1]内。
在获得预测第21帧和真实第21帧后,分别计算预测第21帧和真实第21帧之间同一比特位的数据值之间的损失,例如将预测第21帧的第0比特的数据值与真实第21帧的第0比特的数据值计算损失,获得损失1,将预测第21帧的第1比特的数据值与真实第21帧的第1比特的数据值计算损失,获得损失2,依此类推,将预测第21帧的第63比特的数据值与真实第21帧的第63比特的数据值计算损失,获得损失64,共获得64个损失值。
可选的,本实施例中每一比特位的数据值之间的损失值可通过如下公式计算:
损失值=-(a*log(b+c)+(1-a)log(1-b+c));
其中,a表示该下一数据帧中对应比特位的数据值,b表示该预测数据帧中对应比特位的数据帧,c=1e-15。
在获得64个损失值后,对该64个损失值求和,得到总损失,即本次预测的目标损失值。在该目标损失值超过预设阈值时,表示预测第21帧与真实第21帧之间的差异程度超过预设程度,于是,确定该真实第21帧为异常帧。
进一步的,在利用N个LSTM模型对异常帧进行检测之前,先创建N个LSTM模型并对该N个LSTM模型进行训练。在一种实施例中,N个LSTM模型的训练过程如图7所示,包括如下步骤:
步骤210:获取CAN总线上与目标ID对应的连续的多个第二数据帧。
相同的,每一第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区。
步骤110和步骤210中选择的ID需一致,在训练N个LSTM模型时选择一目标ID对应的连续的多个第二数据帧进行训练,在训练完成后,使用训练后的N个LSTM模型对同一目标ID的连续的多个第一数据帧进行预测。该N个LSTM模型仅学习该目标ID的数据帧中对应类型的数据区中数据值的变化规律。
不同的ID对应不同的N个LSTM模型,且由于不同的ID所对应的数据帧中数据区类型的数量也可能不同,因此不同的ID对应的LSTM模型的数量也可能不同。如果要对不同ID的数据帧进行预测,则需针对不同的ID分别创建多个LSTM模型,并采用对应的数据帧对多个LSTM模型分别进行训练。
步骤220:根据每一第二数据帧分别复制出N个第二复制帧,每个第二复制帧与第二数据帧中的其中一个类型的数据区对应。
根据每一第二数据帧中的N个类型的数据区,将每一第二数据帧分别复制相同数量,获得N个第二复制帧。沿用图1所示的示例,在第二数据帧中包括与车速对应的数据区、与车门状态对应的数据区、与车窗状态对应的数据区,于是,每一第二数据帧各复制三个,假设有20个第二数据帧,则共获得60个第二复制帧。
步骤230:将每个第二复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的训练输入帧。
图8示出了某一第二复制帧的操作示意图,该第二复制帧与车窗状态的数据区对应,于是,保持第二复制帧中车窗状态的数据区中的数据值为原始值,其他比特位的数据值全部置为0,获得一个训练输入帧。其他第二复制帧的操作与此相同,获得多个训练输入帧。
步骤240:按照每一训练输入帧对应的数据区的类型,将多个训练输入帧分别输入到与数据区的类型对应的LSTM模型中进行训练。
每一训练输入帧与数据区的一个类型对应,按照其对应的类型,将多个训练输入帧分别输入到相应的LSTM模型中进行训练。按照上述步骤210-240对N个LSTM模型进行训练后,每一LSTM模型可以用于对相应类型的数据区的数据值进行预测。
具体的,请参照图9,在进行异常帧的检测时,步骤120的实施方式包括如下步骤:
步骤310:根据每一第一数据帧分别复制出N个第一复制帧,每个第一复制帧与第一数据帧中的其中一个类型的数据区对应。
步骤320:将每个第一复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的预测输入帧。
在利用LSTM模型进行数据值预测的过程中,对多个第一数据帧的处理步骤与对多个第二数据帧的处理步骤一致,在此不赘述。
在另一实施例中,N个LSTM模型的训练过程如图10所示,包括如下步骤:
步骤410:获取CAN总线上与目标ID对应的连续的多个第二数据帧。
相同的,每一第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区。
步骤420:分别提取每一第二数据帧中的每一数据区的片段,获得多个片段帧。
该实施例与上一实施例的不同之处在于,上一实施例在对N个LSTM模型进行训练时是通过复制多份复制帧,并将每一复制帧中的无关比特位的数据值置零来构造训练样本,而本实施例可以通过直接提取对应数据区的数据片段,构造出训练样本,较前一实施例操作更加简便。
每个片段帧与第二数据帧中的其中一个类型的数据区对应。示例性的,每一第二数据帧中包括三个类型的数据区,该三个类型的数据区分别携带车速、车门状态、车窗状态的数据信息,于是,每一第二数据帧提取出对应的三个片段,获得三个片段帧,若有20个第二数据帧,则共获得60个片段帧。
步骤430:按照每一片段帧对应的数据区的类型,将多个片段帧分别输入到与数据区的类型对应的LSTM模型中进行训练。
若采用上述步骤410-430对N个LSTM模型进行训练,相应地,在进行异常帧的检测时,步骤120的具体实施方式包括如下步骤:分别提取每一第一数据帧中的每一数据区的片段,获得多个预测输入帧,每一预测输入帧与第一数据帧中的其中一个类型的数据区对应,且仅包括对应类型的数据区的数据片段;按照每一预测输入帧对应的数据区的类型,将多个预测输入帧分别输入到与数据区的类型对应的LSTM模型中进行预测。
在本实施例中,在步骤110之后以及步骤120之前,根据获得的多个第一数据帧确定出每一第一数据帧中的静态区和数据区,从而获得每一数据区中的目标数据。具体的,其确定方式包括但不限于如下两种:
方式一:计算多个第一数据帧中M个比特位对应的M个均值,其中,每一均值为多个第一数据帧在对应比特位的数据值的平均值;根据第一数据帧在对应比特位的数据值的平均值识别出每一第一数据帧的数据区,从而获得每一第一数据帧中每一数据区的目标数据。其中,数据区中各比特位的均值大于0且小于1。
在获得多个第一数据帧后,解析这些第一数据帧的数据域,对于每一比特位,将所有第一数据帧在该比特位的数据值求均值,每一比特位对应获得一个均值,若第一数据帧中包括64个比特的数据,则有64个均值。在计算出均值后,可以发现,这些均值共有三种情况,分别是值为0、1、大于0且小于1。均值为0或者1表示此目标ID的所有第一数据帧在此比特位的数据值恒为0或者1,均值为大于0且小于1的数表明此比特位的数据值在发生变化。根据计算出的多个均值识别出每一第一数据帧中的静态区和数据区,并将静态区和数据区的比特位记录下来并保存,以便下一次对该目标ID的数据帧进行预测时可以直接调取各静态区和数据区的比特位分布。
方式二:根据目标ID获取在训练对应的N个LSTM模型时得到的第二数据帧中静态区和数据区的分布规律;根据该分布规律确定每一第一数据帧中的静态区和N个类型的数据区,从而获得每一第一数据帧中每一数据区的目标数据。
在训练N个LSTM模型时对第二数据帧中的静态区和数据区进行识别,其识别过程与前述方式一相同。识别后将静态区和数据区的比特位记录下来并保存,因此,在步骤110之后可以直接调取静态区和数据区的比特位分布,并直接确定出数据区,从而获得目标数据,进而生成所需的N个预测输入帧。如此一来,在预测阶段可以有效减少计算量。
上述步骤是以同一目标ID描述本实施例提供的异常帧的检测方法,可以及时检测出车内该目标ID对应的数据帧是否出现异常。在实际应用时,可以对CAN总线上的多个设备所对应的多个ID同时进行检测,进而实现车内异常的全方位监控,需说明的是,对不同ID的数据帧进行检测时,采用不同的LSTM模型的集合。
综上所述,本技术方案根据CAN数据帧中的数据特性采用特殊方式生成训练数据和预测数据,能够解决由于CAN数据帧中包含多种类型的信息导致训练过程中各种信息互相影响而造成训练成本高的问题,且由于任一LSTM模型仅需要学习对应类型的信息,所以在训练效率上要远远优于同时去学习车速、发动机速度、车门状态等一系列数据的组合。而且,本技术方案同时提高了LSTM模型对于CAN数据帧预测的准确度,进而有效提高CAN总线异常帧的检测准确度。
基于同一发明构思,本申请实施例提供一种CAN总线异常帧的检测装置,该装置包括:数据帧获取模块、预测数据生成模块、模型预测模块、数据帧拼接模块以及异常帧判断模块。
其中,数据帧获取模块,用于获取CAN总线上与一目标ID对应的连续的多个第一数据帧,所述第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区。
预测数据生成模块,用于根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一所述预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据。
模型预测模块,用于将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测,获得N个预测结果。
数据帧拼接模块,用于将各个预测结果拼接形成完整的预测数据帧。
异常帧判断模块,用于根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧。
本申请实施例提供的CAN总线异常帧的检测装置,其实现原理及产生的技术效果在前述方法实施例中已经介绍,为简要描述,装置实施例部分未提及之处,可参考方法实施例中的相应内容。
可选的,本申请实施例还提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行本申请提供的CAN总线异常帧的检测方法。
可选的,本申请实施例还提供一种电子设备,包括:处理器、存储器和总线,该存储器存储有处理器可执行的机器可读指令,当电子设备运行时,处理器与存储器之间通过总线通信,机器可读指令被处理器执行时执行本申请提供的CAN总线异常帧的检测方法。
可以理解,该电子设备可能是实体设备,例如PC机、笔记本电脑、平板电脑、手机、服务器、嵌入式设备等,也可能是虚拟设备,例如虚拟机、虚拟化容器等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种CAN总线异常帧的检测方法,其特征在于,所述CAN总线上连接有多个设备,且每一设备设有一对应的ID,所述方法包括:
获取CAN总线上与一目标ID对应的连续的多个第一数据帧,所述第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;
根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一所述预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据;
将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测,获得N个预测结果;
将各个预测结果拼接形成完整的预测数据帧;
根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧。
2.根据权利要求1所述的方法,其特征在于,在根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧之前,所述方法还包括:
计算所述多个第一数据帧中M个比特位对应的M个均值,其中,每一均值为所述多个第一数据帧在对应比特位的数据值的平均值;
根据第一数据帧在对应比特位的数据值的平均值识别出每一第一数据帧的数据区,获得每一第一数据帧中每一数据区的目标数据,其中,所述数据区中各比特位的均值大于0且小于1。
3.根据权利要求1所述的方法,其特征在于,所述根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,包括:
根据每一第一数据帧分别复制出N个第一复制帧,每个第一复制帧与第一数据帧中的其中一个类型的数据区对应;
将每个第一复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的预测输入帧。
4.根据权利要求3所述的方法,其特征在于,在将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测之前,所述方法还包括:
获取CAN总线上与所述目标ID对应的连续的多个第二数据帧,所述第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;
根据每一第二数据帧分别复制出N个第二复制帧,每个第二复制帧与第二数据帧中的其中一个类型的数据区对应;
将每个第二复制帧中的对应类型的数据区保持不变并将其余比特位置零,获得对应的训练输入帧;
将多个训练输入帧按照数据区的类型分别输入到对应的LSTM模型中进行训练。
5.根据权利要求1所述的方法,其特征在于,在将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测之前,所述方法还包括:
获取CAN总线上与所述目标ID对应的连续的多个第二数据帧,所述第二数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;
分别提取每一第二数据帧中的每一数据区的片段,获得多个片段帧;
将多个片段帧按照数据区的类型分别输入到对应的LSTM模型中进行训练。
6.根据权利要求4或5所述的方法,其特征在于,在根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧之前,所述方法还包括:
根据所述目标ID获取在训练对应的N个LSTM模型时得到的第二数据帧中静态区和数据区的分布规律;
根据所述分布规律确定每一第一数据帧中的静态区和N个类型的数据区,获得每一第一数据帧中每一数据区的目标数据。
7.根据权利要求1所述的方法,其特征在于,所述根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧,包括:
分别计算所述预测数据帧和所述下一数据帧之间每一相同比特位的数据值间的损失,获得多个损失值;
计算所述多个损失值之和,作为本次预测的目标损失值;
在所述目标损失值超过预设阈值时,确定所述下一数据帧为异常帧。
8.一种CAN总线异常帧的检测装置,其特征在于,所述CAN总线上连接有多个设备,且每一设备设有一对应的ID,所述装置包括:
数据帧获取模块,用于获取CAN总线上与一目标ID对应的连续的多个第一数据帧,所述第一数据帧包括数据值不变的静态区以及数据值变化的N个类型的数据区;
预测数据生成模块,用于根据每一第一数据帧分别生成与每一类型的数据区对应的N个预测输入帧,其中,每一所述预测输入帧包括对应类型的数据区的目标数据且不包括其他类型的数据区的目标数据;
模型预测模块,用于将多个预测输入帧按照数据区的类型分别输入到对应的LSTM模型中进行预测,获得N个预测结果;
数据帧拼接模块,用于将各个预测结果拼接形成完整的预测数据帧;
异常帧判断模块,用于根据所述预测数据帧与所述多个第一数据帧的下一数据帧判断所述下一数据帧是否为异常帧。
9.一种存储介质,其特征在于,所述存储介质上存储有计算机程序,所述计算机程序被处理器运行时执行如权利要求1-7任一项所述的方法。
10.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当所述电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1-7任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742106.4A CN111901344B (zh) | 2020-07-28 | 2020-07-28 | 一种can总线异常帧的检测方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010742106.4A CN111901344B (zh) | 2020-07-28 | 2020-07-28 | 一种can总线异常帧的检测方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901344A CN111901344A (zh) | 2020-11-06 |
CN111901344B true CN111901344B (zh) | 2022-05-17 |
Family
ID=73182584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010742106.4A Active CN111901344B (zh) | 2020-07-28 | 2020-07-28 | 一种can总线异常帧的检测方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901344B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885664A (zh) * | 2017-03-13 | 2018-11-23 | 松下电器(美国)知识产权公司 | 信息处理方法、信息处理***、以及程序 |
CN111160485A (zh) * | 2019-12-31 | 2020-05-15 | 中国民用航空总局第二研究所 | 基于回归训练的异常行为检测方法、装置及电子设备 |
CN111178645A (zh) * | 2020-04-14 | 2020-05-19 | 深圳市朝阳辉电气设备有限公司 | 电力设备异常检测方法、装置、控制设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101714520B1 (ko) * | 2015-10-30 | 2017-03-09 | 현대자동차주식회사 | 차량 내 네트워크 공격 탐지 방법 및 장치 |
-
2020
- 2020-07-28 CN CN202010742106.4A patent/CN111901344B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108885664A (zh) * | 2017-03-13 | 2018-11-23 | 松下电器(美国)知识产权公司 | 信息处理方法、信息处理***、以及程序 |
CN111160485A (zh) * | 2019-12-31 | 2020-05-15 | 中国民用航空总局第二研究所 | 基于回归训练的异常行为检测方法、装置及电子设备 |
CN111178645A (zh) * | 2020-04-14 | 2020-05-19 | 深圳市朝阳辉电气设备有限公司 | 电力设备异常检测方法、装置、控制设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111901344A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lipton et al. | Detecting and correcting for label shift with black box predictors | |
CN112491796B (zh) | 一种基于卷积神经网络的入侵检测及语义决策树量化解释方法 | |
CN111652290B (zh) | 一种对抗样本的检测方法及装置 | |
CN112866023B (zh) | 网络检测、模型训练方法、装置、设备及存储介质 | |
CN108965340B (zh) | 一种工业控制***入侵检测方法及*** | |
CN109688030B (zh) | 报文检测方法、装置、设备和存储介质 | |
US11886587B2 (en) | Malware detection by distributed telemetry data analysis | |
CN112085281B (zh) | 检测业务预测模型安全性的方法及装置 | |
CN115034596A (zh) | 一种风险传导预测方法、装置、设备和介质 | |
Dehghan et al. | A novel concept drift detection method in data streams using ensemble classifiers | |
CN114418189A (zh) | 水质等级预测方法、***、终端设备及存储介质 | |
CN111866017B (zh) | 一种can总线帧间隔异常的检测方法及装置 | |
Rumez et al. | Anomaly detection for automotive diagnostic applications based on N-grams | |
Hashemi et al. | Runtime monitoring for out-of-distribution detection in object detection neural networks | |
CN111901344B (zh) | 一种can总线异常帧的检测方法及装置 | |
CN117729027A (zh) | 异常行为检测方法、装置、电子设备及存储介质 | |
CN113065395A (zh) | 一种基于生成对抗网络的雷达目标新类检测方法 | |
CN115659351B (zh) | 一种基于大数据办公的信息安全分析方法、***及设备 | |
KR20210010304A (ko) | 화염 판단을 위한 신경망 모델의 학습 및 검출 방법, 및 이를 수행하는 장치 | |
US20230164162A1 (en) | Valuable alert screening method efficiently detecting malicious threat | |
CN115296872A (zh) | 一种网络安全风险评估*** | |
CN113132414B (zh) | 一种多步攻击模式挖掘方法 | |
CN113536299A (zh) | 一种基于贝叶斯神经网络的入侵检测***的设计方法 | |
Alagrash et al. | Malware Detection via Machine Learning and Recognition of Non Stationary Tasks | |
Hooi et al. | Feature Encoding For High Cardinality Categorical Variables Using Entity Embeddings: A Case Study in Customs Fraud Detection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |