基于样本熵的车载CAN网络入侵检测*
2023-07-31崔英祥张幽彤魏洪乾
崔英祥,张幽彤,魏洪乾
(北京理工大学机械与车辆学院,北京 100081)
前言
在车载总线网络中,CAN 网络作为车辆重要的底层控制网络,主要用于传递汽车的状态信息及控制信息,保证汽车的平稳行驶。然而,当外界黑客侵入汽车后,CAN网络几乎完全暴露于外界,严重影响行车安全[1-2],这可能导致灾难性事件[3]。尽管当前存在消息加密、数据匿名化、防火墙和用户身份验证等网络安全应用,但车载网络缺乏安全解决方案[4]。
对于传统的IDS(intrusion detection system)系统,主要研究集中在基于异常的检测、基于签名的检测和二者混合的检测[5]。但对于汽车CAN 总线来说,CAN报文信息编码是由制造商定义和保密的,且受限于车内嵌入式设备的算力,很多传统的入侵检测方法都无法开展。
对于CAN 总线安全防护,主要分为基于统计、基于规则、基于学习3 类。基于统计的安全防护是通过统计学方法,对CAN 总线的某些具有统计学规律的参数状况进行检测;基于规则的安全防护是通过汽车自身CAN 网络的物理规则特征和物理规则手段进行检测;基于学习的安全防护是通过机器学习和深度学习的方法进行检测。最初汽车CAN 总线的IDS 研究是基于规则的[6-7],这将安全性推给了制造商,因为规则取决于CAN 编码,且可能需要特定攻击的知识。文献[8]~文献[10]中利用消息频率异常来检测与车辆无关的消息注入攻击。为应对Miller 和Valesek 的远程伪装攻击[11],文献[12]和文献[13]中提出了用于 ECU 识别的数据驱动方法,以检测来自报文发送方的信息。在基于统计分析的模型中,文献[14]中使用了生存分析,它分析了攻击发生前的时间。随着深度学习和机器学习的发展,更多对于CAN 总线的IDS 系统,选择了用于检测恶意消息的无监督学习方法[15-16]。Tyree 等[17]提出了一种流形学习技术来识别 CAN 总线数据的关系是否受到破坏。但这需要能将最多64 位的 CAN 数据字段标记化为信号大小的消息,且没有完全分析 CAN报文信息。利用CAN 报文信息的相关性进行入侵检测,同样需要完全了解CAN 信号的编码:Arun等[18]使用两不同传感器信号的一致性检测注入攻击的CAN 报文数据和传感器数据。最新的基于智能算法的IDS 系统[19-20]采用如下3 步对CAN 数据包建模并检测入侵:首先,借助逆向工程或与制造商合作以获取CAN 报文信息;然后借助深度学习模型离线训练特征参数,且在线预测未来的信号值;最后根据预测差值确定汽车ECU是否遭受到入侵攻击行为。
目前来看,对于汽车底层CAN 总线的防护较缺乏。很多有效的IDS 模型,难以摆脱无法在线检测中算力要求高、算法复杂、难以应用到汽车嵌入式设备上的缺点。也就是说,缺乏车载网络在线轻量级检测的有效措施,不过Yu等[21]利用时间间隔条件熵在MCU 中进行入侵检测系统开发,并进行了实车验证,为汽车ECU层级的防护提供了思路。
因此,为解决汽车底层CAN 网络中传统IDS 难以应用、缺乏车载网络在线轻量级检测的问题,本文中开展了基于样本熵的CAN 网络入侵检测方案研究。具体地,提出一种新的IDS 方法,称之为基于样本熵的IDS,命名为SE-IDS(sample entropyintrusion detection system),通过现有的数据集分析与重现工作,利用实车的ECU 进行硬件在环仿真实验,验证了该方法的有效性和可行性。
1 CAN总线及攻击类型
1.1 CAN总线
CAN 总线是一种串行数据通信协议,用于进行车辆网络中控制设备和仪器之间的信息交流。该协议支持具有不同通信介质的多种总线,包括双绞线电缆、同轴电缆和光纤。CAN 总线的数据传输速度可达1 Mbps/s,其主要特点是取消了传统的站地址编码,采用通信数据块编码,使网络中的节点数在理论上是无限的。在总线中传送的报文,每帧由7 部分组成。CAN 协议支持两种报文格式,其唯一的不同是标识符ID(identity document)长度不同,标准格式为11位,扩展格式为29位。
CAN 总线通信接口中集成了CAN 协议的物理层和数据链路层功能,可完成对通信数据的成帧处理,其包括位填充、数据块编码、循环冗余检验、优先级判别等工作。CAN 总线采用多主竞争式总线结构,具有多主站运行和分散仲裁的串行总线以及广播通信的特点。CAN总线上任意节点可在任意时刻主动地向网络上其它节点发送信息而不分主次,因此可在各节点之间实现自由通信。
CAN 总线以报文为单位进行数据传送,报文的优先级结合在11 位标识符中,具有最低二进制数的标识符有最高的优先级。这种优先级一旦在系统设计时被确立后就不能再被更改。总线读取中的冲突可通过位仲裁解决。在CAN 总线上传输的消息按每个节点的预定义顺序排列优先级。CAN的仲裁机制是优先级高的报文可以继续传输数据而不影响总线冲突判定时间,而优先级低的报文必须等待下一个空闲状态。
针对CAN 总线错误,CAN 物理层有发送和接收错误计数,计数达到一定的累计后就会产生总线关闭行为,或称为bus-off 行为,这说明CAN 总线上出现了严重错误。
1.2 攻击类型介绍
由于CAN 总线传播有广播通信、仲裁机制、bus-off 机制等特点,所以对CAN 总线的入侵也是由此展开。主要的攻击方式有注入攻击、假冒攻击、监听攻击、DOS 攻击、模糊攻击、重放攻击、欺骗攻击、篡改攻击等,本文中主要研究DOS 攻击、模糊攻击和bus-off 攻击。其中,DOS 攻击简单且有效,大量应用于黑客攻击中;模糊攻击易于被黑客实施,且原理与重放攻击和泛洪攻击大致相同,bus-off 攻击作为一种新型的攻击方式,正在逐渐被黑客所掌握。具体说明如下。
(1)DOS 攻击 由于CAN 总线的冲突仲裁机制,高优先级报文的频繁发送会占用CAN 网络,抑制其他节点发送报文,干扰总线正常工作,严重时会造成CAN网络崩溃,其攻击示意图如图1(a)所示。
图1 异常攻击过程示意图
(2)模糊攻击 指的是攻击者将随机ID和随机数据的报文,按一定频率发送到总线中,模糊正常总线上的报文,干扰车辆通信,其攻击示意图如图1(b)所示。
(3)bus-off攻击 攻击者通过在某个ECU 发送报文时,同时发送更高优先级的报文,由于总线的冲突仲裁机制,导致该ECU 产生发送错误,当ECU 的发送错误累积过多后,ECU 会进入bus-off 模式,即暂时停止高频通信,以一个更慢的时间定时尝试恢复,其攻击示意图如图1(c)所示。
2 基于样本熵的入侵检测系统
2.1 样本熵方案
针对汽车CAN 网络的入侵检测,设计基于样本熵的车载CAN 网络安全防护系统,对DOS 攻击、重放攻击、模糊攻击等攻击方式具有明显效果。基于样本熵的车载CAN 网络安全系统,主要通过接收报文、汇总报文、样本熵计算、状态信号4 个过程来进行车端防护,如图2所示。
图2 基于样本熵的入侵检测系统
整个过程在MCU(microcontroller unit)中进行,MCU 进行总线报文接收的同时,将报文记录在MCU内,将报文的ID 和数据按时间顺序生成可用于样本熵计算的序列,通过MCU 进行阈值和样本熵值的计算,通过预设的样本熵阈值,进行状态检测,向ECU发出总线状态信号。
样本熵与近似熵的物理意义相似,都是通过度量信号中产生新模式的概率来衡量时间序列复杂性,新模式产生的概率越大,序列的复杂性就越大。与近似熵相比,样本熵具有两个优势:样本熵的计算不依赖数据长度;样本熵具有更好的一致性,即参数m和r的变化(后文有具体含义介绍)对样本熵的影响程度相同。样本熵的值越低,序列自我相似性就越高;样本熵的值越大,样本序列就越复杂。
与信息熵相比,样本熵的区别在于:所需要的数据点少;不进行大量对数运算,运行成本低;能够评估随机过程的异常状态。
对于CAN报文中的ID场,具体步骤如下。
(1)MCU 接收报文并按顺序将ID 记录到{x(n)}=x(1),x(2),…,x(N)中。
(2)按序号组成一组维数为m的向量序列,Xm(1),…,Xm(N-m+1),其 中Xm(i)={x(i),x(i+1),…,x(i+m-1)},1 ≤i≤N-m+1。这些向量代表从第i点开始的m个连续的ID值。
(3)定义向量Xm(i) 与Xm(j) 之间的距离d[Xm(i),Xm(j)]为两者对应元素中最大差值的绝对值,即
(4)对于给定的Xm(i)与Xm(j)之间距离≤r的j(1 ≤j≤N-m,j≠i)的数目,并记作Bi。对于1 ≤i≤N-m,定义:
(5)定义Bm(r)为
(6)增加维数到m+1,计 算Xm+1(i) 与Xm+1(j)(1 ≤j≤N-m,j≠i)距离≤r的个数,记为Ai。定义为
这样,Bm(r)是两个ID 序列在相似容限r下匹配m个点的概率,而Am(r)是两个ID 序列匹配m+1 个点的概率。样本熵定义为
因为样本熵与m、r的取值直接相关,因此须首先确定这两个数值。根据Pincus[22]的研究结果,m=1 或2,r=0.1~0.25Std(Std是原始数据的标准差)计算得到的样本熵,具有较为合理的统计特性,考虑到实际结果的准确性,本文的实验选取了m=3 作为维度值。
2.2 入侵方案
本文分析了Song 等[23]共享的用于入侵检测的CAN 报文数据集,该数据集是通过OBD-II(the second on-board diagnostics)端口记录来自真实车辆的CAN 流量而构建的,包含DOS 攻击、模糊攻击和消息注入攻击。通过样本熵方法,对数据集中的CAN报文ID场进行样本熵值的计算。
通过分析数据集中上万条CAN 报文信息,确定了总线中每个ID 的CAN 报文的传输速率,进而在MCU中复现,ID统计结果如表1所示。
表1 ID统计结果
对于DOS 攻击模拟,实验设置为每1 ms 注入ID为1 的报文。以阈值、时间窗口为自变量,样本熵为因变量。
对于模糊攻击模拟,实验设置为每1 ms 注入特定ID的报文。以不同平均报文ID为自变量,样本熵值为因变量。
对于bus-off 攻击模拟,实验设置为在攻击段关闭特定的ECU,即停止某些ID的发送。以不同ID停止发送的个数为自变量,样本熵值为因变量。
3 实验结果
3.1 实验设置
为验证本文基于样本熵的车载CAN 网络安全防护方法,进行MCU 验证实验。在模拟DOS 攻击、模糊攻击、bus-off 攻击的情况下,观测了结果,实验设置如下。
如图3和图4所示,实验采用Freescale公司生产的MC9S12XS128 芯片作为IDS 执行的硬件设备,其带有一套为汽车车身和乘客舒适度应用而优化设计的改进型片上外围设备、存储器等模块,可应用于汽车座椅控制模块、空调控制模块、各种车身控制模块等的设计应用。发送MCU、接收MCU、攻击MCU 和CAN 卡并联在总线上。发送MCU 发出正常CAN 报文到总线上,接收MCU 接收总线报文,并计算一定时间窗口内的样本熵值,攻击MCU 手动向总线发出攻击类型的报文,最后由CAN 卡将所有信息采集到上位机软件CANTest中进行后处理。
图3 实验连接设置
图4 实物照片
在本实验中,所用单片机晶振为12 MHz,总线频率为32 MHz,波特率为250 Kb/s,其中测试报文选用表1所统计的数据。
3.2 实验结果
3.2.1 DOS攻击实验结果与分析
首先,测试了DOS攻击下样本熵值的变化情况。DOS攻击作为典型的网络攻击之一,样本熵值的变化情况能有效反映其对于网络攻击的灵敏程度。
如图5 所示,可以看到当总线受到DOS 攻击时,样本熵值均有大幅变化。需要特别注意的是,由于总线数据流不变的情况下,样本熵值计算时的时间窗口的位置不是可控的环境变量,因此在初始化过程后,样本熵值稳定的范围不是固定的,其受时间窗口位置的影响而变化,故在图中出现了相反的变化趋势。分析样本熵值变化的原因可知,由于ID 为1的报文加入,导致序列间的距离发生显著波动。当时间窗口内的报文ID 距离较小时,样本熵值较低,此时新的报文加入,会使时间窗口内所有报文的距离相对变大,导致样本熵值升高,反之亦然。综上所述,在样本熵方法的推荐阈值范围内,样本熵值的变化都较为稳定,考虑到样本熵值斜率的影响,本文最终选择r=0.2Std为IDS系统的设置阈值。
图5 不同阈值下的样本熵变化情况
考虑到样本熵计算的输入数据有阈值、时间窗口长度、维数等因素,继续加做了一组以时间窗口长度为自变量的样本熵值变化情况。图6 示出在不同的时间窗口下,样本熵均能稳定变化,由于过高的迭代时间会导致样本熵变化较慢,因此只做了两组实验。综上,考虑到迭代时间对检测过程的影响,最终的IDS系统采用20 ms的时间窗口进行计算。
图6 不同时间窗口下的样本熵变化情况
本节还对比分析了传统的信息熵方法[21]是否能够解决上述攻击问题。将传统的信息熵方法写入ECU 中,观察信息熵随攻击的变化,如图7 所示。图中实验设置为每隔10 s 进行5 s 攻击。可以看出,通过信息熵获取的数据并不会跟随攻击的进行产生规律性的变化。尤其是第20 s 攻击后,信息熵会突增至3 左右,但通过后续的局部放大图(图7(b))观察该熵值极不稳定,尽管熵值已降低到一定程度,但很难选择特征参数(如斜率或阈值)等准确地定位攻击行为。由此可见,本文所采用的样本熵方法比传统信息熵方法更适用于车载CAN 网络安全防护。
图7 信息熵方法有效性的对比结果
3.2.2 模糊攻击实验结果与分析
本节进一步探究样本熵方法对于模糊攻击、bus-off 攻击的识别效果。由图8 可知,样本熵方法对于检测模糊攻击同样有效果,且随ID 平均值的变化而变化。这是由于样本熵方法计算报文之间的相对距离,当插入攻击报文时,由于原时间窗口中的距离关系被打破,所以样本熵值产生了不同变化趋势,在攻击注入时刻及攻击结束时刻,样本熵值均有尖点出现,该变化趋势受到攻击报文的ID、攻击报文ID相对原有报文ID的距离的影响。
图8 模糊攻击测试结果
3.2.3 bus-off攻击实验结果与分析
理论上bus-off 作为屏蔽一类或多类ID 的攻击方式,出现攻击后报文ID 距离会相应改变,样本熵曲线同样发生改变,因此样本熵方法对bus-off 的检测也应是有效的。通过主动关闭总线上的某几个ID 报文来模拟该报文的bus-off 攻击行为,计算的样本熵如图9 所示。可以看出随着ID 报文的关闭,样本熵曲线出现明显的不可导点,因此利用斜率变化很容易鉴别bus-off攻击。
图9 bus-off攻击测试结果
4 结论
本文中所提出的SE-IDS 是一种灵活、低成本的基于样本熵的入侵检测系统,阈值检测的方式具有抗干扰能力,对样本熵值进行二次差分检测突变点,能够实时响应和检测多种形式的攻击。SE-IDS 对数据量要求低,反应灵敏,由于进行的对数级运算少,对计算资源的要求低。实验结果表明,SE-IDS方法响应速度快,准确率高,需求低,易于部署,能有效应对各种攻击。通过实物ECU 的测试实验可以发现,提出的SE-IDS 方法在检测CAN 网络的入侵检测方面要优于传统的信息熵方法,且提出的方法采样点数量降低了一个量级,有利于实车应用。此外,提出的SE-IDS 还可以检测常见的DOS 攻击、模糊攻击、bus-off攻击等入侵行为。