1、第7章车联网安全第第7 7章章车联网安全车联网安全7.1车联网系统概述车联网系统概述7.2车联网系统威胁分析车联网系统威胁分析7.3车联网系统安全技术分析车联网系统安全技术分析第7章车联网安全7.1车联网系统概述车联网系统概述所谓车联网,是指利用先进传感技术、网络技术、计算技术、控制技术、智能技术,对车辆和交通进行全面感知,实现多个系统间大范围、大容量数据的交互,对每一辆汽车进行交通全程控制,对每一条道路进行交通全时空控制,以提供交通效率和交通安全为主的网络与应用。第7章车联网安全车联网作为“互联网+”战略的重要领域,对推动交通、汽车、能源、信息通信等产业的转型升级具有重要意义。但是我国的车联
2、网发展还处于初级阶段,车联网业务形态以“云”、“管”、“端”为主,因此本章针对车联网的安全分析也主要围绕“云”、“管”、“端”的场景展开。图71所示为车联网的体系结构。第7章车联网安全图71车联网体系结构第7章车联网安全 普通螺纹是我国应用最广泛的一种三角形螺纹,牙型角普通螺纹是我国应用最广泛的一种三角形螺纹,牙型角为为6060 普通螺纹基本牙型普通螺纹基本牙型3 3、普通螺纹的尺寸、普通螺纹的尺寸 第7章车联网安全 车削螺纹时,一般可采用车削螺纹时,一般可采用低速车削低速车削和和高速车削高速车削两种方法。低速车两种方法。低速车削螺纹可获得较高的精度和较细的表面粗糙度,但生产效率很低;削螺纹可
3、获得较高的精度和较细的表面粗糙度,但生产效率很低;高速车削螺纹比低速车削螺纹生产效率可提高高速车削螺纹比低速车削螺纹生产效率可提高1010倍以上,也可以得倍以上,也可以得较细的表面粗糙度,因此现在工厂中已广泛采用。较细的表面粗糙度,因此现在工厂中已广泛采用。(低速车削三角形螺纹时,为了保证螺纹车刀的锋利状低速车削三角形螺纹时,为了保证螺纹车刀的锋利状态,车刀材料最好用高速钢制成,并且把车刀分成粗、态,车刀材料最好用高速钢制成,并且把车刀分成粗、精车刀并进行粗、精加工。精车刀并进行粗、精加工。车螺纹主要有三种进刀方法:车螺纹主要有三种进刀方法:6 6、车螺纹方法、车螺纹方法第7章车联网安全 直进
4、法车螺纹时,只利用中滑板进给,在几次工作行程直进法车螺纹时,只利用中滑板进给,在几次工作行程中车好螺纹,这种方法叫直进法车螺纹。直进法车螺纹可以得中车好螺纹,这种方法叫直进法车螺纹。直进法车螺纹可以得到比较正确的牙型。但车刀切削刃和刀尖全部参加切削,螺纹到比较正确的牙型。但车刀切削刃和刀尖全部参加切削,螺纹齿面不易车光,并且容易产生齿面不易车光,并且容易产生“扎刀扎刀”现象。因此,只适用于现象。因此,只适用于螺距螺距Pl.5mmPl.5mm的螺纹。的螺纹。6 6、车螺纹方法、车螺纹方法第7章车联网安全 斜进法车削时,除用中滑板进给外,小滑板只向一个方斜进法车削时,除用中滑板进给外,小滑板只向一
5、个方向进给,这种方法称斜进法。当螺距较大,粗车时,可用这种向进给,这种方法称斜进法。当螺距较大,粗车时,可用这种方法切削。方法切削。6 6、车螺纹方法、车螺纹方法第7章车联网安全 左右切削法车削时,除了用中滑板进给外,同时利用小左右切削法车削时,除了用中滑板进给外,同时利用小滑板的刻度把车刀左、右微量进给滑板的刻度把车刀左、右微量进给(俗称借刀俗称借刀),这样重复切削,这样重复切削几次工作行程,直至螺纹的牙型全部车好。几次工作行程,直至螺纹的牙型全部车好。6 6、车螺纹方法、车螺纹方法车削无退刀槽的螺纹车削无退刀槽的螺纹车削有退刀槽的螺纹车削有退刀槽的螺纹第7章车联网安全 高速车螺纹时,最好使
6、用高速车螺纹时,最好使用YTl5(YTl5(车钢料车钢料)牌号的硬质合金螺牌号的硬质合金螺纹车刀,切削速度取纹车刀,切削速度取v vc c5050100m100mminmin。车削时只能用直进。车削时只能用直进法进刀,使切屑垂直于轴线方向排出或卷成球状较理想。法进刀,使切屑垂直于轴线方向排出或卷成球状较理想。高速车螺纹时应注意的问题:高速车螺纹时应注意的问题:因工件材料受车刀挤压使大径胀大,因此,车削螺纹大因工件材料受车刀挤压使大径胀大,因此,车削螺纹大径应比基本尺寸小径应比基本尺寸小0.20.20.4mm0.4mm。因切削力较大,工件必须装夹牢固。因切削力较大,工件必须装夹牢固。因转速很高,
7、应集中思想进行操作。因转速很高,应集中思想进行操作。6 6、车螺纹方法、车螺纹方法第7章车联网安全 车削螺纹时,一般都要分几次进给才能完成。如果车刀车削螺纹时,一般都要分几次进给才能完成。如果车刀刀尖不在前一次工作行程的螺旋槽内,而是偏左、偏右或在牙刀尖不在前一次工作行程的螺旋槽内,而是偏左、偏右或在牙顶中间,使螺纹车乱,这种现象称为乱牙。顶中间,使螺纹车乱,这种现象称为乱牙。产生乱牙的原因主要是,工件转数不是车床丝杠转数的整产生乱牙的原因主要是,工件转数不是车床丝杠转数的整数转而造成的。判断车螺纹时是否会产生乱牙,可用下面公式数转而造成的。判断车螺纹时是否会产生乱牙,可用下面公式计算,计算,
8、i iP PP P丝丝 n n丝丝 n n (14)(14)式中式中ii传动比;传动比;P P工件螺距;工件螺距;n n 工件转数工件转数 P P丝丝车床丝杠螺距;车床丝杠螺距;n n丝丝 丝杠转数丝杠转数 6 6、车螺纹方法、车螺纹方法第7章车联网安全 例例2 2 车床丝杠螺距为车床丝杠螺距为12mm12mm,车削工件螺距为,车削工件螺距为8mm8mm,是否会产,是否会产生乱牙现象。生乱牙现象。6 6、车螺纹方法、车螺纹方法例例3 3 车床丝杠螺距为车床丝杠螺距为6mm6mm,加工螺距为,加工螺距为1.5mm1.5mm,是否会产,是否会产生乱牙现象。生乱牙现象。解根据公式解根据公式(44)(
9、44)i i8 812121 11.51.5 n n丝丝 n n 即丝杠转一转,工件转了即丝杠转一转,工件转了1.51.5转,再次按下开合螺母转,再次按下开合螺母时,可能车刀刀尖在工件已车出螺纹的时,可能车刀刀尖在工件已车出螺纹的l l2 2螺距处,它的螺距处,它的刀尖正好切在牙顶处,使螺纹车乱刀尖正好切在牙顶处,使螺纹车乱 解根据公式解根据公式(14)(14)i i1.51.56 6l l4 4 n n丝丝 n n 即丝杠转即丝杠转l l转时,工件转过转时,工件转过4 4转,只要按下开合螺母,转,只要按下开合螺母,刀尖总是在原来的螺旋槽,不会产生乱牙刀尖总是在原来的螺旋槽,不会产生乱牙 第7
10、章车联网安全 预防车螺纹时乱牙的方法常用的是开倒顺车法。车刀与丝预防车螺纹时乱牙的方法常用的是开倒顺车法。车刀与丝杠的传动链没有分离过,车刀始终在原来的螺旋槽中倒顺运动,杠的传动链没有分离过,车刀始终在原来的螺旋槽中倒顺运动,这样就不会产生乱牙。这样就不会产生乱牙。6 6、车螺纹方法、车螺纹方法第7章车联网安全1.云系统云系统 车联网的云系统主要用于终端的接入、车辆的运行状态管理、车辆收费管理、交通信息管理、应用程序的发布以及数据存储、大数据分析与处理等,为驾驶者提供导航、路况信息、停车管理、远程升级等云服务。第7章车联网安全2.管系统管系统 管系统即网络通信,指能实现融合通信及接入互联网的能
11、力或技术。管道主要用于解决车与车、车与路、车与云、车与行人等之间的互联互通,实现车辆自组织网络、移动通信网、无线局域网及多种异构网络之间的通信。管道是车联网的保障,是公共网络与专有网络的统一体。第7章车联网安全3.端系统端系统 端系统在车联网中指的是泛在的通信终端,包括具备车内通信、车间通信、车路通信、车网通信能力的车载终端以及具备车路通信、车网通信能力的道路基础设施,其功能是采集和获取车辆的信息,感知行车状态与环境,同时让汽车具备寻址和网络标识等能力。第7章车联网安全7.2车联网系统威胁分析车联网系统威胁分析7.2.1车联网云平台威胁分析车联网云平台威胁分析1.车联网云平台框架车联网云平台框
12、架车联网云平台的主要组成部分包括:云平台的基础设施,是实现云平台的基础;云平台数据,是指存储在云平台中的数据;云平台应用,是指实现外部应用的云平台服务。第7章车联网安全1)云平台基础设施车联网云平台的基础设施划分为三类:服务器、存储和网络连接。服务提供商可能会提供虚拟服务器实例,在这些实例上,用户可以安装和运行一个自定义的映像。持久性的存储是一种单独的服务,客户可以单独购买。最后,还会有一些用于扩展网络连接的产品。基础架构服务可全面虚拟化服务器、存储设备和网络资源,聚合这些资源,并基于业务优先级将资源准确地按需分配给应用程序。第7章车联网安全2)云平台数据云平台数据是基于云计算商业模式应用的数
13、据集成、数据分析、数据整合、数据分配、数据预警的技术与平台的总称。数据安全意指通过一些技术或者非技术的方式来保证数据的访问是受到合理控制的,并保证数据不被人为地或者意外地损坏而泄露或更改。从技术角度,可以通过防火墙、入侵检测、安全配置、数据加密、访问认证、权限控制、数据备份等手段来保证数据的安全性。第7章车联网安全3)云平台应用云平台应用使用很普遍,如车辆远程控制系统、车辆应急响应系统等,而这些服务往往都使用B/S的方式进行公布。在Web安全中,由于网站是开放给所有用户的,它在开放业务给用户的时候,也把自己暴露给了黑客,入侵网站相比入侵其他的安全领域就容易得多。那么在防御体系终究会被打破的预估
14、下,如何快速、精确地发现安全影响将成为所有整车厂商面临的安全问题。第7章车联网安全2.车联网云平台面临的威胁车联网云平台面临的威胁从以上的分析看,云平台下需要进行安全考虑的部分主要是:虚拟化、云中数据和云平台应用三个部分。1)车联网云平台虚拟化威胁车联网云平台虚拟化威胁(1)服务器虚拟化造成网络架构改变。服务器虚拟化过程中变动最大的一环就是网络架构的改变,网络架构发生变化相应地会产生特殊的安全问题。第7章车联网安全(2)服务器虚拟化导致负载过重或系统服务器崩溃。服务器虚拟化后,每一台服务器都将支持若干个重要的资源密集型应用程序,这些应用程序将会争夺同一硬件服务器的带宽、内存、处理器和存储等资源
15、。(3)虚拟机溢出将导致失去安全系统的保护。管理程序设计过程中的安全隐患会传染同台物理主机上的虚拟机,这种现象被称作“虚拟机溢出”。第7章车联网安全(4)虚拟机迁移增加服务器遭受渗透攻击的机会。同一台物理服务器上的多个虚拟机可以相互通信,在通信过程中会产生安全隐患,因为外部的网络安全工具从防火墙到入侵检测和防护系统,再到异常行为监测器,都无法监测到物理服务器内部的流量。(5)虚拟机补丁引起的安全问题。由虚拟机补丁引起的安全问题有两种情况:一是安装补丁的进度跟不上虚拟机用户使用的实际需要。第7章车联网安全二是许多用户会保持少量的重要镜像,从这些镜像推出新虚拟机,或者将虚拟机拍一个快照写入硬盘,需
16、要时利用离线库中存储的许多虚拟机中的一个虚拟机进行灾难恢复,但是,用于灾难恢复的虚拟机可能并没有更新杀毒软件病毒库和系统补丁文件,那么虚拟机在运行时就可能引发安全问题。第7章车联网安全2)车联网云平台数据存储威胁车联网云平台数据存储威胁(1)数据的加密存储问题。在传统的信息系统中,一般采用加密方式来确保存储数据的安全性和隐私性。(2)数据隔离问题。尽管云服务提供商会使用一些数据隔离技术(如数据标签和访问控制相结合)来防止对混合存储数据的非授权访问,但非授权访问通过程序漏洞仍然是可以实现的,比如GoogleDocs在2009年3月就发生过不同用户之间文档的非授权交互访问。第7章车联网安全(3)数
17、据迁移问题。当云中的服务器“宕机”时,为了确保正在进行的服务能继续进行,需要将正在工作的进程迁移到其他服务器上。(4)数据残留问题。数据残留是指数据删除后的残留形式(逻辑上已被删除,物理上依然存在)。数据残留可能无意中透露敏感信息,所以即便是删除了数据的存储介质也不应该被释放到不受控制的环境,如扔到垃圾箱或者交给其他第三方。第7章车联网安全3)车联网云平台应用威胁车联网云平台应用威胁车联网硬件设备的后端云服务本质上是一种Web 应用,整车厂商或服务厂商通过Web平台对设备进行统一管理和数据分析,通过各类消息服务或API实现设备数据采集和系统集成。Web应用所面临的安全风险同样出现在车联网云平台
18、中。第7章车联网安全随着主机操作系统安全机制和信息系统安全架构的不断完善,大多数信息系统在网络边界都部署了防火墙、IPS 等安全设备,使得针对主机漏洞的攻击越来越难。而许多Web应用由于要对外提供服务,不得不暴露在外部网络中,使其更容易受到外部攻击,这也使得越来越多的黑客都将注意力转向了对Web 应用程序漏洞的攻击。黑客通过攻击外部Web 应用,取得相应权限后,还能进一步渗透进入企业内网,从而威胁到内部网络的安全。第7章车联网安全7.2.2车联网网络传输威胁分析车联网网络传输威胁分析车联网的传输网络是一个多网络叠加的开放性网络,传输途径会经过多重不同的网络,因而会面临比传统网络更严重的威胁。车
19、联网的网络传输面临的主要威胁体现在以下方面。第7章车联网安全1)网络协议漏洞网络传输层功能本身的实现中需要的技术和协议存在安全缺陷,特别是在异构网络信息交换方面,容易被逆向破解,且易受到异步攻击、合谋攻击等。2)恶意代码威胁随着车联网业务终端的日益智能化,车联网应用更加丰富,同时也增加了终端感染病毒、木马或恶意代码入侵的渠道,这些病毒可以直接进入车联网的传输网络,增加网络传输的安全风险。第7章车联网安全3)异构网络融合威胁随着网络融合的加速以及网络结构的日益复杂,网络传输层中的通信协议不断增多,当数据从一个网络传递到另一个网络时会涉及身份认证、密钥协商、数据机密性和完整性保护等诸多问题,因而面
20、临的安全威胁将更加突出。4)恶意节点威胁在未来车联网应用场景中,直连模式的车与车通信将成为路况信息传递、路障报警的重要途径,而现有的车联网通信方式基本不能有效实施对车辆节点的安全接入控制,对不可信或失控节点的隔离与惩罚机制还未建立完善。第7章车联网安全5)拒绝服务攻击威胁IP化的移动通信网络和互联网及下一代互联网将成为车联网网络传输层的主要载体。一个IP化的开放性网络将面临假冒攻击、泛洪攻击等网络安全威胁,且车联网中的业务节点数量将不断增多,在大量数据传输时将使承载网络拥堵,产生拒绝服务攻击。第7章车联网安全6)数据传输威胁车联网大量使用无线通信技术,数据传输面临更大威胁。攻击者可以窃取、篡改
21、或删除通信链路上的数据,并伪装成网络实体截取业务数据及网络流量进行主动和被动分析。数据传输威胁主要包括如下几种:(1)窃听攻击。攻击者通过窃听无线通信链路上的数据,获取智能设备终端的隐私数据和敏感数据。(2)篡改攻击。攻击者可以篡改终端向车联网云平台提交的业务数据,向车联网提供错误的数据信息。第7章车联网安全(3)伪造攻击。在车联网终端的控制指令传输过程中,攻击者可以伪造一些携带控制指令的报文发给智能终端,达到未授权操作的效果。(4)重放攻击。从目前的分析来看,重放攻击主要分为两个方面:一种是针对未加密的通信协议重放控制指令攻击设备;另一种是通过会话令牌的重复使用而发起的攻击行为。第7章车联网
22、安全7.2.3车联网终端威胁分析车联网终端威胁分析本书主要从五个方面来分析车联网终端设备面临的威胁,分别是车载操作系统安全威胁、数据存储安全威胁、应用安全威胁、接入安全威胁和通信安全威胁。1)车载操作系统安全威胁车载操作系统安全威胁任何操作系统都存在漏洞,车载操作系统也不例外,攻击者可利用车载操作系统漏洞入侵汽车。(1)操作系统移植中存在的安全威胁。(2)软件“越狱”带来的安全风险威胁。(3)操作系统“刷机”带来的安全风险威胁。第7章车联网安全2)终端数据存储安全威胁终端数据存储安全威胁汽车数据除了供车辆上的显示设备使用外,还被通过蜂窝网、WiFi或蓝牙的方式发送给手机客户端或者传送到车辆云平
23、台供进一步分析使用。隐私泄露产生的原因包括数据在无线传输过程中被窃取、手机和云平台数据存储和管理不安全、攻击者利用恶意车联网应用非法获得数据等。第7章车联网安全3)终端应用安全威胁终端应用安全威胁应用软件安全威胁包括:恶意软件中包含病毒;合法软件的程序流程被篡改或植入恶意代码;攻击者通过将代码反编译分析原程序功能,进而找出API 和用户交互的接口,然后利用该接口漏洞对用户信息或系统发起进一步攻击。上述威胁可能会导致车辆系统被感染、用户隐私泄露,甚至车辆被非法控制。第7章车联网安全4)终端接入安全威胁终端接入安全威胁智能车辆上的无线接入方式有蓝牙、WiFi、4G 等,有线接入方式有USB、OBD
24、 接口等。由于缺少防攻击手段,这些接口或无线接入可能会把潜在威胁带入到智能车辆内。5)终端通信安全威胁终端通信安全威胁车辆终端利用了很多无线通信技术。例如,利用无线信号进行车辆解锁,利用蓝牙在车辆和手机之间传输信息等。通信数据未加密、加密密钥丢失、加密强度低、通信协议无保护、协议保护方法太简单等,都会带来通信数据泄漏或通信过程被窃听等威胁。第7章车联网安全7.3车联网系统安全技术分析车联网系统安全技术分析车联网系统面临的安全威胁归根到底是由构成车联网系统的软硬件存在的安全漏洞引起的,如何挖掘、利用、修复这些安全漏洞,如何突破新的车联网安全攻防技术,就成了车联网安全研究者们关注的核心问题。第7章
25、车联网安全7.3.1硬件安全测试技术分析硬件安全测试技术分析硬件是计算和通信的根本,它使全部软件、算法和通信协议发挥作用,车联网系统的相关硬件也不例外。1.硬件设备攻击面分析硬件设备攻击面分析硬件设备是物理世界的接口体现,也是虚拟数字世界的通信媒介,相关的数据转换会首先经过硬件设备。硬件设备存在的攻击面可能有:存储介质、硬件通信接口、网络通信接口等。第7章车联网安全1)存储介质(1)RAM(随机存取存储器)。RAM是与CPU直接交换数据的内部存储器,可以随时读写且速度很快。RAM一般作为操作系统或其他正在运行的程序的临时数据存储媒介。RAM有易失性、随机存取、访问速度快、对静电敏感、再生的特点
26、。根据存储单元的工作原理不同,RAM分为静态随机存储器和动态随机存储器。第7章车联网安全静态随机存储器:静态存储单元是在静态触发器的基础上附加门控管构成的,因此,它是靠触发器的自保功能存储数据的。动态随机存储器:动态RAM的存储矩阵由动态MOS存储单元组成。动态MOS存储单元利用MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于0,所以电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。通常把这种操作称为“刷新”或“再生”,因此DRAM内部要有刷新控制电路,其操作也比静态RAM复杂。第7章车联网安全(2)ROM(只读存储器)。ROM是一种只
27、能读出事先所存数据的固态半导体存储器,其特性是一旦储存资料就无法再将之改变或删除,通常用在不需要经常变更资料的电子或终端系统中,并且资料不会因为电源关闭而消失。第7章车联网安全2)硬件通信接口硬件通信接口电路板上的不同硬件之间以及电路板与外部世界之间都需要进行相互通信,这些通信都基于定义好的标准硬件通信协议和接口。从攻击者角度来看,可以通过嗅探或恶意数据注入等方式来刺探通信过程,可以从以下描述的通用接口中具体分析一些安全隐患。第7章车联网安全(1)UART(通用异步收发传输器):UART是一种硬件外设之间的异步通信收发器,它可用于同一电路板上不同器件间的通信(如单片机与电机或LED屏幕通信)或
28、两个不同设备(如单片机与PC通信)之间的通信。这是一个危险的攻击面,在许多设备中,电路板上的UART端口是开放的,攻击者可以利用该端口入侵设备,以获得某种类型的shell控制权、自定义命令行控制端、日志输出等。图 7 2 所示为一个标准的四引脚输出 UART 端口。第7章车联网安全72四引脚输出UART端口第7章车联网安全(2)单片机调试端口:单片机在运行时都能利用特定的引脚进行调试,这些引脚(端口)是为开发者和设计者预留的,利用它们可以进行设备调试、固件内存读写、后期引脚控制测试等。然而对于攻击者来说,这类调试端口可能会成为最致命的攻击面。第7章车联网安全(3)JTAG接口:随着电路板的设计
29、越来越小,成型产品的后期测试变得非常困难,为了对电路板执行高效的后期测试,多家主要电子制造商联合成立了一个组织,并确定了一系列电路板后期测试方法标准,后称为IEEE 1149.1,也称为JTAG测试协议。该协议具体定义了单片机调试的标准接口和命令。第7章车联网安全标准的JTAG接口包括4个引脚接口和1个额外可选的TRST引脚接口:TMS测试模式选择;TCK测试时钟;TDI测试数据输入;TDO测试数据输出;TRST测试复位(可选)。第7章车联网安全(4)cJTAG(紧凑型JTAG):这是一种新的JTAG测试协议,它不是对JTAG的替代,而是在其基础上的一个向后兼容扩展测试协议,它定义了TCK和T
30、MS两个引脚接口和TAP的一些实现特性。(5)SWD(串行线调试):这是单片机调试的另一种方法,它定义了SWDIO(双向)和SWCLK(时钟)引脚接口,它是基于ARM技术的ARM CPU双向线标准调试协议,来源于V5版本的ARM调试接口定义,其中说明了SWD是一种比JTAG更高效的调试方法。第7章车联网安全(6)I2C(内置集成电路):I2C是飞利浦公司发明的,用于同块电路板上芯片之间进行短距离通信的协议。(7)SPI(串行外设接口):SPI也是芯片间的一种短距离通信协议,由摩托罗拉公司发明。它具备全双工和主从架构特点,比I2C吞吐量更高,并使用了以下四种串口总线:SCLK(串行时钟信号线 S
31、CL)、MOSI(串行数据输出信号线)、MISO(串行数据输入信号线)和SS(从选择信号线)。第7章车联网安全(8)USB:USB接口一般用于充电和数据通信,后期出于方便也用于问题调试,可进行动态数据嗅探和静态数据模糊测试,以分析其中的安全问题。(9)HMI(交互接口):与传感器接口类似,HMI不局限于工控系统应用,它也被定义为IoT以及车联网架构中用户与设备之间的通信接口,用户可以通过它来直接对设备进行操控,如触屏、按下按钮、触摸板等。第7章车联网安全(10)其他硬件通信接口:还存在其他与硬件设备的通信方式,作为渗透测试人员,要积极分析并擅于发现接口的一些安全绕过和设置错误问题。其他硬件通信
32、接口包括(但不限于)以下几类:DSubminiature(显示器VGA类)接口、Ecommended Standards(RS232,RS485等(推荐性标准)接口及OBD接口等。第7章车联网安全3)网络通信接口网络通信接口网络通信接口允许设备与包括传感器网络、云端和移动设备的其他数字设备进行网络通信,而负责网络通信的硬件接口可能包含自主独立的单片机/固件等,所以,这种情况的攻击面可能为底层通信实现的固件或驱动程序代码。(1)无线网络通信接口:无线网络通信接口存在一些已知的安全问题,从攻击者角度看,可对无线芯片进行诸如物理破坏、拒绝服务、安全验证绕过或代码执行等攻击。第7章车联网安全(2)以太
33、网接口:以太网设备接口都存在一些底层TCP/IP通信漏洞、硬件实现漏洞和其他攻击向量。(3)无线电通信接口:由于很多车联网产品都集成或转向无线电通信方式,无线电通信接口将会是一个关键的攻击面,在很多情况下,无线通信要比有线通信更加高效。第7章车联网安全2.固件安全分析固件安全分析固件是一般存储于设备中的电可擦除只读存储器EEPROM或FLASH芯片中,可由用户通过特定的刷新程序进行升级的程序。一般来说,担任着一个电子产品最基础、最底层工作的软件才可以称之为固件,比如计算机主板上的基本输入/输出系统BIOS。通常这些硬件内所保存的程序是无法被用户直接读出或修改的。第7章车联网安全下面将着重介绍如
34、何提取固件和分析固件。1)识别元器件识别元器件在介绍哪些元器件可用于存储固件之前,首先来讨论一下,如何识别PCB上的元器件。电路识别在对电路进行分析之前,需要对PCB电路图和电子元器件知识有简单的了解。PCB,中文名称为印制电路板,又称印刷线路板,是电子元器件的支撑体,是电子元器件电气连接的载体。最明显的信息是芯片上的标签,标签中可能包含了制造商名称、型号和芯片描述。第7章车联网安全图73电路板上的电子元器件第7章车联网安全2)固件的存储位置固件的存储位置一块PCB上可能有很多地方可以用于存储固件。事实上,在某些终端设备中,固件确实被存储在多个位置。假如有能力找出并识别电路板上的存储芯片,那么
35、下一步就需要了解这些存储芯片可以被分为哪些不同类型,以及它们各自常见的用途。在大部分硬件产品中多采用Flash芯片作为存储器,提取固件主要也是通过读取Flash芯片进行的。下面介绍几种常见的Flash芯片。第7章车联网安全(1)I2 C EEPROM。I2 C EEPROM采用的是IIC通信协议。I2 C通信协议具有的特点:简单的两条总线线路,一条串行数据线(SDA),一条串行时钟线(SCL);串行半双工通信模式的8位双向数据传输,位速率标准模式下可达100 Kbt/s;一种电可擦除可编程只读存储器,掉电后数据不丢失,由于芯片能够支持单字节擦写,且支持擦除的次数非常之多,一个地址位可重复擦写的
36、理论值为100万次。图74所示是一款I2 C EEPROM芯片。第7章车联网安全图74一款I2 C EEPROM芯片第7章车联网安全(2)SPI NorFlash。SPI NorFlash采用的是SPI 通信协议。有4线或者3线通信接口,由于它有两个数据线能实现全双工通信,因此比I2 C通信协议的 I2 C EEPROM的读写在速度上要快很多。SPI NorFlash具有NOR技术Flash Memory的特点,即程序和数据可存放在同一芯片上,拥有独立的数据总线和地址总线,能快速随机读取,允许系统直接从Flash中读取代码执行;可以单字节或单字编程,但不能单字节擦除,必须以Sector为单位或
37、对整片执行擦除操作,在对存储器进行重新编程之前需要对Sector或整片进行预编程和擦除操作。图75所示为一款SPI NorFlash芯片。第7章车联网安全图75一款SPI NorFlash芯片第7章车联网安全(3)Parallel NorFalsh。ParallelNorFalsh也叫做并行NorFlash,采用Parallel接口通信协议,拥有独立的数据线和地址总线。它同样继承了NOR技术Flash Memory的所有特点。由于采用了Parallel接口,Parallel NorFalsh相对于SPI NorFlash来讲,支持的容量更大,读写的速度更快,但是由于占用的地址线和数据线太多,在
38、电路电子设计上会占用很多资源。Parallel NorFalsh读写时序类似于SRAM,只是写的次数较少,速度也慢,由于其读时序类似于SRAM,读地址也是线性结构,所以多用于不需要经常更改程序代码的数据存储。图76所示为一款Parallel NorFalsh芯片。第7章车联网安全图76一款Parallel NorFalsh芯片第7章车联网安全(4)Parallel NandFlash。ParallelNandFlash同样采用了Parallel接口通信协议。NandFlash在工艺制程方面分有三种类型:SLC、MLC和TLC。NandFlash技术Flash Memory具有以下特点:以页为单
39、位进行读和编程操作,以块为单位进行擦除操作;具有快编程和快擦除的功能,其块擦除时间是2ms,而NOR技术的块擦除时间达到几百ms;芯片尺寸小、引脚少,是位成本最低的固态存储器;芯片包含有坏块,其数目取决于存储器密度,坏块不会影响有效块的性能,但设计者需要有一套的坏块管理策略。图77所示为一款Parallel NandFlash芯片。第7章车联网安全图77一款Parallel NandFlash芯片第7章车联网安全(5)SPI NandFlash。SPI NandFlash采用了与SPI NorFlash一样的SPI通信协议,在读写的速度上没什么区别,但在存储结构上却采用了与Parallel N
40、andFlash相同的结构,所以SPI NandFlash相对于SPI NorFlash具有擦写的次数多,擦写速度快的优势,但是在使用过程中会与Parallel NandFlash一样出现坏块,因此,也需要做特殊坏块处理才能使用。图78所示是一款SPI NandFlash芯片。第7章车联网安全图78一款SPI NandFlash芯片第7章车联网安全(6)eMMC Flash。eMMC采用统一的MMC标准接口,自身集成MMC Controller,存储单元与NandFlash相同。针对Flash的特性,eMMC产品内部已经包含了Flash管理技术,包括错误探测和纠正、Flash平均擦写、坏块管理
41、、掉电保护等技术。MMC接口速度高达每秒52MB。eMMC具有快速、可升级的性能,同时其接口电压可以是 1.8V或者3.3V。图79所示为一款eMMC Flash芯片。第7章车联网安全图79一款eMMC Flash芯片第7章车联网安全(7)UFS2.0。UFS闪存规格采用了新的标准2.0接口,它使用的是串行界面,很像PATA、SATA的转换,并且它支持全双工运行,可同时读写操作,还支持指令队列。相比之下,eMMC是半双工,读写必须分开执行,指令也是打包,在速度上就已经是略逊一筹了,而且UFS芯片不仅传输速度快,功耗也要比eMMC5.0低一半,可以说是日后旗舰手机闪存的理想搭配。目前仅有少数的半
42、导体厂商提供封装成品,如三星、东芝电子等。图710所示为一款UFS2.0芯片。第7章车联网安全图710一款UFS2.0芯片第7章车联网安全3)常见固件获取方式常见固件获取方式常见的固件获取方式主要有四种:官网提供固件下载、抓包分析固件更新URL、调试串口获取、暴力读取固件存储芯片数据。官方提供固件下载的获取方式多用于手机、路由器、相机等设备(车载终端设备也存在,但比较少)的固件获取但大多数终端设备的官网没有直接提供下载连接。第7章车联网安全(1)工具和设备简介。从存储芯片中提取固件一般需要使用到的工具和设备有:夹式放大镜、镊子、热风抢拆吹机、焊接台、编程器及其相关软件,如图711所示。第7章车
43、联网安全图711提取固件的常用工具及设备第7章车联网安全(2)编程器介绍。编程器是为可编程的集成电路写入数据的工具,主要用于单片机(含嵌入式)/存储器之类芯片的编程。编程器主要修改只读存储器中的程序。编程器通常与计算机连接,配合编程软件使用。Windows下的图形界面,使用鼠标进行操作,支持Windows XP/Windows 7及以上版本的操作系统;具有编程提示功能,控制程序工作界面友好,对芯片的各种操作十分简单。读取Flash芯片,需要借助编程器,编程器又称烧录器、写入器、写码器,是专门用来对IC芯片进行读写、编程/烧录的仪器。第7章车联网安全4)从Flash芯片中获取固件的基本流程基本流
44、程:先辨别Flash芯片,再使用吹焊机拆解芯片,最后使用编程器获取二进制数据。(1)辨别Flash芯片。(2)使用吹焊机拆解芯片。在确认Flash芯片后,使用吹焊机(如图712所示)和镊子拆卸芯片。第7章车联网安全图712吹焊机第7章车联网安全(3)使用编程器获取二进制数据。把Flash芯片放入编程器中,再把编程器的USB口插入电脑,用CH341A编程器软件读取,使用编程器软件之前,应先安装驱动程序。一切就绪以后,编程器软件右下角显示“设备连接状态:已连接”,如图713所示。第7章车联网安全图713CH341A编程器第7章车联网安全单击编程器软件界面中的“检测”按钮,识别固件型号,如图714所
45、示。第7章车联网安全图714识别同件型号第7章车联网安全5)调试固件调试固件(1)用Binwalk等进行初步信息收集。下面以施耐德PLC以太网固件为例介绍IDA静态分析二进制固件文件的思路,用到的分析工具有Binwalk、IDA以及WinHex等。分析固件文件首先需要了解文件结构、编程语言指令集、运行系统、文件压缩格式等信息。首先,使用Binwalk初步扫描分析固件的结构,可以看出从0 x385位置后为Zlib压缩格式,如图715所示。第7章车联网安全图715分析固件结构第7章车联网安全也可以使用WinHex直接查看二进制文件,如图716中Pattern字节为789C的是Zlib算法压缩格式。
46、一般,1F8B为gzip算法、5D000080为LZMA算法,Binwalk就是根据这种方式来判断文件格式的。第7章车联网安全图716用WinHes查看二进制文件第7章车联网安全接下来,可以直接使用WinHex删除789C前面的内容,再用Python调用Zlib解压库解压代码,并保存为NOE_DE.bin,如图717所示。第7章车联网安全图717解压zlib数据第7章车联网安全接下来,再用Binwalk扫描分析固件结构,可以发现输出信息多了很多,包含LZMA压缩格式的数据、HTML文件、XML文件、系统内核固件以及重要的字符串信息等,如图718所示。第7章车联网安全图718分析解压后文件第7章
47、车联网安全最后,使用前面提到的其他命令来获取更多固件信息,例如,用binwalk l 1000 A NOE_DE.bin命令获取固件构架,如图719所示;用binwalk S NOE_DE.bin命令列举一些重要的信息,如图720所示。第7章车联网安全图719获取固件构架第7章车联网安全图720用binwalkS NOE_DE.bin命令列举信息第7章车联网安全(2)导入IDA分析。在通过Binwalk探明了系统平台和固件指令架构的基础上,使用逆向利器IDA具体分析固件代码。一个全新的二进制固件相比常见的x86构架的可执行程序是有很多不同的。虽然IDA对常见的处理器架构做了识别,但还是有很多嵌
48、入式设备处理器架构识别代码,这就需要自己阅读处理器芯片指令集并编写解析代码。第7章车联网安全固件导入IDA一般有以下几个步骤:识别处理器类型,结合指令集编写解析模块插件;结合处理器修复代码中的函数位置;确定固件代码段基址;重构符号表。这里,测试的固件为PowerPC bigendian处理器,IDA可以识别,因此可以跳过第一个步骤直接开始修复代码函数位置的工作。第7章车联网安全 修复代码函数位置。通过Binwalk收集的信息可以知道固件使用的是PowerPC bigendian处理器类型。导入固件后会发现IDA找不到代码,通过在代码中找到PowerPC压栈指令“9421FF?”的方式对函数JP
49、2位置进行修复,编写IDA插件(如果你使用的是IDA6.8,则不需要编写函数位置修复插件)。修复后,IDA已经成功地进行了反编译并且识别出了代码块,如图721所示。第7章车联网安全图721使用IDA反编译第7章车联网安全 确定固件代码段基址。结合PowerPC汇编的特性,找到一条相对寻址方式的lis指令,观察地址后面的ha确定基址为0 x10000。修改IDA基址(如图722所示),使IDA能够正确且完整地识别代码段(如图723所示)。第7章车联网安全图722修改基址第7章车联网安全图723识别代码段第7章车联网安全 重构符号表。确认二进制固件中是否有符号表。很多固件为了降低空间占用,在编译生
50、产的时候删除了符号表。本书分析的固件中是带有符号表的,在代码末尾寻找有明显分界的起始和结束位置,由此判断符号表的起始位置为0 x311E64、结束位置为0 x3393A4。第7章车联网安全修复后可看到函数已被命名,如图724所示。图724重构符号表第7章车联网安全7.3.2TBOX 安全测试技术分析安全测试技术分析1.TBOX简介简介前已述及,TBOX是车联网系统的重要组成部分,有的TBOX作为独立终端模块安装在车上,有的TBOX集成在车载网关上,有的TBOX集成在IVI上(因此有的IVI兼有TBOX的功能,这一点在后面介绍IVI时不再说明)。图725为TBOX通信拓扑结构。第7章车联网安全图