欢迎光临第四届中国汽车网络信息安全峰会2019!

汽车车内CAN总线 网络安全分析及防御措施

发布日期:2018-01-20

能化和信息化的发展,汽车电气系统变得日益复杂,当前汽车普遍拥有数十个电子控制单元(ECU),一辆**轿车运行代码接近1亿行,而这些车载信息是通过车内总线实现互联。近年来汽车信息安全事件的频发大多是基于车内总线的物理访问或者远程攻击,攻击者可以通过车载ECU自身漏洞,实现对关键节点的输入控制,如汽车节气门、转向器、制动器等。在汽车总线中,控制器局域网(CAN)因其高性能和可靠性被大量应用。为保护汽车总线免受网络攻击,基于CAN网络分析的相关技术解决方案逐渐引起行业的关注和重视,同时在考虑成本和应用等方面,企业已将开始着手现有汽车零部件产品的安全升级。

一 汽车CAN网络安全综述

CAN网络是由以研发和生产汽车电子产品著称的德国BOSCH公司开发的,并最终成为国际标准(ISO 11898),是国际上应用最广泛的现场总线之一。CAN总线协议目前已经成为汽车计算机控制系统和嵌入式工业控制局域网的标准总线,同时也是车载ECU之间通信的主要总线。当前市场上的汽车至少拥有一个CAN网络,作为嵌入式系统之间互联的主干网进行车内信息的交互和共享。

CAN总线的短帧数据结构、非破坏性总线仲裁技术、灵活的通讯方式等特点能够满足汽车实时性和可靠性的要求,但同时也带来了系列安全隐患,如广播消息易被监听,基于优先级的仲裁机制易遭受攻击,无源地址域和无认证域无法区分消息来源等问题。特别是在汽车网联化大力发展的背景下,车内网络攻击更是成为汽车信息安全问题发生的源头,CAN总线网络安全分析逐渐成为行业安全专家聚焦点。如2013年9月DEF CON黑客大会上,黑客演示了从OBD-II控制福特翼虎、丰田普锐斯两款车型实现方向盘转向、刹车制动、油门加速、仪表盘显示等动作。汽车车内CAN网络安全问题当前主要通过安全漏洞的分析和各种攻击手段进行挖掘,因为汽车车内网络安全的脆弱性和威胁模型的分析尤为关键。

二 汽车CAN总线协议脆弱性分析

CAN总线协议规范描述了四种不同的帧类型:数据帧、远程帧、错误帧和过载帧。根据每种报文帧的类型和特点,从信息安全角度考虑,本文研究主要针对数据帧和错误帧进行CAN总线协议的脆弱性分析与讨论。

(一)数据帧


                      图1  CAN总线数据帧结构

数据帧由7种位域组成:帧起始、仲裁段、控制段、数据段、循环冗余校验段、应答段和帧结束,如图1所示。根据数据帧各域的特点和发送方式,从现有攻击手段对数据帧进行脆弱性分析。

1.  机密性

CAN总线中报文是通过广播传送方式,所有的节点都可以接受总线中发送的消息,为报文信息监听提供了可能,汽车总线数据容易获取分析。

2.  完整性

CAN总线协议中的ID只是代表报文的优先级,协议中并没有原始地址信息,接收ECU对于收到的数据无法确认是否为原始数据,即接收报文的真实性在现有的机制下无法确认,这就容易导致攻击者通过注入虚假信息对CAN总线报文进行伪造、篡改等。

3.  可用性

CAN总线协议中基于优先级的仲裁机制,为黑客对总线收发报文进行拒绝服务攻击提供可能。攻击者可以通过嗅探或监听等手段对汽车总线进行重放或洪泛攻击,导致ECU无法正常发送和接收报文。

4.  可控性

汽车总线数据帧发送和接收过程中通过“挑战”与“应答”机制进行诊断和保护ECU,但是由于计算资源限制,当前ECU访问的密钥是固定不变的,这就为黑客对总线发送报文进行破解和改写提供可能。

(二)错误帧

CAN协议规范中有5种不同的错误帧类型:位错误、填充错误、CRC校验错误、格式错误,ACK错误。错误帧由两种不同的域组成:自控制器的错误标志和错误分界符,其结构如图2所示。


图2  CAN总线错误帧结构


                  图3  CAN总线错误状态图

1.  CAN总线错误处理脆弱性分析

CAN总线协议规范中,无论什么时间,当一个CAN节点发生位错误时,必须监视总线信号,每当广播一个帧时,应该通知它发送的总线逻辑值是不同于位值的。同时遵守这样的条件—中断正在传送的帧,并且立即发送一个错误帧。规范导致的结果是终止了填充规则和引起其他的节点拒绝接收该帧,有效的否认了该帧的接收。

因此,CAN网络中的节点通过读和写的能力相互作用。依据CAN总线协议规范,一个显性位在任何时候都能够覆盖一个隐性位,这就会导致一个非法的显性位会终止总线中节点正在发送的帧。

2.  CAN总线错误限制脆弱性分析

依据总线协议和错误状态图,如图3所示,除去罕见的异常,当一个传输节点发送错误标志,它的TEC应该按照步进为8的增长。这意味着当发送16个无效的帧后,一个主动错误节点(TEC=0)将进入被动错误状态(TEC=128),再来16个无效帧后,总线状态将变为关闭状态(TEC=256),停止所有可能的总线通信直到反复的总线空闲状态或者察觉到一个复位命令。但是迫使一个空闲的条件几乎是不可能的,因为这会意味着禁用或断开连接到总线上的所有设备。同样的强制复位命令,该命令可以通过节点控制器,有问题的是,因为总线节点可以是一个合法的错误节点。

考虑到CAN总线错误处理的弱点,单一的节点连续发送32bit的重写位,就足够阻塞该节点既不能发送,同时也不能接收总线中其他节点报文。

根据上面总线错误处理的缺陷和总线错误限制的脆弱性分析,我们可以通过拒绝服务(DoS)方式实现对CAN总线的攻击。该攻击可以不需要发送一个完整的数据帧,而仅仅需要发送1bit的数据,这就可以引起总线的阻塞或者终止合法数据帧的发送,甚至可以根据车辆驾驶条件发起攻击,例如汽车行驶到某一个速度,或者车辆在某一位置的GPS信息等。

三 攻击模型分析

这部分列举了三个可能面临的具体攻击方式,前提是攻击者已经在车内网络中嵌入了攻击。

第一种攻击是对车内的驾驶者和乘客直接产生物理伤害,先前的研究已经证明了在现实世界中是可以实现的。其他的两种攻击是面对以**为动机的攻击者。

(一)主动安全系统攻击

CAN总线主要应用之一是支持主动安全系统的通信,道路车辆行驶的时候,主动安全系统将是一把双刃剑,在它们发挥着不可替代的功能时候,但是考虑到主动安全系统的可操作和有能力调整正确的输入,也会引起驾驶者对主动安全系统的完全依赖。因此一个突然的故障会引起不可预知的危险后果。为了引发一个危险的条件,恶意的攻击者将会在CAN总线中注入错误帧,让主动安全系统失灵。例如,在牵引力控制系统里安装一个攻击,会造成车辆失去控制等危险。如果攻击者的目标是自适应巡航系统,将会导致汽车不会安驾驶者预期的那样停止。

此外,为了**可能的伤害汽车驾驶者,假如数据可以直接从CAN总线上获取,攻击者可以根据特定的条件,触发一个DoS攻击。例如汽车某一特定速度,特定的节气门百分比或者是某一确切的GPS位置等。

(二)汽车勒索

一个恶意的攻击者将在CAN总线中某一目标帧中设置攻击,这将会导致驾驶者无法控制节气门的位置从而不能让汽车移动。尽管这些不会必定发生危险状态,一个以**为目的的攻击者,将会利用车载娱乐系统的漏洞,停止汽车,并在娱乐系统屏幕上显示消息,车主为了重新获取汽车的操控权而去付赎金。如图4所示。


图4  远程控制Jeep 切诺基的Uconnect系统

(三)盗窃的支持

事实上,大部分现代昂贵的汽车门锁通过CAN连接到ECU来控制,通常通过OBD-II端口可连接。隔离负责控制锁/解锁车门的数据帧比逆向主动安全设备更简单、更快捷。因此,几分钟左右一个攻击者将会隔离负责锁车门的数据帧,编写他的设备程序-特定帧的DoS攻击,然后把设备插入到OBD-II的接口,阻止车门锁住。

对于一个攻击者来说,这个攻击结果是可能的。通过低成本的花费就能进入到车内,随后就能够窃取车内任何贵重物品。

四 威胁分析

(一)物理攻击

1.  恶意的OBD设备

通过强制的OBD-II端口很容易和车内CAN总线进行交互。事实上大部分的汽车OBD-II端口充当着一个直接进入车内总线的接口,并且提供12V的直流电源输出,为连接设备提供电力源,放任的处于方向盘下面。几秒钟内,一个恶意的攻击者可以在车内安装一个可操作的设备。真实的世界的场景中,这种事情是可能发生的,比如,代客停车、汽车租赁、车辆借用等。

一个相似的场景也会出现,假如车主自己在他的车上插入一个后装市场的OBD-II的设备,他相信设备是安全的,其实设备已经被篡改或者是假冒产品。比如,某公司或某店免费赠送的设备,市场上销售的没有经过安全认证的设备。如图5所示。


图5  OBD设备攻击

2.  直接攻击CAN节点

物理访问攻击不限于诊断端口。攻击者可以在某一状态下,把一个精心制作的设备附加到车内网络,比如车被拆卸,为了测试或者修理。另一个条件下也会发生攻击,通过安装一个篡改过的或者假冒的替换零件。比如,后装市场的娱乐信息系统,停车传感器模块或者防盗系统等。

(二)远程攻击

尽管受到限制,但是可能存在一个漏洞被黑客利用去远程重刷微控制器固件和修改程序,为了执行攻击载荷,执行DoS攻击不需要任何的物理连接目标车辆。

事实上,查尔斯和米勒在相关文章中证实了此点,通过扩充漏洞的攻击链,远程重刷了瑞萨微控制器的固件。同样远程利用OBD连接设备的漏洞,也可以实现相似的攻击。

五 防御措施建议

(一)可信计算基础

硬件安全模块或者可信软件为了保证ECU的完整性。

(二)网络分割

一个攻击者想实现一个目标功能的攻击,先决条件是能在CAN总线网络中发现目标帧,如果目标帧处在不同的车内网络段相比如在一个网络中,攻击者实现攻击难度大大增加。因此第一个防御车内网络攻击的解决方案是车内总线网络分割。

实施建议:关键安全ECU网络和非关键安全的ECU网络或者是能与外部链接的ECU网络隔离,通过受限制在不同的网络中,网络间的通信限制通过防火墙或者安全网关,单独允许一个可选择的信任帧列表从低信任的广播到高信任的网络。

(三)入侵检测系统/入侵防御系统(IDS/IPS)

实施一个对车内网络的攻击,很常见的方法是改变一个目标帧的传输周期,比如提高报文的频率,去阻止ECU接收合法的目标报文,或者是通过诊断报文,这样常见的攻击手段,入侵检测系统很容易识别。所以入侵检测系统是一个最快速部署并且成本效益**的解决方案。

实施建议:监控车内网络流量,尝试去确认正在进行的攻击,如果有预防系统试图自动阻止这个攻击。

(四)诊断端口访问控制

在所有的车内网络安全研究的机构,高校院所公布的论文和黑客的攻击事件表明诊断端口是最方便利用实施攻击的一个端口,所以对这个端口实施访问控制但又不能影响正常的诊断功能,是现代汽车网络必须解决的问题。

实施建议:保护安全访问OBD-II端口,这是一个非常容易攻击的媒介。除了物理访问阻止,这个需要修改现有的强制法规。另外一个方法是在OBD-II端口和其他网络之间,增加一个身份认证网关,**的允许有OBD-IIPID传输的数据,查询未经认证的使用者,这可以阻止部分注入攻击和DoS攻击,但是没有影响诊断功能。

(五)加密

黑客很容易分析CAN网络中的数据,是因为数据明文传输。如果对数据加密,即使黑客拿到数据,也不能轻易的破解数据,极大的阻止黑客进一步攻击的行为。

在一个流操作模式中,通过流加密或者分组加密应用到帧的ID和数据域。攻击节点将不能在众多的帧中区分目标帧,在整个CAN数据流量中阻止蛮力的DoS 攻击和消息注入攻击。然而因为低成本和实时性的需求,在汽车ECU中实施加密现在是不可实行的。

(六)其他协议

当然,最终的解决方案为了阻止汽车网络内的攻击,求助于过渡到不同的并且没有漏洞的协议。

在CAN网络中,为了规避**的安全威胁,IDS/IPS认为是做好的时间和成本效益的解决方案。伪造攻击是立足于发送一个高速率的帧相比于正常的帧或者是一个诊断报文,诊断报文是非预期的出现在一个正常的场景中,因此这两种攻击容易被IDS/IPS识别。另外,CAN网络的总线拓扑结构,使IDS/IPS容易附加到现有的网络架构中,而不需要改变现有的网络架构。网络分割和加密实施需要彻底的网络重新设计。

六 总结及展望

汽车在智能化和网联化的推动下,越来越多的信息安全漏洞和威胁被不断发掘出来。传统的安全已经不能满足当前汽车发展的需求。未来的汽车需要具备安全的数据通信环境,保证车辆智能互联功能的有效发挥。作为汽车信息安全问题爆发的起点和终点,车内总线网络安全关注的焦点是CAN总线协议的天然缺陷。

本文通过对车内CAN总线的脆弱性分析,并根据自身特点和外部攻击环境,结合现实世界中可能出现的攻击场景,针对CAN总线协议规范进行安全分析,并根据当前技术条件提出具备可行性的安全防御建议。相信在不久的将来,车内网络安全技术的突破必将为汽车信息安全问题提供有效的安全解决方案,为汽车行业在互联网冲击下的健康顺序发展保驾护航。