杨福宇
(重庆工业自动化仪表研究所,重庆 401123)
一种现场优先的车控网络防黑客攻击方法
杨福宇
(重庆工业自动化仪表研究所,重庆 401123)
摘要:车控网络受到黑客攻击时可能直接危及驾乘人员的安全,由于无线接入点与车控网络的连接已逐渐普及,信息安全已引起重视。本文首先分析了车控网中的两个薄弱环节:物理口的敞开便于接入未经授权的节点;授权的应用被黑客攻破而滥用。接着分析了用发送滤波器对抗假冒信号帧的有效性,补充了满足合法取代的要求。最后分析了使用可中断CAN总线实现对抗黑客攻击措施可能带来的好处。
关键词:CAN总线;信息安全;假冒错
引言
2014年以来,汽车黑客攻击技术的公开引起车厂、主管部门和消费者的重视,有的车厂已经进行了召回,以打补丁的方式解决问题。这种攻击替代驾驶员的意愿实现了对汽车的任意操控,给驾乘员人身安全带来很大风险;另一方面,无人驾驶又是汽车发展的方向,它要在原有操控基础上逐步实现,需要对原输出与新输出作有效分割并实现替代,这种替代也给了黑客导入错误的机会。因此,区分替代的合法性,以保证操控的安全性、不受黑客攻击而失效变得十分必要。
1车控的薄弱环节
现在汽车的操控都是通过CAN总线上的帧来传送的。黑客接入CAN总线的方式有两种:一种是通过原有的OBD接口(基于CAN总线),另一种是经过网关(将各种无线接入的节点跨接到CAN总线上)。最近各种黑客攻击的实施方法综述可借鉴参考文献[1]。漏洞可分为两种,一种是由于扩大的授权被滥用,例如特斯拉的例子[2],发现了通过以太网可以合法地“停止汽车”。这就是说只要以太网那边没防住,要阻止黑客的办法就只有切断以太网的接入了。在切诺基的例子中,黑客改写了芯片代码[3],等同于加入了失控的CAN总线节点。OBD是开放接口,将一个端口分接两个插座的线缆在市场上很容易购买,任何人都可以加上失控CAN总线节点。另一种是可直接或间接添加的后装功能,这些CAN节点是否含未经授权的功能或漏洞(例如开发者留的后门)是未知的。出现事故后虽然从刑事责任上可以追查,但危害已经发生,所以必须预先设计对抗此种风险的机制。
CAN总线黑客造成的风险程度不同,例如在OBD接口将CANH、CANL短路最简单,此时汽车将不会启动,故障马上被发现了,也就不会危及生命。但如果加在分接口的是一个CAN总线节点,这个节点可以定时发送帧,情况就不同了,虽然车厂对CAN总线帧的定义保密,但是它是可读取、可记录的,将它重发就会有不可预知的结果。这是一种replay攻击,实现起来很容易。
所以应该考虑一种在发生漏网之鱼(无线接入的滥用授权、未经注意的有漏洞的接入)时对抗CAN总线攻击的方法,作为最后的防线。
CAN总线的接收节点是用标识符ID来选出节点要收的帧,通常用接收滤波器来实现。在发送节点,该帧存放在发送对象里,也含有ID, 但没有作滤波器的设计。不过由于消息对象在存储器区域内是任意定义为发送/接收的,硬件上已备有ID比较逻辑。 如果添加发送对象的滤波器设计,那么并未发送的对象就可以通过对总线上ID的监视发现有节点在假冒自己。发现假冒错(masquerade error)后,就可以通过发报错帧(error frame)中止假冒帧的发送,从而对抗黑客攻击。这个思想在参考文献[4]中已提出,只是没这么明确地表达。当然,现在的CAN总线及CAN FD还不具备这一功能。如果保证同一时间总线上只有一个合法的发送该ID的发送节点,那么由于黑客攻击或者干扰引起的假冒错都可能被检测出来,从而免除错误引起的安全风险。
2对抗措施需要考虑的另一个要求
简单地添加发送滤波器还是不够的,因为从发展来看,在两种情况下我们需要实施替代控制,也就是说对滤波器是否起用需要加以控制,而该控制模块也要有防假冒的能力。
第一种情况是开发或诊断时需要固定某输入参数,以观察控制对象的响应是否合乎逻辑。例如使用OBD接口时开关ERG阀,监视MAP传感器,观察ERG阀是否正常。未来的诊断、标定可以深入开发这一能力,通过设置参数使发动机的效率得到细调,提升车的节油与排放水平。车厂由于对车的质量负有法定的责任,所以会担心第三方软件的副作用而拒绝使用,但对他们自己的软件,微调方法仍是必要的。类似的调校也适用于混合动力车两种动力的切换、能量回收与刹车安全之间的配合等需要大量实验确定最佳参数标定的场合。
第二种情况是在应用升级时,可选择性地控制输出。以往的方法是把所有可选输出做在一个算法内,由算法挑选输出。例如控制刹车的最后动作由不同单元计算,结果在一个控制器中综合。这当然是一种合理的办法,但是如果考虑选择性输出的办法,可能会更好。例如正常行驶时不使用自动泊车功能,选用人工操控或其他辅助操控,在泊车时切换到用泊车ECU控制转向及换档。这种系统升级的方法显然优于把它混合在一个系统里:由于新老两个系统有清楚的切分,添加新系统的安全认证就简单得多;这也使车厂充分利用第三方的供货变得简单,拓展了生产协作的渠道;使整个生态链的技术进步和成本下降变得容易,因此试验与比较不同供货商的自动泊车产品的性价比要容易得多了。同样地,也可以用于其他的功能升级方案,例如自动巡航、车道偏离、辅助驾驶等。此时只要划分出新老系统要取代的输出,一个自己开发、综合能力不足的厂商也可以充分利用别人先进的东西。由于取代的输出应该有相同的ID,因此不影响系统的其他部分。这一需求可称为取代控制(Substitute control),现在的CAN总线及CAN FD还不具备易于实现这一功能的机制。
下面是实现取代控制又能对抗攻击的方案:取代时首先要得到授权,在车载CAN总线网上设一个主节点负责授权密码的验证。申请取代的源节点(新节点、OBD接口或网关)首先向这个主节点发送一个帧(帧的ID是公开的),其内容含有授权密钥及取代输出的ID。这个密钥的格式、类型由车厂与被授权方共同确定,可以是固定的,也可以是临时的、滚动的,总之不易被黑客破译。主节点收到此帧后要进行检查,密钥如合格,则发修改用帧(其ID为唯一,主节点存在发送滤波器),内容为被修改的输出的ID。每个节点都收下此帧,按内容检查本节点的发送滤波器并作相应处理。如果主节点认为密钥错误,就不发送修改用帧,而且采用一种拒绝试探的方法,例如密钥有错误位要等1 min后清除,才能接收下一个申请的检查。如果平均264次试探可以成功,时间的消耗使黑客几乎没有成功可能。
黑客也不能在总线上直接发送修改用帧,因为主节点的发送滤波器匹配会使主节点发报错帧,进而使黑客的帧失败。
有人曾建议用CAN总线的CRC检验的初值(种子seed)作为数字签名(密钥),认为攻击者不知道种子就无法假冒。这种方法是不行的,因为CRC校验和的算法服从叠加规则,在有非零种子时,校验和为零种子时校验和与种子的校验和的叠加。因为只要他观察到成功发送的关键性帧的校验和就可以反推出种子的校验和,进而反推出种子的值。
CAN 总线消息对象的数据结构需要实现的功能有:本对象是否已被取代;发现假冒时是否要报错;能否修改这种报错能力。为实现上述功能,除了原有的Update、ready 等以外,要新增Active、masquerade check setting、masquerade check setting enable位。
Active=1 表示该消息在条件满足时可以发送,Active=0 表示即使消息条件满足也不可移入发送缓冲器发送,因为可能该输出已被取代。Active位在应用需要改变时由程序更改,即主节点在发出更改帧时,其含的ID发送到各节点,除申请节点外,原来Active=1的对象改为Active=0。
发送滤波器在Active=1及masquerade check setting=1时见到总线上有假冒错便可以发送报错帧,在Active=1及masquerade check setting=0时表示见到匹配的ID不发送报错帧。
masquerade check setting enable表示masquerade check setting是否可以修改,masquerade check setting enable=1表示整车厂认为此参数太重要,以至不容许被取代领导者,所以任何取代都是不合法的。例如上述主节点发送修改帧的对象是不容许被取代的。masquerade check setting enable及masquerade check setting位只有整个ECU程序刷新时才能更改,所以车厂有最终控制权。
只有整车厂设置masquerade check setting enable=0时,应用程序才允许获取设置masquerade check setting的值,这是提供的一种未来的选项。
新增的数据结构会影响消息对象内部发送的顺序,只有Active=1 的就绪的发送消息才能参加发送队列。
3残存弱点的处理原则
在上述CAN总线层上实现的防假冒错的措施之后,尚有失控的可能性。例如通过无线接入的合法替代的滥用,即以太网那里出了问题,置驾驶员的意愿不顾;不断的假冒帧-报错会造成总线带宽消耗,形成正常通信拒绝服务(deny of service),这也是需要解决的。
IT领域中网络行为异常被作为存在可疑黑客攻击的警示,在汽车中更重要的是对黑客攻击后果的防止。由于汽车有更多传感器对环境作出判断,只要把设计的控制优先级放在现场,那么黑客攻击的后果就可以大大缓和。例如视频监控发现车前有障碍物(前车、路人、路口红灯),黑客通过合法替代滥用形成的车加速命令就不会执行;对车道的判断不允许执行黑客突然停车命令而停在行车道中;车的环境温度传感器超限可以阻止黑客滥用座垫加热命令。而这些发生冲突的事件可以作为阻止黑客攻击的事件而加以进一步处理。
4在IntCAN总线中实现对抗攻击的好处
汽车的安全状态定义是非常重要的,过去的定义重点是设计一个降额运行的状态,一旦有故障就降额,保证汽车可以跛足进入一个安全的环境。故障-沉默(fail-silent)有时是背道而驰的,例如CAN总线通信有故障时,双离合器变速器均不啮合就会使车失去动力,甚至连实现跛足回家都不可能。另一方面,车是一个运动的物体,其过渡过程也需要安全,所以尽快进入也是要争取实现的指标。
在IntCAN总线的可中断通信协议中考虑含有系统重启的强大的二级中断Int2d1[5]。怀疑有黑客侵入车内系统时,驾驶员不仅要禁止车与外网的连接,而且要恢复原来的曾是成功的设置,就像重启 Windows一样,此时驾驶员不必知晓动作的细节,只要按一个按钮就行。与按钮相连的主节点发送2d1中断帧,此中断帧可以超越所有常规帧,不管黑客植入什么,系统是否正在按病毒做什么,仍能停止其干扰。节点在收到2d1中断帧及其后续帧后,恢复到后备设置,或其他预定的工作模式。这个后备设置将禁止一些高级控制方式(包括来自网络的高级控制方式),仅当驾驶员允许时才可再进入,所以仪表板要有此手动切换的方法。
当黑客攻击被否决时,总线上错误会很多,IntCAN系统进入Failure状态,可采用提醒应用进入对应的安全状态的方式加以处理。拒绝服务错误发生时并非带宽已经耗尽,所以此时可以采用降额运行的方案,例如限制车速的“跛足回家”的方案。还可以有暂时降低排放、舒适性的让出带宽的降额方案,这些降额方案要由车厂预先设计好。
结语
在IntCAN中,上述替代控制合法性检验后,主节点发送替代输出修改用帧的方式也可以经由中断帧引导,从而加快反应速度,此时修改用帧传送时间不受优先级影响,对ID的分配也就没有要求了。外部节点也无法假冒主节点的中断帧,因为对二级中断同样设置了发送滤波器机制:主节点自己未发二级中断而在总线上见到二级中断时,它会发送IntF来破坏假冒的二级中断。
如需与作者联系,可以发邮件到:yfy812@163.com。
参考文献
[1] 黑客攻击汽车总结篇之漏洞在哪儿(上)[EB/OL].[2015-10].http://auto.163.com/15/0826/10/B1UIR8F0000853 V5.html.
[2] 黑客独家披露:我们是如何破解特斯拉的?[EB/OL].[2015-10].http://auto.huanqiu.com/globalnews/2015-08/7255628.html.
[3] 看黑客如何远程入侵并控制汽车[EB/OL].[2015-10].http://tech.163.com/15/0722/07/AV44NH8I000915BF.html.
[4] Tobias Hoppe.Security Threats to Automotive CAN Networks-Practical Examples and Selected S hort-Term Countermeasures[C]//M.D. Harrison and M.-A. Sujan(Eds.):SAFECOMP 2008,LNCS5219,2008.
[5] 杨福宇.IntCAN中为什么需要通信中断?[J].单片机与嵌入式系统应用,2015(8):19-22.
Anti-hacker Attack Method for Site Priority Vehicle Control Network
Yang Fuyu
(Chongqing Industrial Automation Instrument Research,Chongqing 401123,China)
Abstract:The hacker attack to the automotive control networks will endanger the safety of driver and passengers.Due to wide spread wireless application connected to the control networks,security has become current issue.Firstly,two vulnerable points in the automotive control networks are analyzed:the free reach-ability for easily adding unauthorized nodes,and abuse of authorized action by the hacker.Then the validity of the transmission filter against the frame of the fake signal is analyzed.Finally,the interruptible CAN solution for the anti-hacker attack mechanism is discussed.
Key words:CAN bus;information security;masquerade error
收稿日期:(责任编辑:薛士然2015-10-16)
中图分类号:TP302
文献标识码:A