作者简介:于赫(1982-),女,博士研究生.研究方向:实时网络控制系统,CAN总线安全.E-mail:he08@mails.jlu.edu.cn
在汽车智能化进程加快以及车联网技术快速发展的背景下,分析了车载CAN总线网络安全现状,总结了车载CAN总线网络潜在的安全漏洞,归纳了对车载CAN总线网络的攻击手段,提出了使用信息熵的车载CAN总线网络异常检测方法,并对该方法的有效性进行了实验验证。理论分析及实验结果均表明:使用信息熵的车载CAN总线网络异常检测方法是有效可行的。
With the rapid developments of intelligent vehicle technology and vehicle networking technology, automotive information security issues are facing severe challenges. In this paper, the current situation of in-vehicle CAN cyber security is analyzed, and the potential security vulnerabilities and attacks for In-vehicle CAN bus are summarized. Then, an In-vehicle CAN bus anomaly detection method, which uses information entropy, is proposed. Experiments are carried out to verify the effectiveness of the proposed method. Theoretical analysis and experimental results show that the proposed method is feasible and effective.
在过去20年里, CAN(Controller area network)总线网络取代复杂沉重的电缆, 成为当今应用最广泛的车载通信网络。现在, 几乎所有汽车制造商都采用CAN总线实现汽车内部控制系统与各个执行机构的数据通信。在通信技术和网络不发达的时代, 车载信息系统是隔离且相对安全的。在此环境下诞生的CAN总线网络, 控制信息和敏感数据直接广播至网络。随着汽车智能化和网络化进程加快, 特别是云技术的广泛应用, 汽车信息安全问题面临前所未有的考验。
本文分析了车载网络安全现状, 对目前车载CAN总线潜在的安全漏洞, 以及可能的攻击手段进行了归纳, 提出了使用信息熵的车载CAN总线网络异常检测方法, 使用该方法可以检测车载CAN总线洪泛、重放等攻击, 并且检测效果良好。
现在的汽车都配有大量电子设备, 除了基本的电控、媒体系统, 还有智能化的高级辅助驾驶系统, 如自动启停、泊车、ACC系统, 更有可与手机等智能设备连接的信息娱乐系统等, 这些系统都会从车载CAN总线网络获取数据。从智能化发展方向上看, 汽车连接互联网将是不可避免的, 而这些电子设备、智能信息系统都可能成为黑客入侵汽车网络系统的途径。一旦黑客入侵这些系统并能够成功连接到车内CAN总线网络, 即意味着驾驶者可能已经丧失了汽车的控制权。著名白帽黑客Miller和Valasek博士在2013黑客大会上发表的白皮书中公开了攻击两款在售车型的全部细节, 甚至还包括攻击所用的源代码、编译器及连接件原理图[1]。在2014年黑帽大会(Black Hat)上, 他们公布了一份对市场上20余款车型网络安全性的报告, 对不同汽车厂商不同车型抵御恶意攻击的能力进行评估[2]。2015年黑帽大会, 他们将演示通过“ 0day” 漏洞, 攻击车载娱乐系统, 使用笔记本电脑远程控制一辆Jeep Cherokee汽车[3], 这些公开的报告把汽车信息安全问题从边缘推上了前台, 以期望引起汽车制造商(OEM)以及研究学者对汽车信息安全问题的关注。
汽车的信息安全性应该是未来OEM在应用新产品、新技术时首要考虑的问题。近年来OEM对汽车信息安全的关注度逐年提高, 欧盟及美国相关机构也积极资助开展汽车信息安全项目, 如欧盟的SEVECOM[4]、OVERSEE、EVITA项目等。EVITA项目旨在设计原型和验证用于车载网络安全组件的系统架构, 以保护敏感数据免受篡改[5]。EVITA标准列出了三个层次的安全规范, 其中的Light HSM确保ECU与传感器、执行器之间的安全交互, Medium HSM则保障ECU间的通信环境安全。虽然EVITA定义了车载网络安全系统框架, 但是其并不提供具体的安全保障技术。
Groza等[6, 7, 8]针对车载CAN总线安全问题进行了多方面的研究工作, 提出一系列轻型广播认证协议, 如EPSB、Libra-CAN, 并验证了这些协议在ECU节点数目比较少的场景下的可用性。Groza等[9]还通过实验证明在CAN总线网络中, 根据信号特征识别信息发送节点的可行性, 并推荐其可作为一种CAN总线网络的入侵检测方法。
Lin等[10]设计了具有较低通信开销的纯软件CAN总线安全机制(IDT& C), 其安全策略使用CAN消息ID表和消息计数器生成消息认证码(MAC)。Schweppe等[11, 12]建议车辆使用EVITA HSM的通信安全体系结构, 在考虑CAN网络数据载荷的基础上, 提出使用32位MAC的安全架构, 但没有给出MAC的实施细节。
Woo等[13]通过蓝牙或无线OBDⅡ 诊断设备, 远程向车载CAN总线网络发送攻击报文信息, 给出了一种使用AES-32算法的轻量级消息加密方法, 并给出该方法与EPSB、IDT& C在不同ECU数量下运行时间、传输响应时间和总线负载的对比, 其在总线ECU数量少于20个时的总线负载率为50%。
Lu[14]提出攻击者与系统之间的交互可以建模为一种马尔科夫决策过程(MDP), 并建议对ECU存储系统进行加密, 以防止攻击者对ECU代码的嗅探和篡改。
Larson等[15]提出了一种建立在安全规则基础上的CAN总线网络攻击检测方法, 该方法基于CANopen协议的对象字典, 使用协议级的安全规则检测非法ECU行为, 并提供了一组示例的安全规则。Muter等[16]给出一种结构化的车载网络异常检测方法, 引入一组异常检测传感器对消息帧ID、数据负载、消息频率等进行检查, 并整合传感器结果以防止误报。
CAN总线的使用依赖于消息帧ID的多主竞争式总线结构, 仅使用成对双绞线进行通信, 应用最高传输速率可达1 Mbit/s。其消息以广播形式发送至总线上, 任一节点可以在任意时刻向网络发送消息报文, 报文发送仲裁仅取决于至多29 bit的消息帧ID。
CAN总线中, ECU间使用数据帧传输信息, ECU向网络广播具有指定ID的数据报文, 网络上的ECU可根据报文ID有选择地接收或者响应该报文。图1为CAN2.0B标准的数据帧格式, CAN2.0B协议兼容标准帧及扩展帧格式的数据报文。
一个CAN数据帧可携带0~8个字节的数据, 报文可以使用11 bit标准帧ID或29 bit扩展帧ID, 1 bit标识符扩展位IDE指示其是否使用扩展格式, CAN2.0B共定义了4种不用类型的消息报文, 其他的是远程帧、错误帧和过载帧[17]。
如图2所示, CAN总线仅使用两根信号线CAN高(CAN_H)和CAN低(CAN_L), 通过两根信号线的差分电压表示“ 1” (隐性)和“ 0” (显性)。
当总线同时传送显性和隐性两个值时, 总线的结果为显性, 即显性位“ 0” 具有优先发送权。
CAN总线在汽车电缆中很容易找到, CAN总线在空闲时的电压稳定在2.5 V左右, 而有数据传输时会上下浮动1 V, 约为3.5 V(CAN_H)或1.5 V(CAN_L)。
一辆汽车通常有20~100个ECU, 每个ECU完成特定的功能。这些ECU分布于车辆不同的位置, 由几个主要网络连接起来。图3为上海大众09款途观的CAN总线系统结构图。其包含速度为500 kbit/s的动力系统CAN总线; 100 kbit/s的车身CAN总线; 100 kbit/s的娱乐CAN总线, 这3个网络均连接到诊断模块(J533), 诊断模块还包含标准OBDⅡ 接口, 并通过500 kbit/s的CAN总线与仪表板(IC)连接。
基于上述CAN总线协议定义、电气特性及车载网络结构, 结合当前CAN总线网络漏洞研究[18], 车载CAN总线安全漏洞主要可归纳为以下几个方面:
(1)缺乏足够的安全保护。目前CAN总线缺乏必要的安全保护, 以确保信息的保密性、完整性、可用性、真实性和不可抵赖性。CAN总线上的消息可以被总线上任意节点读取, 并且没有任何消息认证码(MAC)或数字签名保护。
(2)弱认证。对ECU进行固件修改时使用口令(Password)等弱认证技术。
(3)CAN协议滥用。拒绝服务攻击(DoS)可以通过总线仲裁机制进行, 如果攻击者使用最高优先级发送数据, 那么其他ECU将无法使用总线。还有形成恶意的错误帧消息, 也可以使ECU从总线上断开。
(4)消息泄露。通过常规诊断接口, 如OBDⅡ 、K线或L线即可掌握车辆运行时的信息。随意使用OBD软件也存在潜在的安全隐患, OBD模块通常会存储访问控制ECU的指令。
目前OBD应用的安全风险尤其值得关注。OBDⅡ 的标准诊断接口中, CAN总线引脚定义非常明确, 黑客很容易找到切入车载CAN总线网络的入口。通常汽车制造商会通过登陆密钥、隐瞒接口、请求验证等方式严格限制OBD口写入命令, 但这些手段仍属于弱认证, 并不能保证网络信息的安全性。国内OBD应用和车联网方案近年来的发展超出预期, OBD应用的安全性也受到质疑。这些OBD应用的功能从可以实现自动升窗、落锁的简单功能, 到可以实时监测车辆信息, 分析后通过手机APP以图形化的形式展示给驾驶员, 甚至直接将车辆信息实时同步到云端存储。而OBD应用这种类型的第三方改装设备的安全性不能得到保障, 很容易出现软硬件漏洞。
针对车载CAN总线网络, 攻击者可以丢弃、修改和读取发送至总线上的信息, 在源节点和目标节点间进行欺骗攻击, 此外还可以进行洪泛、重放攻击。
(1)丢弃(Drop):可用性攻击。例如一个控制了车载总线中某个网关的入侵者可以删除或不转发某些消息, 致使ECU一些功能失效。
(2)修改(Modify):通过入侵或截断总线中某个网关, 可以修改从该网关转发的消息。
(3)读取(Read):任何连接到总线的节点都可以读取总线消息, 可以是一个独立的监听装置, 也可能是一个被入侵的节点。一旦有密钥或私人信息在总线上发出, 就会被入侵者读取。
(4)欺骗(Spoof):任何被入侵的节点都可以发送错误消息、诊断信息, 使总线上ECU对事件进行响应, 消耗ECU的处理器资源。
(5)洪泛(Flood):入侵者控制任意ECU即可向其所在网络发送高速率洪泛消息报文。
(6)重放(Replay):入侵者控制任意ECU, 任何被记录的消息和消息发起的事件, 均可以在任意时间重放到网络中。
尽管研究人员在努力尝试保护汽车信息安全, 但是其中绝大多数方法并不能立刻应用到实际的车辆当中, 主要的障碍有以下几方面:
(1)认证机制推广阻力大。认证协议对CAN协议包格式进行了重新定义, 这意味着对几乎所有车辆底层系统进行修改, 而OEM对这种改变十分谨慎。并且大部分的研究显示[8, 13], 对CAN总线通信进行加密后会产生延时, 从而无法满足原有总线的实时需求。
(2)新协议能否被OEM采用仍是未知, 例如使用CAN-FD(CAN with flexible data rate)协议进行安全认证的方法[19], CAN-FD比传统CAN协议拥有更高的传输速率, 更小的控制位开销, 并且每个数据帧可以携带最多64个字节的数据。虽然CAN-FD优势明显, 但是在OEM看来离实际商用的距离还远。
(3)认证协议适用的网络节点数量不能达到实际车辆应用要求。即使使用16位处理芯片、轻量32位MAC的加密协议, 其在CAN总线上实施的开销仍然巨大, 而实际车载CAN总线网络不论是节点的数量还是网络复杂度都远远超过实验场景。
(4)新协议在旧车型上的应用问题。由于汽车是一种耐用商品, 通常一辆汽车的寿命可以达到几十年, 这些车辆在出厂时可能没有信息安全方面的防护装置, 而在使用过程中, 新的总线协议也许无法应用于这些车辆。因此, 需要为这些车辆提供一种尽量少依赖于车型的有效的信息安全保护。
车载总线异常检测系统以安全组件的形式实施于车载网关中, 实时检测潜在的安全威胁并发出预警, 提醒驾驶员进行信息安全检测。尽管高级加密认证和数字签名技术具有更高的安全性, 但是考虑到汽车较长的使用寿命, 车载网络异常检测系统可能更贴合目前的汽车信息安全需求。
针对异常检测, 需要对系统的异常有一个定义, 即定义系统的正常行为以确定偏离正常行为的攻击。在信息学领域, 熵用来衡量一个系统的不确定性。一个系统越是有序, 不确定性越小, 信息熵就越低; 反之, 一个系统越是混乱, 信息熵就越高[20]。
将一辆从未被入侵的汽车正常驾驶行为时的总线消息集看作一个系统, 由于CAN矩阵的定义, 这个系统显然是有序的, 系统的信息熵值应当是稳定的。向网络注入新的数据报文, 或使某个ECU从网络中断开, 又或是启动一个数据重放, 这些都会影响CAN总线网络的正常行为。这种变化反映在信息熵中就表现为:引入了新的不确定性, 系统的信息熵就会发生变化。
此外, 在车载CAN总线中, 熵的计算与消息出现的概率有关, 不涉及标识符的定义, 是一种可以应用于不同车型的通用方法。
定义1 设系统X, 其有限个可能的状态集为{x1, x2, …, xM}, 则系统X的信息熵为:
式中:P(xi)为系统X在状态xi的概率。
定义2 设系统X, 其有限个可能的状态集为{x1, x2, …, xM}, 该系统具有相同状态空间的两组不同概率分布P(x)和Q(x), 定义P(x)和Q(x)间的KL距离(Kullback-Leibler divergence)为:
式中:P(x)、Q(x)为系统X在状态xi下的概率分布。
针对CAN总线网络周期确定、消息数量稳定的特点, 在理想情况下, 即不考虑实际网络中数据发送、优先级仲裁、空白域等的影响, 定义CAN网络信息系统及熵的理论分析方法。
系统Ω =(E, C, T)表示一段时间为T的CAN总线报文集合, 其中E={ε 1, ε 2, …, ε n}为T时间内出现的n种不同CAN标识符的报文, C={c1, c2, …, cn}为T时间内出现的n种不同CAN标识符的报文的发送周期。
4.2.1 CAN总线信息熵
假设CAN网络在时间T内的负载适中, 所有消息都能在规定时间内发送完成, 那么, T时间内CAN总线消息的数量total可以由报文周期和时间长度得到, 其熵值计算可以变为如下形式:
定义第i种报文ε i出现的个数ni=T/ci, 则第i种报文在时间T内出现的概率P(ε i)可表示为:
显然有
定义第i种消息的不确定性为消息i的自信息I(ε i):
则在时间T内CAN总线的信息熵定义为消息的平均不确定性, 即为自信息的数学期望:
令x=ci
所以函数f(x)值增加, Hi增加, H(E)=
4.2.2 CAN总线报文相对距离
参考KL距离的定义, 定义第i种报文在两个相邻T时间段消息集合的相对距离di(Q‖ P):
在重放攻击场景下, 假设第i种报文在T时间长度内以周期ci进行发送, 那么T时间长度内第i种报文ε i出现的概率P(ε i)可由式(5)得到。当在下一个T时间长度内, 该报文被恶意节点重放, 则在这一个T时间长度内, 该报文的频率变高, 平均周期将变小, 把被攻击时间段内的第i种报文记作ε 'i, 平均周期定义为c'i, 显然有c'i< ci, 则在该时间段内ε 'i出现的概率可表示为:
在理想假设下, 由于没有被重放的报文消息出现的概率不会发生变化, 即Q(ε i)=P(ε i), 因为log1=0, 则没有被重放攻击的报文消息的相对熵会趋于0, 那么只需考查被重放报文消息的相对熵。
考虑上文的场景, 第i种报文的相对距离, 用di(ε 'i‖ ε i)表示:
由于周期c'> 0, 则c'i
由c'i
被重放的报文消息c'i< ci, ci-c'i> 0, 因此式(13)、式(12)大于零, 式(11)对数运算符内的表达式大于1, 可得di(ε 'i‖ ε i)> 0, 这样就得到被重放攻击的消息相对距离的变化趋势。同理可证, 当攻击消失时, 没有攻击的时间段与混有攻击时间段的相对距离将会得到负值的变化趋势, di(ε i‖ ε 'i)< 0。
本文实验的系统环境为Windows 7, 使用Vector公司CANoe(Version 8.1 SP)模拟车载CAN总线网络环境, 使用USB-CAN-Ⅱ 模拟一个被入侵的ECU节点对总线网络进行攻击, 如图4所示。模拟的车载网络包含power_train和comfort两个子网, 由一个网关连接, 两个子网的速率均为500 kbit/s。包含9个ECU, 共17种不同周期和数据长度的消息报文。
攻击场景1为在上文所述实验环境下, 攻击者在一个整段时间间隔T, 向power_train子网中发送周期为0.05 s、帧ID为0x00、数据域长度为8个字节的攻击报文, 表1为power_train子网信息熵的变化情况。实验结果显示:在攻击者向网络中发送一个新ID的报文使得power_train子网的信息熵增加。
在攻击场景1中, 攻击者的开始和结束均在时间间隔T的整数时刻, 但是在实际攻击场景中, 攻击可以在任意时刻开始, 它完全可能跨越两个时间周期, 因此在攻击场景2中, 攻击者跨越两个整段时间间隔T, 在4~16 s向power_train子网中发送周期为0.05 s、帧ID为0x00、数据域长度为8个字节的攻击报文, 表2为power_train子网信息熵的变化情况。实验结果显示:在两段时间间隔T内power_train子网的信息熵均增加, 但是后一个时间间隔的增幅不明显。
值得注意的是, 当CAN总线网络受到以极高频率发送的高优先级报文(如帧ID为0x00)攻击时, 这时CAN总线网络中的其他消息将难以获得总线发送权。总线上的报文消息的数量会大大下降, 甚至在短时间内仅存在一种报文消息, 那么这种CAN总线网络的不确定性大大降低(仅有一种消息的网络系统是确定的, 其熵为0), 其在信息熵上的表现为系统熵值大幅度下降。
攻击场景3为攻击者在某一时间间隔T重放某一种报文消息, 实验时被重放的消息并不会告知检测者。而检测者要检测是否有报文被重放, 需要计算网络内所有不同种报文消息在相邻时间间隔的相对距离。实验网络的17种报文的周期、数据域长度如表3所示。实验共进行了11个时间间隔T(T=15 s), 对每种报文计算10个相对距离di(ε i‖ ε 'i), 实验结果如图5所示。图中x、y、z坐标轴分别对应CAN总线报文ID(17个), 计算相对距离的数量(10组)及相对距离di(ε i‖ ε 'i)。图5(a)显示标识符ID为0xC9的消息的第5组相对距离di(ε i‖ ε 'i)呈现一个大范围的正值跃变, 根据正文4.2.2节的推断, 可认为在第6个时间间隔T内发生了重放攻击, 在0xC9消息接下来的第6组相对距离di(ε i‖ ε 'i)出现了负值跃变, 说明在第7个时间间隔T时重放攻击结束。图5(b)显示报文ID为0xC9的消息自身的相对距离发生很大波动, 其变化时刻与通过图5(a)推断的时刻相符, 因此可确定报文ID为0xC9的报文在第6个时间间隔T被重放, 这说明检测结果正确。
本文提出的基于信息熵及消息相对距离的方法可用于车载CAN总线网络的异常检测。经实验验证, 该方法可以用于检测车载CAN总线网络的洪泛、重放等攻击。未来的研究工作将进一步完善该方法的灵敏度, 及对其他攻击手段检测的适用性。
The authors have declared that no competing interests exist.
[1] |
|
[2] |
|
[3] |
|
[4] |
|
[5] |
|
[6] |
|
[7] |
|
[8] |
|
[9] |
|
[10] |
|
[11] |
|
[12] |
|
[13] |
|
[14] |
|
[15] |
|
[16] |
|
[17] |
|
[18] |
|
[19] |
|
[20] |
|