CN110275508B - 车载can总线网络异常检测方法及系统 - Google Patents
车载can总线网络异常检测方法及系统 Download PDFInfo
- Publication number
- CN110275508B CN110275508B CN201910379225.5A CN201910379225A CN110275508B CN 110275508 B CN110275508 B CN 110275508B CN 201910379225 A CN201910379225 A CN 201910379225A CN 110275508 B CN110275508 B CN 110275508B
- Authority
- CN
- China
- Prior art keywords
- message
- value
- bus
- sliding window
- data
- 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
-
- 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)
- Small-Scale Networks (AREA)
Abstract
本发明属于车载网络技术领域,公开了一种车载CAN总线网络异常检测方法及系统,对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常。本发明有效性,高准确率地检测出重放攻击、拒绝服务攻击、篡改攻击和伪造攻击,提供了更多的异常信息,有助于后续的防护。
Description
技术领域
本发明属于车载网络技术领域,尤其涉及一种车载CAN总线网络异常检测方法及系统。
背景技术
目前,最接近的现有技术:随着物联网、移动通信等技术的飞速发展,汽车的信息化、网联化程度不断提高,逐步进入车联网(Internet of Vehicles,IoV)时代。预计到2020年,我国乘用车销量将达到2773.3万台,智能网联汽车市场规模可达1000亿元以上。然而现有研究和近年频繁发生的汽车信息安全事件表明,网联汽车面临着严峻的信息安全问题。攻击者可以通过网络获取汽车及车主的隐私信息、位置信息,甚至远程控制汽车的行为,如关闭引擎或刹车失灵等。这不仅造成了车主的隐私泄露,而且严重威胁了车主的生命安全。因此网联汽车的信息安全问题受到研究者们的广泛关注。
汽车电子系统是由电子控制单元(Electric Control Unit,ECU)组成的分布式系统,汽车的各项功能由相应的ECU控制,如引擎ECU、刹车ECU、气囊ECU等。ECU之间通过CAN(Controller Area Network,CAN)总线进行组网通信。然而,由于CAN总线将指令消息广播发送给所有ECU,且没有加密认证措施。使得攻击者一旦接入车内网络,就可以向CAN总线发送指令,控制车辆。
异常检测作为网络安全防御的重要手段,以总线节点的形式嵌入到CAN总线中,在不影响总线通信的前提下,报告网络中的异常行为,可以很好地适用于车载网络环境。然而现有的研究均只针对CAN总线的某个特性提出了相应的方案,只能解决CAN总线上部分的攻击,不能给CAN总线提供全面的保护。比如基于报文频率等特性的方案虽然能检测出总线上流量的大幅变化,但是不能检测出对报文的篡改攻击,而且检测指标受总线传输速率和非周期报文的影响,同时不能确定异常报文的ID,无法进行针对性的防御。另外,攻击者的恶意指令包含在报文的数据域中,然而由于CAN总线的指令格式和响应机制均由厂商保密,现有研究对CAN总线的数据域考虑较少。但是,针对报文数据域的异常检测却十分有必要。
基于统计方法的CAN总线异常检测方案,Muter提出了一种基于信息熵的检测方法,通过计算一个时间窗口内CAN总线上不同ID的报文频率,得到总线上的信息熵。当攻击者在向CAN总线注入大量报文时,会导致总线上的信息熵的变化,以此报告异常。Wu在Muter的基础上,将固定时间长度的滑动窗口改进为固定报文数量的滑动窗口,同样通过计算滑动窗口内的报文的信息熵,判定车载网络是否有异常发生。一种新的基于熵的异常检测方法,其根据CAN总线报文的标识符ID由11bit构成,通过分析标识符ID的每一bit的信息熵检测异常的发生。一种基于报文间隔的异常检测方法,依据在正常情况下一些ECU会周期性的发送报文这一特点,通过检测相邻两条消息的时间间隔判断异常,如果两条连续的同ID报文的时间间隔小于阈值,就判断为异常。这种方法没有考虑到非周期报文对报文间隔值的影响,而且不能检测非周期报文的异常。Taylor一种基于频率的异常检测方法,通过计算一个滑动时间窗内报文频率,与历史平均记录进行比较报告异常。Marchetti一种基于报文序列的异常检测方法,该方法根据报文ID出现的顺序建立转移矩阵,对于没有出现过的报文序列就视为异常。该方案有一定的误报和漏报,因为即使是异常的报文也可能出现在正常的顺序中,同时一条异常报文会使得后面的正常报文被判定为异常。基于信息熵的异常检测方案没有考虑总线传输速率和非周期报文对信息熵值的影响,也没有利用报文之间的联系,无法给出异常报文的ID。此外,如果攻击者以总线的固有频率注入报文,基于信息熵的异常检测方案会失效。
基于机器学习的CAN总线异常检测方案,Narayanan提出一种根据车辆状态的异常检测方法。通过收集车辆状态建立隐马尔科夫模型,然后根据观测到的车辆状态判断是否有异常发生,比如车辆在行驶中车门打开就认为是一个异常,而且,该方案只能在攻击者已经改变车辆状态后才能检测出异常,实用性较小。Taylor提出一种基于LSTM(Long Short-Term Memory,LSTM)神经网络的异常检测方法,用报文内容训练神经网络,然后由神经网络预测下一条报文的内容,当接收到的报文与预测结果差别大于阈值时,就识别为异常。Kang基于深度神经网络提出一个入侵检测方案,其从车内网络数据中提取特征向量,然后使用预训练的深度信念网络训练深度神经网络的参数。Wang等基于HTM(HierarchicalTemporal Memory,HTM)提出一个分布式的车内网络异常检测系统,该HTM模型可以根据先前的网络状态预测数据流,将预测值和真实值进行比较,以此判断异常。基于机器学习的方案一般计算量较大,然而车载ECU的本质是单片机,其计算能力和存储能力均受限,不适用与复杂运算。
基于报文物理特性对ECU进行定位的方案,虽然CAN总线报文不包含源地址,但是不同的硬件设备发送的报文在物理层上会有不同之处,如电压、频率、偏移等。有研究者根据报文的一些物理特性确定报文的源地址,进行ECU定位。Cho等提出Viden方案,利用报文的电压信号特性作为ECU的指纹,通过检测总线上报文的电压信号确定报文由哪个ECU发送。当有攻击发生时,该方案可以定位被入侵的ECU。Choi等利用利用LibXtract工具提取了总线报文的40个时域和频域的特征,根据联合互信息对40个特征进行筛选,选择8个时域特征和9个频域特征,用有监督的方法根据选出的17个特征训练ECU分类器,识别恶意ECU发送的信号。基于报文物理特性判断其源地址的方案,其检测结果受到设备老化、温度、湿度等因素的影响,导致误报、漏报的发生。
综上所述,现有技术存在的问题是:
(1)基于统计方法的CAN总线异常检测方案,没有考虑到非周期报文对报文间隔值的影响,不能检测非周期报文的异常;有一定的误报和漏报;没有利用报文之间的联系,无法给出异常报文的ID;如果攻击者以总线的固有频率注入报文,基于信息熵的异常检测方案会失效。
(2)基于机器学习的CAN总线异常检测方案只能在攻击者已经改变车辆状态后才能检测出异常,实用性较小;一般计算量较大,然而车载ECU的本质是单片机,其计算能力和存储能力均受限,不适用与复杂运算。
(3)基于报文物理特性对ECU进行定位的方案检测结果受到设备老化、温度、湿度等因素的影响,导致误报、漏报的发生。
解决上述技术问题的难度:
1、车载ECU的计算能力,和存储能力均受限,不适用与复杂运算;
2、CAN总线报文不包含源地址和目的地址,难以ECU进行定位;
3、CAN总线是一种广播协议,而非周期报文为事件触发型,非周期性报文不可预测;
4、CAN总线的通信实时性要求高,传统的加密认证方案会对通信实时性造成影响。
解决上述技术问题的意义:
1、考虑非周期性报文可以降低异常检测的误报率和漏报率,提高异常检测系统的准确性和可用性;
2、确定异常报文的ID可以提供更多的异常信息,便于针对性的防御和事后的溯源;
3、异常检测系统能以ECU节点的形式嵌入CAN总线,在不影响CAN总线通信实时性的前提下,保护CAN总线的安全。
发明内容
针对现有技术存在的问题,本发明提供了一种车载CAN总线网络异常检测方法及系统。
本发明是这样实现的,一种车载CAN总线网络异常检测方法,所述车载CAN总线网络异常检测方法包括:
(1)对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;
(2)对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常。
进一步,所述对标识符ID进行基于相对熵的CAN总线异常检测具体包括:
第一步,随机变量X的信息熵的定义为:
其中p(x)表示随机变量X的分布;
相对熵用衡量两个概率分布之间的差异,p(x)和q(x)是随机变量X的两种概率分布,则概率分布p(x)对概率分布q(x)的相对熵的定义为:
用Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,滑动窗口内包含的报文条数,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合;滑动窗口的信息熵表示为:
其中,p(id)=Countid/Ntotal,表示滑动窗口内报文标识符为id的报文出现的概率,Countid为滑动窗口内报文标识符为id的报文出现的次数,Ntotal为滑动窗口内出现的所有报文条数,滑动窗口的大小,是一个固定值;
在滑动窗口内结对报文的相对熵的计算公式如下:
q(id)是标识符为id的报文在正常情况下的分布,即不受攻击时的正常分布,p(id)是标识符为id的报文在受攻击情况下的分布,则标识符为id的报文的异常情况对正常情况的相对熵的计算公式如下:
未受到攻击时,D(id1|id2)与D(id)均非常接近0;当有攻击发生时,D(id1|id2)与D(id)至少会有一个的变化幅度较大;
第二步,根据报文的周期性和发送顺序之间的联系,对CAN总线报文进行结对;
第三步,滑动窗口的设置,总线报文速率为f,单位是条/秒,最长可接受检测时长th,周期报文的最小周期为Periodmin,滑动窗口大小为W,则:
(4)异常阈值的设置,用μid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的均值,σid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的标准差;用表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的均值,表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的标准差;
确定滑动窗口的大小后,在正常报文数据集上,滑动窗口按照报文收集时间顺序滑动,计算滑动窗口内的相对熵值并记录,最后计算报文数据集上的相对熵的均值μid和标准差σid,作为CAN总线正常报文模型的参数;
第六步,异常报文的检测,Test_Data是包含异常报文的按收集时间排列的CAN总线报文数据集。Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合;Rt表示异常检测的反应时间,为滑动窗口的时间长度。idi和idj是结对的报文;μ和σ分别表示对应的相对熵的均值和标准差,其值在模型建立阶段获得;k为异常阈值区间的调控参数;算法首先计算滑动窗口内的每个id在滑动窗口内的相对熵值D(idi|idj)和D(idi),接着判断相对熵值D(idi)是否在正常范围[μidi-kσidi,μidi+kσidj]和相对熵值D(idi|idj)是否在正常范围[μidi-idj-kσidi-idj,μidi-idj+kσidi-idj]。如果在正常熵值区间内,则认为没有异常发生,滑动窗口向前滑动,进行下一轮的检测;如果不在正常熵值区间内,则判断为异常,给出警报并写入日志;滑动窗口向前滑动,进行下一轮的异常检测。
进一步,所述第五步的正常报文模型建立过程包含以下步骤。
(2)在正常报文数据集上,大小为W的滑动窗口在数据集上按照时间顺序滑动,提取滑动窗口内的报文的ID构成滑动窗口Φ=(I,W),I={id1,id2,id3,...,idn};
(4)根据记录的相对熵的值计算每个ID(对)的相对熵D(id1|id2)与D(id),作为正常报文模型的参数。
进一步,所述对数据域进行基于报文数据域的CAN总线异常检测具体包括:
第一步,CAN总线的数据域有一个固定的内部结构,CAN总线报文数据域的每一bit代表的含义是固定的,并由CAN总线的通信矩阵定义;
第二步,按照常值特征、循环值特征、多值特征顺序将CAN总线报文数据域的特征提取出;得到的特征具有最大的长度;
第三步,使用一个5元组表示ID=x的CAN总线数据报文数据域的特征提取情况,5元组的格式是:<ID,start,end,type,value>,其中ID是CAN总线的报文标识符,start是该特征数据段的起始索引,end是该特征数据段的终止索引,type是该特征数据段的类型,包含四种:常值特征constant、循环值特征loop、多值特征multi-value和无规律值irregular-value,value是特征对应的值;
第四步,线下建立好CAN总线正常报文模型以后,对异常报文的检测。
进一步,所述第二步具体包括:
(1)提取标识符ID=id的报文数据域的常值特征的算法,用于提取报文数据域的常值特征;首先,将包含ID=id的CAN总线数据集中的报文按照4bit进行分割,将得到的16个数据段存入列表中,每个数据是长度为4的0/1序列;接着,遍历列表,对每个数据段进行如下操作:如果其在整个数据集上都是常值,则认为该数据段是一个常值特征;然后,对常值数据段从左端和右端进行拓展,如果拓展后的数据段仍然是常值,则继续进行拓展,直到数据段不符合常值规律;最后记录常值特征段的起始索引和终止索引;
(2)提取标识符ID=id的报文数据域循环值特征的算法,用于提取报文数据域的循环值特征;ID=id的CAN总线数据集经过常值特征提取后,对非常值特征的数据段进行循环值特征提取;对每一个非常值特征的数据段进行如下操作:如果该数据段是循环值,即该数据段的值在数据集上是循环的,则认为该数据段是一个循环特征;然后,对循环值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合循环值的规律,则继续进行拓展,直到数据段不符合循环值规律;最后记录循环值特征段的起始索引和终止索引;
(3)提取标识符ID=id的报文数据域多值特征的算法,用于提取报文数据域的多值特征;ID=id的CAN总线数据集经过常值特征提取和循环值特征提取后,对剩余的数据段进行多值特征提取;多值特征的判断方法是:如果数据段在数据集上的取值个数小于可取值总数的三分之二,则认为该数据段为多值特征段;然后,对多值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合多值特征的规律,则继续进行拓展,直到数据段不符合多值规律;最后记录多值特征段的起始索引和终止索引。
进一步,所述第三步CAN总线正常报文模型是在线下建立具体包括:
(1)从CAN总线上收集报文数据,应使得收集到的数据集包含的报文尽可能丰富,包含了报文的所有情况;将数据集中的所有报文按照报文标识符ID进行分类,同一类的报文按照收集的时间顺序排列;
(2)对每一类ID的报文,通依次提取其报文数据域的常值特征、循环值特征、多值特征,将提取得到的特征存储为5元组[ID,start,end,type,value],并保存为文件,此时得到每个ID的正常报文模型;
(3)所有ID的特征提取完毕后,将所有ID的正常报文模型整合,构成CAN总线的正常报文模型,用于后续的异常报文检测。
进一步,所述第四步对异常报文的检测过程具体包括:
(1)从CAN总线上读取当前报文,并根据标识符ID传入CAN总线正常报文模型,选择对应的特征元组;
(2)根据报文ID选择对应的特征元组,将报文的数据域依据对应的模型划分为若干数据段;
(3)依次判断每一数据段是否与对应模型中记录的类型相符,即如果数据段为常值特征,则判断该数据段的值是否与记录的常值一致,若不一致,则报告异常;如果数据段为循环值特征,则判断该数据段的是否符合记录的循环规律,即和上一条报文对应数据段的值是否符合升序或降序规律,若不符合,则报告异常;如果该数据段为多值特征,则判断该数据段的值是否是记录的多值中的一个,若不是,则报告异常。
本发明的另一目的在于提供一种基于所述车载CAN总线网络异常检测方法的车载CAN总线网络异常检测系统,所述车载CAN总线网络异常检测系统包括:
相对熵CAN总线异常检测模块,用于对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量等关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;
报文数据域CAN总线异常检测模块,用于对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常。
本发明的另一目的在于提供一种应用所述车载CAN总线网络异常检测方法及系统。
综上所述,本发明的优点及积极效果为:本发明利用报文之间的联系对报文进行结对后计算其相对熵,在检测出异常的同时可以确定异常报文的ID;采用固定报文数量的滑动窗口避免了总线传输速率和非周期报文对相对熵值的影响。无需改变车内网络结构。
针对现有基于信息熵的方案没有利用报文之间的联系无法确定异常报文的ID的问题,提出基于相对熵的异常检测方案。本发明根据报文的数量、发送顺序等关联对报文进行结对后计算滑动窗口内的相对熵,在检测出异常的同时,确定异常报文的ID。同时,采用固定报文数量的滑动窗口,避免了总线传输速率和非周期报文的影响。
针对现有技术对报文数据域考虑较少的问题,本发明的算法提取CAN总线报文数据域的常值特征、多值特征、循环值特征,根据提取到的特征建立正常报文模型;利用正常报文模型对异常报文进行检测。
在从不同车辆环境中采集的CAN总线报文数据集上进行实验,实验结果验证了所提方案的有效性,高准确率地检测出重放攻击、拒绝服务攻击、篡改攻击和伪造攻击,并且可以确定异常报文的ID,甚至直接定位异常报文,提供了更多的异常信息,有助于后续的防护。
附图说明
图1是本发明实施例提供的车载CAN总线网络异常检测方法流程图。
图2是本发明实施例提供的车载CAN总线网络示意图。
图3是本发明实施例提供的CAN总线报文结构示意图。
图4是本发明实施例提供的报文序列示意图。
图5是本发明实施例提供的重放攻击示意图。
图6是本发明实施例提供的拒绝服务攻击示意图。
图7是本发明实施例提供的篡改攻击示意图。
图8是本发明实施例提供的伪造攻击示意图。
图9是本发明实施例提供的车载CAN总线网络的异常检测框架示意图。
图10是本发明实施例提供的正常报文模型的建立过程图。
图11是本发明实施例提供的正常报文模型示意图。
图12是本发明实施例提供的异常检测流程图。
图13是本发明实施例提供的CAN总线报文数据域的特征示意图;
图中:(a)ID=3A6的报文数据域中0~7bit的值的变化情况;(b)ID=268的报文数据域8~12bit的值的变化情况;(c)ID=3AB的报文数据域4-8bit的值的变化情况;(d)ID=264的报文数据域0-8bit的值的变化情况。
图14是本发明实施例提供的CAN总线正常报文模型建立过程示意图。
图15是本发明实施例提供的某一ID的5元组示意图。
图16是本发明实施例提供的异常报文检测过程示意图。
图17是本发明实施例提供的Kia Soul车载CAN总线网络报文数量分布图。
图18是本发明实施例提供的数据集2CAN总线报文数量分布图。
图19是本发明实施例提供的滑动窗口大小对相对熵值的影响示意图;
图中:(a)滑动窗口大小对相对熵值D(id1|id2)的影响;(b)滑动窗口大小对相对熵值D(id)的影响。
图20是本发明实施例提供的重放攻击下D(id1|id2)的变化示意图。
图21是本发明实施例提供的DoS攻击下D(id)的变化示意图;
图中:(a)注入比为1:1;(b)注入比为2:1。
图22是本发明实施例提供的数据集1上的检测结果示意图;
图中:(a)准确率;(b)检测率;(c)误警率;(d)漏报率。
图23是本发明实施例提供的数据集2上的检测结果示意图;
图中:(a)准确率;(b)检测率;(c)误警率;(d)漏报率。
图24是本发明实施例提供的与现有研究对比示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术只能解决车载CAN总线网络面临的部分攻击,不能给CAN总线提供全面保护的问题。本发明采用一种CAN总线的异常检测方案,对CAN总线报文的标识符和数据域的异常均进行检测。针对报文标识符和数据域的异常,分别利用相对熵和数据域特征,建立CAN总线的异常检测系统,全面保护车载CAN总线的安全。在从真实CAN总线报文数据集上进行实验,实验结果验证了所提方案的有效性,高准确率地检测出重放攻击、拒绝服务攻击、篡改攻击和伪造攻击,并且可以确定异常报文的ID,甚至直接定位异常报文。
下面结合附图对本发明的应用原理作详细的描述。
如图1所示,本发明实施例提供的车载CAN总线网络异常检测方法包括以下步骤:
S101:对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量等关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;
S102:对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常。
下面结合附图对本发明的应用原理作进一步的描述。
1 CAN总线协议是由德国的BOSCH公司在20世纪80年代为汽车开发的一种用于实时应用的串行通信总线协议,1991年CAN总线技术规范2.0版本发布,此后逐渐发展为车内控制系统的标准协议,广泛应用于汽车的各个控制系统。CAN总线是一种根据消息帧ID竞争总线使用权的总线结构,其报文在总线上广播,总线上的任何一个节点都可接收总线上的所有报文,也可在任何时刻向总线发送报文。
1.1 CAN总线网络结构
如今网联汽车内部集成的ECU多达70多个,高级汽车内部甚至集成了上百个ECU。这些ECU通过CAN总线进行组网通信,构成了车载网络。根据ECU的功能将车载网络划分为几个子网,并通过网关ECU连接。如图2所示。车内网络结构可分为动力子网、车身控制子网、决策控制子网和多媒体子网,子网间通过网关ECU连接在一起。
1.2 CAN总线特性
(1)CAN总线报文格式,如图3所示;
ECU向总线广播具有指定标识符ID的报文,而总线上的其他ECU则根据报文的标识符ID接收还是忽略该报文。报文中不包含源地址与目的地址。
CAN总线数据报文由标识符ID、控制域、数据域、CRC(Cyclic Redundancy Check,CRC)、ACK(Acknowledgement,ACK)等组成,如图3所示。标识符ID为11bit(标准帧)或者29bit(扩展帧),数据域为64bit,包含要传输的消息内容。控制域表示数据域的大小。CRC是冗余校验位,ACK用确认收到一个有效的数据包。除上面介绍的数据帧外,还有错误帧、远程帧、过载帧三种类型的消息报文。远程帧可以看作是一种特殊的数据帧。错误帧用报告传输错误。过载帧用表示总线过载,不能接收报文。总线上主要是标准数据帧,错误帧、远程帧、和过载帧均很少出现。
(2)CAN总线的报文优先级仲裁机制
ECU广播消息报文到CAN总线上前,需先竞争总线的使用权,如果同一时间多个设备要求发送数据,就会产生总线冲突,此时CAN总线需要根据ID进行冲突仲裁,使得优先级高的报文先传输。CAN总线仲裁的依据是报文标识符ID,逐位对标识符进行仲裁。各节点向总线发送标识符时,将自身电平与总线电平相“与”,如果总线电平为“0”,而节点电平为“1”,则该节点不再竞争总线,其余节点重复上述竞争过程,直到剩下最后一个节点,则该节点获得了总线的使用权。由上述可知,CAN总线上优先级最高的标识符为0x000。
(3)广播特性
CAN总线协议是一种广播协议,ECU一旦发送报文,则CAN总线上的所有节点都可以收到。因此CAN总线上的恶意节点可以容易地收集到CAN总线上的所有通信数据。通过逆向工程,攻击者可以破解CAN总线的指令格式和响应机制,即通信矩阵,同时可以向CAN总线注入恶意报文控制车辆。
(4)报文具有周期性
车载CAN总线的很多报文具有周期性,即某一标识符ID的报文会每隔一段时间发送一次,只是不同ID的报文,其周期不同。另外,有些报文会以一个顺序出现,比如ID=36C和ID=397的报文总是会紧挨着出现CAN总线上,图4是CAN总线报文序列示意图,从图4中可以看出报文36B、36C、397重复出现,而且紧挨着。这一特性现有的研究都有提到。
1.3 CAN总线的攻击方式
攻击者在接入CAN总线后,可以对ECU进行直接攻击,使得ECU执行攻击者的指令。对CAN总线,攻击者可以实施重放攻击、拒绝服务攻击、注入攻击。
(1)重放:攻击者接入CAN总线后,可以将记录的CAN总线上的消息,并在任意时刻重放到CAN总线上。重放的消息是合法的CAN总线报文,会被相应的ECU接收并且执行。攻击者在不清楚CAN总线的指令格式和响应机制的情况下,可以通过重放实现控制汽车。通过这个过程,攻击者一定程度上了破解了CAN总线协议。重放攻击如图5所示。
(2)拒绝服务攻击:由于CAN总线根据报文ID进行优先级仲裁,那么攻击者在获得CAN总线的访问权后,可以高频率地向CAN总线注入高优先级的报文,即ID=0x000的报文,这样攻击者注入的报文就会一直占用总线资源,导致其它ECU无法向总线发送消息,使得总线瘫痪。拒绝服务攻击如图5所示。
(3)篡改:如果攻击者入侵了车载网络的一个网关,则攻击者可以修改由该网关转发的每一条报文。CAN总线没有认证机制,而且其采取的CRC校验安全性太低,使得篡改报文非常容易。然而都错误的报文被相应的ECU接收并执行后,可能导致严重的后果。篡改攻击如图7所示。
(4)伪造:攻击者获得了CAN总线的访问权后,可以向CAN总线注入其伪造的指令,而这些指令本应由功能相关的ECU发送,因为CAN总线没有认证机制,这些伪造的指令会被相关的ECU接收并执行,从而导致严重的后果。伪造攻击如图8所示。
重放攻击和拒绝服务攻击是针对总线报文标识符的攻击,篡改攻击和伪造攻击是针对总线报文数据域的攻击。
2本发明的技术方案
从CAN总线报文格式上可知,报文中重要的字段是标识符ID和数据域。标识符ID用表示报文的功能和优先级,以及ECU根据ID判断是否接收报文。数据域包含了报文的内容,即指令和状态,长度最长为8个字节。本发明从标识符ID和数据域两个方面对车载CAN总线网络进行异常检测。图9是本发明车载CAN总线网络的异常检测框架。
根据CAN总线报文的结构特性,分别对报文标识符ID和数据域进行检测。
(1)对标识符ID进行基于相对熵的CAN总线异常检测。本发明采用固定报文数量的滑动窗口,而不是固定时间长度的滑动窗口,这样避免了总线传输速率和非周期报文对熵值的影响。根据报文的发送顺序和发送数量等关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生。可以检测重放攻击和拒绝服务攻击。由于利用了报文之间的联系,在检测出异常的同时还可以给出异常报文的ID,提供了更多的异常信息。
(2)对数据域进行基于报文数据域的CAN总线异常检测。设计算法提取报文数据域的特征,包括常值特征、循环值特征、多值特征。根据提取到的特征建立正常报文模型,并以此检测报文异常。此方案针对报文数据域的异常,如篡改攻击、伪造攻击等基于相对熵的方案难以检测出的异常。对报文数据域的异常进行了细粒度的检测。
2.1针对报文标识符的异常检测
2.1.1相对熵基础
信息熵用描述一个随机变量取值的不确定性的程度。信息熵越大,随机变量取值的不确定性越高。随机变量X的信息熵的定义为:
其中p(x)表示随机变量X的分布。
相对熵用衡量两个概率分布之间的差异。设p(x)和q(x)是随机变量X的两种概率分布,则概率分布p(x)对概率分布q(x)的相对熵的定义为:
为计算CAN总线上的信息熵和相对熵,本发明用Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,即滑动窗口内包含的报文条数,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合。因此,滑动窗口的信息熵可以表示为:
其中,p(id)=Countid/Ntotal,表示滑动窗口内报文标识符为id的报文出现的概率,Countid为滑动窗口内报文标识符为id的报文出现的次数,Ntotal为滑动窗口内出现的所有报文条数,即滑动窗口的大小,是一个固定值。
假设id1与id2是结对的两类报文,这两类报文在总线上出现的次数相等,顺序相近。在滑动窗口内结对报文的相对熵的计算公式如下:
假设q(id)是标识符为id的报文在正常情况下的分布,即不受攻击时的正常分布,p(id)是标识符为id的报文在受攻击情况下的分布,则标识符为id的报文的异常情况对正常情况的相对熵的计算公式如下:
未受到攻击时,D(id1|id2)与D(id)均非常接近0;当有攻击发生时,D(id1|id2)与D(id)至少会有一个的变化幅度较大。
2.1.2报文的结对
根据CAN总线报文具有周期性,不同报文的周期可能相同,也可能不同。同时,由报文序列示意图可知,报文在CAN总线上的发送顺序之间具有联系,部分ID在总线上的顺序相邻。本发明根据报文的周期性和发送顺序之间的联系,对CAN总线报文进行结对,以便后续计算滑动窗口内的相对熵值。报文之间的结对关系并不是唯一的。在利用了报文之间的联系的基础上进行结对,有利于异常检测的报文结对方式都是可以的。
2.1.3滑动窗口的设置
为避免CAN总线传输速率和非周期报文对滑动窗口内的熵值的计算,本发明采用固定报文数量的滑动窗口,而不是固定时间的滑动窗口。当滑动窗口内的报文数量达到预先设定的值时,检测模型会计算滑动窗口内的相对熵值并判断是否有异常发生。同时,滑动窗口向后滑动,开始下一轮的检测。
滑动窗口的大小对相对熵值D(id)与D(id1|id2)有影响。一般地,滑动窗口越大,窗口内的报文数量越多,其表现出的特性越全面,计算得到的相对熵值D(id)与D(id1|id2)越稳定,因此滑动窗口越大越好。但是,如果滑动窗口过大,则需要持续整个滑动窗口的时间才能检测出异常,使得异常检测时间过长,不利于车主对异常做出及时的反应。因此滑动窗口的大小应平衡检测效果和检测时长。
记总线报文速率为f,单位是条/秒,最长可接受检测时长th,周期报文的最小周期为Periodmin,滑动窗口大小为W,则:
之所以选择W≥Periodmin是希望滑动窗口内包含的每种报文ID都多于一条,这样滑动窗口内的报文信息更丰富一些,使得相对熵值更稳定,有助于提高异常检测的效果。最长可接受检测时长th是指异常从发生到被检测到的时间要小于th,也就是滑动窗口的报文从0条增长到W条所需的时间,即滑动窗口的持续时间要小于th。如果滑动窗口过大,那么一个滑动窗口持续的时间就会很长,其中包含的异常报文需要等到滑动窗口被填满并计算过相对熵后才能被报告,这不利于对汽车的及时保护。th/f是滑动窗口的持续时间为th时报文的报文数量,因此有W≤th/f。
2.1.4异常阈值的设置
在正常报文数据集中,D(id1|id2)与D(id)均服从正态分布,其均值为0,方差很小。本发明用μid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的均值,σid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的标准差。本发明用表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的均值,表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的标准差。因为车载网络的报文顺序是比较稳定的,因此σid和的值都非常接近于0,这表明相对熵D(id)与D(id1|id2)的值在正常网络环境下的变化非常小。同样,因为车载网络报文顺序的稳定性,正常网络环境下μid的值也非常接近0,D(id)是当前报文分布与正常报文分布的相对熵,如果当前报文分布没有受到攻击,则当前报文分布与正常报文分布一致,其相对熵D(id)必然为0。因为报文的结对是根据报文在总线上出现的数量和出现的顺序等报文之间的关联实现的,因此D(id1|id2)的均值会接近于0。
在检测阶段,滑动窗口内的相对熵值D(id)与D(id1|id2)如果有一个落在区间[μid-kσid,μid+kσid]和之外,则认为车内网络有异常发生,发出警报并记录异常日志;如果D(id)与D(id1|id2)都落在区间[μid-kσid,μid+kσid]和之内,则认为没有异常发生,滑动窗口向前移动,继续下一轮的检测。其中k值用调节正常相对熵值的区间大小,间接调节漏报率和误报率。k增大,正常相对熵值区间增大,漏报率上升,误警率降低;反之,k减小,正常相对熵值区间减小,漏报率会降低,误警率会上升。
2.1.5正常报文模型的建立
本发明的正常报文模型是在线下建立的,即在CAN总线上收集报文数据,构成正常报文数据集,用于正常报文模型的建立。在正常报文数据集上,首先根据CAN总线的报文速率和检测反应时间要求使用公式(6)计算滑动窗口的大小。
确定滑动窗口的大小后,在正常报文数据集上,滑动窗口按照报文收集时间顺序滑动,计算滑动窗口内的相对熵值并记录,最后计算报文数据集上的相对熵的均值μid和标准差σid,作为CAN总线正常报文模型的参数。因此,本发明的正常报文模型建立过程如图10所示,包含以下步骤。
step1.根据总线的报文速率和设计的最长检测时长,用公式(6)计算得到滑动窗口的大小W。
step2.在正常报文数据集上,大小为W的滑动窗口在数据集上按照时间顺序滑动,提取滑动窗口内的报文的ID构成滑动窗口Φ=(I,W),I={id1,id2,id3,...,idn}。
step3.根据公式(4)和(5)计算滑动窗口内的相对熵D(id1|id2)与D(id)并记录。滑动窗口顺序滑动,直至数据集的最后。
step4.根据记录的相对熵的值计算每个ID(对)的相对熵D(id1|id2)与D(id),作为正常报文模型的参数。
最后得到的正常报文模型如图11所示。正常报文模型的底层包括报文结对表、滑动窗口的大小W和异常判断阈值的参数k。根据这些参数在数据集上训练得到包括不同ID的相对熵的均值和方差,在此基础上,确定出正常相对熵区间。后续的基于正常报文模型的异常检测利用模型中的正常相对熵区间即可。同时参数k可以调节正常相对熵区间的大小,平衡误报与漏报的情况。
2.1.6异常报文的检测
异常报文的检测算法如Algorithm 1所示。
Algorithm 1用检测CAN总线的异常,其中Test_Data是包含异常报文的按收集时间排列的CAN总线报文数据集。Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合。Rt表示异常检测的反应时间,为滑动窗口的时间长度。idi和idj是结对的报文。μ和σ分别表示对应的相对熵的均值和标准差,其值在模型建立阶段获得。k为异常阈值区间的调控参数。算法首先计算滑动窗口内的每个id在滑动窗口内的相对熵值D(idi|idj)和D(idi),接着判断相对熵值D(idi)是否在正常范围[μidi-kσidi,μidi+kσidj]和相对熵值D(idi|idj)是否在正常范围[μidi-idj-kσidi-idj,μidi-idj+kσidi-idj]。如果在正常熵值区间内,则认为没有异常发生,滑动窗口向前滑动,进行下一轮的检测;如果不在正常熵值区间内,则判断为异常,给出警报并写入日志。滑动窗口向前滑动,进行下一轮的异常检测。异常检测的流程如图12所示。
2.2针对报文数据域的异常检测
2.2.1 CAN总线报文数据域的特征
由于车内网络相对封闭,车辆CAN总线的通信内容是为共享车辆的状态信息和传递指令,本发明假设CAN总线的数据域有一个固定的内部结构,CAN总线报文数据域的每一bit代表的含义是固定的,并由CAN总线的通信矩阵定义。比如换挡指令位于ID=xxx的数据域内,其位置固定,长度固定。为验证这一假设,本发明通过分析从真实车辆的CAN总线上收集到的报文数据(100万条,51个ID),探究CAN总线报文数据域的特征。因为CAN总线的通信矩阵未知,因此本发明无法确定报文数据域内某一指令的具体位置与含义,先按照8bit(或4bit)的方法将数据域划分后,通过可视化的方法验证本发明的假设。此过程中,本发明发现CAN总线报文的数据域具有如下4类特征:
常值特征:在51*8=408个分段中(按8bit划分),本发明发现224个常值特征,即在整个记录过程中,这些特征的值从未变过。如图13(a)所示为ID=3A6的报文数据域中0~7bit的值的变化情况,在整个采集过程中,该位置的值从未发生变化。
循环值特征:在51*8=408个分段中(按8bit划分),本发明发现46个循环值特征,有从小到大和从大到小两种情况,循环值的范围有0~256,0~128,120~136等多个范围,循环周期为16、32、256等多个。在51*16=916个分段中(按4bit划分),本发明发现48个循环值特征,也有从小到大和从大到小两种情况,循环值的范围有0~16,循环周期为16。如图13(b)所示,为ID=268的报文数据域8~12bit的值的变化情况,可以看出其循环规律为从小到大,循环周期为0~16。
多值特征:在51*16=916个分段中(按4bit划分),本发明发现120个多值特征,即在给定数据段内,报文取的值远小于最大可取值个数,其可能表示车辆的某个状态,如车辆当前的档位等。如图13(c)所示,为ID=3AB的报文数据域4-8bit的值的变化情况,可以看出其值仅出现了2个,即1、5,远小于最大可取值的个数16。
无规律值特征:除过上述的常值、循环值、多值等字段外,CAN总线报文数据域剩余的部分的值没有呈现出规律,其可能代表了一个物理量,如车速、喷油量等。如图13(d)所示,ID=264的报文数据域0-8bit的值的变化情况,可以看出,其值的变化没有明显的规律。
2.2.2 CAN总线报文数据域的特征提取算法
CAN总线报文数据域的三个特征中,提取特征的顺序是常值特征、循环值特征、多值特征。因此,本发明先将按照这个顺序将CAN总线报文数据域的特征提取出。提取算法是一种贪心算法,按照提取顺序,希望得到的特征具有最大的长度。
1.提取标识符ID=id的报文数据域的常值特征的算法如下所示。
算法2用于提取报文数据域的常值特征。首先,将包含ID=id的CAN总线数据集中的报文按照4bit进行分割,将得到的16个数据段存入列表中,每个数据是长度为4的0/1序列。接着,遍历列表,对每个数据段进行如下操作:如果其在整个数据集上都是常值,则认为该数据段是一个常值特征。然后,对常值数据段从左端和右端进行拓展,如果拓展后的数据段仍然是常值,则继续进行拓展,直到数据段不符合常值规律。最后记录常值特征段的起始索引和终止索引。
2.提取标识符ID=id的报文数据域循环值特征的算法如下所示。
算法3用于提取报文数据域的循环值特征。ID=id的CAN总线数据集经过常值特征提取后,对非常值特征的数据段进行循环值特征提取。对每一个非常值特征的数据段进行如下操作:如果该数据段是循环值,即该数据段的值在数据集上是循环的,则认为该数据段是一个循环特征,然后,对循环值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合循环值的规律,则继续进行拓展,直到数据段不符合循环值规律。最后记录循环值特征段的起始索引和终止索引。算法3中的循环值特征判断方法是:统计该数据段在整个数据集上的值分布,如果出现的值的个数等于2len(ele),而且出现次数的最大值和最小值的差小于容忍度t。因为实际观察到循环值有归零的情况,故设置容忍度t。
3.提取标识符ID=id的报文数据域多值特征的算法如下所示。
算法4用于提取报文数据域的多值特征。ID=id的CAN总线数据集经过常值特征提取和循环值特征提取后,对剩余的数据段进行多值特征提取。多值特征的判断方法是:如果数据段在数据集上的取值个数小于可取值总数的三分之二,则认为该数据段为多值特征段。然后,对多值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合多值特征的规律,则继续进行拓展,直到数据段不符合多值规律。最后记录多值特征段的起始索引和终止索引。
2.2.3CAN总线正常报文模型建立
本发明使用一个5元组表示ID=x的CAN总线数据报文数据域的特征提取情况,5元组的格式是:<ID,start,end,type,value>,其中ID是CAN总线的报文标识符,start是该特征数据段的起始索引,end是该特征数据段的终止索引,type是该特征数据段的类型,包含四种:常值特征constant、循环值特征loop、多值特征multi-value和无规律值irregular-value,value是特征对应的值,如常值特征对应的常数,循环值特征对应的升序/降序,多值特征对应的取值,无规律值特征不做处理,value默认为0。本发明的CAN总线正常报文模型是在线下建立的,建立过程如图14所示。
step1.从CAN总线上收集报文数据,应使得收集到的数据集包含的报文尽可能丰富,即包含了报文的所有情况。将数据集中的所有报文按照报文标识符ID进行分类,同一类的报文按照收集的时间顺序排列。
step2.对每一类ID的报文,通依次提取其报文数据域的常值特征、循环值特征、多值特征,将提取得到的特征存储为5元组[ID,start,end,type,value],并保存为文件,此时得到每个ID的正常报文模型。
step3.所有ID的特征提取完毕后,将所有ID的正常报文模型整合,构成CAN总线的正常报文模型,用于后续的异常报文检测。
2.2.4异常报文检测过程
线下建立好CAN总线正常报文模型以后,对异常报文的检测过程如图15所示。
step1.从CAN总线上读取当前报文,并根据标识符ID传入CAN总线正常报文模型,选择对应的特征元组。
step2.根据报文ID选择对应的特征元组,然后将报文的数据域依据对应的模型划分为若干数据段。
step3.依次判断每一数据段是否与对应模型中记录的类型相符,即如果数据段为常值特征,则判断该数据段的值是否与记录的常值一致,若不一致,则报告异常;如果数据段为循环值特征,则判断该数据段的是否符合记录的循环规律,即和上一条报文对应数据段的值是否符合升序或降序规律,若不符合,则报告异常;如果该数据段为多值特征,则判断该数据段的值是否是记录的多值中的一个,若不是,则报告异常。
下面结合实验对本发明的应用效果作详细的描述。
1实验环境
本发明实验采用两个数据集,数据集1是由ocslab实验室发布的,该数据集的CAN总线报文是从Kia Soul车辆中采集的,包括三百八十多万余记录,其中二百七十多万余条正常数据,一百多万余异常数据。数据集1中正常数据中共包含43种标识符ID,按照标识符ID分类后的报文数量分布图如图16所示。数据集2是本发明从国内某品牌汽车上采集的约一百万条CAN报文数据,均为正常数据。数据集2中正常数据中共包含51种标识符ID,按照标识符ID分类后的报文数量分布图如图16所示。实验环境为PC机,Windows7 64位系统,i7-6700主频3.4GHz,内存8G,使用Python语言作为编程语言和工具。
2基于相对熵的异常检测结果分析
2.1报文的结对
根据报文结对的依据,对数据集上的报文进行结对。表1是本发明给出的报文结对表。数据集内包含51个报文标识符,本发明选取其中的30个ID进行结对,并在后续的实验中计算其相对熵。
表1 报文结对表
36B--36C | 397--39A | 3B6--2AC | 375--268 | 260--28C |
26A--26C | 26D--272 | 195--197 | 279--1AC | 18D--264 |
182--262 | 196--190 | 186--187 | 1AE--3A6 | 3B6--294 |
2.2正常情况下的相对熵值
根据相对熵的计算公式(4)与(5),以及报文结对表,在正常CAN总线报文数据集上计算D(id1|id2)与D(id)。
由表2可知,在正常报文数据集上,结对后报文的相对熵D(id1|id2)的均值μid1-id2非常接近于0,这证明了这些结对的报文之间在数量和发送顺序等方面确实存在关联,对报文进行结对可以利用这些关联特性。同时,从表2可知报文对之间的相对熵的标准差σid1-id2的值也非常接近于0,与4.2节的猜想一致,这表明报文对的相对熵的值在正常情况下是非常稳定的。正是因为利用了报文对之间的特性,基于相对熵的异常检测可以避免非周期报文和网络传输速率对熵值的影响。同时,不同大小的滑动窗口的相对熵值D(id1|id2)的变化几乎为0,这表明基于相对熵的异常检测对滑动窗口的大小要求不高。
表2 正常报文的相对熵D(id1|id2)
由表3可知,在正常报文数据集上,同一ID报文在前后不同时间段的相对熵D(id)的均值μid和标准差σid同样都非常接近于0,表明车载网络流量在报文顺序上是非常稳定的,不会因为时间的变化而变化。
表3 正常报文的相对熵D(id)
2.3滑动窗口大小对相对熵值的影响
滑动窗口的大小会对相对熵值产生影响,同时,其大小还影响异常检测的反应时间。如果滑动窗口过大,则需要很长时间滑动窗口内的报文才能达到预定值,其中的异常需要滑动窗口填满后才能被检测出。因此滑动窗口不宜过大。
是滑动窗口的大小对相对熵值的影响。本发明滑动窗口的大小取W=50、100、150、200,分别计算10个ID(对)的相对熵D(idi|idj)和D(idi)。从图中可以看出,相对熵D(idi|idj)和D(idi)的均值都非常接近0,当W=50是,D(idi|idj)和D(idi)的值最大,D(idi|idj)为0.0027,最小为0.00004;D(idi)的值在0.00083左右,而且D(idi|idj)和D(idi)随着W的增大而大幅度变小。W=100时,相对熵D(idi|idj)和D(idi)的值约为W=50时的1/4。因为相对熵D(idi|idj)和D(idi)的值都非常接近0,所以其对异常检测结果的影响很小。
由图18可知,滑动窗口的大小对相对熵值的影响相对较大,但是对异常检测结果的影响却很小。同时考虑到检测时间不宜过长,因此本发明认为滑动窗口的大小设置在100-150之间较为合理。在接下的实验中,本发明选择滑动窗口的大小均为W=100。
2.4重放攻击下的相对熵值
重放攻击如图19所示,是指攻击者获得CAN总线的访问权限后,先收集总线上的报文,并在以后某一时间将收集的报文重放到总线上。攻击者的重放攻击会扰乱CAN总线上报文的结对特性,必然导致相对熵值D(id1|id2)的变化。图19是相对熵D(id1|id2)在有重放攻击与无攻击下的对比图。横坐标是被重放的标识符ID,纵坐标是相对熵D(id1|id2)的值。从图中19可以看出,重放攻击下,相对熵D(id1|id2)比无攻击场景下变化幅度巨大。无攻击场景下,D(id1|id2)的值接近0,重放攻击下,D(id1|id2)的值在0.04以上,是无攻击时的284~580倍。此时,可以非常容易地判断异常的发生,而且可以确定被重放的报文ID,便于后续的溯源。D(id1|id2)的值各不相等,表明重放的报文的数量不同,ID=‘260’的报文重放的数量是最多的,其导致的相对熵D(id1|id2)的值的变化也更剧烈。同时,根据相对熵D(id1|id2)的值的变化,可以确定异常报文的ID。如图19,被重放报文的ID对应的相对熵D(id1|id2)的值发生了大幅度的变化,在判定为异常的同时,可以确定异常报文的ID。
2.5 DoS攻击下的相对熵值
DoS攻击如图20所示,是指攻击者获得CAN总线的访问权限后,向CAN总线注入高优先级的报文,即ID=‘000’的报文。由于CAN总线的广播特性和冲突仲裁机制,ID=‘000’的报文会获得总线的使用权,如果攻击者高频率地向总线注入ID=‘000’的报文,总线资源会被攻击者一直占用,导致车内通信瘫痪。攻击者的DoS攻击会使得CAN总线上的有效报文变少,必然导致相对熵D(id)的变化。图20是相对熵D(id)在DoS攻击下和无攻击下的对比图。横坐标是标识符ID,纵坐标是相对熵D(id)的值。注入比是指ID=‘000’的报文和正常报文在总线上的比例。图20左图是注入比为1:1是相对熵D(id)的变化。由图可知,发生DoS攻击后每个ID的相对熵D(id)值都发生了巨大幅度的变化,从正常状态下接近于0的值增长到42倍,甚至更多。图20右图是注入比为2:1是相对熵D(id)的变化,从图20中可以看出,每个ID的相对熵D(id)值同样发生了大幅度变化,变化幅度与1:1时不同。
2.6异常判断的阈值设置
由上述实验可知,无攻击场景下,相对熵D(id1|id2)与D(id)的均值与标准差均非常接近于0,而在攻击场景下,相对熵D(id1|id2)与D(id)的较无攻击场景下会有大幅度的变化,增长数十倍至数百倍,增长幅度取决于攻击报文的数量,攻击报文的数量越多,增长幅度越大。但是,即使攻击报文的数量较小,相对熵值的变化仍然是明显可以检测出的。本发明将相对熵值的正常区间设置为[μid-kσid,μid+kσid]和[μid1-id2-kσid1-id2,μid1-id2+kσid1-id2],参数k用调节正常相对熵值区间的大小,k越大,正常相对熵值区间就越大,那么检测漏报率会上升,而检测误警率会降低;反之,k越小,正常相对熵值区间就越小,那么检测漏报率会减低,而检测误警率会上升。因此,k值可用平衡漏报率与误警率。依据实验得出的结果,异常相对熵的值较正常相对熵的值变化幅度非常大,异常值会被很明显的观察到,检测结果的可信度很高。因为异常相对熵的值会随着攻击报文的数量波动,此处参数k值的设置本发明采取3σ准则,即当异常相对熵D(id)和D(id1|id2)的值落在区间[μid-3σid,μid+3σid]和[μid1-id2-3σid1-id2,μid1-id2+3σid1-id2]之外时,本发明以0.9973的把握判断异常的发生,当异常相对熵D(id)和D(id1|id2)的值落在区间[μid-3σid,μid+3σid]和[μid1-id2-3σid1-id2,μid1-id2+3σid1-id2]之内时,本发明认为没有异常发生。因为相对熵的标准差值σid和σid1-id2都是非常接近于0的值,因此正常相对熵值区间[μid-3σid,μid+3σid]和[μid1-id2-3σid1-id2,μid1-id2+3σid1-id2]是非常窄的,几乎不会有漏报的情况发生。
3基于报文数据域的异常检测结果分析
根据本发明对报文的划分方法,建立正常报文模型,用正常报文模型对数据集1进行检测。采用通用的检测模型的四种评估指标,准确率(Accuracy),检测率(DetectionRate),误警率(False Alarm)和漏报率(False Negative Rate),这4个评估指标的定义如表4所示。
表4 混淆矩阵
以下列15个ID进行实验,其实验结果如图21所示。数据集1中,各ID的异常报文数量在200-500条之间,用于测试的正常报文数量与异常报文数量相等。
3.1数据集1上的检测结果
从图22可以看出,对数据集1,本发明方案在四个评估标准中,准确率和检测率高,均在92%以上,大部分ID的准确率和检测率能达到100%,同时误警率低,大部分ID的误警率为0,漏报率全部为0。图22中,检测率略低的ID,如0316,0440等,通过查看数据集,发现是因为这些ID的部分正常报文的循环值出现了不规律变化,如跳过一个值或者突然归零等,同样因为如此,该类报文的误警率略高。
3.2数据集2上的检测结果
为了验证本发明方案在不同车辆环境下的有效性和检测性能,对数据集2进行测试,取下列20个ID进行实验,得到模型的准确率,检测率,误警率和漏报率,结果如下图23所示。各ID的训练报文是5000条,用于测试的正常报文和异常报文均为1000条。
从图23可以看出,对于数据集2,本发明方案的准确率和检测率高,接近100%,误警率和漏报率低,其中大部分ID的误警率为0,漏报率低于2%。对于ID=375出现的5%左右的误警率,是由于其部分正常报文的数据域的循环值出现了不规律变化,比如突然归零或跳过一个值等情况。对数据集2的实验中,异常数据是由正常数据随机赋值一个字节实现的,如果被赋值的字节恰好是无规律值,则无法发现异常,这导致了1%左右的漏报率。实际上,攻击者可能篡改不止一个字节的值,甚至数据域的值都是任意的,因此,漏报率实际上会更低。
上述实验结果表明,本发明方案通过提取CAN总线报文中的常值,多值,循环值等特征,建立的正常报文模型,能够有效检测异常的CAN总线报文,具有高准确率和低误警率的优点,而且本发明不仅能够发现异常,同时也能够定位到异常的报文。同时,检测过程仅是一些判断条件,计算量很小,完全可以适用于计算能力受限的ECU而不会对ECU造成大的计算开销。
此外,本发明也提供了一种CAN总线协议分析方法。通过提取出报文特征,再根据报文特征进行有针对性地在CAN总线上重放,通过分析总线的应答和汽车的反应,可以快速确定报文数据域的每bit的具体含义,从而破解CAN总线的指令格式和响应机制,即破解CAN总线协议。因此本发明的特征提取也是一种CAN总线协议分析方法。
3.3对比实验
同时,在数据集1上,将本发明与现有研究的方案进行对比,其结果如图24所示。本发明将本实验中的各ID在四种评估标准上的平均值作为方案的整体性能与现有研究的方案的性能进行对比。
从图24可以看出,本发明方案在准确率、检测率和误警率方面均优于现有研究,本发明方案的准确率是98.5%,检测率是94.1%,误警率为1.9%,现有研究的检测率为63.1%,检测率为48.2%,误警率为50.4%,可以看出本发明方案在这三个指标上均优于现有研究,在漏报率方面,两种方案均表现良好。
本发明提出了一种车载CAN总线网络异常检测框架,针对报文的不同部分,提出相应的检测方法。对报文标识符ID进行基于相对熵的CAN总线异常检测。采用固定报文数量的滑动窗口,避免了总线传输速率和非周期报文对熵值的影响。根据报文之间的联系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,以此判断是否有异常发生。可以检测重放攻击和拒绝服务攻击。由于利用了报文之间的联系,在检测出异常的同时还可以给出异常报文的ID。对报文数据域进行基于报文数据域的CAN总线异常检测。设计算法提取报文数据域的特征,包括常值特征、循环值特征、多值特征并建立正常报文模型,以此检测报文异常。此方案针对报文数据域的异常,如篡改攻击、伪造攻击等基于相对熵的方案难以检测出的异常。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种车载CAN总线网络异常检测方法,其特征在于,所述车载CAN总线网络异常检测方法包括:
(1)对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;
(2)对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常;
所述对标识符ID进行基于相对熵的CAN总线异常检测具体包括:
第一步,随机变量X的信息熵的定义为:
其中p(x)表示随机变量X的分布;
相对熵用衡量两个概率分布之间的差异,p(x)和q(x)是随机变量X的两种概率分布,则概率分布p(x)对概率分布q(x)的相对熵的定义为:
用Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,滑动窗口内包含的报文条数,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合;滑动窗口的信息熵表示为:
其中,p(id)=Countid/Ntotal,表示滑动窗口内报文标识符为id的报文出现的概率,Countid为滑动窗口内报文标识符为id的报文出现的次数,Ntotal为滑动窗口内出现的所有报文条数,滑动窗口的大小,是一个固定值;
在滑动窗口内结对报文的相对熵的计算公式如下:
q(id)是标识符为id的报文在正常情况下的分布,即不受攻击时的正常分布,p(id)是标识符为id的报文在受攻击情况下的分布,则标识符为id的报文的异常情况对正常情况的相对熵的计算公式如下:
未受到攻击时,D(id1|id2)与D(id)均非常接近0;当有攻击发生时,D(id1|id2)与D(id)至少会有一个的变化幅度较大;
第二步,根据报文的周期性和发送顺序之间的联系,对CAN总线报文进行结对;
第三步,滑动窗口的设置,总线报文速率为f,单位是条/秒,最长可接受检测时长th,周期报文的最小周期为Periodmin,滑动窗口大小为W,则:
第四步,异常阈值的设置,用μid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的均值,σid表示标识符为id的报文当前分布与正常报文分布在滑动窗口内的相对熵值D(id)的标准差;用表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的均值,表示标识符为id1的报文分布与其结对的报文id2分布在滑动窗口内的相对熵值D(id1|id2)的标准差;
确定滑动窗口的大小后,在正常报文数据集上,滑动窗口按照报文收集时间顺序滑动,计算滑动窗口内的相对熵值并记录,最后计算报文数据集上的相对熵的均值μid和标准差σid,作为CAN总线正常报文模型的参数;
第六步,异常报文的检测,Test_Data是包含异常报文的按收集时间排列的CAN总线报文数据集;Φ=(I,W)表示一个滑动窗口,W为滑动窗口的大小,I={id1,id2,id3,...,idn}是滑动窗口内出现的报文标识符集合;Rt表示异常检测的反应时间,为滑动窗口的时间长度;idi和idj是结对的报文;μ和σ分别表示对应的相对熵的均值和标准差,其值在模型建立阶段获得;k为异常阈值区间的调控参数;算法首先计算滑动窗口内的每个id在滑动窗口内的相对熵值D(idi|idj)和D(idi),接着判断相对熵值D(idi)是否在正常范围[μidi-kσidi,μidi+kσidj]和相对熵值D(idi|idj)是否在正常范围[μidi-idj-kσidi-idj,μidi-idj+kσidi-idj];如果在正常熵值区间内,则认为没有异常发生,滑动窗口向前滑动,进行下一轮的检测;如果不在正常熵值区间内,则判断为异常,给出警报并写入日志;滑动窗口向前滑动,进行下一轮的异常检测;
所述对数据域进行基于报文数据域的CAN总线异常检测具体包括:
第一步,CAN总线的数据域有一个固定的内部结构,CAN总线报文数据域的每一bit代表的含义是固定的,并由CAN总线的通信矩阵定义;
第二步,按照常值特征、循环值特征、多值特征顺序将CAN总线报文数据域的特征提取出;得到的特征具有最大的长度;
第三步,使用一个5元组表示ID=x的CAN总线数据报文数据域的特征提取情况,5元组的格式是:<ID,start,end,type,value>,其中ID是CAN总线的报文标识符,start是该特征数据段的起始索引,end是该特征数据段的终止索引,type是该特征数据段的类型,包含四种:常值特征constant、循环值特征loop、多值特征multi-value和无规律值irregular-value,value是特征对应的值;
第四步,线下建立好CAN总线正常报文模型以后,对异常报文的检测。
3.如权利要求1所述的车载CAN总线网络异常检测方法,其特征在于,所述第二步具体包括:
(1)提取标识符ID=id的报文数据域的常值特征的算法,用于提取报文数据域的常值特征;首先,将包含ID=id的CAN总线数据集中的报文按照4bit进行分割,将得到的16个数据段存入列表中,每个数据是长度为4的0/1序列;接着,遍历列表,对每个数据段进行如下操作:如果其在整个数据集上都是常值,则认为该数据段是一个常值特征;然后,对常值数据段从左端和右端进行拓展,如果拓展后的数据段仍然是常值,则继续进行拓展,直到数据段不符合常值规律;最后记录常值特征段的起始索引和终止索引;
(2)提取标识符ID=id的报文数据域循环值特征的算法,用于提取报文数据域的循环值特征;ID=id的CAN总线数据集经过常值特征提取后,对非常值特征的数据段进行循环值特征提取;对每一个非常值特征的数据段进行如下操作:如果该数据段是循环值,即该数据段的值在数据集上是循环的,则认为该数据段是一个循环特征;然后,对循环值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合循环值的规律,则继续进行拓展,直到数据段不符合循环值规律;最后记录循环值特征段的起始索引和终止索引;
(3)提取标识符ID=id的报文数据域多值特征的算法,用于提取报文数据域的多值特征;ID=id的CAN总线数据集经过常值特征提取和循环值特征提取后,对剩余的数据段进行多值特征提取;多值特征的判断方法是:如果数据段在数据集上的取值个数小于可取值总数的三分之二,则认为该数据段为多值特征段;然后,对多值数据段从左端和右端进行拓展,如果拓展后的数据段仍然符合多值特征的规律,则继续进行拓展,直到数据段不符合多值规律;最后记录多值特征段的起始索引和终止索引。
4.如权利要求1所述的车载CAN总线网络异常检测方法,其特征在于,所述第三步CAN总线正常报文模型是在线下建立具体包括:
(1)从CAN总线上收集报文数据,应使得收集到的数据集包含的报文尽可能丰富,包含了报文的所有情况;将数据集中的所有报文按照报文标识符ID进行分类,同一类的报文按照收集的时间顺序排列;
(2)对每一类ID的报文,通依次提取其报文数据域的常值特征、循环值特征、多值特征,将提取得到的特征存储为5元组[ID,start,end,type,value],并保存为文件,此时得到每个ID的正常报文模型;
(3)所有ID的特征提取完毕后,将所有ID的正常报文模型整合,构成CAN总线的正常报文模型,用于后续的异常报文检测。
5.如权利要求1所述的车载CAN总线网络异常检测方法,其特征在于,所述第四步对异常报文的检测过程具体包括:
(1)从CAN总线上读取当前报文,并根据标识符ID传入CAN总线正常报文模型,选择对应的特征元组;
(2)根据报文ID选择对应的特征元组,将报文的数据域依据对应的模型划分为若干数据段;
(3)依次判断每一数据段是否与对应模型中记录的类型相符,即如果数据段为常值特征,则判断该数据段的值是否与记录的常值一致,若不一致,则报告异常;如果数据段为循环值特征,则判断该数据段的是否符合记录的循环规律,即和上一条报文对应数据段的值是否符合升序或降序规律,若不符合,则报告异常;如果该数据段为多值特征,则判断该数据段的值是否是记录的多值中的一个,若不是,则报告异常。
6.一种基于权利要求1所述车载CAN总线网络异常检测方法的车载CAN总线网络异常检测系统,其特征在于,所述车载CAN总线网络异常检测系统包括:
相对熵CAN总线异常检测模块,用于对标识符ID进行基于相对熵的CAN总线异常检测;采用固定报文数量的滑动窗口;根据报文的发送顺序和发送数量等关系对报文进行配对,计算配对报文的相对熵和各ID与正常分布的相对熵,由这两种相对熵值判断是否有异常发生;检测重放攻击和拒绝服务攻击;
报文数据域CAN总线异常检测模块,用于对数据域进行基于报文数据域的CAN总线异常检测;提取报文数据域的特征,包括常值特征、循环值特征、多值特征;根据提取到的特征建立正常报文模型,并以此检测报文异常。
7.一种应用权利要求1~5任意一项所述车载CAN总线网络异常检测方法的汽车。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910379225.5A CN110275508B (zh) | 2019-05-08 | 2019-05-08 | 车载can总线网络异常检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910379225.5A CN110275508B (zh) | 2019-05-08 | 2019-05-08 | 车载can总线网络异常检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110275508A CN110275508A (zh) | 2019-09-24 |
CN110275508B true CN110275508B (zh) | 2021-09-28 |
Family
ID=67959828
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910379225.5A Active CN110275508B (zh) | 2019-05-08 | 2019-05-08 | 车载can总线网络异常检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110275508B (zh) |
Families Citing this family (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110647138B (zh) * | 2019-10-10 | 2021-02-02 | 国网湖北省电力有限公司电力科学研究院 | 基于改进蚁群算法的充电桩can总线协议的安全检测方法 |
CN112688901A (zh) * | 2019-10-18 | 2021-04-20 | 厦门雅迅网络股份有限公司 | 一种汽车网关的实时can入侵检测系统 |
CN110826054B (zh) * | 2019-11-05 | 2022-07-15 | 哈尔滨工业大学 | 一种基于报文数据场特征的车载can总线入侵检测方法 |
JPWO2021106446A1 (zh) * | 2019-11-28 | 2021-06-03 | ||
CN111131247B (zh) * | 2019-12-24 | 2020-12-25 | 国家计算机网络与信息安全管理中心 | 一种车载内部网络入侵检测系统 |
CN111147313B (zh) * | 2019-12-31 | 2022-08-23 | 潍柴动力股份有限公司 | 一种报文异常监控方法、装置、存储介质及电子设备 |
CN113079072B (zh) * | 2020-01-06 | 2022-11-11 | 广州汽车集团股份有限公司 | 一种车辆数据采集方法及其系统、计算机设备、存储介质 |
CN111552597A (zh) * | 2020-03-27 | 2020-08-18 | 深圳开源互联网安全技术有限公司 | 汽车can总线网络安全测试系统及方法 |
CN111970229B (zh) * | 2020-06-23 | 2021-11-16 | 北京航空航天大学 | 一种针对多种攻击方式的can总线数据异常检测方法 |
CN111818037A (zh) * | 2020-07-02 | 2020-10-23 | 上海工业控制安全创新科技有限公司 | 基于信息熵的车载网络流量异常检测防御方法及防御系统 |
CN111865744B (zh) * | 2020-07-08 | 2021-12-31 | 北京软安科技有限公司 | 一种车辆can总线数据分类方法及装置 |
CN112019512B (zh) * | 2020-07-30 | 2023-07-25 | 杭州安恒信息技术股份有限公司 | 汽车网络安全测试系统 |
CN111880983B (zh) * | 2020-08-04 | 2021-12-14 | 北京天融信网络安全技术有限公司 | 一种can总线异常检测方法及装置 |
CN111966083A (zh) * | 2020-09-18 | 2020-11-20 | 大连理工大学 | 一种汽车can总线信息安全模拟装置 |
CN112153070B (zh) * | 2020-09-28 | 2021-11-26 | 安徽江淮汽车集团股份有限公司 | 车载can总线的异常检测方法、设备、存储介质及装置 |
CN112583808B (zh) * | 2020-12-08 | 2022-01-07 | 国网湖南省电力有限公司 | 针对物联网设备的异常流量检测方法 |
CN113301020B (zh) * | 2021-04-23 | 2022-02-22 | 暨南大学 | 一种基于rgb图像编码的车辆总线攻击检测方法 |
CN113625681B (zh) * | 2021-07-19 | 2022-12-13 | 湖南大学 | Can总线异常检测方法、系统及存储介质 |
CN113589793B (zh) * | 2021-07-30 | 2022-07-22 | 中汽院(重庆)汽车检测有限公司 | 汽车总线网络设计安全检测方法 |
CN114095258B (zh) * | 2021-11-23 | 2024-02-06 | 北京天融信网络安全技术有限公司 | 攻击防御方法、装置、电子设备及存储介质 |
CN114338083B (zh) * | 2021-12-03 | 2024-05-28 | 中汽创智科技有限公司 | 控制器局域网络总线异常检测方法、装置和电子设备 |
CN113965584B (zh) * | 2021-12-21 | 2022-05-13 | 北京达佳互联信息技术有限公司 | 报文处理方法、设备、装置及存储介质 |
IT202200001814A1 (it) * | 2022-02-02 | 2023-08-02 | Marelli Europe Spa | "Procedimento di protezione da attacchi informatici a un veicolo basato su analisi temporale e corrispondente dispositivo" |
CN114650536B (zh) * | 2022-03-31 | 2023-06-02 | 重庆长安新能源汽车科技有限公司 | 基于报文指纹的入侵检测方法、系统、车辆及存储介质 |
CN114978579A (zh) * | 2022-04-08 | 2022-08-30 | 联合汽车电子有限公司 | 一种信息处理方法、异常检测装置、介质及车载控制器 |
CN114900331B (zh) * | 2022-04-13 | 2023-06-09 | 中山大学 | 基于can报文特征的车载can总线入侵检测方法 |
CN114615086B (zh) * | 2022-04-14 | 2023-11-03 | 合肥工业大学 | 一种车载can网络入侵检测方法 |
CN114760163B (zh) * | 2022-04-22 | 2024-01-12 | 惠州华阳通用电子有限公司 | 一种can通信方法 |
CN114697135B (zh) * | 2022-05-07 | 2023-04-25 | 湖南大学 | 一种汽车控制器区域网络入侵检测方法、系统及汽车 |
CN115102891A (zh) * | 2022-05-18 | 2022-09-23 | 中国第一汽车股份有限公司 | 一种车辆网络入侵检测测试方法和测试系统 |
CN115102890A (zh) * | 2022-05-18 | 2022-09-23 | 中国第一汽车股份有限公司 | 一种车载终端系统入侵检测功能测试系统和方法 |
CN115499340A (zh) * | 2022-09-29 | 2022-12-20 | 吉林大学 | 一种车载canfd网络异常状态的双重检测技术 |
CN115858794B (zh) * | 2023-02-20 | 2023-05-05 | 北京特立信电子技术股份有限公司 | 用于网络运行安全监测的异常日志数据识别方法 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453140A (zh) * | 2016-09-29 | 2017-02-22 | 北京汽车股份有限公司 | 基于电子控制单元的报文处理方法及装置 |
CN106650505A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇虎科技有限公司 | 一种车辆攻击检测方法和装置 |
CN106656705A (zh) * | 2016-11-18 | 2017-05-10 | 成都信息工程大学 | 一种车载most/can安全网关及其入侵检测方法 |
CN107179764A (zh) * | 2017-05-19 | 2017-09-19 | 厦门大学 | 具有车辆诊断功能的车机设备 |
CN107566402A (zh) * | 2017-10-13 | 2018-01-09 | 成都信息工程大学 | 基于soeks的车载电子信息系统入侵检测方法与实现 |
CN108848072A (zh) * | 2018-05-25 | 2018-11-20 | 东南大学 | 一种基于相对熵的车载can总线异常检测方法 |
CN109074519A (zh) * | 2016-12-06 | 2018-12-21 | 松下电器(美国)知识产权公司 | 信息处理装置、信息处理方法以及程序 |
CN109067773A (zh) * | 2018-09-10 | 2018-12-21 | 成都信息工程大学 | 一种基于神经网络的车载can网络入侵检测方法及系统 |
CN109117632A (zh) * | 2018-07-27 | 2019-01-01 | 北京梆梆安全科技有限公司 | 一种确定车辆被入侵之风险的方法和装置 |
CN109302378A (zh) * | 2018-07-13 | 2019-02-01 | 哈尔滨工程大学 | 一种SDN网络DDoS攻击检测方法 |
CN109347823A (zh) * | 2018-10-17 | 2019-02-15 | 湖南汽车工程职业学院 | 一种基于信息熵的can总线异常检测方法 |
CN109747657A (zh) * | 2018-12-17 | 2019-05-14 | 北京百度网讯科技有限公司 | 自动驾驶汽车远程控制方法和装置 |
CN109889512A (zh) * | 2019-01-31 | 2019-06-14 | 国网北京市电力公司 | 一种充电桩can报文的异常检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10200391B2 (en) * | 2015-09-23 | 2019-02-05 | AVAST Software s.r.o. | Detection of malware in derived pattern space |
-
2019
- 2019-05-08 CN CN201910379225.5A patent/CN110275508B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106453140A (zh) * | 2016-09-29 | 2017-02-22 | 北京汽车股份有限公司 | 基于电子控制单元的报文处理方法及装置 |
CN106656705A (zh) * | 2016-11-18 | 2017-05-10 | 成都信息工程大学 | 一种车载most/can安全网关及其入侵检测方法 |
CN109074519A (zh) * | 2016-12-06 | 2018-12-21 | 松下电器(美国)知识产权公司 | 信息处理装置、信息处理方法以及程序 |
CN106650505A (zh) * | 2016-12-28 | 2017-05-10 | 北京奇虎科技有限公司 | 一种车辆攻击检测方法和装置 |
CN107179764A (zh) * | 2017-05-19 | 2017-09-19 | 厦门大学 | 具有车辆诊断功能的车机设备 |
CN107566402A (zh) * | 2017-10-13 | 2018-01-09 | 成都信息工程大学 | 基于soeks的车载电子信息系统入侵检测方法与实现 |
CN108848072A (zh) * | 2018-05-25 | 2018-11-20 | 东南大学 | 一种基于相对熵的车载can总线异常检测方法 |
CN109302378A (zh) * | 2018-07-13 | 2019-02-01 | 哈尔滨工程大学 | 一种SDN网络DDoS攻击检测方法 |
CN109117632A (zh) * | 2018-07-27 | 2019-01-01 | 北京梆梆安全科技有限公司 | 一种确定车辆被入侵之风险的方法和装置 |
CN109067773A (zh) * | 2018-09-10 | 2018-12-21 | 成都信息工程大学 | 一种基于神经网络的车载can网络入侵检测方法及系统 |
CN109347823A (zh) * | 2018-10-17 | 2019-02-15 | 湖南汽车工程职业学院 | 一种基于信息熵的can总线异常检测方法 |
CN109747657A (zh) * | 2018-12-17 | 2019-05-14 | 北京百度网讯科技有限公司 | 自动驾驶汽车远程控制方法和装置 |
CN109889512A (zh) * | 2019-01-31 | 2019-06-14 | 国网北京市电力公司 | 一种充电桩can报文的异常检测方法及装置 |
Non-Patent Citations (2)
Title |
---|
基于决策树的车载CAN总线异常检测技术研究;孙怀荣 等;《科技通报》;20180531;第34卷(第5期);第167-171页 * |
车载CAN总线网络安全问题及异常检测方法;于赫 等;《吉林大学学报(工学版)》;20160731;第46卷(第4期);第1246-1253页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110275508A (zh) | 2019-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110275508B (zh) | 车载can总线网络异常检测方法及系统 | |
US11108789B2 (en) | Identifying compromised electronic control units via voltage fingerprinting | |
Foruhandeh et al. | SIMPLE: Single-frame based physical layer identification for intrusion detection and prevention on in-vehicle networks | |
Marchetti et al. | Evaluation of anomaly detection for in-vehicle networks through information-theoretic algorithms | |
Martinelli et al. | Car hacking identification through fuzzy logic algorithms | |
Taylor et al. | Frequency-based anomaly detection for the automotive CAN bus | |
CN110505134B (zh) | 一种车联网can总线数据检测方法及装置 | |
Qin et al. | Application of controller area network (CAN) bus anomaly detection based on time series prediction | |
Olufowobi et al. | Anomaly detection approach using adaptive cumulative sum algorithm for controller area network | |
CN108390869B (zh) | 集成深度学习的车载智能网关装置及其命令序列检测方法 | |
Xun et al. | VehicleEIDS: A novel external intrusion detection system based on vehicle voltage signals | |
Taylor et al. | Probing the limits of anomaly detectors for automobiles with a cyberattack framework | |
Desta et al. | ID sequence analysis for intrusion detection in the CAN bus using long short term memory networks | |
Suda et al. | Systematic intrusion detection technique for an in-vehicle network based on time-series feature extraction | |
Zhou et al. | Clock-based sender identification and attack detection for automotive CAN network | |
Schell et al. | VALID: Voltage-based lightweight intrusion detection for the controller area network | |
Bi et al. | Intrusion Detection Method for In‐Vehicle CAN Bus Based on Message and Time Transfer Matrix | |
Boumiza et al. | An anomaly detector for CAN bus networks in autonomous cars based on neural networks | |
Sunny et al. | A hybrid approach for fast anomaly detection in controller area networks | |
CN115776383A (zh) | 基于时间分析的车辆网络攻击防护方法及相应装置 | |
Sun et al. | Analysis of id sequences similarity using DTW in intrusion detection for CAN bus | |
Tian et al. | Advanced Temperature‐Varied ECU Fingerprints for Source Identification and Intrusion Detection in Controller Area Networks | |
Wang et al. | Vulnerability of deep learning model based anomaly detection in vehicle network | |
Boumiza et al. | An efficient hidden Markov model for anomaly detection in can bus networks | |
Shirazi et al. | Using machine learning to detect anomalies in embedded networks in heavy vehicles |
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 |