引言
大家都很熟悉OWASP Top 10风险报告,这个报告不但总结了Web应用程序最可能、最常见、最危险的10大安全隐患,还包括了如何消除这些隐患的建议,这个“OWASP Top 10“差不多每隔三年更新一次。目前汽车网络安全攻击威胁隐患繁多,某知名电动汽车厂商安全总监结合实际经验,在他的新书《智能汽车网络安全权威指南》中归纳总结了智能汽车10大攻击场景,以及每个场景的攻击手段和防御方法。
在20世纪50年代,汽车电子成本仅占汽车总成本的1%。然而,随着车联网技术的进步,目前汽车电子成本已经增加到了35%。预计到2030年,这一数字还将继续上升至50%。随着软件定义汽车时代的到来,汽车网络安全攻击面变得非常广泛,主要分布在10个主要模块,也被称为十大易受攻击威胁模块。这些模块包括信息娱乐系统(IVI)、车载网联通讯终端(T-BOX)、车载网关(Gateway)、统一诊断服务(Unified Diagnostic Services,UDS)、车载诊断(On-board diagnostics,OBD)、高级辅助驾驶系统(ADAS)、车载信息服务(TSP)、充电网络系统(Charging System)、汽车远程升级(Over-The-Air,OTA)以及手机端车联网应用程序(App),如图1所示。
图1 车联网重点模块图
场景1:车载信息娱乐系统
车载信息娱乐系统(In-Vehicle Infotainment,IVI)指的是结合了向用户提供娱乐信息的车载系统。IVI系统使用音频/视频(A/V)接口、触摸屏、键盘和其他类型的设备来提供这些服务。车载信息娱乐系统通常具备一部分CAN总线操控能力,因此通过攻击车载信息娱乐系统可能会导致远程控制车辆。
2018年,Computest的研究人员Thijs Alkemade和Daan Keuper发现了某汽车品牌的IVI漏洞。在某些情况下,该漏洞可能允许黑客控制关键功能,这些功能包括打开和关闭汽车的麦克风,使用麦克风来收听驾驶员的谈话,以及获得对谈话历史和汽车通讯录的访问权限。最重要的是,研究人员表示,攻击者还可以通过其导航系统跟踪汽车。
IVI系统是最容易遭受到攻击的模块,一般IVI系统采用安卓系统,因此安卓系统的安全风险,在IVI上可能都会出现,如图2所示,这是IVI主要攻击面(非详尽)。
图2 IVI遭受的攻击
场景2:车载网联通讯终端
车载网联通讯终端,即T-BOX,对内与车载CAN总线相连,对外通过云平台与手机端实现互联,是车内外信息交互的纽带,实现指令和信息的传递。T-BOX的结构简单示意如图3所示。
图3 T-BOX的结构示意图
为了研究方便,一般我们会从车上把T-BOX拆下来,这就需要知道T-BOX在车上的位置。T-Box的安装位置因制造商而异,但一般的T-Box安装位置在仪表板内侧、油门踏板旁边、主/副驾驶座椅下方、汽车中控台内侧、手套箱内部,齿轮盖内部等。如图4所示,这是T-Box在主/副驾驶座椅下方的安装位置。
图4 T-box主/副驾驶座下方安装位置
由于T-Box的安装位置不固定,拆卸应由专业修车的人员负责,所以搞汽车网络安全的团队最好有懂修车的,例如基于S32K148的T-BOX开发板如图5所示。
图5 基于S32K148的T-BOX开发板
T-BOX作为车辆中的接入点,是车内最核心的模块。T-BOX常见功能包括远程控制、远程诊断、OTA、高精定位、近场控制、V2X等,T-BOX系统一般采用Linux系统,因此Linux系统的安全风险,T-BOX都具备,以下是T-BOX主要攻击面(非详尽)。
表1 T-BOX安全风险
风险分类 | 风险项 |
通讯风险 | 远程通讯:中间人攻击、数据监听、篡改、否认 中程通讯:中间人攻击、数据监听、篡改、否认(包括蓝牙、Wi-Fi) CAN通讯:数据监听、篡改、否认 I2C/SPI/UART等串型总线数据监听 |
隐私风险 | 私钥提取、日志泄漏、定位数据等敏感信息泄漏 |
系统风险 | 提权、反弹Shell、缓冲区溢出等 |
固件风险 | 固件提取、固件逆向、固件篡改等 |
场景3:车载网关
汽车网关是一个中央枢纽,可在车辆中的许多不同网络之间安全可靠地互连和传输数据,汽车网关的核心功能是在车内安全可靠地传输数据,车辆中可能存在多个网关,它们可以是集中式网关和多个域网关。集中式网关在远程信息处理控制单元(TCU)、动力总成、车身、信息娱乐系统、智能座舱和高级辅助驾驶应用程序等域之间安全可靠地传输数据。域网关(或域控制器)具有类似的功能,实现各自域内ECU的相互通信。与域网关相比,集中式网关通常需要更高的处理性能、接口和更高带宽的网络协议。图6说明了如何在车辆中实现这两种类型的网关。
图6 车辆网关类型
网关作为汽车网络系统的核心控制装置,主要功能是在车载网络和各种电子控制单元之间提供无缝通信,通过不同网络间的物理隔离和不同通信协议间的转换,在各个共享通信数据的功能域(动力总成域、底盘和安全域、车身控制域、信息娱乐域、远程信息处理域、ADAS域)之间进行信息交互。表2提供了网关关键功能的摘要(非详尽列表)。
表2 网关关键功能
网关功能 | 描述 |
协议转换 | 将数据和控制信息转换为不兼容的网络,以实现它们之间的通信 |
数据路由 | 在节点上路由数据以到达其预期目的地,它可能位于需要协议转换的不同网络上 |
诊断路由 | 外部诊断设备和ECU之间的诊断消息路由,可能涉及DolP和ECU等诊断协议之间的转换 |
防火墙 | 基于规则过滤入站和出站网络流量,禁止来自未经授权的源的数据传输,高级防火墙可能包括上下文感知过滤 |
消息镜像 | 从接收到的接口捕获数据,以通过另一接口传输,用于诊断或数据记录(存储) |
入侵检测 | 监控网络流量是否存在可能表示入侵的异常 |
网络管理 | 管理网络和连接到网络的ECU的状态和配置,并支持诊断 |
密钥管理 | 安全处理和存储网络密钥和证书 |
OTA管理 | 管理车辆内通过网关访问的ECU,远程OTA固件更新 |
网关也是智能汽车最可能成为网络攻击的目标,网关一般是RTOS系统,能够弄清楚他的指令集是关键,网关的主要攻击面(非详尽),如表3所示。
表3 网关的攻击面
攻击入口 | 攻击位置 | 攻击结果 |
OBD-II | 内部 | CAN总线注入 访问权限 控制制动器 警示灯和安全气囊 |
USB | 内部 | USB升级 ADB调试接口 |
蓝牙 | 外部 | 车辆钥匙 车辆启动 |
Wi-Fi | 外部 | 未授权访问 注入CAN信息 |
传感器 | 内部 | 激光雷达干扰 摄像头欺骗 TPSM欺骗 |
OTA升级 | 内部 | 签名绕过 |
场景4:汽车远程升级
汽车远程升级(Over the Air Technology,OTA)是指替代本地连接方式,通过无线传输方式进行软件下载和软件更新的过程,更新的速度和安全性至关重要。OTA是实现软件定义汽车的必备基础,是智能网联汽车系统及其应用的唯一远程升级通道。作为安全的最后一道防线,OTA常见类型包括SOTA、FOTA,实现对动力域、底盘域、辅助驾驶域、信息娱乐域和车身域在内的重大功能更新。
- FOTA:Firmware OTA,固件升级,面向车端上的固件升级
- SOTA:Software OTA,应用软件升级,面向车载端上应用软件升级。
通过OTA能够为车端添加新功能、修复漏洞等,传统更新汽车软件的做法是到4S店通过UDS对相应的ECU进行软件升级,通过USB等接口对信息娱乐系统进行升级。伴随着智能汽车的发展,本地升级已不再适应高速变化的车载生态,OTA流程如图7所示。
图7 OTA流程图
OTA主要分为云端和车端,云端包括SBOM管理、任务调度、打包升级、软件分发、升级审批、升级通知、升级日志、升级包上传、版本控制、升级监控与统计等。车端包括定时检查更新、手动检查更新、安全下载、断点续传、订阅升级消息、升级包签名验证、ECU刷写、升级日志上报等。可以看出OTA的难点在于保证安全和传输效率,以下是OTA攻击面,如图8所示。
图8 OTA攻击面示意图
场景5:车载信息服务
车载信息服务(TelematicsServiceProvider,TSP)在车联网系统中以云的形式向用户侧与车辆侧提供以下服务:用户信息维护、车辆定位、状态监控等。TSP功能如图9所示。
图9 TSP功能示意图
TSP是重要的车联网云服务,一般云服务存在的安全风险,TSP同样存在,可以参考OWASP Top 10。云端主要靠提供应用程序编程接口(API)与其他端进行通信,API位于应用程序之间或者充当处理系统之间数据传输的中间层,它提供了一个简单而高效的接口,用于扩展功能和改善联网汽车体验。API安全不是汽车网络安全独有的,更多API安全可以参考OWASP API安全十大漏洞,如表4所示。
表4 OWASP API安全十大漏洞
API 1:损坏的对象级授权 | API 6:批量分配 |
API 2:认证失败 | API 7:安全配置错误 |
API 3:过度数据暴露 | API 8:注入 |
API 4:缺乏资源和速率限制 | API 9:资产管理不当 |
API 5:损坏的功能级别身份验证 | API 10:记录和监控不足 |
场景6:车载诊断
车载诊断(On-Board Diagnostics,OBD)系统是一台计算机,负责通过一系列传感器监控汽车的状态,在典型的乘用车中,可以在汽车驾驶员侧的仪表板下方找到OBD-II端口,根据车辆类型,端口可能具有16针、6针或9针,如图10所示。
图10 车辆中的OBD-II端口
OBD包含OBD-I和OBD-II,OBD-I是自1991年起适用于为加利福尼亚制造的车辆的车载诊断标准,以控制该州的车辆排放,所有在该地区销售的汽车都必须配备OBD-I以检测发动机问题并报告故障代码。OBD-II于1996年成为美国的全国标准,并沿用至今。与OBD-I不同,配备OBD-II的汽车都支持相同类型的扫描仪,故障代码本身也已标准化,尽管制造商会定制一些额外的特定信息。随着汽车计算机变得越来越复杂,汽车制造商也为其汽车的OBD-II系统添加了越来越多的功能,可以使用OBD-II扫描仪查看实时诊断数据、连接汽车计算机等,如图11所示,通过OBD-II不仅可以实现为外部测试工具(OFF Board)提供诊断服务,还可以实现车辆在运行过程中的自我诊断。
图11 OBD-II诊断
从OBD-I到OBD-II,最显著的改进是所有OBD-II汽车都有相同类型的端口,以相同的方式发送相同类型的数据。换句话说,可以购买一台OBD-II扫描仪,并从任何制造商生产的任何汽车中获取有用的信息。
OBD-II包括一系列标准化的故障诊断代码,即DTC。DTC是当OBD-II系统指示故障时由动力总成控制模块(PCM)生成和存储的代码。简而言之,当您的汽车系统诊断出问题时,它会发送一个代码来指示具体故障。根据汽车工程师协会(SAE)发布的故障手册,就可以通过DTC代码查看问题出在哪里,同时有许多工具可用于插入OBD-II连接器并访问DTC,如图12所示。
图12 手持式扫描工具
现在的远程诊断功能也可以基于OBD-II的诊断数据,如发动机转数、车速、故障代码等信息,然后通过T-BOX等远程信息处理设备将这些数据上传到云端,再使用这些信息来对车辆进行监控和远程诊断。前面也提到了2021年OBD-II接口攻击占比5.4%,OBD-II的攻击路径如图13所示,后续会深入介绍。
图13 OBD-II攻击路径
场景7:统一诊断服务
今天行驶在路上的汽车包含多达几百个ECU,每个都执行特定的功能,这增加了系统的复杂性,需要更有效的方法在发生故障时测试和诊断车辆系统。统一诊断服务(Unified diagnostic services,UDS)与OBD最大的区别就在于“统一”,具体来说,它是面向整车所有UDS的,而OBD是面向排放系统诊断系统的。随着时间的推移,已经开发了许多诊断协议,例如KWP 2000、ISO 15765和K-Line,用于车辆诊断。因此,为确保通用兼容性,原始设备制造商和供应商同意依赖名为统一诊断服务协议的标准协议。UDS用于诊断全球车辆的最新汽车车辆诊断协议,UDS协议遵从ISO-14229标准。
UDS不仅应用于远程诊断,还可以应用ECU刷写,这在OTA升级非智能ECU时经常使用。UDS刷写也就是通过UDS将服务实现软件ECU放在非易失性存储器中,ECU包含启动管理器(Boot Manager)、应用软件(Application Software)、重新编程软件(Reprogramming Software),可以参考ISO 14229-1给出的ECU刷写执行流程如图14所示。
图14 基于UDS的ECU刷写执行流程
OTA的快速发展,对ECU刷写提出了更高的要求,要能适应各种极端情况,因此安全性会更加重要,如果安全措施不到位,ECU将会遭受攻击,例如欺骗攻击、密码暴力破解、会话劫持、中间人攻击以及权限提升等。
场景8:高级辅助驾驶系统
安全性是高级辅助驾驶系统(ADAS)和自动驾驶系统(ADS)的关键设计目标,本书讨论的范围仅限于ADAS,ADAS的开发人员需要确保他们已经考虑和分析了问题的所有方面,并且提供可衡量的证据来证明他们的功能是安全的,而即将出台的标准和法规没有描述任何特定的方法。由于ADAS暴露出巨大的攻击面,因此网络安全漏洞可能会造成毁灭性的后果,汽车网络安全不仅是一项关键要求,还是ADAS和ADS的关键先决条件,通用ADAS的分层架构如图15所示。
图15 ADAS的分层架构
确保ADAS和ADS的网络安全是一项具有挑战性的任务,因为任何无线接口都可能成为潜在的攻击媒介。ADAS基于复杂的硬件和软件的混合,通常集成了车辆与V2X通信。高级驾驶辅助系统和自动驾驶汽车部署了各种传感器,如超声波、雷达、摄像头和激光雷达等。比如,摄像头传感器应用了许多图像分析、传感器融合、感知的算法,而尤其是那些基于神经网络、深度学习系统的算法,很容易受到网络攻击。ADAS攻击面如图16所示。
图16 ADAS的攻击面
场景9:充电网络系统
里程焦虑是现在购买电动车的用户最大的顾虑,也是电动汽车行业要重点解决的问题。随着充电站市场的发展,不同公司专注于充电生态系统的特定领域,充电生态系统如图17所示。
图17 充电生态系统
充电生态系统由这些部分组成:汽车制造商(OEM)、电动汽车(EV)、电动汽车充电桩(EVCS)、充电点运营商(CPO)、电动汽车服务提供商(eMSP)。
为了更好地了解充电系统安全,我们必须要先了解充电相关的技术,图18可以让我们更直观地感受电流如何在电动汽车中进行转换。
图18 电动汽车中电流转换的简化框图(图片来源:Keysight E-Mobility Design and Test Technologies)
要搞清楚上图的原理,可能需要明白以下问题,这些部分将在本书中详细介绍。
-
充电电流如何输送到电动汽车?
-
充电过程如何控制?
-
充电站如何通信及其通信协议?
-
如何进行接线和安装?
充电设备通常通过云平台和移动应用程序进行控制,因此具有可远程访问且易受攻击的API。Upstream对2022年初以来100多起公开报道的汽车网络相关事件的分析中得出结论,电动汽车充电被确定为头号新兴攻击媒介。这些安全漏洞可能会影响电动汽车充电网络的所有组成部分,根据上述漏洞,总结电动汽车充电设备的安全风险分类如下。
-
身份伪造
-
植入木马
-
固件更新
-
固件劫持
-
重放攻击
-
移动应用
-
物理接入
-
协议安全
场景10:手机端车联网应用程序
前面已经描述了手机App操纵汽车的过程,目前多数车联网汽车厂商会向车主提供车联网移动应用程序,使用移动应用程序可以通过Wi-Fi、蓝牙、蜂窝网络控制车门开关、调节车窗等,移动应用程序的使用场景如图19所示,可以通过手机App查询车辆的实时位置以及历史轨迹等。
图19 手机App使用场景
手机App本身的安全问题不仅在车联网中存在,而且车联网场景下允许通过手机控制车辆,这样会将安全危害放大,必须要重视起来。以下是手机端车联网应用程序攻击面。
-
数据泄露
-
蓝牙钥匙
-
不安全的Wi-Fi
-
网络钓鱼攻击
-
恶意软件
-
逆向伪造应用程序
-
会话处理不当
从上述可以看到汽车网络安全涉及Web安全、协议安全、无线安全、内核安全、移动端安全、固件安全、硬件安全等,任何一方都可能会是薄弱点,所以保护汽车网络安全更重要的是将安全基础打牢,避免出现安全短板。随着汽车行业创新的加速,智能汽车正在转向自动驾驶,新技术正在为扩大攻击面铺平道路,这是一个日益受到关注的问题。朝着该目标的每一次新进展,都可能会引入一个新的攻击面,需要持续的安全投入。
想要了解更多关于汽车网络安全的内容,请大家关注《智能汽车网络安全权威指南》或者autosrc公众号。
转载自autosrc公众号:https://mp.weixin.qq.com/s/K2xjLmpmlsyjUXWWSHtivA