目前国家已经将发展智能网联汽车作为“互联网+”和人工智能在实体经济中应用的重要方面,汽车产业重点转型方向之一。新版《汽车产业中长期发展规划》将智能汽车作为重点内容,提出了不同等级智能驾驶系统2020 年- 2025 年的新车装配率要求。据发改委预测,预计2020年,中国智能网联汽车新车占比将达到50%,达到千万级,中国成为智能网联汽车第一大国。其中,信息安全成为智能汽车发展的重中之重。
目前,“刷漏洞”已经成为攻击智能网联汽车车的最新手段;汽车厂商应该配备信息安全团队,持续监测漏洞;同时,汽车信息安全标准亟待建立。本文援引360集团《2017智能网联汽车信息安全年度报告》,从智能网联汽车信息安全规范、智能汽车CVE漏洞分析和破解案例分析三个角度,阐述2017年智能网联汽车信息安全的发展历程。
目录
综述
1. 智能网联汽车标准规范动态
国外标准动态
国内标准分析
2. 智能汽车漏洞分析
汽车CVE漏洞分析
汽车漏洞平台
3. 2017年智能汽车破解案例分析
斯巴鲁汽车破解案例分析
马自达车机娱乐系统破解案例分析
特斯拉汽车车联网系统攻击案例分析
利用海豚音攻击破解语音控制系统开启天窗分析
4. 2018年智能网联汽车信息安全建设建议
5. 附录
360智能网联汽车安全实验室
参考文献
一、综述
随着互联网、人工智能、云计算和大数据等技术的应用,汽车已经不再像以前一样仅仅被人们当成是交通工具,如今汽车正慢慢走进人们的生活,成为生活的一部分。人们对汽车与各个设备之间信息互通的要求越来越高。车内设备不仅要与手机等智能设备连接,同时还需要方便地接入互联网,与交通管理系统、周边其他车辆进行信息共享,即车联网。所谓车联网(Internet of Vehicle,简称 IOV)是物联网在汽车行业领域的具体应用,车联网将物联网的范围限定到车与路、车与人、车与车以及车与传感设备上,各个车辆通过车载互联网设备经由无线网络、无线电等传播技术来实现车辆间、车辆与数据平台间的实时通信,汇总车辆的行驶信息、车辆周边的道路状况等动、静态信息,并将这些信息通过无线网络传输到信息中心进行加工、筛选、计算,再使用这些信息为车辆提供有效的引导、路况、信息共享、多媒体等综合网络服务,以满足车辆不同的功能需求;另一方面,监管部门也可以对车辆进行有效的监管。
车联网与智能网联汽车紧密相关,互为支撑。智能网联汽车与车联网、智能交通系统之间有紧密的相关性,是智能交通系统中与车联网交集的汽车产品,智能网联汽车是车联网不可或缺的组成部分,智能网联汽车的技术进步和产业发展也有利于支撑车联网的发展,而车联网是智能动态信息服务和车辆智能化控制的重要手段,可服务于汽车智能制造、电商销售后市场等环节,车联网发展将大幅提升汽车安全和交通安全,促进绿色发展,带动信息消费,对汽车、信息通信和交通运输等多个行业生产方式和产业分工产生深远的影响。
汽车信息安全作为汽车发展的重中之重,在一开始就受到了电信行业、汽车行业、汽车电子设备行业以及互联网服务商的重视。现代车辆由许多互联的、基于软件的IT部件组成,为了避免安全问题,需要进行非常细致的测试。例如,刹车突然停止工作。然而,在汽车领域系统性的安全测试发现潜在的安全威胁并不是一个常规的流程。汽车中使用的智能联网系统沿袭了既有的计算和联网架构,所以也继承了这些系统天然的安全缺陷。随着汽车中ECU和连接的增加,也大大增加了黑客对汽车的攻击面,尤其是汽车通过通信网络接入互联网连接到云端之后,每个计算、控制和传感单元,每个连接路径都有可能因存在安全漏洞而被黑客利用,从而实现对汽车的攻击和控制。汽车作为公共交通系统的重要组成部分,一旦被黑客控制,不仅会造成驾驶者的个人信息和隐私被泄露,还会直接带来人身伤害和财产损失,同时还会导致品牌和声誉受损,甚至上升成为危及国家安全的社会问题。
本报告从智能网联汽车信息安全规范、智能汽车CVE漏洞分析和智能汽车破解案例分析三个角度阐述了2017年智能网联汽车信息安全的发展历程,并结合2017年我们在汽车厂商的项目实施经验提出智能网联汽车信息安全建设建议。
1. 智能网联汽车标准规范动态
智能网联汽车信息安全已成为国际标准组织关注的主要问题之一,在国际标准组织中3GPP 对V2X的技术有建立了信息安全技术要求,以保障通信层面的安全。一直致力于汽车安全标准的SAE与ISO形成了联合工作组,在ISO/SAE TC22中起草了ISO 21434国际标准,该标准将于2019年完成,主要约束了汽车信息安全工程能力的建设。在ITU-T SG17组中目前已经有一项《智能交通系统通信设备的安全软件更新功能》标准已经发布,剩下有新的标准正在立项。
国外标准动态
2017年,国外、国内的汽车信息安全标准制定工作也在积极进行中。国际ISO/SAE在进行21434(道路车辆-信息安全工程)标准的制定,该标准主要从风险评估管理、产品开发、运行/维护、流程审核等四个方面来保障汽车信息安全工程工作的开展。中国代表团也积极参与此项标准的制定,国内几家汽车信息安全企业、整车场,也参与了该标准的讨论,该标准将于2019年下半年完成,预计满足该标准进行安全建设的车型于2023年完成。
图:ISO/TC22道路车辆技术委员会成立ISO/TC22/SC32/WG11 Cybersecurity信息安全工作组(来源:SAE)
Figure 2 Cybersecurity Overall Schedule
该标准的进度是根据已经完成20%,目标是在2019年10月份正式发布,目前中国代表团也积极参与此项标准的制定,国内几家汽车信息安全企业、整车场,也参与了该标准的讨论。
-
SAE
SAE(国际自动机工程师学会)成立于1905年,是一个技术性学会,在全球拥有超过145,000名会员,包括航空航天、汽车和商用车辆行业的工程师和相关技术专家。其中,SAE的全球车辆标准工作组(Global Ground Vehicle Standards group)所属汽车电子系统安全委员会(Vehicle Electrical System Security Committee)负责汽车电子系统网络安全方面的标准化工作,作为第一个关于汽车电子系统网络安全的指南性文件,J3061对汽车电子系统的网络安全生命周期具有重要的应用意义,为开发具有网络安全要求的汽车电子系统提供了重要的过程依据。
-
J3061-1 Automotive Cybersecurity Integrity Levels
审查其他行业的现有分类方案和SAE提出的或可能正在其他组织中提出或使用的现有想法。 确定使用现有方案或根据现有或提议的方法或想法(整合或合并思路)为汽车行业创建新的分类方案。 威胁分析和风险评估方法,可以与分类方案一起使用,或者我们可以在网络安全完整性分类方案中将其映射到特定级别a。 这将需要审查现有的TARA方法并确定一个或一个定制的版本确定如何将ACSIL与安全相关的威胁与ISO 26262中的ASIL相关联。
-
J3061-2 Security Testing Methods
该文件是定义该主题的初始框架。 该文件用作与软件和硬件测试相关的安全测试方法的详细分类,并集中于发布时可用的测试模型。
-
J3061-3 Security Testing Tools
本文档是安全相关工具及其功能制造商的内部列表。 这份清单并不是作为任何制造商的认可,而是市场上存在的例子和能力的清单。
-
J3101 Requirements for Hardware-Protected Security for Ground Vehicle Applications
为地面车辆的硬件定义一套通用的安全要求,以促进安全性增强的应用程序,提出对实现地面车辆应用硬件保护理想系统所需功能的期望,包括示例,但未明确详细说明实施要求。
-
J3138 Guidance for Securing the Data link Connector (DLC)
车载诊断(OBD)法规要求轿车以及轻型和中型卡车提供数据链路连接器,以支持将诊断信息传送到车外设备。 诊断信息也需要及时传达给离线设备。 许多汽车制造商还通过该连接器提供增强型诊断信息和车辆系统/子系统。
-
3GPP
3GPP SA3正在进行LTE-V2X安全的研究和标准制定工作。相关规范TR 33.885和TS 33.185预计将在17年6月完成标准制定。
-
3GPP TR 33.885 ,
研究车载对一切(V2X)服务(版本14)的LTE支持的安全问题,其中包含对V2X服务的安全方面的研究以及对支持此类服务所需的可能技术解决方案的评估。
-
3GPP TR 33.185,
技术规范组服务和系统方面;汽车到一切(V2X)服务的LTE支持的安全方面。 本文档详细说明了LTE中V2X功能的安全性,包括安全体系结构,用于支持V2X服务的网络实体的安全要求,以及为满足这些要求而提供的程序和解决方案。
-
ITU-T
ITU-T的通信安全研究与标准制定工作很早就已经开展。但是在2000年以前,网络与信息安全并没有独立出来单独作为一个项目组来研究,而是在其它标准制定过程去发现有必要做相关安全标准时才开展相关工作,相对来说网络与信息安全比较零散,并没有整体性的工作。为了适应日益严重的通信安全形势,ITU-T成立了专门的SG17来主要负责通信安全研究与标准制定工作。
在ITU-T SG17工作组已经建立新的小组Q13, 对智能交通,以及联网汽车安全的研究工作。目前已经正式发布的标准有X.1373,正在制订中的有7个。
目前正在SG17 Q13组内的标准有:
-
X.1373
该标准通过适当的安全控制措施,为远程更新服务器和车辆之间的提供软件安全的更新方案,并且定义了安全更新的流程和内容建议。
-
X.itssec-2
该标准为V2X通信系统提供安全指导。 V2X是本建议书中V2V(车辆到车辆),V2I(车辆到基础设施)和V2ND(车辆到漫游设备)和V2P(车辆到行人)通信模式的通用术语。
-
X.itssec-3
该标准定义了包括车载诊断II(OBD-II)端口连接等接入设备的安全要求,并且做了相应的威胁分析。
-
X.itssec-4
该标准主要集中在车载网络上的内部通信作为CAN通用IDS无法支持的部分,以保证利用各种高效光源来检测影响ECU通信的威胁 重量检测模型,如基于签名的模型,基于熵的模型,基于自相似性的模型,基于危害的模型,本建议书将考虑使用IDS来保护连接的车辆。
-
X.itssec-5
该标准车辆边缘计算提供安全指导。 它涵盖了车辆边缘计算的威胁分析,安全要求和使用案例。
-
X.mdcv
该标准为联网汽车提供了安全相关的异常行为的检测机制,定义了所需的数据类型和整套检测机制的步骤。
-
X.srcd
该标准提出了针对于V2X通讯数据保护的安全要求,并且定义了数据的安全等级。
-
X.stcv
该标准定义了联网汽车相关的安全威胁,并提出了相应的分析。
国内标准分析
我国汽车信息安全标准服务体系的建设。在国家相关部委的组织和指导下,全国汽车标准化技术委员会(TC114)在2017年底发布了《国家车联网产业标准体系》列出了多项汽车信息安全相关标准。中国通信标准化协会(CCSA)、全国信息技术安全标准化技术委员会(TC260)、车载信息服务产业应用联盟(TIAA)、中国智能网联汽车产业创新联盟(CAICV)等国内相关标准化机构、汽车产业联盟自2016年下半年开始,纷纷启动开展了车联网、智能网联汽车相关标准体系的建设工作,截至目前已经取得阶段性成果。
¤ TC114
全国汽车标准化技术委员会(简称汽标委)下属的智能网联汽车分技术委员会(编号为SAC/TC114/SC34)负责归口管理我国智能网联汽车领域的国家标准和行业标准,并成立了先进驾驶辅助系统(ADAS)标准工作组、信息安全、自动驾驶等工作组。汽标委于2016年推出了《智能网联汽车标准体系建设方案》(第1版),明确了智能网联汽车标准体系建设的目标和原则,对智能网联汽车标准体系框架进行了分析和研究,并积极推进后续标准法规方面的各项事宜。信息安全标准体系(204)作为该方案的重要组成部分,支撑着整个智能网联汽车标准体系的整体架构。
2017年汽标委已组织两次汽车信息安全工作组会议,目前对《智能网联汽车标准体系建设方案》中汽车信息安全标准建设已经进入讨论阶段。
主要立项标准有:《汽车信息安全通用技术要求》、《汽车网关信息安全技术要求》、《车载信息交互系统TBOX信息安全技术要求》、《电动汽车远程信息服务于关系统信息安全技术要求》、《电动汽车充电系统信息安全技术要求》主要围绕基于智能网联汽车云、管、端、充电服务等信息安全攻击面,通过汽车信息安全通用技术要求建立智能网联汽车分级体系做为整体框架,根据安全防护要求进行分级别防护应用的标准措施,目前每个标准都处于编写和立项阶段。
# |
标准名 |
进度 |
204-1 |
汽车信息安全通用技术要求 |
预研中 |
204-2 |
汽车信息安全风险评估指南 |
预研中 |
204-3 |
汽车数据保护安全和隐私保护通用要求 |
预研中 |
204-4 |
车载操作系统及应用软件安全防护要求 |
预研中 |
204-5 |
汽车信息安全通用测试与评价方法 |
预研中 |
204-6 |
汽车信息感知设备安全技术要求 |
预研中 |
204-7 |
车载ECU信息安全技术要求 |
预研中 |
204-8 |
车载总线系统信息安全技术要求 |
预研中 |
204-9 |
汽车网关信息安全技术要求 |
已申请立项 |
204-10 |
车载信息交互系统(TBOX)信息安全技术要求 |
已申请立项 |
204-11 |
车载诊断接口(OBD)信息安全技术要求 |
预研中 |
204-12 |
驾驶员身份认证系统技术要求 |
预研中 |
204-13 |
汽车软件升级信息安全防护规范 |
预研中 |
204-14 |
电动汽车远程信息服务与管理系统信息安全技术要求 |
已申请立项 |
204-15 |
电动汽车充电系统信息安全技术要求 |
已申请立项 |
204-16 |
汽车信息安全漏洞应急响应指南 |
预研中 |
Table 1 204相关标准及进度
¤ TC260
全国信息技术安全标准化技术委员会(信安标委)是国家标准化管理委员会的直属标准委员会,成立于2002年,编号为SAC/TC260,负责全国信息安全技术、安全机制、安全服务、安全管理、安全评估等领域标准化工作,并负责统一协调申报信息安全国家标准年度计划项目,组织国家标准的送审、报批工作。
2017年7月,信安标委立项首个关于汽车电子系统网络安全的国家标准项目《信息安全技术 汽车电子系统网络安全指南》。汽车电子系统作为集电控技术、信息技术、网络技术和汽车技术于一体的复杂系统,汽车网络安全在根本上取决于汽车电子系统的网络安全防护能力。目前在信安标委立项的与汽车信息安全相关标准有:《信息安全技术 车载网络设备信息安全技术要求》、《信息安全技术 车载终端安全技术要求》、《信息安全技术 汽车电子信息安全检测技术要求及测试评价方法》、《智能网联汽车网络安全风险评估指南》、《信息安全技术 汽车电子系统网络安全指南》,信安标委着手于汽车电子系统本身,建立了风险评估体系及网络安全指南,保障了汽车电子的网络安全标准有效落地。
¤ CCSA
中国通信标准化协会 (英文译名为:China Communications Standards Association,缩写为:CCSA)。TC8的研究领域包括:面向公众服务的互联网的网络与信息安全标准,电信网与互联网结合中的网络与信息安全标准,特殊通信领域中的网络与信息安全标准。技术工作委员会下设四个工作组,即有线网络安全工作组(WG1)、无线网络安全工作组(WG2)、安全管理工作组(WG3)、安全基础工作组(WG4)。
国内CCSA TC8 WG2已经完成了《车路协同系统的安全研究》和《LTE-V2X安全研究》的研究,CCSA TC5 WG3已经开展了《基于公众LTE网络的车联网无线通信系统总体技术要求》的行业标准制定。CCSA TC8 WG2 提出适用于LTE-V2X的车联网通信安全总体技术要求。
CCSA已完成立项的标准:
-
《基于移动互联网的汽车用户数据应用与保护技术要求》
本标准主要规定互联网汽车数据在收集、存储、传输、使用、共享、交易、披露、出境及销毁等环节中应遵循的安全保护要求,建立相应的安全管理体系和技术防护措施。
-
《基于移动互联网的汽车用户数据应用与保护评估方法》
本标准主要评估互联网汽车服务提供商在数据收集、存储、传输、使用、共享、交易、披露、出境及销毁等环节中的安全保护能力,可为第三方机构开展评估或企业自评估提供指导。
CCSA已开展的行业标准项目:
-
TC1 WG2相关项目
-
基于公众通信网络的汽车信息化业务技术要求(从业务功能、管理功能、计费原则和营业流程方面进行技术要求)
-
基于公众通信网络的汽车信息化服务支撑平台总体要求
-
基于公众通信网络的汽车信息化服务支撑平台与车载终端的接口技术要求
-
基于公众通信网络的汽车信息化业务支撑平台与汽车厂商业务平台的接口技术要求(集中在汽车信息化服务的支撑平台相关要求)
-
TC10 WG2相关项目
-
泛在物联应用汽车信息化业务需求和总体框架(从业务的功能角度进行分类和需求分析)
-
车载终端与智能手机互联技术研究报告(局限于车内网络互联)
-
泛在物联应用智能交通系统技术要求(讨论基于通信网及信息服务的道路交通的智能交通系统系统,定义总体框架和技术要求,和车载信息服务不同点是,智能交通侧重交通管理方面的服务)
-
TC10 WG4相关项目
-
车联网总体技术要求(集中在车联网相关实体的功能和技术要求,没有从网络组网和通信协议的角度介绍)
-
基于公众电信网 汽车网关技术要求
-
基于公众电信网 汽车网关测试方法(关注汽车网关实体的技术要求)
-
汽车通信业务运营平台与汽车间通信的安全技术研究(关注汽车通信安全技术)
-
已开展的TC10 WG3的相关项目:
-
基于公众移动通信网的协作式智能交通 网络技术需求研究(研究以LTE为主的公众移动通信网支撑协作式智能交通的技术需求,集中在车车、车路、车与行人通信的短距离应用场景。主要是eMBMS和LTE D2D技术)
-
TC5 WG3相关项目
-
基于TD-LTE的车辆安全短程通信技术研究(关注汽车通信安全技术)
-
应用于智能交通系统的无线接入技术研究(关注智能交通领域的无线接入技术,进行性能评估,而不是从全网络角度以及车载信息服务角度去研究)
二、智能汽车漏洞分析
2017年是车联网增长快速的一年,在车厂大量制造互联网汽车以及车联网发展的同时并未考虑相关安全防护建设,2017年我们通过大量的车厂的测试项目了解到了一车智能互联网汽车其实存在很多的漏洞,通过车联网的漏洞可以用户带来的很大的财产安全风险,其中漏洞涉及到TSP平台、APP应用、Telematics(T-BOX)上网系统、车机IVI系统、CAN-BUS车内总线等相关安全威胁风险。
汽车CVE漏洞分析
2017年汽车安全爆出了很多关于汽车被攻击的CVE漏洞,我们针对2017年关于汽车相关安全漏洞进行一些分析,具体分析如下:
¤ TCU漏洞
TCU/T-Box其实是一种调制解调器,现在的汽车普遍用它来传输数据。利用这个模块汽车之间可以互相通讯,还可以用web控制台和手机app来远程控制手机。
-
CVE-2017-9647-TCU
-
漏洞影响的是S-Gold 2 (PMB 8876)蜂窝基带芯片,其中一个漏洞是TCU中处理AT命令的组件存在缓冲区溢出漏洞(漏洞编号CVE-2017-9647),这些命令包括AT+STKPROF, AT+XAPP, AT+XLOG和AT+FNS,这些命令中有很多是苹果在2015年修复的iPhone漏洞。不过要执行这个攻击,攻击者需要对汽车有物理权限。
-
CVE-2017-9633-TCU
-
此漏洞则是攻击者可以利用TMSI(临时移动用户识别码)来入侵并且控制内存(漏洞编号CVE-2017-9633),这个漏洞可以被远程利用。该漏洞同时也可以对汽车进行远程攻击。想要远程利用漏洞未必需要2G网络。只需要购买开源的2G基站:“如果攻击者自己设立恶意基站(伪基站),TCU就会去连接基站,这就可以触发TMSI漏洞。只要TCU开着并且在寻找信号就会被黑。
Figure 3 CVE-2017-9647漏洞描述
Figure 4 CVE-2017-9633漏洞描述
-
TCU攻击案例
2017年三名研究人员发现福特、宝马、英菲尼迪和日产汽车的远程信息处理控制单元(TCU)中存在漏洞,这些TCU都是由Continental AG公司生产的。
漏洞影响的是S-Gold 2 (PMB 8876)蜂窝基带芯片,其中一个漏洞是TCU中处理AT命令的组件存在缓冲区溢出漏洞(漏洞编号CVE-2017-9647),这些命令包括AT+STKPROF, AT+XAPP, AT+XLOG和AT+FNS,这些命令中有很多是苹果在2015年修复的iPhone漏洞。不过要执行这个攻击,攻击者需要对汽车有物理权限。而另一个漏洞则是攻击者可以利用TMSI(临时移动用户识别码)来入侵并且控制内存(漏洞编号CVE-2017-9633),这个漏洞可以被远程利用。
在澳大利亚举办的RUXCON 2017大会上来自360智能网联汽车安全实验室严敏睿和曹明革两位研究员发表了“ATTACK SURFACES FOR TELEMATICS HARDWARE”议题的演讲,议题中对TBOX攻击面的介绍如下:
对TBOX的检测最简单方式是找到集成电路板上eSIM卡,使用漆包线将TBOX和手机以飞线的方式连接然后手机开启热点把TBOX的网络共享出来,研究人员就可以通过手机共享的热点连接到TBOX的内网探索车辆内部通讯网络。
Figure 6 T-BOX SD卡
检测TBOX的集成电路板,查找供应商预留的调试接口或者隐藏的特殊功能的针脚并以飞线的方式使电脑与TBOX集成电路板相连接,使用串口调试工具对其调试输出打印日志,可以得到一些敏感信息如APN名称、物联网卡号、ICCID、私网服务器IP地址和本地监听端口等信息,为后续的深入研究打下基础。
igure 7 TBOX 调试信息泄露
观察TBox集成电路板,寻找flash存储芯片,可以使用串口工具提取固件或重新烧写添加后门的固件;有的电路板会使用SD卡存储升级的固件,例如Tesla的CID电路主板上存在SD卡,里面存储着gtw.hex、bms.hex等固件。通过调试端口连接tbox开发的服务和提取配置文件等操作。因为控制汽车的消息指令是在TBox内部生成的,且在蜂窝网络传输层面是加密的,所以我们需要提取固件分析出加密算法和密钥,才能够得到消息会话的内容。
Figure 8 攻击链
Figure 9 SD卡文件
通过对TBOX的综合分析,利用渗透测试手段发现车联网中其他安全问题,并让远程控制形成一条通路实现远程控制车辆。
¤ 安全气囊漏洞
Figure 10 CVE-2017-14937漏洞描述
-
CVE-2017-14937-OBD
此漏洞是利用是通过接入OBD连接器或者车内CAN网路发送指令。攻击条件是车辆点火且车辆的速度必须小于6公里/小时,通过获得CAN指令访问权限以及OBD接口向车内网络发送UDS针对服务来对安全气囊进行攻击,可对车内乘客造成物理伤害,该漏洞影响到2014年起制造的乘用车。
安全气囊一般由传感器(sensor)、电控单元(ECU)、气体发生器(inflator)、气囊(bag)、续流器(clockspring)等组成,通常气体发生器和气囊等做在一起构成气囊模块(airbag module)。传感器感受汽车碰撞强度,并将感受到的信号传送到控制器,控制器接收传感器的信号并进行处理,当它判断有必要打开气囊时,立即发出点火信号以触发气体发生器,气体发生器接收到点火信号后,迅速点火并产生大量气体给气囊充气。
安全气囊点火算法允许乘客通过可预测的安全访问数据发送到CANBUS造成伤害。具体来说气囊点火算法,只有256个可能的密钥对,而身份验证的尝试没有限制。此外,至少有一家制造商对ISO 26021标准的解释是,必须直接计算密钥(即:另外255个密匙对不能被使用)。所以当汽车点火启动时,速度小于6公里/时,攻击者访问CAN总线,并发送了一个精心设计的统一诊断服务(UDS)消息来引爆热技术费用,就能够引爆安全气囊导致乘客伤害风险。这将影响2014年以后生产的商用车的安全气囊控制单元。
攻击条件:
-
车辆点火且车辆的速度必须小于6公里/小时。
-
通过获得CAN总线访问权限以及OBD接口向车内网络发送恶意构造的UDS对安全气囊进行攻击。
漏洞影响:
可对车内乘客造成物理伤害,该漏洞影响到2014年起生产的乘用车。
Figure 11 CVE-2017-14937攻击路径
汽车漏洞平台
随着汽车向电动化、智能化、网联化和共享化的方向转型发展,汽车软件安全问题日益凸显,汽车产业面临着严峻的安全挑战。汽车厂商也在不断加大汽车网络安全的投入,第三方和汽车厂商都陆续建立了漏洞平台。目的是通过共享漏洞信息提高汽车网络安全领域的总体安全能力。
-
-
-
CAVD 中国汽车行业漏洞共享平台
2017年12月15日由中汽中心数据资源中心组织汽车行业共同建设的“中国汽车行业漏洞共享平台(China Automobile Vulnerability Database,简称CAVD)”正式上线运行,CAVD通过内部测试、数据共享、民间力量等多种方式收集漏洞信息,按照云服务、通信、车内、外部威胁四种类型对漏洞进行分类、审核、验证和存储,并逐步对行业公开通用型漏洞,推进汽车信息安全产业良好发展。
-
HackerOne 通用汽车公司和安全漏洞赏金平台
美国最大的汽车制造商通用汽车公司于2016年1月推出了“协调披露(coordinated disclosure)”程序,其目的是为了赶在恶意黑客之前发现汽车车载系统中的一些安全方面的漏洞。根据外媒 ArsTechnica 的报道,通用汽车公司和安全漏洞赏金平台 HackerOne 一起合作开展这个计划,并且依托于白帽黑客来发现车载系统的潜在安全问题。
对于通用汽车公司和其他所有的汽车制造商来说,提升汽车系统的安全性已经是一件最需要重视的事情。随着越来越多的汽车可以连接到互联网,它们被恶意黑客攻击的风险也在不断增长。在黑客利用这些漏洞之前找到它们是至关重要的,因为它能够导致的后果非常严重。由软件控制的一些功能,例如互联网连接、自动紧急制动以及自适应巡航控制等功能,一旦因为安全漏洞被黑客恶意利用,甚至可能危及消费者的人身安全。
三、2017年智能汽车破解案例分析
随着汽车产业正在不断的发展,增加更多的便利和个性化的驾驶体验的能力特点。消费者希望不断地加以连接,甚至在他们的车辆,这是推动汽车制造商增加车辆和个人设备之间进行更多的整合,如智能手机等。以前,汽车是孤立的,物理隔离的,因此黑客很难远程入侵汽车内部控制器,除非进行物理入侵,而这个是需要很高的犯罪成本。随着互联网的进化,当TSP这样的车联网产品通过T-BOX与汽车内部网络联网之后,汽车受到的远程网络攻击就不再是猜想。可以预见,一旦车联网产品普及,关于汽车被攻击的现实案例就会出现并越来越多。
斯巴鲁汽车破解案例分析
¤ 遥控钥匙系统漏洞分析
荷兰电子工业设计师Tom Wimmenhove在多款斯巴鲁汽车的钥匙系统中发现了一个严重的安全设计缺陷,厂商目前还没有修复这个漏洞,而该漏洞将会导致斯巴鲁汽车被劫持。
这里的安全问题在于,某些型号的斯巴鲁汽车所采用的钥匙系统在对车辆进行上锁、解锁或其他操作时,使用的是序列码。这种序列码也被称作是滚动代码或跳跃代码,为了避免攻击者发现车辆的序列码并使用这种设计缺陷来劫持汽车,这种序列码应该是随机的才对。
通过接收钥匙系统所发送出 的一个数据包(例如,用户在按下钥匙系统的任何一个按键之后,攻击者只需要在信号范围内就可以捕捉到数据包),攻击者将能够利用该数据包来推测出该车辆钥匙系统下一次生成的滚动代码,接下来他就可以使用这个预测码或者直接重放来上锁或解锁车辆。
Figure 14 漏洞利用脚本
这个漏洞的利用难度并不高,攻击设备可使用现成的电子元件来制作,而且也不需要攻击者具备高端的编程技巧。地下网络犯罪分子中有很多硬件黑客,而Tom Wimmenhove(电子工业设计师)可以做到的事情,这些人同样可以轻松做到。偷车贼只需要制作一个能够收集汽车钥匙系统无线电信号的简单设备,计算出下一个滚动代码,然后在目标斯巴鲁汽车的车主离开之后,将类似的无线电信号发送回目标汽车,他们就能够劫持该车辆了。需要注意的是,不仅漏洞的利用难度不大,攻击装置的制作成本也不高,成本大约在15到30美元之间,具体价格取决于所用组件的性能。
¤ 车载娱乐系统漏洞分析
来自California的汽车信息安全研究员Aaron Guzman,在澳大利亚举行的计算机安全会议上介绍了一种黑入斯巴鲁汽车的方法。他在自己的2017款斯巴鲁WRX STI中发现了数量惊人的软件漏洞,通过这些高危的漏洞,未经授权的攻击者可以自由执行解锁/锁闭车门、鸣笛、获取车辆位置记录信息等一系列操作。
Guzman专注于iOS、Android移动应用程序和Web应用程序如何与斯巴鲁的Starlink服务器进行通信。他一共发现了八个漏洞,通过分析发现,当利用这几个漏洞组合使用时,他可以将其他用户也添加到Starlink帐户,从而利用斯巴鲁的移动应用获得汽车的远程控制权。Starlink系统使用AT&T的4G LTE网络以及Sirius XM汽车互联服务,具有失窃车辆找回、自动碰撞通知、远程服务(包括通过智能终端遥控启动/关闭)及每月车辆诊断报告等功能,值得庆幸的是,Starlink并不能控制制动或加速等动力模块。Starlink还可以与车载主机系统无缝连接,让用户体验多媒体娱乐应用程序,如Pandora电台、iHeartRadio和Aha集成系统等。
Figure 15 斯巴鲁Starlink系统
Guzman发现斯巴鲁的移动应用程序使用随机生成的认证令牌,以便在有用户认证后允许访问,通常来说客户端与服务端采用这样的认证方式是很正常的,根据良好的Web应用安全实践,令牌应在短时间内过期或失效,以防止重用。然而问题是,Starlink允许用户利用令牌永久登录斯巴鲁,也就是说令牌一旦生成,永远不会失效。据 Guzman透露,令牌通过一个URL发送,并且被存放在未被加密的数据库中。
图:2017年,来自California的汽车信息安全研究员Aaron Guzman针对斯巴鲁Starlink系统漏洞攻击路径示意图
Figure 16 攻击流程分析
Guzman发现他可以使用该令牌制作远程服务请求,并通过网络发送。斯巴鲁的服务器认为令牌足以确认请求是从授权用户来的,将执行该命令。斯巴鲁服务端不会检查请求是从哪儿或由谁发送的,无论是通过iOS、Android还是其它终端设备,就像要打开一把锁,不管钥匙的所有者是谁,只要有钥匙,就可以开锁。因此,Guzman采取了一个更为冒险的攻击方式,入侵其他用户的邮箱获取个人信息,然后利用这些信息进行注册,斯巴鲁官方会回复邮件确认新用户的注册成功,这些都是在斯巴鲁汽车车主不知情的情况下完成的。
那么攻击是如何展开的呢?有先决条件:攻击者必须知道斯巴鲁用户安装了2017年或更旧版本的Starlink。 Guzman对斯巴鲁进行攻击的关键是捕获生成的令牌,并且有各种各样的方法来实现。
一种方法是利用Guzman发现的跨站脚本(也称为XSS)漏洞,它是常见的Web应用程序开发漏洞之一。我们知道,用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。攻击者通常会用十六进制(或其他编码方式)将链接编码,以免用户怀疑它的合法性。网站在接收到包含恶意代码的请求之后会产成一个包含恶意代码的页面,而这个页面看起来就像是那个网站应当生成的合法页面一样,如果用户点开了这个链接,恶意脚本就会执行,窃取用户的信息和数据。为了证明风险,Guzman开发了可以抓取令牌的XSS有效数据负载,要求斯巴鲁车主采取一些行为,例如上面提到的诱导用户点击恶意链接等。
另外,攻击者也可以在受害者使用的同一个网络上执行中间人攻击,也即在斯巴鲁用户APP和斯巴鲁官方服务器的通信链路上,攻击者通过拦截和嗅探正常的通信数据,进行分析,从而窃取令牌,或以其它方式(如DNS欺骗等)欺骗受害者交出令牌的副本。做完这些之后,身处数百公里之外的攻击者就能和车主一样,访问斯巴鲁的软件系统并进行针对性的攻击。
对斯巴鲁的安全防护建议有四点。第一鉴于斯巴鲁用户第一次登录后令牌可是明文保存的,令牌保存时附上一个超时时间expire。比如设置4800秒后登陆无效,则登陆成功时服务端将令牌和有效时间time()+4800这两个参数发送给客户端。这样只需要检查当前时间是否大于expire就能判断登陆是否还有效,不需要手动删除;第二同时服务端登陆成功时设置一个有过期时间的session,这样可以通过session是否存在来决定用户的登陆信息是否还有效;第三当用户退出登录时,需要通过调用相关程序,让斯巴鲁服务器把这个用户对应的令牌失效或删除;第四 斯巴鲁的身份验证过程是依赖于令牌的,如果用户泄漏了自己的URL, 那很大程度上令牌也被别人泄漏了,就相当于钥匙被人复制了一份,所以可采用URL签名机制,防止令牌在通信过程中被窃取。
马自达车机娱乐系统破解案例分析
马自达车机系统Bug早在2014年5月就被Mazda 3 Revolution论坛用户发现了。自此,马自达论坛的车主们一直在使用这些“黑客手段”定制汽车的信息娱乐系统、调整设置或安装应用程序,MZD-AIO-TI(MZD整合调整安装包)就是其中最好的工具之一。通过之前项目分享的知识积累,Bugcrowd的APP安全工程师Jay Turla搭建了mazda_getInfo,该系统可以让整个“黑客”过程自动化。
Turla的mazda_getInfo项目上周在GitHub上开放,可让使用者在他们的U盘上复制一组脚本,将其插入汽车的仪表板即可在MZDConnect固件之上执行恶意代码。在测试期间,Turla尝试过执行一些简单的攻击,如在汽车仪表盘上显示文本或显示终端命令。由于MZDConnect是一个基于*NIX的系统,所以任何人都可以创建脚本并执行更多入侵攻击。
-
MZDConnect的破解过程分析
Setp1. 利用MZD-AIO-TI工具套件制作信息收集U盘。
Figure 19 下载MZD-AIO-TI并拷贝到U盘
Setp2. 闪存驱动器现在已经准备好收集数据了。从你的电脑中移开闪存,然后把它带到汽车上。
将准备好的USB闪存驱动器插入车辆上的任一USB端口。 (车辆可以继续运行并安全地停车或停车)。 将短暂显示一条消息,确认USB已被识别。 连接时,系统将开始将数据下载到USB闪存驱动器。
Figure 20 娱乐系统显示U盘连接成功
正在检索数据,但没有显示该工具正在工作的迹象,此过程通常需要3-5分钟。
Figure 21 “Data Retrieval Complete”消息短暂显示
Step3. 显示“Data Retrieval Complete”,这说明U盘制作成功,接下来我们修改dataRetrieval_config.txt文件,让其执行我们的POC脚本。
Figure 22 dataRetrieval_config.txt文件
并在U盘根目录放入info.sh文件,再次将U盘插入车机后等待几分钟就会发现sh文件以及被执行。
Figure 23 执行POC
Figure 24 执行命令
该系统可以通过cmu_dataretrieval.up和dataRetrieval_config.txt执行info.sh脚本,USB端口是马自达汽车信息娱乐系统的攻击面,通过jci-dialog用两个已知的*nix命令来回显输出就能完成入侵过程。当然该入侵过程也是需要一定条件的,在脚本执行之前,汽车必须处于ACC模式或者需要发动机正在运行。这些缺陷可能会被滥用,导致马自达汽车上被安装RAT(远程访问木马)。
特斯拉汽车车联网系统攻击案例分析
¤ 远程攻击面
特斯拉在每辆特斯拉汽车都内置了一个WIFI TeslaService,它的密码是一个明文,保存在QtCarNetManager中,正常模式下不会自动连接。
TeslaGuest 这是一个由特斯拉4S店和充电站提供的WIFI热点,这一信息被保存在Tesla中,以便将来自动连接。研究人员可以制作一个钓鱼热点,Tesla用户使用CID搜寻充电桩时,将QtCarBrowser的流量重定向到自己的域名,可以达到远程攻击的目的。
除了WIFI技术,在蜂窝网络下,如果攻击者建立足够多的网站,使用网络钓鱼技术或者用户错误也可以达到入侵的目的。因为它是基于浏览器的攻击,在没有物理接触情况下攻击者是可以远程进行这种攻击的。
¤ 浏览器攻击
从Tesla车载浏览器的user-aget得到"Mozilla/5.0 (X11; Linux) AppleWebKit/534.34 (KHTML, like Gecko) QtCarBrowser Safari/534.34",可以得到QtWebkit的版本是2.2.x。这是一个比较老的版本,存在许多漏洞。腾讯科恩团队利用了其中两个漏洞来实现任意的代码执行达到攻击浏览器目的。
¤ 提升权限
尽管从车载浏览器得到一个命令行的shell,但是由于AppArmor机制限制了得到的shell是浏览器的普通权限,需要提升至root权限。
查看到CID的linux内核版本较低2.6.36,存在ARM Linux漏洞CVE-2013-6282可以利用该漏洞提升至root权限。
¤ 车内系统
除了CID之外,特斯拉还有三个更重要的嵌入式系统,他们是分别是IC,Parrot和GateWay。由于设计缺陷和缺乏强密码保护所以能够以root权限访问这些系统。
© IC
CID访问IC采用了ssh证书方式登录, 得到CID的root权限后发现可以直接ssh到IC不需要输入任何密码, root用户的SSH密钥已存储在“.ssh”文件夹中,
深入研究发现CID包含一个密钥轮换方案,汽车将从特斯拉服务器每 24 小时收到一个新的随机安全令牌,CID 然后将“tesla1”帐户密码设置为该令牌,并且通知 IC 新的令牌,然后 IC将该令牌以明文形式存储在其文件系统上。也可以root权限连接至CID。
© Parrot
扫描Parrot端口发现开放了telnet服务23端口,该端口没有任何密码验证措施可以随意访问,研究人员就这样控制了Parrot。
© Gateway
网关看起来比CID和Parrot安全得多,要想分析Gateway的话第一步要寻找其入口点,而二进制文件gw-diag提供了几条线索。查找shell条目是第一步,而二进制文件gw-diag提供了几条线索。gw-diag文件用于诊断网关,并提供了一种特殊的方法来通过端口3500调用网关上的某些功能。逆向分析二进制文件可以帮助研究人员找到一个名为ENABLE_SHELL的函数,经过多次实验发现printf "\x12\x01" | socat - udp:gw:3500激活网关在23端口的后门。因此找到了网关的入口。
第二步是指出后门的安全令牌。逆向网关的固件发现后门安全令牌硬编码在代码中
到现在为止已经可以完全访问网关。
¤ ECU二次编程
通过拆解CID硬件盒子,在CID主板上发现一个没有任何保护的SD卡,在SD卡中存储了一些调试与升级的文件。解压其中的release.tgz文件,结合sd卡中日志文件发现了网关固件gtw.hex。
对这些日子文件快速审查后,注意到了udsdebug.log。这个文件记录了整个升级过程,包括向ECU发送十六进制文件,配置继电器开关以及其他一些重要的程序。深入分析理解该日志文件能够更好的帮助研究人员了解特斯拉的软件升级流程。
在SD卡中还发现了名为release.tgz的压缩包文件,压缩文件中包含了众多的ECU软件包,软件包末尾附加校验值。压缩包中的文件名以ECU的名称命名。
gtw.hex文件是运行在网关上的文件,它将根据其地址配置更新。提取这个文件以便了解更多网关内部运行机制。前面的UDP3500端口实际上是用于诊断和维护目的的诊断端口。通常它收到的UDP消息格式如下:
所有的数据包会由调度器程序处理,调度器会根据tDbgMsg.msgid调用处理器tDbgMsg.msg_content执行相应动作。处理器通常是一个接口函数,它会按照msg_content的约定去调用真正的处理函数。
在所有的功能函数中,找到了一个ID为0x08的特殊函数。它功能是检查由msg_content命名的文件是否具有正确的格式,并且可以通过校验和检查。如果所有的检查都通过了,它会将文件重命名为boot.img,然后重新启动。下次重新启动后,似乎文化boot.img被加载并运行。所以,研究人员猜测网关的引导加载程序会检查SD卡上是否存在boot.img,并在需要时加载。
SD卡中除压缩文件中还有一些其他文件,例如log.cfg可能会保存日志实用程序的配置,并且所有由CID上传的* .upd文件指示显示软件更新应该在哪种模式运行。
现在来梳理完整的软件更新功能,整个更新功能由0x40006AE4控制,它会先检查一些关键的升级文件,如hwidacq.upd和service.upd来设置其工作模式。进行过必要的安全检查以确保整车更新过程是安全的。然后整车将尝试更新:
-
解压release.tgz并确保校验值是DWOD型。
-
检查压缩文件中是否存在manifest文件。更新程序将读取manifest文件获取固件的版本信息并将其保存供后续的升级使用。该文件还包含了自身的校验和值。
-
更新程序按照步骤处理”.hex”文件。该处根据0x4006321C处的结构数组读取文件。具体过程如下:
-
一个字符串指针,指向文件名
-
一个函数指针,用于处理和刷新程序。其中大部分是0x40029B1C,将其命名为pektronUpdate
-
配置,例如,如果BMS应该打开。尽管不同文件之间存在一些差异,但主要遵循以下步骤:
-
将十六进制文件转换为二进制流;
-
对于某些文件,检查文件是否符合要求;
-
做一些准备工作,包括关闭危险继电器,关闭电池等。
-
使用UDS协议发送固件。在大多数情况下,更新器只负责将目标十六进制下载到芯片。它不会在乎十六进制文件是否损坏。目标芯片上的引导加载程序需要将十六进制文件写入闪存,并检查每次引导时应用程序是否有效。
-
检查固件是否发送到目标ECU,并完全编程。
-
在处理所有这些文件之后,创建一个日志,然后重新启动
在此处,更新网关固件更加的容易些,因为程序运行在同一个目标芯片上,更新器只需要解锁闪存块,写入新数据并根据芯片手册重新锁定。
了解完整的升级流程后,研究人员可以自定义网关固件升级的方法:
-
将固件修改为定制版本。为了证明可以做到这点,科恩团队将ic.hex的CRC值更改为0xDEADBEEF,并修改了gtw.hex文件打开了工厂后门。这让即使汽车正在运行,也可以发送任何帧到CAN总线。
-
替换CRC的值或者用一些方法制造异常来规避一些其他可能隐藏的安全检测行为。
-
更改manifest清单和CRC校验值。然而还可以修改boot.img能够跳过一些升级过程中的检测。
-
将修改后的文件重新打包成release.tgz文件并添加修改后的CRC32的校验值。
-
将booted.img,release.tgz,service.upd传输至网关。
-
printf "\x08booted.img" | socat - udp:gw:3500
通过使用这些技术来跳过更新验证过程并将研究人员定制的代码编程到ECU中,现在可以在研究人员需要的情况下在ECU上永久运行自定义的代码。
¤ 网关逆向分析和破解
研究人员可以在网关上运行的许多重要任务中发现一些漏洞,这些漏洞几乎可以与CAN总线上的各种ECU进行通信。 他们将被列出如下:
-
特斯拉厂商将网关的20100和20101端口上的UDP广播设置为CAN消息接收器并将其传输到真正的CAN总线上的设计,研究人员可以通过发送UDP轻松伪造一些UDP信号来执行某些动作。打开行李箱:
printf "\x00\x00\x02\x48\x04\x00\x30\x07\x00\xFF\xFF\x00" | socat - udp:gw:20100
-
通过网关从不同CAN总线上发送比较重要的CAN消息比如车速,能够检测到车辆运行时ECU的一些动作。当车辆在高速运行时对研究人员向CAN总线发送开启后备箱的指令是没有响应的。但是当网关收到来自CAN总线或者UDP 20100端口的信息时,它将根据网关固件中结构列表将它转发给另一个CAN总线或UDP。然后研究人员可以使用以下命令发送CAN消息。当车辆运行或停止时,CAN消息将被发送到ID为0x45的PT-CAN总线以打开灯。
printf "\x01\x01\x02\x48\x04\x00\x30\x07\x00\xFF\xFF\x00" | socat - udp:gw:3500
printf "\x01\x05\x00\x6D\x40\xD0\xXX\xXX" | socat - udp:gw:3500
-
通过网关从不同CAN总线上发送比较重要的CAN消息比如车速,能够检测到车辆运行时ECU的一些动作。当车辆在高速运行时对研究人员向CAN总线发送开启后备箱的指令是没有响应的。但是当网关收到来自CAN总线或者UDP 20100端口的信息时,它将根据网关固件中结构列表将消息转发给相应的CAN总线或UDP。因此,研究人员可以通过更改固件中存储的结构以打开后备箱,或者在汽车高速运行时禁用自动锁功能,从而阻止一些重要的消息(比如BDY上的0x218的ID)。阻止从CH到PT CAN总线的一些ESP消息是相当危险的。
¤ CANBUS/UDS的脆弱性
统一诊断服务(UDS)已编入ISO-14229,并允许诊断功能控制车载电子控制单元(ECU)的功能。典型的功能包括读取存储的数据(如故障代码),读取实时数据(如引擎或车速),调用固件中的特定内置例程,解锁ECU以及执行一些特权操作,如重新编程ECU的固件等。
¤ 修复解锁ECU的种子和钥匙
仪表盘(IC)具有自己的电子控制器单元,连接到CAN-CH总线以便与其他ECU通信。 IC中的DSP接收来自CAN-CH总线的CAN消息,并将CAN消息转换为驱动器IC显示器上的可读信息,包括速度,转速等。
当研究人员重新烧写IC ECU的固件时,将CAN总线收发器连接到CAN-CH总线并捕获CAN消息。 研究人员发现有许多UDS数据帧用于重置ECU,解锁ECU和传输CAN消息中的数据。 最重要的一点是获得了用于发送UDS请求和接收UDS响应的CAN标识符。
每个UDS数据帧在CAN总线上作为CAN数据的一部分传输,并在左侧填充8个字节。 在分析这些UDS数据时,研究人员发现用于解锁ECU的一些UDS数据帧(也称为安全访问功能)具有一些有趣的响应数据。 当固件更新程序请求IC DSP发送安全访问种子时,ECU将一些常规数据作为随机种子响应:00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F。 此外,以下UDS数据帧包含安全密钥:35 34 37 36 31 30 33 32 3d 3c 3f 3e 39 38 3b 3a,它是由固件更新程序根据某些加密算法使用种子计算的。
假定IC ECU的固件为UDS安全访问服务产生一个固定的种子,这会导致用于解锁IC ECU的固定安全密钥。 因此,研究人员做了一些测试,在不同安全级别上向UDS安全访问功能发送多个随机种子请求,实际上IC ECU总是返回固定的16字节种子00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F。 收到固定种子后,研究人员直接将固定安全密钥35 34 37 36 31 30 33 32 3d 3c 3f 3e 39 38 3b 3a发送至UDS安全接入功能,并成功获得解锁ECU的正面响应。 现在,研究人员可以通过UDS功能在IC ECU上执行许多特权操作,例如按地址写内存,按地址读内存等。
下面显示了不同安全级别的数据流。
-
Figure 25 发送1级请求
Figure 26 发送级别1密钥并获得肯定响应
-
安全访问级别3
Figure 27 发送三级请求
Figure 28 发送级别3密钥并获得肯定响应
-
安全访问级别5
Figure 29 发送五级请求
Figure 30 发送级别5密钥并获得肯定响应
在网关固件中,研究人员发现一些按位XOR操作和AES算法已应用于UDS安全访问功能,以计算提供种子的安全访问密钥。 经过一些尝试后,得出结论:IC ECU的固件采用简单的按位XOR操作,在0x35的固定16字节种子上计算安全访问密钥。
安全访问密钥加密算法如下所示:
¤ 禁用ESP/ABS和动力辅助系统
如果可以通过CAN总线将UDS数据帧发送到目标ECU,并将ECU设置为某种特殊的诊断模式(如编程模式),则会导致ECU停止发送CAN消息并响应请求。
研究人员首先想到的是将电子驻车制动模块(EPB / EPBM)放入诊断会话中,并停止发送消息。但是,制动或转向没有负面影响。因此,研究人员专注于博世在特斯拉Model S上制造的电子稳定程序(ESP)。研究人员将ESP设置为低速诊断编程会话,并且发现在CAN-CH总线上没有任何与CAN车辆速度相关的CAN消息。结果,即使车辆实际高速移动,IC上的实时速度值也未被更新。另外,ICD将显示关于防抱死制动系统(ABS)的警报信息。如果您尝试在当前条件下进行汽车转向或制动,您会发现该车失去了助力转向助力和助力刹车,与正常情况相比,驾驶员在这种情况下驾驶和制动更加困难。这对司机来说可能是一个潜在的安全问题。
如下所示的Bash shell脚本可以通过Gateway注入UDS数据帧并以低速禁用ESP ECU。
¤ 远程控制车辆
基于上面提到的所有漏洞,研究人员可以远程攻击一辆特斯拉汽车,然后在汽车运行时向CAN总线发送危险指令,比如在行驶状态刹车。
# 座椅
printf "\x01\x03\x02\x09\x04\x00" | socat - udp:gw:3500
# 倒车镜
printf "\x01\x01\x05\x0a\x00\x01\x04\x00" | socat - udp:gw:3500
# 后备箱
printf "\x01\x01\x02\x48\x04\x00\x30\x07\x00\xFF\xFF\x00" | socat - udp:gw:3500
#天窗
printf "\x01\x01\x02\x08\x01\x50\x00\x00\x00\x00\x00\x00" | socat - udp:gw:3500
# 驻车模式
printf "\x01\x05\x00\x6D\x40\xD0\xXX\xXX" | socat - udp:gw:3500
整个研究过程下来,可以发现Tesla Model S具有联网能力且车机系统存在浏览器安全、Linux系统内核安全、固件更新机制不合理和网关调试后门等安全问题。综合利用后让远程控制形成一条通路,实现最终的破解。
特斯拉为了提升车辆安全性,在2016年9月增加了“代码签名”安全机制,对所有FOTA升级固件进行强制完整性校验,2017年破解研究中突破了该“代码签名”机制,同时展示了“特斯拉灯光秀”效果,涉及对特斯拉多个ECU的远程协同操控。
Figure 31 控制路径
利用海豚音攻击破解语音控制系统开启天窗分析
“海豚音”的攻击原理是将语音命令频率转换成为超声波频率信号,“海豚音”的攻击原理是将语音命令声音调制后加载到载波的超声波上,因为超出人耳接收频率的范围,无法被人听见,却可以被手机、智能家居以及智能汽车等智能设备的语音控制系统接收到。由于麦克风的非线性特性,会将原本被调制的语音命令声音解调、恢复到调制之前的状态,之后滤波器会过滤掉人耳不可听到的部分,这样语音指令可以消无声息的被语音识别系统识别到,最终实现攻击。
360智能网联汽车安全实验室连同浙江大学徐文渊教授团队针对引起外媒广泛关注的“海豚攻击”的研究成果,通过市面上主流智能汽车荣威eRX5的进行测试验证。实验人员成功使用了“海豚音”对车载语音助手进行了攻击测试,实现了可以在人耳听不到的情况下,通过超声波对车载语音助手下达指令,达到开启天窗、控制空调、导航等功能。
实验人员通过对eRX5语音系统硬件的研究,发现其在中控上方有两个驻极体麦克风,由于eRX5的特性,只有来自驾驶位的语音才能被语音识别系统所识别。经过实验人员反复的测试与验证发现将语音系统识别功能调整为驾驶员语音模式后,需要两个驻极体接收到语音中间有个微小的时间差,进行攻击测试,“海豚音”就够被系统成功识别到。
这种攻击方式主要针对的是人工智能领域。只要装载了语音助手的设备都可能被攻击,一旦未来这些设备接入物联网,将会为使用安全埋下较大隐患。该团队建议重新设计语音可控制系统以防御听不到的语音命令攻击。“通过软件升级的方式让硬件学会辨识声音来源究竟是人声还是超声波,可比召回所有智能设备进行硬件调整效率更高。”
四、2018年智能网联汽车信息安全建设建议
根据2017年智能网联汽车信息安全领域所发现的漏洞以及破解案例看来,目前汽车信息安全已处于一个稳定期。各厂家都已经注意并重视汽车信息安全风险带来的隐患,行业内部也开始制定相关标准解决此类问题。但目前态势还是安全建设滞后于安全研究的,所以在此提出一些安全建议供汽车厂商参考。
-
组建信息安全团队或组织
要做好信息安全工作,首先需要培养专职的人员总体牵头信息安全技术工作。目前大多数的汽车厂商信息安全团队和组织都是分离的,由平台部门和电子电器部门组成。对于公司内部来讲是跨组织跨架构的,但信息安全问题却是自上而下贯穿整体的,所以要做好信息安全工作需要成立实体或者虚拟的团队,将后台和前端放到一起共同协作解决信息安全的问题,这样才能够为全面防护打下良好的基础。
-
进行合理有效的威胁分析
近几年汽车信息安全攻击破解案例层出不穷,屡见不鲜。面对突如其来的信息安全风险,作为汽车厂商的安全人员应该怎么去面对?是否需要做到安全面面俱到,实现最大限度的安全防护?
没有绝对安全的系统,要做好信息安全工作首先要建立一个合理有效的威胁分析基础,不要为没有必要、或者极不可能的安全风险去花费高额的防护成本。从攻击者角度来讲,汽车是一种比较好破解的终端,因为汽车内部网络没有实际的防护措施。根据经验,有威胁的不是汽车漏洞本身,而是将漏洞串联起来,形成攻击链,形成非接触式的通信机制的漏洞。从攻击的影响范围来看,大范围批量控制的问题会对汽车厂商的品牌和产品产生负面影响,直接影响到汽车的口碑和销售。
从2017年的态势来看,汽车信息安全已经进入刷漏洞的时代。安全漏洞始终存在,我们只有建立动态防护体系,针对攻击能够进行动态调整,才能够做到攻防平衡。
-
控制上线前产品安全验收
信息安全工程是一个庞大的体系,从以往的破解案例来看,目前汽车领域的安全手段是滞后的。在汽车联网、智能化的产品开发设计之初就没有考虑到信息安全的问题,那么在产品开发完成后必然会被攻破,所以大多数汽车厂商都会选择建立安全咨询,通过咨询的标准进行落地,实现安全功能。
但目前的现状是国际或者国内没有相关的安全标准可以指导汽车厂家去做正向开发,即便正向开发出来也会存在设计和开发的差距问题,所以在没有安全标准及规范的环境下,最重要的关键环节是把控上线前的安全验收,将危害最严重、影响范围最广的漏洞解决以后,可以达到一种相对安全的状态。后续依靠持续的漏洞监测,保障不会因为新的漏洞造成入侵事件。
-
关注标准建设和法律法规
在汽车行业内,目前还没有形成套大家公认的信息安全标准来指导汽车厂商去进行信息安全体系的建设。从2017年的标准分析来看,国内的汽车信息安全标准可能会早于国际标准,目前国内的汽车智能化、网联化程度要高于国外,在国家部委及科技部门的指导推进下,各大标准组织逐步开始了汽车信息安全标准的立项与制定工作。根据发改委制定的《智能汽车创新产业发展战略》中可以发现汽车信息安全保障也是一项重要的工作内容,所以对于国内的标准组织和产品战略应该积极的参与跟进,希望各大汽车厂商、供应商、安全公司能够贡献自己智慧和能力,在国内汽车智能科技领先的条件下,引领国际标准。