基于熵的车载CAN总线异常检测研究*
2021-11-04张海春姜荣帅鲁赵骏刘政林
张海春,姜荣帅,王 颉,鲁赵骏,刘政林
(1.华中科技大学光学与电子信息学院,武汉430074;2.深圳开源互联网安全技术有限公司,深圳518000;3.华中科技大学网络空间安全学院,武汉430074)
前言
现代汽车不再是简单的机械设备,而是集成了上百个电子控制单元(electronic control unit,ECU)的 复 杂 系 统[1]。各ECU通 过 控 制 器 局 域 网(controller area network,CAN)总线连接,汽车在不断智能化、网联化的同时也暴露了蓝牙、蜂窝网络等各类攻击入口,导致入侵车载CAN总线的可能性大大增加[2]。
车载CAN总线在设计时充分考虑了汽车通信严苛的性能需求,成为事实上的汽车总线标准[3]。但是安全机制的缺乏带来了重大安全隐患,恶意攻击者一旦成功访问车载CAN总线便可以注入任意数据帧。数据加密、身份认证等安全机制对计算资源要求较高、计算耗时较长,无法满足通信实时性,因此不能应用于车载CAN总线。相比于传统的安全机制,异常检测不会干扰车载CAN总线正常通信,具有低成本、灵活部署、高兼容性的优势,研究人员对此开展了大量的研究工作。
文献[4]中将CAN总线上连续两个CAN ID相同的数据帧发送时间间隔超过阈值视为异常,但是没有考虑非周期性数据帧的影响。文献[5]中提出基于电压特征变化的异常检测方案,利用ECU位置的不同导致的电阻及电信号特征的不同检测异常节点,但是该方法需要示波器等大型设备持续采集及处理总线电信号。文献[6]中提出一种基于信息熵的CAN ID异常检测机制,但是仅能检测出CAN总线存在异常,无法检测出异常的细节信息。
本文中在分析了基于信息熵的车载CAN总线异常检测机制的基础上提出了基于相对熵的车载CAN总线异常检测机制,具体贡献如下:(1)该机制将检测窗口由时间窗口改为数据窗口,改善了时间窗口内无法有效采集到足够非周期数据帧的情况;(2)该方案采用相对熵作为检测依据,可以检测出导致总线异常的具体攻击类型、异常数据帧的CAN ID,具备较好的检测效果。
1 车载CAN总线威胁模型
CAN总线是多主机广播通信协议,采用双绞线架构,减少了线路布局,增强了抗噪声和干扰能力。网络的分布式体系结构易于维护,降低了系统成本。速度可达1 Mbit/s,可满足汽车总线通信对于大带宽、抗干扰能力强、实时性强的需求,在汽车总线网络中得到了广泛应用。
如图1所示,依据仲裁字段CAN ID的长度,CAN数据帧分为标准帧和扩展帧[7]。标准数据帧主要由7个字段组成:数据帧起始字段(SOF),通知每个接收器数据传输开始;仲裁字段防止数据帧在传输过程中产生冲突;数据域传输最多8个字节的数据;循环冗余码用于标识数据帧是否正常发送到接收器,若接收器正常接收到数据帧则会激活ACK位;数据帧结束位表示数据帧的传输过程已结束;控制域解决总线数据竞争;数据长度字段(DLC)定义了数据域的长度。
图1 CAN总线数据帧结构
CAN总线缺乏基本的安全机制[8],其脆弱性表现在以下6个方面。
(1)缺乏身份认证。CAN总线没有源标识符字段,目的标识符字段,任何节点都可以伪造成恶意节点发送报文。接收方无法识别发送方是否是真实的节点。
(2)缺乏加密机制。基于数据传输的实时性考虑,CAN总线协议未采用加密机制,攻击者可以监听总线数据,造成隐私泄露。
(3)缺乏完整性校验。CAN总线缺乏数据完整性校验机制,数据帧接收者并未检查数据的完整性,攻击者可恶意篡改传输数据。
(4)广播传输机制。CAN数据帧以广播形式发送到CAN总线,CAN总线上的所有ECU都可以接收到数据帧,这意味着恶意节点可以监听到所有的总线传输数据[9]。
(5)基于ID的仲裁机制。CAN ID决定了CAN数据帧的传输优先级。数据帧CAN ID越小,其在总线上传输的优先级越高。恶意攻击者可以构造较高优先级的数据帧不断发送到总线上造成DoS服务攻击。
(6)带宽有限。高速CAN总线的数据传输速率仅为500 Kbit/s,数据载荷长度最高只有64 bit[8],限制了CAN总线协议提供较强的访问控制功能,为攻击者攻击ECU降低了难度。
基于车载CAN总线的脆弱性,车载CAN总线威胁模型如图2所示。攻击者可以发动4种基本攻击组合为实际的攻击案例,包括监听攻击、重放攻击、伪造攻击、注入攻击。
(1)监听攻击。车载CAN总线利用广播机制传输数据,在未加密数据的情况下,攻击者ECU⁃A可以监听并分析CAN总线数据,如图2(a)所示。通过重放或者变异监听获取的数据帧可以发动重放攻击、模糊测试[10]等攻击,是实际攻击的基础。
(2)重放攻击。在没有身份认证与数据完整性校验的情况下,攻击者可以发动重放攻击[11-12]。如图2(b)所示,恶意节点ECU⁃A可以发送来自ECU⁃C的数据到CAN总线,继而控制ECU⁃B。
图2 车载CAN总线威胁模型
(3)伪造攻击。如图2(c)所示,基于ECU⁃B数据帧内容与总线频率,恶意攻击者可以挂起ECU⁃B,继而利用ECU⁃B的CAN ID伪造数据帧控制ECU⁃C。
(4)注入攻击。如图2(d)所示,攻击者利用仲裁机制构造基于较高优先级的CAN总线数据帧占据CAN总线[13],引发总线拒绝服务,也可以基于特定的CAN ID构造数据帧控制目标ECU。
2 车载CAN总线异常检测机制
2.1 信息熵与相对熵
在19世纪50年代,熵的定义由Rudolf Clausius提出,用来描述系统的混乱程度。1948年,香农革命性地将熵的概念引入信息学,用信息熵的概念量化了信息的不确定度。目前,信息熵理论是常见的入侵检测基础理论之一。
假设系统X,其有限的可能状态集为{X1,X2,…,XN},则系统X的信息熵为
式中p(Xi)是状态Xi在系统X中的概率。为评估CAN总线的信息熵和相对熵,可用β=(S,T)表示当前检测窗口的CAN总线系统,S={ID1,ID2,…,IDN}表示各个CAN ID数据帧集合,T表示当前检测窗口记录的所有CAN总线数据帧集合,则当前检测窗口CAN总线系统β的信息熵为
设NIDi是当前检测窗口中CAN ID为IDi的数据帧数量,N是当前检测窗口所有数据数据帧的总数量,则
CAN ID为IDi的数据帧信息熵为
在信息论中,相对熵等价于两个概率分布的信息熵的差值。设P(X)和Q(X)是随机变量X上的两个概率分布,则在离散随机变量的情形下,相对熵的定义为
假设q(IDi)是CAN ID为IDi的报文在正常情况下的分布,即不受攻击时的正常分布,p(IDi)是CAN ID为IDi的报文在受攻击情况下的分布,则CAN ID为IDi的报文的异常情况对正常情况的相对熵为
当总线没有遭受攻击时,KL(IDi)的值接近于0,当总线中产生攻击时,KL(IDi)会产生明显的变化。遭受DoS攻击的数据报文相对熵为
显 然p(IDi)>q(IDi),故DoS攻 击 数 据 帧KL(IDi)>0。未遭受DoS攻击的数据帧相对熵为
显然p(IDi) 重放攻击下,攻击者一般重放特定CAN ID的数据帧到总线,占用总线资源较少,理想情况下,未被重放的数据帧出现频率在重放攻击下不变。假设攻击者以n倍的频率重放特定CAN ID的数据帧,则 显然,KL(IDi)>0,其它没有被重放的数据帧,出现的概率不变,KL(IDi)=0。因此,重放攻击下CAN网络的相对熵会产生明显的波动。 基于信息熵的异常检测机制检测窗口为时间窗口,检测机制分为两个阶段:分析阶段和检测阶段。 分析阶段:无攻击情况下,采集车载CAN总线中一定时间窗口的CAN总线数据帧,确定最佳时间窗口长度、异常信息熵阈值、CAN ID白名单,构成CAN总线异常检测特征库。 检测阶段:依据特征库,在设定的时间窗口内,首先判断数据帧CAN ID是否在白名单中,超出白名单中的数据帧即为异常数据帧。其次,判断时间窗口内的数据帧信息熵是否超出阈值,超出阈值即为异常。 时间窗口的大小不仅影响检测精度,还影响异常检测的最大响应时间。如果时间窗口过大,异常检测的响应时间过长。如果时间窗口过小,信息熵波动大,会出现误判的现象。 图3 展示了时间窗口分别为1、3、5、7、10和20 s的信息熵波动情况。无论时间窗口多大,信息熵都会在一定范围内波动。当时间窗口为1 s时,不足以覆盖一个数据帧传输周期,信息熵波动幅度最大;当时间窗口为10、20 s时,异常检测响应时间较长。当时间窗口选定为3 s时,信息熵变化范围较大,信息熵变化范围分别为(3.685 491,3.693 019)。当滑动时间窗口选定为5、7 s时,信息熵变化较小,信息熵变化范围 分 别 为(3.687 199,3.688 828)、(3.687 091,3.688 774)。为平衡异常检测的准确率和检测的实时性,本文选定T=5 s为最佳时间窗口。 图3 不同时间窗口CAN总线信息熵 考虑到非周期性数据帧对时间窗口的低敏感度,在一定时间窗口内不一定能采集到足够的非周期数据帧,基于相对熵的异常检测机制未采用时间窗口,而是将采集一定数量数据帧的数据窗口作为检测窗口。基于相对熵的异常检测机制分为两个阶段:分析阶段与检测阶段。 分析阶段:确定最佳数据窗口大小、CAN ID白名单和相对熵阈值作为异常检测特征数据库。 检测阶段:依据特征库,检测数据帧CAN ID是否异常,检测数据窗口内的相对熵是否异常。 数据窗口的大小非常重要,数据窗口过大,CAN ID覆盖率较高,但是异常检测响应时间过长。数据窗口过小,数据帧数量较少,CAN ID覆盖率较低。 图4 为数据窗口内采集100、200、300个数据帧条件下的相对熵变化情况。数据窗口增加会导致异常检测响应时间变长,以周期为10 ms的数据帧为例,时间窗口设置为300,检测响应时间不低于3 s。随着数据窗口增加,相对熵绝对值波动愈加平缓。数据窗口为200与300的情况下,相对熵绝对值的波动明显小于数据窗口为100的情况。故随着数据窗口变大,异常检测率会增加。数据窗口低于100,则相对熵绝对值过于随机,波动较大,不利于提高检测率。为平衡响应时间与检测率,本文选取数据窗口大小为T=200。 图4 不同数据窗口CAN总线相对熵 本实验用于安全评估所采用的CAN总线收发设备为创芯科技CANalyst⁃II分析仪,实验车辆为某型号福特车辆。 攻击者从汽车CAN总线采集3 000条CAN数据帧作为重放攻击输入数据。本实验中,攻击者随机选取第22、27、33个时间窗口对车辆发动重放攻击。图5为5 s时间窗口重放攻击下的CAN总线信息熵变化。在22、27、33个时间窗口处,系统信息熵明显偏离(3.687 199,3.688 828)的阈值范围。依据特征数据库,位于上述3个时间窗口处重放攻击造成的数据异常可被检测出来,系统在遭遇重放攻击时会给出警报。 图5 重放攻击下的CAN总线信息熵(时间窗口=5 s) 根据CAN网络基于优先级传输的特性,以0.22 ms的发送速率,向CAN网络中注入CAN ID为0x000的数据包会导致CAN拒绝服务。本实验分别在22~26、32~33、38~40的时间窗口内对车载CAN网络发动DoS攻击。图6为5 s时间窗口DoS攻击下的CAN总线信息熵变化。实验表明,在22~26、32~33、38~40时间窗口内,CAN总线信息熵出现明显偏离正常(3.687 199,3.688 828)范围的现象,异常检测机制可以有效检测出DoS攻击造成的数据异常。但是DoS攻击与重放攻击引起的信息熵变化并无明显区别,基于信息熵的异常检测机制虽然可以检测到总线异常,但是却无法区分引起异常的攻击类型。 图6 DoS攻击下的CAN总线信息熵变化(时间窗口=5 s) 攻击者从汽车CAN总线采集200条数据帧统计CAN总线相对熵。实验中,攻击者向车载CAN总线重放CAN ID为0x211、0x275、0x433、0x4b0的数据帧模拟数据重放攻击。图7为模拟重放攻击下CAN总线的相对熵情况。与图4正常状态下CAN总线的相对熵相比,CAN ID为0x211、0x275、0x433、0x4b0的数据帧相对熵变化较为明显,检测机制可以检测出重放攻击导致的CAN总线相对熵异常。 图7 重放攻击下CAN总线相对熵异常(滑动窗口200) 攻击者以较高频率向CAN总线注入CAN ID为0x190的数据帧,基于CAN总线传输的广播机制与仲裁机制,CAN ID为0x190的数据帧会占用总线资源,产生拒绝服务效果。图8为DoS攻击下的CAN总线相对熵,结果显示CAN ID为0x190的数据帧相对熵产生了大幅度变化,该机制可以检测出DoS攻击造成的CAN总线相对熵异常。与重放攻击相比,DoS攻击造成的相对熵变化更为显著,基于相对熵的异常检测机制不仅可以检测出两种攻击造成的CAN总线异常,还可以检测出具体的攻击类型与异常数据帧CAN ID。 图8 DoS攻击下的CAN总线相对熵(滑动窗口200) 本文中分析了车载CAN总线的安全漏洞并描述了针对车载CAN总线的威胁模型。为检测外部攻击造成的车载CAN总线数据帧流量异常,首先分析了基于信息熵的车载CAN总线异常检测机制,该机制能够检测出外部攻击造成的总线异常现象和异常数据帧CAN ID,但是无法区分导致异常的具体攻击类型,例如DoS攻击、重放攻击等。在此基础上,提出了基于相对熵的车载CAN总线异常检测机制,该机制将基于信息熵的异常检测机制中的时间窗口改为数据窗口,改善了前者无法检测非周期数据帧异常的缺陷。在某型号福特车辆上的实验结果表明,基于相对熵的车载CAN总线异常检测机制不仅可以检测出外部攻击造成的车载CAN总线流量异常及异常数据帧CAN ID,还可以进一步区分DoS攻击、重放攻击等外部攻击的具体类型。未来,本课题将结合数据挖掘技术进一步完善数据窗口的参数选取机制,基于不同车辆的CAN总线流量特征自动设置数据窗口大小以适应不同车辆,增大本文异常检测机制的适用范围。2.2 基于信息熵的异常检测机制
2.3 基于相对熵的异常检测机制
3 实验及分析
3.1 基于信息熵的异常检测
3.2 基于相对熵的异常检测
4 结论