贾先锋,宁玉桥,武智
(中汽数据(天津)有限公司,天津 300300)
网联汽车即拥有车联网功能的汽车,它不是单纯地将汽车链接互联网,而是将车内网络、车间网络、智慧交通系统、TSP、手机APP等融合起来。得益于互联网的飞速发展,对诸如车联网技术、智慧交通、无人驾驶系统和后端云服务等信息化应用的需求促进了汽车网联化的快速发展。但是与此同时,车联网中的安全威胁也日趋严重,对车载系统、移动终端、云平台等的攻击手段层出不穷,日益严重。来自全球多个汽车厂商的信息安全攻击事件引发了社会各界的广泛关注,研究网联汽车的安全问题刻不容缓[1]。
车载网络系统无疑是网联汽车中最重要的部分之一,它不仅要与外部的智能交通系统以及云平台进行通信,还要控制车内的关键电控单元,所以一旦车载网络系统被黑客攻破,后果将不堪设想。目前基于CAN总线的车内网络协议得到了广泛地应用,该协议具有成本低且可靠性高等特点。但是CAN总线在最初开发和设计时没有考虑有关信息安全的问题,一旦将汽车接入互联网,那么车载网络总线将不再是封闭系统,黑客可能会通过各种电子设备、车载智能信息系统等多种途径发起攻击[2]。因此,在车联网快速发展的形势下,对车载网络安全性的研究显得尤为重要(以太网安全性提出)。
网联汽车是通过有线连接和无线连接的方式,将智能网联汽车车内网络与外部互联网相连接,包括车内网络、车端设备和云端服务等。由于对网联汽车信息安全的研究才刚刚起步,当前智能网联汽车的信息安全问题主要包括以下几点[2-3]:
(1)车载总线网络缺乏信息安全防护;
(2)智能设备的安全漏洞;
(3)汽车企业对信息安全问题的重视不足。
国内外高校和研究人员关于网联汽车安全的研究,主要集中在车载系统与互联网系统连接交互方面,如车辆和服务器之间安全认证机制、车载嵌入式系统安全分析、服务器和车辆之间公私钥分配等。然而科技人员对车内网络安全的问题研究相对较少。近年来对车辆内部网络安全的研究主要分为以下几类[4]:
(1)车辆内部网络安全框架方面的研究;
(2)车内网络通信与安全认证方面的研究;
(3)车载网络入侵和异常检测方面的研究。
2.1.1 网络结构和系统架构
网联车技术是物联网在智慧交通与现代汽车行业相结合的具体应用和落地。网联汽车以车辆为中心,利用车内移动通讯模组及相关车内传感器,以及车外的监控传感设备和云端平台,通过蜂窝无线连接技术和有线通信技术,实现了车与车、车与人、车与后台服务器、车与路端设施都直接进行信息交互。如今,车联网在交通规划,智能驾驶,智慧出行等领域都有了长足的发展以及更广的发展空间[5]。
智能网联汽车的网络结构如图1所示,如今大量网联车基于车载通信模块进行交互、通信以及相互连接,汽车通过通信卫星、RFID、移动基站等设施接入网络,最终连接到后台的服务中心,为车辆提供交通管理、信息订阅等远程网联服务[6]。
图1 智能网联汽车的网络结构
网联车的系统结构,从内部到外部它可以分为感知延伸层、网络层、业务支持层和应用层,如图2所示。
图2 网联车的系统架构
2.1.2 网联汽车的应用
网联汽车描述了一个将人、车、路、云以及服务平台相互结合、连接并交互的全方位互联系统,可以实现对道路交通的全面控制和对车辆的全程监控,如图3所示。
图3 网联汽车的应用
2.2.1 车载网络系统介绍
汽车可以理解为一个非常庞大的计算机系统,由大量的ECU、传感器、动力装置、传动装置等构成的一个复杂而庞大的系统。
然而传统的非智能网联汽车系统认为,车内ECU通常应使用接插件和导线进行连接。随着车内功能模块的增加,ECU的数量页逐步增加,从而导致无法使用单纯的导线和接插件无法满足更加复杂的系统,基于车内总线的技术车载网络应运而生,剩的车内用到的导线和接插件大幅减少,利用有限的资源大大提高的车内ECU间的通讯能力。各个控制系统之间通过信息交流和协作控制等,实现对汽车功能的精确控制,提高了整体可靠性和稳定性[7]。
2.2.2 汽车总线分类
(1)CAN总线
控制器局域网总线(CAN)是最古老的多功能总线之一,而且是正在运行的最普遍的总线系统之一。CAN总线标准在开发设计阶段就突出了其满足控制系统需求的特性,并以其具有灵活性、实时性和可靠性的汽车控制系统总线等特点成为了行业标准。CAN是点对点网络。这意味着没有主机可以控制各个节点何时可以访问CAN总线上的数据。当CAN节点传输数据前,它将检查总线是否繁忙,然后简单地将CAN帧写入网络。发送的CAN帧不包含发送节点或任何预期的接收节点的地址。相反,在整个网络中唯一的仲裁ID会标记该帧。CAN网络上的所有节点都接收CAN帧,并且根据该传输帧的仲裁ID各节点判断是否决定是否接受该帧。CAN总线具备一定的安全性,然而,随着车联网概念的兴起和汽车信息技术的高速发展,智能网联汽车逐渐在原本封闭的网络中对外开放了越来越多的外部访问接口。这些接口可能由汽车内部CAN总线通过直接或间接的方式连接其他节点的控制单元。这些外部访问接口已经成为攻击者攻击汽内网络的潜在入口,从而使攻击者可以通过某些技术手段直接渗透到车辆关键控制系统——车载CAN总线网络[8]。
(2)车载以太网
传统车载网络通常采用CAN、LIN等传输速度较为缓慢的专用网络协议。随着汽车的内部运作变得更加智能和复杂,越来越多的智能传感器和高性能车载计算机被引入,应用于汽车的新网络不仅要更快、更经济、支持多节点互联,而且需要实行标准化和广泛应用,以保证不同供应商和行业之间的兼容和互通[8]。
车载以太网由Broadcom率先推出BroadR-Reach变体。它利用标准的以太网技术,但使其适用于汽车应用。它在非屏蔽双绞线电缆上的传输能力为100MB/s,最长可达15米(对于屏蔽双绞线则可达40米)。在车载设备的通信过程中可满足低延迟、高带宽和音视频同步传输的要求;满足车载系统对网络实现外部管理的需求等。因此可以理解为,车载以太网可以用于任何基于以太网的车载电气系统的联网解决方案。同时,它也是100Base-T1(IEEE的802.3bw-2015)和BroadR-Reach(或OPEN联盟BroadR-Reach)中定义的通用术语。由此看出,汽车以太网是为实现车载网络实现更快数据传输通讯而量身定制的专用网络。
CAN协议的通讯方式、数据结构、仲裁技术等能够满足车载网络对实时性和轻量化要求,但由于开发设计阶段未考虑信息安全因素,导致存在一些原生了一些安全隐患,如仲裁机制被攻击、广播消息被监听、消息欺骗伪造等。
3.1.1 模糊测试
模糊测试是指通过软件对读取到的重要ID进行8个数据位的测试分析,进而找出动作指令相关信号,并通过Fuzzing工具向CAN总线中发送攻击指令的检测方法。
图4 模糊测试
3.1.2 录制回放
图5 录制回放
录制回放攻击是指通过录制车辆动作报文,如开车门指令等,通过软件的Replay模块回放至CAN总线测试攻击。
3.2.1 泛洪(Flood)攻击
ICMP泛洪:ICMP flood泛洪攻击属于DOS攻击的一种,顾名思义是通过将大量的Ping数据包发送给目标地址,导致目标主机忙于处理Ping数据包而无法处理其他正常请求,就好像ICMP报文像洪水一样把传输通道堵满,是正常的通讯报文无法传输和处理。泛洪攻击的过程是首先nmap查找到同一网段下的车载以太网网关,使用ping命令与网关建立连接,在进行攻击后,连接断开,同一网段为无法再与车载以太网网关进行连接。
TCP SYN泛洪:TCP SYN泛洪攻击(也称为SYN泛洪)是一种分布式拒绝服务(DDoS)攻击,它在常规的TCP连接时的三次握手过程中来消耗目标服务器并使服务器服务终端。本质上,攻击者在使用SYN Flood DDoS时发送TCP连接请求的速度比目标计算机可以处理它们的速度快,从而导致网络饱和。导致 SYN泛洪产生。在SYN Flood攻击中,攻击者通常使用伪造IP地址,并重复地向目标地址发送大量的SYN数据包。被攻击的地址将会收到多个看似真实合法的请求,随后目标地址会尝试使用SYN-ACK数据包对请求地址进行响应。
图6 与网关建立连接
图7 攻击网关
图8 攻击后网关无法建立连接
4.1.1 CAN总线消息数据来源保护
(1)设备认证
设备认证是指只有已知或已授信的设备才能对总线进行访问和报文发送。
网关或单独总线管理设备可以对专业的诊断设备和PC机进行身份认证。这就制定了一种白名单策略。只有身份合法有效的设备才能向总线发送消息,未通过认证的设备所发送的报文会被屏蔽隔离。
(2)OBD防火墙
OBD防火墙实际上是在OBD接口处安装的一种保护数据安全的设备。它对网关的报文进行隔离筛选,从而开放合理的报文信息至OBD处。
在常规通信级别上,由于体系结构设计的要求,OBD防火墙通常直接连接到多条总线。因此,防火墙在设计过程中对数据包吞吐量也需要应适应现有不同总线的通信速率。OBD防火墙从OBD口处有效控制了整车通信信息的泄露与篡改、读取刷写,是对整车消息来源处非常重要的安全保护。
4.1.2 CAN总线数据保护
(1)CAN数据报文的加密与解密
CAN总线加密技术是使用加密算法对ECU发出的报文进行16bit的加密,通过相同算法由收到的ECU进行解密的技术。
对于总线加密而言,简单的加密算法无法对CAN网络通讯进行真正的保护,复杂的加密算法对车内资源占用较高所以目前汽车行业中OEM通常采用AES-128的对称加密算法保障CAN网络的安全性。这样的加密方式有2个特点:
1>通过使用HSM等硬件模块实现AES-128及以上的对称加密,可以很好满足对加解密算法及密钥存储的可行性要求。2>该方案无需对现有的车内网络架构及协议进行修改,只需要对传输的报文格式进行修改及调整。
(2)安全的CAN收发器芯片
安全的CAN收发器芯片可以加装在重要ECU的硬件上,实现ECU间消息的定向接收,防止虚假消息影响ECU。
通过CAN-ID过滤发送过程中的报文这是保护总线的一种方式,可使总线不用遭受已经被篡改后ECU的影响。如果ECU尝试使用还未分配的ID进行通讯时,安全的CAN收发器可以直接对该ID的报文进行过滤,并拒绝它在总线上发送该报文,并拒绝后续的报文执行。基于CAN-ID的过滤策略可通过配置ECU的ID白名单来实现。
第二个防止欺骗的对策是基于CAN-ID监控总线上的报文并使其失效。这种方法使每个ECU都能保护好自己的ID,适用于未能防止不法电子控制单元发送该ID的情况。
预防报文篡改的方法同样可以使用对CAN报文失效屏蔽。安全的CAN收发器还可以检查网络上是否存在局部ECU已经完成仲裁但未发送有效报文。
以下为初步计划需要受到保护的电器件模块表:
表1 电器件模块表
4.1.3 网关物理隔离保护
网关物理隔离保护是指通过评估网络拓扑设计,进一步对车内网络进行改造,将其中重点防护的系统放置于独立的网络中并对涉及安全的关键系统隔离开来。
通过网关内嵌的安全加密机制和网络防火墙,容易受到攻击、安全性要求不高的普通域,如:信息娱乐域、车身舒适域、T-BOX、OBD等,可以与安全域,如:地盘与动力总成域、ADAS域等隔离开。
对于跨域控制和传输请求,特别是来自车外的请求,网关可以对其进行身份识别、消息认证和权限控制,然后决定这个请求能否转发给安全域。这些请求可能是来自T-BOX或智能钥匙的远程控制指令,也可能是来自服务器的更新固件等。对于跨域的,针对域内私有代码和数据的访问请求,中央网关也有责任对其进行甄别,拒绝非法访问。
4.1.4 入侵检测系统保护
入侵检测系统保护机制如下:
在总线关键ECU或网关中部署监控模块去监控车载网络流量和每条CAN请求报文及相应报文,一旦检测到异常情况,如:发现网络流量突然陡增或检测到陌生ID的报文,就会尝试去判断是否为车内ECU发出的异常报文,还是通过外部接口发起的攻击行为,检测完成后由入侵防御系统自动阻断该类攻击。
其优点总结如下:
(1)不用改变现有通讯架构:基于车内网络的入侵检测系统,是在现有系统和协议的基础上实现的,不对要对 CAN总线的链路层、网络层、应用层协议栈进行修改,这种实现方式使得系统不仅能适用于新车型,还能用于出厂时没有信息安全防护策略的旧车型上。
(2)灵活部署:基于车内网络的入侵检测系统,一般以安全插件的方式部署在GW或ECU当中,也可以单独以硬件方式进行部署。
(3)检测范围广:目前行业中已有多种传统网络的入侵检测技术。可结合现有技术并针对车内网络特点进行修改检测到更多的已知车内攻击通过综合利用多种入侵检测技术,理论上常见的车内攻击都可以被检测到。
4.1.5 安全的诊断访问服务
车辆诊断服务有多种类型,包括读取相关参数、写入相关参数、读取故障码、执行动作测试、上传下载数据等,若汽车内ECU定制的诊断访问服务缺少一定的安全性,则外界诊断设备可以通过OBD接口对汽车ECU进行数据篡改及获取,严重的可以影响汽车的运行状态并导致汽车无法正常启动或运行。故对诊断服务制定安全访问机制(0x27)是一种非常重要和必需的安全防御方法。
在诊断进入到不同的会话模式时,首先均需要进行安全访问校验机制,即UDS协议中的0x27服务,通过ECU返回的Seed计算得出Key,若校验成功,则通过安全访问,继续进行下一步的诊断操作,比如读写等操作,若校验不成功,则需重新进行安全访问,但最好设定安全访问最大次数,若超过设定最大次数,则在此次上电过程中永久拒绝安全访问操作。
另外,针对不同的诊断27服务,可以通过设定不同的安全访问等级提高安全水平,如读取故障数据等可以设定较低安全等级为01,写入参数操作可以设定较高等级02,上传下载数据设为更高等级,对于不同安全等级,使用的密钥算法不同,安全等级越高,密钥算法越复杂。
图9 安全诊断访问
通过添加安全访问服务后,所有针对ECU进行的诊断操作都必须通过不同的安全等级校验进行相应操作,这样便大大加强对汽车ECU的防护作用,一定程度有效阻止通过诊断服务来窃取篡改ECU数据等行为。
(1)首先使用CANoe软件仿真网络中总线传输数据;
图10 使用CANoe软件仿真网络中总线传输数据
(2)将开发的OBD隔离设备的软件及硬件调试完成,设置为只接收ID111-ID115范围的CAN报文;
图11 OBD隔离设备的软件及硬件调试
(3) OBD隔离设备要求开放的报文可以通过软件读取到。对ECU的发送端和接收端都可设置白名单,有效保护整车通讯的安全性。
图12 设置完后显示的数据
泛洪攻击的防护:
4.3.1 禁止外部ICMP
防止ICMP泛滥的方法之一是在外部网络上禁止ICMP。但是这也将阻止包括ICMP ECHO数据包在内的合法流量。如果正常ICMP ECHO数据被阻止,则将丢失正常数据包;通道的连接性和流量将被恶化。可利用在车内增加防火墙等设备或组建防止ICMP flood攻击。
4.3.2 积压增加队列
在目标设备上具有半开放连接的每个操作系统都有一定数量的存在。如果允许这种类型的连接,则需要增加操作系统所允许的响应大量SYN数据包的最大半开连接数。 系统必须保留其他内存资源来处理所有新请求,以便成功增加最大积压。 如果由于内存不足而导致系统无法处理增加的积压队列大小,那么系统的性能将受到负面影响,但其影响将小于拒绝服务。
4.3.3 关闭半开放式TCP连接
另一种缓解策略是一旦连接已满,就覆盖原有的半开放连接。要求可以在短时间内建立合法的完整的连接。当攻击量增加或积压的大小对于实际操作而言太小时,这种特殊的防御机制将失败。
4.4.4 SYN Cookie
此策略需要通过Cookie技术实施。为了避免积压后的断开连接风险,可以使用SYN-ACK数据包响应每个连接请求,然后从积压中删除SYN请求,然后从内存中删除该请求,同时保持端口持续打开状态以建立新连接。 如果连接是来自真实用户的合法请求,并且ACK数据包最终可以从客户端发送回服务器,则服务器将允许重建SYN积压队列条目。 尽管此缓解措施导致丢失了一些有关TCP连接的信息,但它比无法防止攻击导致合法用户接收拒绝服务更有效。
通过研究测试可以得出,无论是CAN网络,还是相对先进的车载以太网,它们的信息安全都存在一定地风险。网联汽车车载网络的发展趋势将会是由复合型架构向中央计算式架构发展,形成适用于自动驾驶的域网络架构。车载网络中起到代表性作用的CAN总线是汽车信息安全问题的起点也是汽车信息安全问题的终点,对其安全性和防恶意攻击能力有着极高的要求。在现有基础架构的基础上,通过安全性分类隔离网络和域,为关键模块建立深度的多层体系结构防御,并使用软件和硬件的组合来进行安全保护是必然的发展趋势。