3、汽车信息安全威胁模型:常见攻击面(CAN、以太网、诊断、OTA)、攻击类型(重放、伪造、中间人)、安全需求分析
现代智能网联汽车已不再是封闭的机械系统,而是一个由多个电子控制单元(ECU)、车载网络、外部通信接口和云端服务构成的复杂信息物理系统。随着车辆与外界的连接日益紧密,攻击者的入侵路径也从物理接触扩展到了远程无线攻击。理解威胁模型是设计有效安全机制的前提——只有清楚攻击者从哪里来、用什么手段、要达到什么目的,才能针对性地部署HSM(硬件安全模块)与SecOC(安全车载通信)等防护措施。本章将系统梳理汽车信息安全的主要攻击面、典型攻击类型,并基于STRIDE与攻击树方法展开安全需求分析,为后续章节中HSM与SecOC的具体实现奠定威胁建模基础。
上图从全局视角勾勒了汽车信息安全威胁模型的核心要素:攻击者来源、四大攻击面、典型攻击类型、安全需求分析以及最终落到HSM与SecOC的防护措施。这张图贯穿了本章的讨论主线——从“哪里可能被攻击”到“攻击者如何操作”,再到“我们需要什么安全属性”,最后映射到“用什么技术手段实现”。下面我们将逐一展开每个环节的细节。
3.1 常见攻击面:从物理世界到数字世界的暴露点
3.1.1 CAN 总线:最经典也最脆弱的攻击面
CAN(Controller Area Network)总线自20世纪80年代起就成为车载网络的中枢,至今仍在动力总成、车身控制、底盘安全等关键域中占据主导地位。CAN总线在设计之初以实时性和可靠性为首要目标,并未充分考虑安全性。其广播通信机制意味着总线上的所有节点都能看到所有消息;而基于ID的仲裁机制使得任何节点都可以向总线发送消息,且没有内建的消息认证机制。这种设计在封闭的车辆环境中是高效的,但在智能网联时代却成为最大的安全隐患。
攻击者入侵CAN总线的典型路径包括:
- OBD-II端口物理接入:通过诊断接口直接连接到CAN总线,这是最直接的攻击方式。攻击者可以使用廉价的USB-CAN适配器(如PCAN、SocketCAN)在几秒钟内完成物理接入。
- 远程攻击间接渗透:通过T-Box(远程信息处理终端)、信息娱乐系统或蓝牙/Wi-Fi模块等远程接口,先攻破一个非安全ECU,再以此为跳板向CAN总线注入恶意消息。例如,2015年Charlie Miller和Chris Valasek通过克莱斯勒Uconnect系统的蜂窝网络漏洞,远程向CAN总线发送恶意指令,控制了正在行驶中的Jeep Cherokee的转向和制动系统。
- 恶意ECU替换:在维修或改装场景中,攻击者可能替换一个合法ECU为恶意设备,该设备持续监听总线并注入伪造消息。
CAN总线的攻击面特性决定了它需要SecOC这样的消息认证机制来弥补先天不足。但SecOC的部署需要硬件支持(如HSM提供密钥存储和MAC计算),且要考虑CAN FD(CAN with Flexible Data-rate)等新协议变体的兼容性。
3.1.2 车载以太网:高带宽带来的新风险
随着ADAS(高级驾驶辅助系统)、高精度地图、车载娱乐系统对带宽需求的激增,车载以太网(Automotive Ethernet,通常为100BASE-T1或1000BASE-T1)正逐步成为车载骨干网络。以太网的优势在于高带宽、低延迟和良好的可扩展性,但它也引入了传统IT网络中的安全风险。
车载以太网的主要攻击面包括:
- 网络嗅探与流量分析:以太网支持交换机端口镜像和混杂模式,攻击者一旦接入网络即可捕获所有未加密的通信流量,分析出敏感数据(如车辆位置、驾驶行为、密钥材料)。
- ARP欺骗与中间人攻击:在以太网环境中,ARP(地址解析协议)欺骗可以重定向流量,使攻击者能够拦截、修改或转发ECU之间的通信。这在传统IT网络中已是成熟攻击手段,在车载环境中同样适用。
- DoS攻击:以太网的高带宽特性使得攻击者可以发送大量垃圾数据包,淹没交换机的处理能力,导致关键控制消息延迟或丢失,影响车辆安全功能。
车载以太网的安全防护需要结合MACsec(Media Access Control Security,IEEE 802.1AE)或IPsec等链路层/网络层加密认证机制,同时配合SecOC在应用层提供端到端的消息认证。值得注意的是,以太网和CAN之间的网关(Central Gateway)是安全边界的关键节点,需要在网关处实施严格的消息过滤和访问控制策略。
3.1.3 诊断接口:合法工具的非法滥用
诊断接口(OBD-II或基于UDS over CAN/以太网的诊断协议)是车辆维修和检测的法定接口,也是攻击者最“友好”的入口。诊断协议(如UDS - Unified Diagnostic Services,ISO 14229)提供了丰富的服务,包括读取/写入数据、清除故障码、例程控制、固件下载等。这些功能在合法场景下是维修人员的利器,但在攻击者手中则成为控制车辆的“后门”。
诊断攻击的典型手法包括:
- 安全访问绕过:UDS的SecurityAccess服务(0x27服务)通过种子-密钥(Seed-Key)机制保护敏感操作。但许多ECU的种子-密钥算法强度不足,甚至使用固定密钥,攻击者可以通过逆向工程提取算法并生成有效密钥。
- 固件提取与逆向:通过诊断接口读取ECU的Flash内容,提取固件进行逆向分析,寻找漏洞或提取密钥材料。这是许多攻击链的第一步。
- 重编程攻击:攻击者利用诊断接口的编程会话(Programming Session)刷写恶意固件,完全控制ECU行为。例如,刷写一个修改了排放控制逻辑的发动机ECU固件,或者刷写一个禁用制动辅助功能的固件。
诊断接口的安全防护需要多管齐下:使用HSM存储诊断访问的密钥,实施强化的安全访问机制(如基于非对称加密的挑战-响应认证),对诊断会话进行审计和日志记录,并在网关处限制诊断请求的访问范围(只允许访问特定ECU的特定服务)。
3.1.4 OTA 升级:远程攻击的“高速公路”
OTA(Over-The-Air)升级是智能网联汽车的核心功能之一,允许车企远程更新ECU固件、修复漏洞、推送新功能。然而,OTA系统本身也成为一个高价值的攻击目标。如果OTA通道不安全,攻击者可以:
- 固件篡改:在OTA下载过程中拦截并修改固件包,注入恶意代码。这要求OTA系统具备完整的签名验证机制,确保固件包在传输和安装过程中未被篡改。
- 回滚攻击:攻击者将固件版本回滚到存在已知漏洞的旧版本,从而利用旧版本中的漏洞。这要求OTA系统具备版本回滚防护机制(Anti-Rollback),通常通过安全计数器或版本号验证实现。
- 中间人攻击:在车辆与OTA服务器之间建立中间人代理,拦截、修改或重放OTA会话。这要求OTA通信使用TLS等加密协议,并验证服务器证书的真实性。
OTA安全的核心在于建立完整的信任链:从OTA服务器的代码签名密钥,到车辆端的安全启动(Secure Boot)验证,再到ECU的HSM中存储的信任根。任何一环的缺失都可能导致整个OTA链路的崩溃。
3.2 典型攻击类型:攻击者的战术手法
3.2.1 重放攻击(Replay Attack)
重放攻击是指攻击者记录下合法的通信消息,然后在稍后的时间重新发送这些消息,以达到欺骗接收方的目的。在CAN总线环境中,重放攻击尤其容易实施,因为CAN消息没有时间戳或序列号,接收方无法区分消息是新鲜的还是重放的。
一个典型的重放攻击场景是:攻击者记录下驾驶员按下“解锁车门”按钮时发送的CAN消息,然后在车主离开后重放该消息,从而解锁车门。更危险的是,如果攻击者记录的是制动控制消息,重放可能导致意外的制动动作。
防御重放攻击的核心机制是新鲜度值(Freshness Value)。SecOC协议中,发送方和接收方共享一个新鲜度计数器或时间戳,接收方验证消息中的新鲜度值是否在可接受的窗口内。如果消息的新鲜度值过期或重复,接收方将丢弃该消息。新鲜度值的实现方式包括:
- 计数器方案:发送方和接收方维护一个同步的递增计数器,消息中携带计数器的当前值。接收方验证计数器值是否大于上次接收的值,且差值在允许范围内。
- 时间戳方案:消息中携带发送方的本地时间戳,接收方验证时间戳与本地时间的偏差是否在允许范围内。这要求所有ECU具备时间同步能力。
- 挑战-响应方案:接收方在收到消息后发送一个随机挑战,发送方必须用正确的密钥对挑战进行响应。这种方式延迟较高,不适合实时性要求高的控制消息。
3.2.2 伪造攻击(Forgery/Spoofing)
伪造攻击是指攻击者伪装成合法的发送方,向网络中注入伪造的消息。在CAN总线中,由于没有内建的消息认证机制,任何节点都可以发送带有任意ID的消息。攻击者只需知道目标消息的ID和数据结构,就可以伪造出看似合法的消息。
伪造攻击的典型场景包括:
- 伪造车速信号:攻击者伪造车速传感器消息,使仪表盘显示错误车速,或使ABS/ESP系统做出错误判断。
- 伪造发动机控制消息:攻击者伪造发动机转速或扭矩请求,导致发动机异常工作或熄火。
- 伪造安全气囊触发消息:攻击者伪造碰撞传感器消息,触发安全气囊展开,或在真实碰撞时抑制气囊展开。
防御伪造攻击的核心是消息认证码(MAC)。SecOC协议中,发送方使用共享密钥对消息内容(或消息的关键字段)计算MAC,并将MAC附加在消息中。接收方使用相同的密钥重新计算MAC,并与接收到的MAC进行比较。如果MAC不匹配,接收方丢弃消息。MAC的计算通常由HSM硬件完成,以确保密钥不会暴露在软件环境中。
MAC的密钥管理是SecOC安全性的关键。AUTOSAR定义了多种密钥管理策略,包括:
- 静态密钥:所有ECU共享一个全局密钥,实现简单但安全性较低,一旦一个ECU被攻破,整个网络的通信都面临风险。
- 动态密钥:密钥定期更新,降低密钥泄露的风险。AUTOSAR的Key Manager模块负责密钥的生成、分发和更新。
- 分组密钥:不同域或不同功能的ECU使用不同的密钥,实现安全隔离。例如,动力域和车身域使用不同的密钥,即使车身域被攻破,动力域仍然安全。
3.2.3 中间人攻击(Man-in-the-Middle, MITM)
中间人攻击是指攻击者在通信双方之间插入自己,能够拦截、修改甚至伪造双方之间的通信内容。在车载网络中,中间人攻击通常发生在网关或交换机层面,攻击者通过ARP欺骗、DNS劫持或物理接入等方式,将流量重定向到自己的设备。
中间人攻击在车载环境中的典型场景包括:
- 网关中间人:攻击者在CAN与以太网网关之间插入恶意设备,拦截并修改跨域通信消息。例如,修改从ADAS域发送到制动域的目标减速度消息,导致制动距离异常。
- OTA中间人:攻击者在车辆与OTA服务器之间建立代理,拦截固件下载请求并返回恶意固件包。这要求OTA通信使用TLS等加密协议,并验证服务器证书的真实性。
- 诊断中间人:攻击者在诊断仪与ECU之间插入设备,修改诊断请求和响应,绕过安全访问控制。
防御中间人攻击需要结合多种机制:
- 消息认证:即使攻击者能够拦截和转发消息,也无法伪造有效的MAC,因为攻击者不知道共享密钥。
- 通信加密:使用TLS/IPsec等协议加密通信内容,使攻击者无法读取或修改消息内容。
- 网络隔离:通过VLAN或防火墙将不同安全域的网络隔离,限制攻击者的横向移动。
3.3 安全需求分析:从威胁到防护的映射
3.3.1 STRIDE 威胁建模方法
STRIDE是微软提出的威胁建模方法,将威胁分为六类:Spoofing(伪装)、Tampering(篡改)、Repudiation(抵赖)、Information Disclosure(信息泄露)、Denial of Service(拒绝服务)、Elevation of Privilege(权限提升)。在汽车信息安全领域,STRIDE同样适用,但需要结合车载网络的特点进行调整。
| STRIDE 类别 | 汽车场景示例 | 对应安全属性 | 防护措施 |
|---|---|---|---|
| S - 伪装 | 伪造ECU身份发送消息 | 真实性 | SecOC消息认证、HSM身份认证 |
| T - 篡改 | 修改固件包或诊断数据 | 完整性 | 签名验证、MAC校验、安全启动 |
| R - 抵赖 | 否认发送过某条控制指令 | 不可抵赖性 | 审计日志、数字签名 |
| I - 信息泄露 | 窃取密钥或车辆隐私数据 | 机密性 | HSM安全存储、通信加密 |
| D - 拒绝服务 | CAN总线泛洪攻击 | 可用性 | 消息速率限制、IDS、冗余通信 |
| E - 权限提升 | 从信息娱乐系统提权到制动系统 | 访问控制 | 网关防火墙、安全域隔离 |
在应用STRIDE时,需要为每个攻击面(CAN、以太网、诊断、OTA)分别建立威胁模型,识别可能面临的STRIDE威胁,并评估其风险等级(通常使用DREAD模型:Damage potential, Reproducibility, Exploitability, Affected users, Discoverability)。
3.3.2 攻击树分析与安全需求导出
攻击树(Attack Tree)是一种结构化的威胁分析方法,以攻击目标为根节点,以攻击步骤为子节点,逐层分解攻击路径。攻击树可以帮助安全工程师系统地识别所有可能的攻击路径,并针对每条路径制定相应的防护措施。
以“通过CAN总线控制制动系统”为攻击目标,可以构建如下攻击树:
- 目标:控制制动系统
- 1.1 物理接入CAN总线
- 1.1.1 通过OBD-II端口接入
- 1.1.2 拆解车辆直接接入线束
- 1.2 远程接入CAN总线
- 1.2.1 攻破T-Box远程接口
- 1.2.2 攻破信息娱乐系统Wi-Fi/蓝牙
- 1.3 伪造制动控制消息
- 1.3.1 获取消息ID和数据结构(逆向工程)
- 1.3.2 获取SecOC密钥(攻击HSM或密钥管理流程)
- 1.4 绕过SecOC认证
- 1.4.1 重放合法消息(需要新鲜度值防护)
- 1.4.2 利用密钥泄露(需要密钥轮换)
- 1.1 物理接入CAN总线
基于攻击树,可以导出以下安全需求:
- 需求1:物理访问控制——OBD-II端口应具备访问认证机制,防止未授权物理接入。
- 需求2:远程接口最小化——T-Box和信息娱乐系统的远程接口应最小化暴露面,关闭不必要的端口和服务。
- 需求3:消息认证——所有制动相关消息必须使用SecOC进行MAC认证,确保消息的真实性和完整性。
- 需求4:密钥保护——SecOC密钥必须存储在HSM中,且具备密钥轮换机制,防止密钥长期使用带来的泄露风险。
- 需求5:新鲜度验证——所有SecOC消息必须携带新鲜度值,接收方验证新鲜度值以防止重放攻击。
3.3.3 安全需求到AUTOSAR架构的映射
在AUTOSAR架构中,上述安全需求可以映射到具体的模块和配置:
| 安全需求 | AUTOSAR 模块 | 配置/实现要点 |
|---|---|---|
| 消息认证(完整性/真实性) | SecOC(Secure Onboard Communication) | 配置MAC算法(AES-CMAC-128)、密钥ID、新鲜度值ID |
| 密钥安全存储 | Crypto Stack + HSM驱动 | 使用HSM的密钥槽(Key Slot)存储密钥,配置密钥使用权限 |
| 新鲜度值管理 | SecOC Freshness Manager | 配置计数器同步策略、最大允许偏差、重置策略 |
| 安全启动 | Secure Boot(基于HSM) | 配置启动镜像签名验证、信任根存储 |
| 诊断访问控制 | Dcm(Diagnostic Communication Manager)+ HSM | 配置SecurityAccess的种子-密钥算法、访问权限矩阵 |
| 安全日志 | Dlt(Diagnostic Log and Trace)+ HSM | 配置安全事件的日志记录、日志完整性保护 |
背景与约束:某OEM在量产车型中发现,攻击者可以通过OBD-II端口接入CAN总线,记录并重放“解锁车门”消息,实现无钥匙进入。该车型的BCM(车身控制模块)和PEPS(无钥匙进入启动系统)之间通过CAN总线通信,消息未经过任何认证。
初始现象:车主报告车辆在锁车后出现自动解锁现象,经排查确认是重放攻击导致。
关键输入数据:CAN消息ID为0x1A0,数据长度为8字节,其中第0-1字节为命令码(0x55AA表示解锁),第2-7字节为填充数据。消息发送频率为每次按键触发一次。
分析判断过程:安全团队通过CANoe抓取总线数据,确认攻击者记录并重放了0x1A0消息。由于消息没有时间戳或序列号,BCM无法区分合法消息和重放消息。
实际操作步骤:
1. 在BCM和PEPS中集成AUTOSAR SecOC模块,配置AES-CMAC-128算法。
2. 在HSM中生成并存储128位对称密钥,