CN113625681A - Can总线异常检测方法、***及存储介质 - Google Patents
Can总线异常检测方法、***及存储介质 Download PDFInfo
- Publication number
- CN113625681A CN113625681A CN202110811920.1A CN202110811920A CN113625681A CN 113625681 A CN113625681 A CN 113625681A CN 202110811920 A CN202110811920 A CN 202110811920A CN 113625681 A CN113625681 A CN 113625681A
- Authority
- CN
- China
- Prior art keywords
- message
- normal
- characteristic
- time
- sequence
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B23/00—Testing or monitoring of control systems or parts thereof
- G05B23/02—Electric testing or monitoring
- G05B23/0205—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
- G05B23/0208—Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the configuration of the monitoring system
- G05B23/0213—Modular or universal configuration of the monitoring system, e.g. monitoring system having modules that may be combined to build monitoring program; monitoring system that can be applied to legacy systems; adaptable monitoring system; using different communication protocols
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24065—Real time diagnostics
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种CAN总线异常检测方法、***及存储介质,利用频率分析单元初步检测CAN报文的时间特点,再用自编码器单元结合CAN报文序列本身特点进一步检测。初步检测根据时间频率条件检测出了所有可能异常的报文集合,进一步检测根据自编码器只能正确重构正常特征报文序列的特点,检测出所有重构误差较大的最终异常数据。一方面避免了多次重复数据处理,另一方面实现对异常数据较为全面和准确的检测。两者结合还具有处理速度相对较快、响应时延相对较短等特点。
Description
技术领域
本发明涉及车载通信安全技术领域,特别是一种CAN总线异常检测方法、***及存储介质。
背景技术
CAN(ControllerAreaNetwork,控制器局域网)总线是应用最为广泛的车载通信总线,用于连接车辆中不同子***的各种电子控制单元ECU,并实现各种ECU之间的通信来保障车辆不同子***的协作运行。其设计初期的目标是效率和可靠性,对安全性要求不高。但是随着无线通信的快速发展和车辆功能多样化的市场需求,车辆内部配备了大量的ECU,相应新增了大量网络通信接口,比如蓝牙、蜂窝网、wifi热点等,导致CAN总线本身的安全性弊端日渐暴露。黑客们利用其缺乏加密和身份验证及广播通信等漏洞发起远程无线车载网络异常,导致车辆安全事件频发,因此对保障车载通信总线的安全性进行研究很有必要。
对于CAN总线车载网络,传统的安全对策(比如加密算法、访问控制等)并不适用,因为现代车辆具有高连接性(攻击面大)、时间敏感性、资源和复杂性等约束。现有的车载网络安全技术主要是构建异常检测***IDS,通过对汽车内部网络中的潜在网络攻击和行为不当的消息进行识别,从而可以尽早报警,提高车辆安全性。常用的异常检测***包括基于消息流检测和基于消息的有效数据检测,虽然已知许多研究都能有效地预警CAN总线异常,但这些模型存在许多不足。大多数仅根据单一变量来检测异常。当多个变量同时发生变化时,异常CAN消息的检测率较低。与此同时,大多数研究只检测已知的攻击。一旦异常消息发生变化,***就不能有效地进行防御。加上传统车载电子控制单元处理复杂过程的能力有限,许多需要高计算力的先进算法很难应用于车载网络,即便应用也因为延时较高,检测效果并不理想。
在车载总线中,各种CAN消息以周期性广播的方式进行传输。在车辆正常工作,没有发生异常行为的时候,车载CAN总线的数据交互是一个相对稳定的过程,因此一个时间窗口中,每种报文所出现的次数是相对恒定的。如果存在异常和攻击行为,最明显的特征是CAN总线上会出现大量非法的异常报文,报文的频率值大幅增加;其次是攻击报文可能会篡改正常有效数据或打破原有正常序列的模式,自编码器可以只学习正常报文数据特征,而对异常报文的重构会得到较高的均方根误差。
CAN总线本身缺乏安全性,随着无线通信的发展和车内电子控制元件(ECU)日益增多,导致CAN易受到攻击的脆弱性完全暴露,而车内ECU的内存和处理能力有局限,现有部署的异常检测***主要是单一的统计检测和机器学习方法,或者认证ECU指纹、增加新硬件等方法,缺陷是检测不够全面、准确性、误报率和实时性需要改善,或者检测过程对硬件技术要求过高,甚至需要改变CAN总线结构,成本过高不太实际,因此亟需提出检测全面性、准确率、误报率、实时性和成本进一步改善的新型异常检测***。
发明内容
本发明所要解决的技术问题是,针对现有技术不足,提供一种CAN总线异常检测方法、***及存储介质,提高异常报文检测的准确性。
为解决上述技术问题,本发明所采用的技术方案是:一种CAN总线异常检测方法,包括以下步骤:
S1、采集正常行驶状态下的CAN报文流量;
S2、利用正常行驶状态下的CAN报文流量计算每个CAN报文的正常频率基线值;
S3、对于待测CAN报文流量,计算每个滑动时间窗口内待测CAN报文的当前出现频率,将该出现频率与正常频率基线值进行分析对比,若该报文的出现频率不在正常频率基线值确定的范围内,则初步判断为异常报文。
本发明利用收集的正常CAN报文流量进行训练,减少了为产生恶意CAN报文流量而人为制造攻击或人工生成异常报文的繁琐步骤,并且由于本方法的合理设置,S2中采用频率分析单元和自编码单元的组合检测器,仅需要正常CAN报文流量就可以很好地完成训练。S3中先进行频率分析检测,按照时间窗口采样,计算ID报文在时间窗口中的当前出现频率值,同时结合S2中训练得到的该ID报文的正常频率基线值对合理波动情况进一步计算,更科学合理地得到该ID报文的正常范围,最后将该ID报文的当前出现频率值与进一步计算出的正常范围进行对比,若不在范围内,则初步检测为异常,进入下一步自编码器检测,提高了异常检测的准确率。
本发明的方法还包括:S4、利用正常行驶状态下的CAN报文流量训练自编码器单元,得到所有CAN报文的最大重构误差值,即正常报文最大重构误差基线值;
S5、将初步判断的异常报文记录到异常日志,对所述异常日志进行预处理,得到特征报文序列后,将所述特征报文序列输入到训练好的自编码器单元中,计算每个滑动时间窗口内特征报文序列的重构误差,将所述重构误差与正常报文最大重构误差基线值确定的范围进行对比,若所述重构误差在所述正常报文最大重构误差基线值确定的范围内,则将初步判断的异常报文最终判断为正常报文,否则为异常报文。
为了进一步提高预测准确率和检测速度,所述自编码器单元采用时域卷积神经网络(即改进的卷积神经网络)。
步骤S4对S3中频率分析检测器初步检测为异常的特征报文序列进一步进行自编码器检测,先预处理得到当前滑动时间窗口内的特征报文序列,该特征报文序列巧妙地融合了CAN报文流量的时间特征和有效数据特征,提高了模型的学习力,增加了模型的泛化能力。然后利用时域卷积神经网络来实现自编码器的编码和解码结构,实现了对特征报文序列的特征更全面、高效的学习,进而更精确地重构特征报文序列,最大程度上减少模型本身的重构失误,保证误差主要来源于CAN报文序列。接着计算重构特征报文序列与输入特征报文序列的均方误差,利用S2中训练得到的正常报文最大重构误差基线值并结合可接受的波动情况调整,更科学合理地确定报文序列的正常重构误差范围。最后判断当前报文序列的均方误差是否在正常重构误差范围内,若不在的话,则最终检测为异常报文。通过双重检测,一方面避免了多次重复数据处理,另一方面实现对异常数据较为全面、准确、迅速的检测。
步骤S2中,每个CAN报文的正常频率基线值Fid的获取过程包括:
1)依次计算每个滑动时间窗口(即采样周期)内CAN报文中每种ID出现的频率值;
2)分别统计全部滑动时间窗口内的每种ID出现的频率值均值,即得到每种CAN报文正常频率基线值;
其中,所述滑动时间窗口的大小Twindow,即采样时间间隔,要满足:Tid,max<Twindow<(tresponse-tcalculate)min,其中Tid,max为所有ID报文中周期最大的报文的周期,(tresponse-tcalculate)min为所有异常响应时间中的最短时间。其中Tid,max为所有ID报文中周期最大的报文周期,(tresponse-tcalculate)min为所有异常响应时间中的最短时间间隔,即从发生异常到响应该异常的最小时间间隔;tresponse为响应异常的时间点,tcalculate为开始记录异常的时间点,因为所选择的滑动时间窗口大小应满足在最小响应时间内完成异常检测过程。
该过程中,首先明确了采样的滑动时间窗口时间间隔的特点:条件一是必须至少包含同一ID的两条CAN报文(即间隔了一个周期),因此要大于所有CAN报文中ID周期最大的报文的周期;条件二是要在对异常发生到响应达成的时间之前完成检测,因此要小于从发生异常到响应异常应达到的最小时间间隔。这样得到了科学合理的滑动时间窗口大小,即采样时间间隔;然后按照滑动时间窗口计算在这个时间间隔内出现的所有ID出现的频率,依次采样分析计算,保证不会漏掉某个ID,使得计算全面,并且采用滑动时间窗口这种流式处理能够更好实现对在线实时数据的异常检测;最后统计全部滑动时间窗口内的每种ID出现的频率值,结合实际CAN正常流量中每种ID出现频率较为稳定的情况,选取均值作为合理度量指标,最终得到每种CAN报文正常频率基线值Fid。
步骤S2中,每个CAN报文的正常报文最大重构误差基线值L的获取过程包括:
a)对每个时间窗口内正常行驶状态下的CAN报文流量进行预处理,得到特征报文序列;
b)将所述特征报文序列作为自编码器单元中编码器的输入,提取正常行驶状态下的CAN报文流量的数据特征,将数据特征作为解码器的输入,重构特征报文序列;
c)计算重构的特征报文序列与输入的特征报文序列的均方误差;
d)重复步骤a)、b)、c),直到遍历完所有时间窗口,统计并选取所有时间窗口中的重构特征报文序列与输入特征报文序列的均方误差的中位数,即得到所述正常报文最大重构误差基线值。
通过预处理得到当前滑动时间窗口内的特征报文序列,进而能够输入到自编码器单元的神经网络中进行学习,得到的特征报文序列巧妙地融合了CAN报文流量的时间特征和有效数据特征,提高了模型的学习力,增加了模型的泛化能力。将特征报文序列输入到自编码器单元中进行学习,利用改进的卷积神经网络来实现自编码器的编码和解码结构,实现了对特征报文序列的特征更全面、高效的学习,进而更精确地重构特征报文序列,最大程度上减少模型本身的重构失误,保证重构误差更多来源于CAN报文序列。由于自编码器自身的学习训练情况不可解释且有一定波动性,因此在计算重构特征报文序列与输入特征报文序列的均方误差值时,选取中位数作为正常报文最大重构误差基线更加科学合理。
步骤a)的具体实现过程包括:
将不同时间点的正常行驶状态下的CAN报文流量的时间范围离散化为k个时间段,所有时间段的长度相等,所述时间段即滑动时间窗口,所述滑动时间窗口的时间大小Twindow记为Δ;
记录每个时间段内所有带时间戳的CAN报文ti,得到多元时间序列T;所述多元时间序列T即特征报文序列;T={t1,t2,...,tk},ti表示每个滑动时间窗口内的CAN报文集,i=1,2,3…k,ti={vt|t∈[(k-1)Δ,kΔ]},vt表示每个CAN报文的具体信息,包括CAN报文的ID、有效数据及时间戳,即vt={idt,pt,t}。
通过预处理得到当前滑动时间窗口内的特征报文序列,进而能够输入到自编码器单元的神经网络中进行学习。并且这样预处理得到的特征报文序列巧妙地融合了CAN报文流量的时间特征和有效数据特征,提高了模型的学习力,增加了模型的泛化能力。
步骤b)的具体实现过程包括:将特征报文序列即多元时间序列T输入到自编码器单元的编码器中,利用编码器学习并提取数据特征,根据特征相关性全映射为潜在空间hi,即利用编码器映射函数f得到hi=f(T.wi+bi),其中wi和bi分别为自编码器神经网络中第i层的权重矩阵和偏置值;
将特征报文序列输入到自编码器单元中进行学习,利用时域卷积神经网络即改进的卷积神经网络来实现自编码器单元的编码和解码结构,实现了对特征报文序列的特征更全面、高效的学习,进而更精确地重构特征报文序列,最大程度上减少模型本身的重构失误,保证重构误差更多来源于CAN报文序列。
步骤S3中,结合正常频率基线值给每个ID确定的范围为:[uid-mσid,uid+mσid];其中uid和σid为波动控制值,Fid为正常行驶状态下的CAN报文流量每个ID的正常频率基线值,fid′为当前滑动时间窗口中不同ID对应的频率值;Twindow为滑动时间窗口大小;countid′为当前滑动时间窗口中不同ID对应出现的条数(即次数);m为设定的调节值。
在频率分析检测中,先按照时间窗口采样,计算当前时间窗口中标识符为ID的CAN报文的出现频率值,同时结合得到的该ID的正常频率基线值和合理波动情况进一步计算,更科学合理地得到该ID报文的正常范围,并且考虑到要更好调节正常频率范围,可取一个值m(例如0.02)来自适应性调节初步筛选的漏报率和误报率。
所述正常报文最大重构误差基线值确定的范围为:[0.8L,1.2L];其中,L为所有时间窗口中的重构特征报文序列与输入特征报文序列的均方误差的中位数。
在正常报文最大重构误差基线值L上下浮动0.2个L单位来控制正常范围的波动,比较合理。在计算重构特征报文序列与输入特征报文序列的均方误差值时,可能会因为自编码器单元偶尔学习状态不好,导致重构特征报文序列与输入的均方误差值较大,或者自编码器单元偶尔超常发挥,导致重构特征报文序列与输入的均方误差值较小。因此统计时选取中位数作为正常报文重构误差基线的判定参考更加实际科学。
本发明还提供了一种CAN总线异常检测***,其包括计算机设备;所述计算机设备被配置或编程为用于执行上述方法的步骤。
本发明还提供了一种计算机可读存储介质,包括运行于处理器中的计算机程序;所述计算机程序被配置为用于执行上述方法的步骤。
与现有技术相比,本发明所具有的有益效果为:
(1)本发明方法提出双重检测策略,利用频率分析初步检测CAN报文的时间特点,再用自编码器结合CAN特征报文序列本身特点进一步检测。初筛根据宽泛的频率条件选出了所有可能异常的报文数据,进一步根据严苛的只能正确重构正常特征报文序列的特点,筛选出所有重构失误较大的异常数据。一方面避免了多次重复数据处理,另一方面实现对异常数据较为全面和准确的检测,且两者的实现采取合理设置具有处理速度较快、响应时延相对较短的特点。
(2)本发明方法改进了原有的利用CAN报文中不同ID具有恒定时间间隔出现的算法,通过对基于恒定时间间隔计算方法的改进,引入出现频率计算,克服了现有技术在驾驶模式转换时消息固定时间间隔会变化的缺点。
(3)本发明方法采用滑动时间窗口向前滑动来处理流式数据,对于滑动时间窗口中标识符ID进行出现频率和重构误差的计算,结合正常频率基线值和范围判断是否发生注入攻击,这种流式处理能更好地实现对在线实时数据的异常检测。
(4)本发明方法提出将CAN数据特征结合时间特征转化为多元时间序列矩阵加入模型训练,巧妙地融合了CAN报文序列的流量特征和有效数据特征,提高了模型的学习力,增加了模型的泛化能力。
(5)本发明方法采用改进的卷积神经网络(时域卷积神经网络)来实现自编码器单元,一方面,增加了残差连接结构和因果扩张卷积结构。通过残差连接结构,解决了深度卷积模型的性能退化问题,使得模型可以提取更高维度和更丰富的特征,进而能够更加准确地重构输入数据。通过因果扩张卷积结构单向传递,保证严格的时间因果约束,同时结合扩张解决了序列预测中的长程依赖问题,可以更好地操控输入序列的长短;另一方面,添加了参数共享和自适应损失因子,一方面可大规模并行处理,大大减小模型的计算量和训练所需的内存,另一方面更好地适应了时间序列数据集,加快网络的收敛速度,提高检测的速度。
附图说明
图1为CAN报文的格式;
图2为本发明所提出的CAN总线异常检测方法的大致流程图;
图3(a)和图3(b)为本发明所提出的CAN总线异常检测方法的详细流程图;图3(a)离线训练阶段;图3(b)在线检测阶段;
图4为建立正常频率基线值的过程;
图5为建立正常报文最大重构误差基线值的过程;
图6为本发明判断报文是否在正常频率范围的计算流程图;
图7为本发明中实现自编码器单元的神经网络结构。
具体实施方式
本发明实施例方法包括以下步骤:
步骤一:采集正常行驶状态下的CAN报文流量,记录CAN报文的标识符(CAN ID)、有效数据长度(DLC)和对应的有效数据(payload(data)),如图1所示,并且附加记录报文的时间戳,即接收时间。
步骤二:离线训练,如图3(a)所示。用步骤一中收集的正常CAN报文流量计算每个CAN报文的正常频率基线值,用步骤一中收集的正常CAN报文流量训练自编码器单元,得到正常报文最大重构误差基线值。
步骤三:在线检测,如图3(b)所示,先初步检测。首先将待检测的CAN报文流量输入到频率分析单元中,对每个滑动时间窗口内的CAN报文进行出现频率计算,与正常频率基线值和正常范围进行对比,不在范围内则初步判断为异常报文,将可能异常的报文记录到异常日志。
步骤四:在线检测,如图3(b)所示,再最终检测。将步骤三中记录的异常日志预处理得到特征报文序列后,输入到步骤二中训练好的自编码器单元中进行检测,计算每个滑动时间窗口内CAN特征报文序列的重构误差,与正常报文最大重构误差基线值和范围进行对比,若大于则最终判断为有异常报文。
上述基于频率分析和自编码器的CAN总线异常检测方法的实施流程,如图2所示,具体介绍如下:
所述步骤一中采集CAN报文流量的具体步骤为:
利用CAN适配器(KvaserCAN Leaf Light V2)建立与车辆OBD-II口的连接,直接连接到CAN总线上,从所述OBD-II口接受CAN报文流量,再用开源软件BusMaster将CAN报文处理为所需格式的.csv文件(后续简称为CAN报文),包括报文的标识符ID、有效数据字段和时间戳。收集了近30万个车辆正常行驶的交通数据。
所述步骤二中用步骤一收集的正常CAN报文流量来离线训练频率分析单元和自编码器单元,具体步骤为:先构建两个检测器单元模块——频率分析单元、自编码器单元,再用正常CAN流量报文进行离线训练,确定自编码器单元参数和两者的正常基线值。1)频率分析单元,用于计算每种CAN报文的正常频率基线值,后续测试中可以根据这个正常频率基线值计算当前报文的正常范围来筛选出可能有异常的CAN报文。
由于每种CAN报文都有自己的ID,所述统计每种CAN报文正常频率基线值即统计每种ID出现的正常频率基线值Fid的流程如图4所示,具体方法为:
a评估所要设定采样的滑动时间窗口时间大小;
b依次计算每个滑动时间窗口内每种ID出现的频率值;
c分别统计全部滑动时间窗口内的每种ID出现的频率值均值,即得到每种CAN报文正常频率基线值。
其中,具体方法的具体步骤如下:
首先,a评估所要设定采样的滑动时间窗口的时间大小的具体步骤为:
计算所有ID出现的最大周期,所选择的滑动时间窗口大小应大于最大周期,即尽量保证存在一个滑动时间窗口中每个ID的数据能够出现两次;
确定需要达到的最小响应时间,即从发生异常到响应该异常的最小时间间隔(该最小时间间隔确定过程见:李佳,朱元,田光宇,等.CAN总线通信响应时间模型的研究[C].//北京汽车工程学会2005年学术年会论文集.2005:75-85.),所选择的滑动时间窗口大小应满足在最小响应时间内完成异常检测过程;
得到滑动时间窗口的范围:Tid,max<Twindow<(tresponse-tcalculate)min;
实际操作中可以根据滑动时间窗口的特性进行大小的适当调节,已知:如果滑动时间窗口过大,那么一个滑动时间窗口持续的时间就会很长,其中包含的可能异常报文需要等到全部计算过滑动时间窗口的每个CAN报文的频率后才能被报告,这不利于对汽车的及时保护。如果滑动时间窗口过小,报文信息会较少,使得频率值不够稳定,不利于提高异常检测的效果。
接着,b依次计算每个滑动时间窗口内每种ID出现的频率值,具体步骤为:
滑动时间窗口随时间的推移按步长向前滑动采样,同理计算每个窗口内的fid;
循环上述步骤,直到滑动时间窗口滑动至末端。
最后,c分别统计全部滑动时间窗口内的每种ID出现的频率值,具体步骤为:
2)自编码器单元,用于建立识别正常报文的最大重构误差基线值,进一步对步骤三中筛选出来的可能异常的CAN报文流量集进行报文序列本身的数据特征判断,识别出异常报文。
所述建立识别正常报文最大重构误差基线值L的流程如图5所示,具体方法为:
a预处理正常CAN报文流量,得到可以输入到神经网络中训练的特征报文序列;
b将正常CAN数据依次输入到自编码器神经网络中训练,利用编码器提取正常特征报文序列的数据特征,再用解码器基于学到的数据特征重构特征报文序列;
c将重构的特征报文序列与输入特征报文序列进行对比,计算其均方误差;
d循环上述a,b、c步骤,直到对全部数据学习和计算结束,统计并选取均方误差的中位数,即得到正常报文的最大重构误差基线值。
其中,具体方法的具体步骤如下:
首先,a将正常CAN报文流量预处理的具体方法为:
首先将不同时间点发出的CAN报文流量,根据其时间范围离散化为k个时间段,每个时间段的时间间隔是固定的,在这里取为滑动时间窗口的时间大小Twindow,记为Δ。
然后记录每个时间段内所有带时间戳的CAN报文ti,得到多元时间序列T。上述多元时间序列T即特征报文序列,可表示为T={t1,t2,...,tk},(i=1,2,3…k)。其中ti表示每个滑动时间窗口时间段的CAN报文集,即ti={vt|t∈[(k-1)Δ,kΔ]}。其中vt表示每个CAN报文的具体信息,包括CAN报文的ID、有效数据及时间戳,即vt={idt,pt,t}。
至此,完成对在不规则时刻不同步发送的CAN报文流量的预处理,得到包含有效数据和流量时间信息的多元时间序列T,即能够输入到自编码器单元中进行训练的数据。接着,b输入到自编码器中训练,我们采用改进后的卷积神经网络(即时域卷积神经网络)来实现自编码器单元,包括编码器和解码器的实现部分,具体实现为:
在编码器中,将多元时间序列T的数据特征相关性全映射为潜在空间hi,利用编码器映射函数f得到hi=f(T.wi+bi),其中wi和bi分别为编码器中第i层的权重矩阵和偏置值。
进一步的,该自编码器单元的编码器和解码器由改进的卷积时间神经网络(即时域卷积神经网络,见Shaojie Bai,J.Zico Kolter,VladlenKoltun.An EmpiricalEvaluation of Generic Convolutional and Recurrent Networks for SequenceModeling.arXiv:1803.01271v2.2018.04.19)来实现,如图7所示,主要用于处理特定的时间序列,具体改进为:一方面,在卷积层之间的增加了残差连接和因果扩张卷积结构。通过残差连接结构,实现跨层传递信息,解决了深度卷积模型由于原本卷积层过多导致的性能退化问题。通过因果扩展卷积结构,利用因果卷积只单向传递,对于上一层t时刻的值,只依赖于下一层t时刻及其之前的值,保证严格的时间因果约束,同时结合扩张卷积实现跳过部分输入来使感受野可以应用于大于感受野本身长度的区域,解决了序列预测中的长程依赖问题,可以更好地操控输入序列的长短;进而得到了能够更好处理时间性序列的时域卷积神经网络,使得改进的网络模型能够更高效地提取时序特征。另一方面,改进了损失函数,增加了自适应损失因子,使模型能够更好地适应时间序列数据集,加快网络的收敛速度,提高训练和检测的速度。
然后,c计算重构数据与输入数据均方误差的具体步骤为:
然后计算两者的均方误差MSE,即为该报文的重构误差,误差分数越高,有异常的可能性越大。MSE计算公式为:最终,d循环a、b、c三个步骤,直到最后一个滑动时间窗口,统计得到正常报文的最大重构误差基线值及范围,具体步骤是:
按照滑动时间窗口依次选取预处理后的CAN报文,输入到自编码器单元,依次进行编码器和解码器实现,并计算特征报文序列的重构与输入的均方误差,直到全部计算完;
统计所有正常特征报文序列训练得到的均方误差集,选取其中的中位数,作为正常报文的最大重构误差基线值L;
基于最大重构误差基线值L,确定正常误差范围为:[0.8L,1.2L]。
在所述步骤三中,首先对待检测的CAN报文流量进行频率分析,初步判断是否异常,具体步骤为:
a检测阶段,计算在设定采样的滑动时间窗口内所有ID报文的当前出现频率fid,计算每个ID基于已知的正常频率基线值Fid的正常频率浮动范围。
b对比判断该ID出现的频率值是否属于这个正常浮动范围内;
c循环a、b两步,直到最后的滑动时间窗口,筛选出不符合这个范围内的全部CAN报文。
d存入到要进行下一步检测的异常日志中,完成第一步频率分析筛选。
上述a步骤中,在检测阶段,结合报文在基线值Fid上的正常波动情况来计算正常频率范围,计算流程如图6所示,具体步骤为:
初步得到该ID报文出现的正常频率范围为[uid-σid,uid+σid],考虑到要更好调节正常频率范围,可取一个m值来自适应性调节初步检测的漏报率和误报率;
最终得到该CAN报文的正常频率范围:[uid-mσid,uid+mσid]。
由区间可知,若m增大,正常频率值区间增大,漏报率上升,误警率降低;反之,若m减小,正常频率值区间减小,漏报率会降低,误警率会上升。这里,为了降低漏报率,我们采用较小的m值,虽然同时也提高了误警率,但是随后这些被误报的报文会输入到自编码器单元进行第二次检测,所以设置还是合理的。
上述b步骤中,对比判断该ID出现的频率值是否属于这个正常浮动范围内的具体步骤为:
将fid′与[uid-mσid,uid+mσid]进行比较,若该fid′在这个范围内,则认为该ID报文正常。否则认为该ID报文可能是异常报文,因此将包含该ID报文的滑动时间窗口记录到异常日志中。
上述c步骤中,完成初步检测的具体步骤为:
滑动时间窗口向前移动,继续下一轮的检测,直到最后一个滑动时间窗口,得到一个包含全部可能异常报文的异常日志。
进一步的,所述异常日志由若干个时间窗口大小的可能包含异常CAN报文的流量集合组成。
在所述步骤四中,对待检测的CAN报文流量生成的异常日志进行自编码器单元的最终检测,具体步骤为:
a将异常日志中全部CAN报文进行预处理,根据上述2)自编码器单元的a步骤得到可以输入到自编码器神经网络的特征报文序列;
b输入到训练好的自编码器检测单元中,计算解码-编码后的重构特征报文序列与输入特征报文序列的均方误差;
c将b中计算的均方误差与步骤二中训练求得的正常报文最大重构误差基线值及范围进行比较,若在正常误差范围内,最终判断为正常报文,否则最终判断为异常报文,
d循环上述a、b、c,直到全部检测完毕,输出正常和异常报文流量集。
本发明主要针对所有异常情况下的CAN报文流量进行检测,包括典型的DOS攻击、欺骗攻击、模糊攻击、重放攻击、未知攻击,以及CAN报文自身的格式错误比如异常位翻转、位添加或删除等极具欺骗性的对抗样本,甚至不合逻辑的汽车指令,比如在车辆高速匀速行驶过程中CAN总线中突然急剧增加的转向指令。这些不符合正常CAN报文流量规律和报文序列特点的待检测报文都会被视为异常流量,检测逻辑更加严谨、检测面更加广泛,因此检测效果更加准确。
本发明提出的CAN总线异常检测方法和实现可以灵活应用到多种车辆中,不需要对车辆的CAN总线结构进行改动;并且通过离线提前训练好单元检测器,减轻在线检测的时间和计算负担;采用结合频率分析和自编码器的双重检测,一方面频率分析本身属于轻量级方法,另一方面自编码器采用对计算和内存需求较小的改进卷积神经网络来实现,使得在提高检测准确率的同时满足延时较小。因此,该技术方法对于保障以CAN总线为主的车载网络安全具有较高的实用意义,后续可以用于软件设备的技术支撑嵌入到ECU、网关或TBOX上,更好地扩展到多种车辆上。
Claims (10)
1.一种CAN总线异常检测方法,其特征在于,包括以下步骤:
S1、采集正常行驶状态下的CAN报文流量;
S2、利用正常行驶状态下的CAN报文流量计算每个CAN报文的正常频率基线值;
S3、对于待检测的CAN报文流量,计算每个滑动时间窗口内待检测的CAN报文出现频率,将该出现频率与正常频率基线值进行对比,若该报文的出现频率不在正常频率基线值确定的范围内,则初步判断为异常报文。
2.根据权利要求1所述的CAN总线异常检测方法,其特征在于,步骤S2中,每个CAN报文的正常频率基线值的获取过程包括:
1)依次计算每个滑动时间窗口内CAN报文中每种ID出现的频率值;
2)分别统计全部滑动时间窗口内的每种ID出现的频率值均值,即得到每个CAN报文的正常频率基线值;
其中,所述滑动时间窗口的大小Twindow满足:Tid,max<Twindow<(tresponse-tcalculate)min,其中Tid,max为所有ID对应的CAN报文中的周期最大值,(tresponse-tcalculate)min为所有异常响应时间中的最短时间间隔,即从发生异常到响应该异常的最小时间间隔;tresponse为响应异常的时间点,tcalculate为开始记录异常的时间点。
3.根据权利要求1所述的CAN总线异常检测方法,其特征在于,还包括:
S4、利用正常行驶状态下的CAN报文流量训练自编码器单元,得到所有CAN报文的最大重构误差值,即正常报文最大重构误差基线值;
S5、将初步判断的异常报文记录到异常日志,对所述异常日志进行预处理,得到CAN报文的特征报文序列后,将所述特征报文序列输入到训练好的自编码器单元中,计算每个滑动时间窗口内特征报文序列的重构误差,将所述重构误差与正常报文最大重构误差基线值确定的范围进行对比,若所述重构误差在所述正常报文最大重构误差基线值确定的范围内,则将初步判断为异常的报文最终判断为正常报文,否则为异常报文;优选地,所述自编码器单元采用时域卷积神经网络。
4.根据权利要求3所述的CAN总线异常检测方法,其特征在于,所述正常报文最大重构误差基线值确定的范围为:[0.8L,1.2L];其中,L为所有时间窗口中的重构特征报文序列与输入特征报文序列的均方误差的中位数。
5.根据权利要求3所述的CAN总线异常检测方法,其特征在于,步骤S4中,每个CAN报文的正常报文最大重构误差基线值L的获取过程包括:
a)对每个时间窗口内正常行驶状态下的CAN报文流量进行预处理,得到特征报文序列;
b)将所述特征报文序列作为自编码器单元中编码器的输入,提取正常行驶状态下的CAN报文流量的数据特征,将数据特征作为解码器的输入,重构特征报文序列;
c)计算重构的特征报文序列与输入的特征报文序列的均方误差;
d)重复步骤a)、b)、c),直到遍历完所有滑动时间窗口,统计并选取所有滑动时间窗口中的重构特征报文序列与输入特征报文序列的均方误差的中位数,即得到所述正常报文最大重构误差基线值。
6.根据权利要求5所述的CAN总线异常检测方法,其特征在于,步骤a)的具体实现过程包括:
将不同时间点的正常行驶状态下的CAN报文流量的时间范围离散化为k个时间段,所有时间段的长度相等,所述时间段即滑动时间窗口,所述滑动时间窗口的时间大小Twindow记为Δ;
记录每个时间段内所有带时间戳的CAN报文,得到多元时间序列T;所述多元时间序列T即特征报文序列;T={t1,t2,...,tk},ti表示每个滑动时间窗口内的CAN报文集,i=1,2,3...k,ti={vt|t∈[(k-1)Δ,kΔ]},vt表示每个CAN报文的具体信息,包括CAN报文的ID、有效数据及时间戳。
9.一种CAN总线异常检测***,其特征在于,包括计算机设备;所述计算机设备被配置或编程为用于执行权利要求1~8之一所述方法的步骤。
10.一种计算机可读存储介质,其特征在于,包括运行于处理器中的计算机程序;所述计算机程序被配置为用于执行权利要求1~8之一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110811920.1A CN113625681B (zh) | 2021-07-19 | 2021-07-19 | Can总线异常检测方法、***及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110811920.1A CN113625681B (zh) | 2021-07-19 | 2021-07-19 | Can总线异常检测方法、***及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113625681A true CN113625681A (zh) | 2021-11-09 |
CN113625681B CN113625681B (zh) | 2022-12-13 |
Family
ID=78380092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110811920.1A Active CN113625681B (zh) | 2021-07-19 | 2021-07-19 | Can总线异常检测方法、***及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113625681B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016433A (zh) * | 2022-06-01 | 2022-09-06 | 哈尔滨工业大学(威海) | 一种车载can总线流量异常检测方法及*** |
CN115277051A (zh) * | 2022-06-01 | 2022-11-01 | 北京邮电大学 | 一种控制器局域网总线攻击检测方法和设备 |
CN115664788A (zh) * | 2022-10-24 | 2023-01-31 | 惠州市德赛西威智能交通技术研究院有限公司 | 一种通信数据劫持监控方法及***、存储介质、电子设备 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821002A (zh) * | 2011-06-09 | 2012-12-12 | ***通信集团河南有限公司信阳分公司 | 网络流量异常检测方法和*** |
US20160188396A1 (en) * | 2014-12-30 | 2016-06-30 | Battelle Memorial Institute | Temporal anomaly detection on automotive networks |
US20170373878A1 (en) * | 2014-11-20 | 2017-12-28 | National University Corporation Nagoya University | Controller area network (can) communication system and error information recording device |
US20180316584A1 (en) * | 2016-01-08 | 2018-11-01 | Panasonic Intellectual Property Corporation Of America | Abnormality detection method, abnormality detection apparatus, and abnormality detection system |
CN110261080A (zh) * | 2019-06-06 | 2019-09-20 | 湃方科技(北京)有限责任公司 | 基于多模态数据的异构旋转型机械异常检测方法及*** |
CN110275508A (zh) * | 2019-05-08 | 2019-09-24 | 西安电子科技大学 | 车载can总线网络异常检测方法及*** |
CN110581834A (zh) * | 2018-06-11 | 2019-12-17 | ***通信集团浙江有限公司 | 一种通信能力开放异常检测方法和装置 |
CN111030962A (zh) * | 2018-10-09 | 2020-04-17 | 厦门雅迅网络股份有限公司 | 车载网络入侵检测方法及计算机可读存储介质 |
CN111031051A (zh) * | 2019-12-17 | 2020-04-17 | 清华大学 | 一种网络流量异常检测方法及装置、介质 |
CN111970229A (zh) * | 2020-06-23 | 2020-11-20 | 北京航空航天大学 | 一种针对多种攻击方式的can总线数据异常检测方法 |
CN112887302A (zh) * | 2021-01-22 | 2021-06-01 | 中汽创智科技有限公司 | 汽车控制器局域网络总线入侵检测方法和*** |
CN113067754A (zh) * | 2021-04-13 | 2021-07-02 | 南京航空航天大学 | 一种半监督时间序列异常检测方法及*** |
-
2021
- 2021-07-19 CN CN202110811920.1A patent/CN113625681B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821002A (zh) * | 2011-06-09 | 2012-12-12 | ***通信集团河南有限公司信阳分公司 | 网络流量异常检测方法和*** |
US20170373878A1 (en) * | 2014-11-20 | 2017-12-28 | National University Corporation Nagoya University | Controller area network (can) communication system and error information recording device |
US20160188396A1 (en) * | 2014-12-30 | 2016-06-30 | Battelle Memorial Institute | Temporal anomaly detection on automotive networks |
US20180316584A1 (en) * | 2016-01-08 | 2018-11-01 | Panasonic Intellectual Property Corporation Of America | Abnormality detection method, abnormality detection apparatus, and abnormality detection system |
CN110581834A (zh) * | 2018-06-11 | 2019-12-17 | ***通信集团浙江有限公司 | 一种通信能力开放异常检测方法和装置 |
CN111030962A (zh) * | 2018-10-09 | 2020-04-17 | 厦门雅迅网络股份有限公司 | 车载网络入侵检测方法及计算机可读存储介质 |
CN110275508A (zh) * | 2019-05-08 | 2019-09-24 | 西安电子科技大学 | 车载can总线网络异常检测方法及*** |
CN110261080A (zh) * | 2019-06-06 | 2019-09-20 | 湃方科技(北京)有限责任公司 | 基于多模态数据的异构旋转型机械异常检测方法及*** |
CN111031051A (zh) * | 2019-12-17 | 2020-04-17 | 清华大学 | 一种网络流量异常检测方法及装置、介质 |
CN111970229A (zh) * | 2020-06-23 | 2020-11-20 | 北京航空航天大学 | 一种针对多种攻击方式的can总线数据异常检测方法 |
CN112887302A (zh) * | 2021-01-22 | 2021-06-01 | 中汽创智科技有限公司 | 汽车控制器局域网络总线入侵检测方法和*** |
CN113067754A (zh) * | 2021-04-13 | 2021-07-02 | 南京航空航天大学 | 一种半监督时间序列异常检测方法及*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115016433A (zh) * | 2022-06-01 | 2022-09-06 | 哈尔滨工业大学(威海) | 一种车载can总线流量异常检测方法及*** |
CN115277051A (zh) * | 2022-06-01 | 2022-11-01 | 北京邮电大学 | 一种控制器局域网总线攻击检测方法和设备 |
CN115664788A (zh) * | 2022-10-24 | 2023-01-31 | 惠州市德赛西威智能交通技术研究院有限公司 | 一种通信数据劫持监控方法及***、存储介质、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN113625681B (zh) | 2022-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hanselmann et al. | CANet: An unsupervised intrusion detection system for high dimensional CAN bus data | |
Seo et al. | GIDS: GAN based intrusion detection system for in-vehicle network | |
CN111967571B (zh) | 一种基于mhma的异常检测方法和设备 | |
CN113625681B (zh) | Can总线异常检测方法、***及存储介质 | |
CN111294341B (zh) | 基于自编码器和递归神经网络的车载***入侵检测方法 | |
CN108965001B (zh) | 一种车辆报文数据模型的评估方法及装置 | |
US11985005B2 (en) | Method for detecting CAN bus intrusion of vehicle-mounted network based on GMM-HMM and system | |
CN111711608B (zh) | 一种电力数据网流量异常检测方法、***及电子设备 | |
CN117113262B (zh) | 网络流量识别方法及其*** | |
Alkhatib et al. | Can-bert do it? controller area network intrusion detection system based on bert language model | |
CN113079167B (zh) | 一种基于深度强化学习的车联网入侵检测方法及*** | |
CN116346384A (zh) | 一种基于变分自编码器的恶意加密流量检测方法 | |
CN114900331B (zh) | 基于can报文特征的车载can总线入侵检测方法 | |
CN114330487A (zh) | 一种基于bipmu的无线网络网络安全态势评估方法 | |
CN115714674A (zh) | 一种针对云网络资源状态的异常检测方法及*** | |
CN113923014A (zh) | 一种基于k近邻法的车载总线网络异常检测方法 | |
Zhao et al. | GVIDS: A reliable vehicle intrusion detection system based on generative adversarial network | |
CN115632887A (zh) | 一种区块链网络异常数据检测方法、装置及设备 | |
CN113328881A (zh) | 一种面向非合作无线网络的拓扑感知方法及装置、*** | |
CN115277123B (zh) | 车用can总线注入攻击异常检测方法及*** | |
Harlow | Anomaly Detection for the MIL-STD-1553B Multiplex Data Bus Using an LSTM Autoencoder | |
Xu et al. | Multivariate Time Series Anomaly Detection: a Hybrid Method Based on GRU-SAE and GAIN | |
Liang et al. | Leveraging Byte-Level Features for LSTM-based Anomaly Detection in Controller Area Networks | |
CN117278306A (zh) | 一种基于真实物理含义的can-fd异常检测方法 | |
Ye-kui et al. | Network-wide anomalous flow identification method based on traffic characteristics distribution |
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 |