基于相对熵的CAN网络异常监测定位方法、系统及汽车与流程

文档序号:32331453发布日期:2022-11-25 22:18阅读:51来源:国知局
基于相对熵的CAN网络异常监测定位方法、系统及汽车与流程
基于相对熵的can网络异常监测定位方法、系统及汽车
技术领域
1.本发明涉及智能网联汽车信息安全及入侵检测技术领域,具体涉及一种基于相对熵的can网络异常监测定位方法、系统及汽车。


背景技术:

2.目前智能网联汽车的发展突飞猛进,汽车电子控制设备逐渐增多,这些电子控制设备相互通信配合实现汽车的多功能及平稳运行。车联网技术不断发展,这使得汽车与外界通信越来越便利,但同时外界不法人员和终端设备侵入汽车网络也更加便捷。由于在汽车电子通信(如can网络)设计之初,没有考虑到信息安全问题。车联网的普及必然会对安全等级较低的汽车控制网络安全造成威胁。
3.在汽车网络(尤其can网络)信息安全技术中入侵检测和异常检测技术作为一项重要技术被广泛关注。对于汽车can网络周期性报文而言,常用的检测方法是对汽车通信报文进行熵值的计算判断,进而对can总线报文的发送情况进行检测,但是当前的方法不能在发生异常之后,定位出异常报文的标识符序号(标志符id)。
4.如申请号为cn201810546058.4的发明专利申请中公开了一种基于相对熵的车载can总线异常检测方法,该方法包括:在中断处理程序中,车辆上电后,检测节点开启定时中断,定时触发,实现对报文相对熵的计算,若计算的所述相对熵结果超出设定的阈值,则触发报警,否则,执行计数数据清零、窗口切换的操作;所述计算报文相对熵时,交替使用两个变长的时间窗口,分别记为窗口1和窗口2,进行增长和两组独立的计数器进行计数。本发明采用基于相对熵的异常检测算法并进行改进,提高了检测精度和检测粒度,并结合了基于白名单和时间间隔的异常检测,实现更好的检测效果,但该方法只能检测出can总线存在异常的情况,却无法对can总线通信上出现异常情况的报文进行具体的定位。


技术实现要素:

5.针对现有技术存在的上述不足,本发明要解决的技术问题是:如何提供一种能够对can网络通信中周期性报文的发送情况进行监测,并且在报文出现异常后,能够准确定位该报文的报文标识符序号,进而方便后续响应策略处理的基于相对熵的can网络异常监测定位方法和系统。
6.为了解决上述技术问题,本发明采用如下技术方案:
7.一种基于相对熵的can网络异常监测定位方法,包括以下步骤:
8.步骤1)采集汽车can网络上的报文;
9.步骤2)提取步骤1)中采集到的报文的标识符序号;
10.步骤3)根据报文的标识符序号的出现频率判断各报文是否为周期性报文,若是则执行步骤4),若否则返回执行步骤1);
11.步骤4)设定一个基准检测窗口和相对熵的基准波动范围,并将所有周期性报文进行任意两两报文之间相对熵的计算,判断任意一个报文与其余所有报文两两之间计算出的
相对熵是否均在基准波动范围内,若是则返回执行步骤1),若否则执行步骤5);
12.步骤5)对计算出的相对熵在基准波动范围外的两个报文进行各自发送概率的计算,并根据各报文计算出的发送概率是否在该报文的基准发送概率区间内来判断该报文的异常情况,若是则执行步骤7),若否则执行步骤6);
13.步骤6)判断该报文为异常报文,对该报文的标识符序号进行定位,并入侵响应策略;
14.步骤7)判断该报文为正常报文。
15.优选的,步骤2)中,设定一个基准报文标识符序号的白名单,并判断提取的报文的标识符序号是否在设定的基准报文标识符序号的白名单内,若是则执行步骤3),若否则执行步骤6)。
16.优选的,所述基准报文标识符序号的白名单包括can网络正常情况下的所有周期性报文的标识符序号。
17.优选的,步骤4)中,相对熵的基准波动范围的确定方法为:选取can网络正常情况下的多个大小不同的检测窗口,计算各检测窗口下相对熵的波动范围,根据相对熵的计算时间和相对熵的波动范围来确定一个检测窗口作为基准检测窗口,并以该基准检测窗口下的相对熵的波动范围作为相对熵的基准波动范围。
18.优选的,步骤5)中,当某报文计算出的发送概率大于该报文的基准发送概率时,则判断该报文为重放攻击报文;
19.当某报文计算出的发送概率小于该报文的基准发送概率时,则判断该报文为丢弃攻击报文。
20.优选的,步骤5)中,当仅有一个报文计算出的发送概率与该报文的基准发送概率不相等时,则判定相对熵在基准波动范围外的异常由该报文的异常发送导致;
21.当两个报文计算出的发送概率均与各自报文的基准发送概率均不相等时,则判定相对熵在基准波动范围外的异常由两个报文的异常发送导致。
22.优选的,报文的标志符序号为id1和报文的标志符序号为id2的两个报文之间相对熵的计算公式为:
[0023][0024]
式中:为基准检测窗口内报文的标识符序号为id1的报文出现的概率,为基准检测窗口内报文的标识符序号为id2的报文出现的概率,为报文的标志符序号为id1和报文的标志符序号为id2的两个报文之间的相对熵值。
[0025]
优选的,基准检测窗口内报文的标识符序号为id1的报文出现的概率的计算公式为:
[0026][0027]
式中:为基准检测窗口内报文的标识符序号为id1的报文出现的个数,n
total
为基准检测窗口内周期性报文的总个数。
[0028]
一种实现上述基于相对熵的can网络异常监测定位方法的定位系统,所述定位系
统包括:
[0029]
报文采集模块,所述报文采集模块用于采集汽车can网络通信上的报文;
[0030]
报文标识符序号提取模块,所述报文标识符序号提取模块用于对采集到的报文进行标识符序号的提取;
[0031]
周期性报文判断模块,所述周期性报文判断模块用于根据报文的标识符序号的出现频率判断各报文是否为周期性报文;
[0032]
相对熵的计算判断模块,所述相对熵计算判断模块内设有基准检测窗口和相对熵的基准波动范围,所述相对熵计算判断模块用于将所有周期性报文进行任意两两报文之间相对熵的计算,并判断任意一个报文与其余所有报文两两之间计算出的相对熵是否均在基准波动范围内;
[0033]
报文发送概率的计算判断模块,所述报文发送概率的计算判断模块内存储有各报文的基准发送概率,所述报文发送概率的计算判断模块用于对计算出的相对熵在基准波动范围外的两个报文进行各自发送概率的计算,并将各报文计算出的发送概率与该报文的基准发送概率进行比较,以判断各报文计算出的发送概率与该报文的基准发送概率是否相等;
[0034]
报文异常判断模块,所述报文异常判断模块用于根据所述相对熵的计算判断模块和所述报文发送概率的计算判断模块的输出信号判断报文是否为异常报文。
[0035]
本方案还提供一种汽车,该汽车采用上述的基于相对熵的can网络异常监测定位方法。
[0036]
与现有技术相比,本发明具有以下优点:
[0037]
1、本发明通过对can网络中周期性报文的发送情况进行监测,并且在某种can报文或者某几种can报文发送出现异常之后,能够准确定位该can报文的标识符序号(标识符id),进而方便后续响应策略的处理。
[0038]
2、本发明通过can网络正常情况下的基准报文标识符序号的白名单列表来判断并筛查出异常标识符序号的can报文;然后通过两两报文的相对熵判断,初步检测到可能出现发送异常的报文;最后通过对参与异常相对熵的报文进行基准检测窗口内发送概率的计算,精确定位出异常报文的标识符序号。
[0039]
3、本发明通过基准报文标识符序号的白名单列表可直接筛选出异常标识符序号的can报文;同时,在整体检测过程中,采用两两报文进行相对熵值计算,即可对所有报文的整体发送情况进行检测,并将检测判断负担减轻一半,另外,本发明不仅可以对周期性报文的整体发送情况进行检测,并且可以在出现异常之后,精确定位出异常报文的标识符序号。
附图说明
[0040]
图1为本发明基于相对熵的can网络异常监测定位方法的流程图。
[0041]
图2为本发明基于相对熵的can网络异常监测定位方法中相对熵及报文发送概率检测窗口及阈值确定流程图;
[0042]
图3为本发明基于相对熵的can网络异常监测定位系统的系统框图。
具体实施方式
[0043]
下面将结合附图及实施例对本发明作进一步说明。
[0044]
如附图1和附图2所示,一种基于相对熵的can网络异常监测定位方法,包括以下步骤:
[0045]
步骤1)采集汽车can网络上的报文;报文可以通过直接连接汽车进行采集,也可以通过canoe等汽车电子软件仿真得到。
[0046]
步骤2)提取步骤1)中采集到的报文的标识符序号;报文的标识符序号(标志符id)为can网络报文仲裁域的一段二进制电平,后续为了方便运算,将其转化成16进制数字。
[0047]
另外,在步骤2)中,还需要对报文的标志符id进行判断,而报文的标识符id判断过程需要有一个提前设定好的可信id列表,也称为基准报文标识符序号的白名单列表,该基准报文标识符序号的白名单列表包括汽车正常行驶通信的所有周期性报文,通过此过程能够筛查判断出异常标识符id的报文,进而防止非规定的恶意标识符id报文进入网络,干扰网络的正常通信以及汽车状态信息和控制信息的解答,同时使得后续的计算更加准确可信。故在步骤2)中,设定一个基准报文标识符序号的白名单,并判断提取的报文的标识符序号是否在设定的基准报文标识符序号的白名单内,若是则执行步骤3),若否则执行步骤6)。
[0048]
步骤3)根据报文的标识符序号的出现频率判断各报文是否为周期性报文,若是则执行步骤4),若否则返回执行步骤1);本方法仅针对周期性报文发送情况的异常检测和定位,如果连接汽车获得报文,要首先分析出其周期性报文,然后对周期性报文采用该种方法处理,如果不是周期性报文,则返回重新获取新的报文。
[0049]
步骤4)在对can网络周期性报文的发送情况进行检测之前,首先要进行正常通信情况下阈值的确定,以便后续异常的判断和定位,该阈值通过正常can网络通信报文计算所得,供后续监测判断利用,检测窗口选择的原则便是正常阈值的稳定合理且耗时短。通过该步骤粗略找到了可能发生异常的几个can报文,方便后续精确定位异常报文的标识符id。故在该步骤中,设定一个基准检测窗口和相对熵的基准波动范围,并将所有周期性报文进行任意两两报文之间相对熵的计算,判断任意一个报文与其余所有报文两两之间计算出的相对熵是否均在基准波动范围内,若是则返回执行步骤1),若否则执行步骤5)。
[0050]
在本实施例中,步骤4)中要将所有周期性报文进行两两组合,方便后续进行相对熵的计算,在此要保证每一个标识符id的报文都被计算到,从而防止出现检测缺漏。
[0051]
具体的,以报文的标志符序号为id1和报文的标志符序号为id2的两个报文为例,报文的标志符序号为id1和报文的标志符序号为id2的两个报文之间相对熵的计算公式为:
[0052][0053]
式中:为基准检测窗口内报文的标识符序号为id1的报文出现的概率,为基准检测窗口内报文的标识符序号为id2的报文出现的概率,为报文的标志符序号为id1和报文的标志符序号为id2的两个报文之间的相对熵值。
[0054]
而基准检测窗口内报文的标识符序号为id1的报文出现的概率的计算公式为:
[0055]
[0056]
式中:为基准检测窗口内报文的标识符序号为id1的报文出现的个数,n
total
为基准检测窗口内周期性报文的总个数。
[0057]
在本实施例中,对于所有周期性报文而言,两两报文相对熵值为一个定值,考虑到实际误差情况,该值正常情况下会在一个阈值区间内轻微波动。如果出现了异常波动,就说明计算该相对熵的两个报文中,至少有一个出现了发送异常。
[0058]
本方案中,相对熵的基准波动范围的确定方法为:选取can网络正常情况下的多个大小不同的检测窗口,计算各检测窗口下相对熵的波动范围,根据相对熵的计算时间和相对熵的波动范围来确定一个检测窗口作为基准检测窗口,并以该基准检测窗口下的相对熵的波动范围作为相对熵的基准波动范围。
[0059]
具体的,基准检测窗口和相对熵的基准波动范围按以下方法进行确定:其过程如图2所示,首先进行报文的获取,其次进行报文预处理得到标识符id,供后续的计算处理,最后通过比较多个检测窗口的数值波动情况,选定最终的基准检测窗口大小及相对熵的基准波动范围。在此,进行一个理论分析:假设周期性通信报文的标识符id有{0x111,0x222,0x333,0x444,0x555,0x666},上述五类报文的发送周期分别为{0.1s,0.1s,0.1s,0.2s,0.2s,0.2s}。
[0060]
理想情况下,检测窗口内报文0x111的正常发送概率为:
[0061][0062]
同理,报文0x222的正常发送概率为:p
id=ox222
=0.222
[0063]
同理,报文0x333的正常发送概率为:p
id=ox333
=0.222
[0064]
同理,报文0x444的正常发送概率为:p
id=ox444
=0.111
[0065]
同理,报文0x555的正常发送概率为:p
id=ox555
=0.111
[0066]
同理,报文0x666的正常发送概率为:p
id=ox666
=0.111
[0067]
根据相对熵公式计算得出,can总线正常通信情况下,报文0x111与0x222的相对熵值为:
[0068][0069]
同理,报文0x333与0x444的相对熵值为:
[0070]
d(p
id=0x333
||p
id=0x444
)=0.222
[0071]
同理,报文0x555与0x666的相对熵值为:
[0072]
d(p
id=0x555
||p
id=ox666
)=0
[0073]
由此得出理想情况下,can网络正常发送时,上述周期性报文的报文发送概率以及两两相对熵值,为一个定值。不过,在实际过程中,由于窗口大小的选择问题以及总线发送情况,上述周期性报文的报文发送概率以及两两相对熵值不会总是保持恒定值,而是在该
恒定值附近波动,进而产生一个正常阈值区间。一般要选择一个合适的相对熵计算窗口及相对熵阈值,该窗口和阈值要经过多次计算试验,通过对正常发送报文的计算,选择出一个计算耗时短且波动稳定的窗口和阈值区间分别作为基准检测窗口和相对熵的基准波动范围,方便后续的检测过程。
[0074]
步骤5)对计算出的相对熵在基准波动范围外的两个报文进行各自发送概率的计算,并根据各报文计算出的发送概率是否在该报文的基准发送概率区间内(基准发送概率为can网络正常通信情况下各报文在基准检测窗口内出现的概率,每个周期性报文的出现概率都有一个正常合理的阈值区间)来判断该报文的异常情况,若是则执行步骤7),若否则执行步骤6)。
[0075]
具体的,步骤5)中,当仅有一个报文计算出的发送概率与该报文的基准发送概率不相等时,则判定相对熵在基准波动范围外的异常由该报文的异常发送导致;当两个报文计算出的发送概率均与各自报文的基准发送概率均不相等时,则判定相对熵在基准波动范围外的异常由两个报文的异常发送导致。这样,当某个周期性报文的发送概率发生了异常,便可定位出某个异常发送报文,某些周期性报文的发送概率发生了异常,便可定位出某些异常发送报文,由此便对异常情况下的异常报文的标志符id进行了定位,然后便可以进行后续的入侵响应策略。
[0076]
进一步的,在步骤5)中,还可以通过对报文发送概率的计算定位出重放攻击报文和丢弃攻击报文。当某报文计算出的发送概率远大于该报文的基准发送概率时,则判断该报文为重放攻击报文;当某报文计算出的发送概率远小于该报文的基准发送概率时,则判断该报文为丢弃攻击报文。
[0077]
具体的,如在某类报文重放攻击发生后,会导致某一个相对熵值出现突变,严重超出阈值,产生异常,进而进行后续的异常报文标识符id的定位,进而采取相应的措施。
[0078]
假设某段时间0x111报文大量重放,这会使得0x111报文和0x222报文相对熵值骤增,如式:
[0079][0080]
当0x111报文大量重放时,会使得检测窗口内0x111报文的发送概率p
id=0x111
增加。而检测窗口内0x222报文的发送数量稍微减少,使得0x222报文的发送概率p
id=0x222
减少。由求解d(p
id=0x111
||p
id=0x222
)的公式可知,0x111报文和0x222报文相对熵值骤增。由于0x333、0x444、0x555、0x666报文会同等数量抑制,因此,检测窗口内,其报文发送数量比例及发送概率比例几乎不变,这就使得他们的相对熵值不会产生较大变动。
[0081]
计算出0x111报文和0x222报文相对熵值骤增之后,便会调出该检测窗口内的0x111和0x222报文发送概率,进行判断。由于0x111报文大量重放,这会使得0x111报文的发送概率显著增加,进而在和正常阈值的比较判断中,发现0x111报文发送概率严重超过了阈值)。进而在检测到该窗口内的异常的同时,定位出异常报文id为0x111,异常情况为其连续重放发送,此时即可判断该报文为重放攻击报文。
[0082]
又如在某类报文出现丢弃攻击时,同样会导致某一个相对熵值出现突变,严重超出阈值,产生异常,进而进行后续的异常报文标识符id的定位,进而采取相应的措施。
[0083]
假设某段时间负责发送0x111报文的电控单元被攻击,该报文的发送遭到了抑制
或者网络丢弃,进而造成丢弃攻击,这会使得0x111报文和0x222报文相对熵值骤降,如式:
[0084][0085]
当0x111报文大量丢弃时,会使得检测窗口内0x111报文的发送概率p
id=0x111
减少。而检测窗口内0x222报文的发送数量相对增多,使得0x222报文的发送概率p
id=0x222
相对增加。由求解d(p
id=0x111
||p
id=0x222
)的公式可知,0x111报文和0x222报文相对熵值会骤降。由于0x333、0x444、0x555、0x666报文会同等数量增多,因此,检测窗口内,其报文发送数量比例及发送概率比例几乎不变,这就使得他们的相对熵值不会产生较大变动。
[0086]
计算出0x111报文和0x222报文相对熵值骤降之后,便会调出该检测窗口内的0x111和0x222报文发送概率,进行判断。由于0x111报文大量丢弃,这会使得0x111报文的发送概率显著下降,进而在和正常阈值的比较判断中,发现0x111报文发送概率严重低于阈值区间。进而在检测到该窗口内的异常的同时,定位出异常报文id为0x111,异常情况为其丢弃发送,此时即可判断该报文为丢弃攻击报文。
[0087]
步骤6)判断该报文为异常报文,对该报文的标识符序号进行定位,然后便可以进行后续的入侵响应策略。
[0088]
步骤7)判断该报文为正常报文。
[0089]
如附图3所示,另外,本方案还提供一种实现上述基于相对熵的can网络异常监测定位方法的定位系统,所述定位系统包括:
[0090]
报文采集模块,所述报文采集模块用于采集汽车can网络通信上的报文;
[0091]
报文标识符序号提取模块,所述报文标识符序号提取模块用于对采集到的报文进行标识符序号的提取;
[0092]
周期性报文判断模块,所述周期性报文判断模块用于根据报文的标识符序号的出现频率判断各报文是否为周期性报文;
[0093]
相对熵的计算判断模块,所述相对熵计算判断模块内设有基准检测窗口和相对熵的基准波动范围,所述相对熵计算判断模块用于将所有周期性报文进行任意两两报文之间相对熵的计算,并判断任意一个报文与其余所有报文两两之间计算出的相对熵是否均在基准波动范围内;
[0094]
报文发送概率的计算判断模块,所述报文发送概率的计算判断模块内存储有各报文的基准发送概率,所述报文发送概率的计算判断模块用于对计算出的相对熵在基准波动范围外的两个报文进行各自发送概率的计算,并将各报文计算出的发送概率与该报文的基准发送概率进行比较,以判断各报文计算出的发送概率与该报文的基准发送概率是否相等;
[0095]
报文异常判断模块,所述报文异常判断模块用于根据所述相对熵的计算判断模块和所述报文发送概率的计算判断模块的输出信号判断报文是否为异常报文。
[0096]
另外,本方案还提供一种汽车,该汽车采用上述的基于相对熵的can网络异常监测定位方法。
[0097]
与现有技术相比,本发明通过对can网络中周期性报文的发送情况进行监测,并且在某种can报文或者某几种can报文发送出现异常之后,能够准确定位该can报文的标识符序号(标识符id),进而方便后续响应策略的处理。本发明通过can网络正常情况下的基准报
文标识符序号的白名单列表来判断并筛查出异常标识符序号的can报文;然后通过两两报文的相对熵判断,初步检测到可能出现发送异常的报文;最后通过对参与异常相对熵的报文进行基准检测窗口内发送概率的计算,精确定位出异常报文的标识符序号。本发明通过基准报文标识符序号的白名单列表可直接筛选出异常标识符序号的can报文;同时,在整体检测过程中,采用两两报文进行相对熵值计算,即可对所有报文的整体发送情况进行检测,并将检测判断负担减轻一半,另外,本发明不仅可以对周期性报文的整体发送情况进行检测,并且可以在出现异常之后,精确定位出异常报文的标识符序号。
[0098]
最后需要说明的是,以上实施例仅用以说明本发明的技术方案而非限制技术方案,本领域的普通技术人员应当理解,那些对本发明的技术方案进行修改或者等同替换,而不脱离本技术方案的宗旨和范围,均应涵盖在本发明的权利要求范围当中。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1