汽车网络安全实战:CAN 总线攻击与防御的工程深度剖析

当汽车变成"轮子上的计算机",每一辆智能网联汽车都成了潜在的网络攻击目标。本文从工程实战角度剖析汽车电子系统的安全防线。

---

引言:软件定义汽车的安全挑战

现代高端汽车拥有超过100个电子控制单元(ECU)、超过1亿行代码,以及数十种网络协议。从发动机控制到自动驾驶,从信息娱乐到远程控制,电子系统的复杂度呈指数级增长。随之而来的安全问题也日益严峻——2015年Jeep Cherokee远程被黑事件、2016年特斯拉钥匙中继攻击、2022年开源汽车攻击框架的普及,都揭示了汽车网络安全行业的深层脆弱性。

本文将从车载网络的物理层出发,系统性地剖析汽车电子系统的攻击面和防御体系。

---

一、CAN 总线:汽车神经系统的解剖

1.1 CAN 协议基础

控制器局域网(Controller Area Network, CAN)是博世公司于1986年推出的车载串行通信协议,至今仍是汽车电子系统中应用最广泛的总线标准。

CAN 2.0B 核心特征:

  • 差分信号传输(CAN_H / CAN_L),抗干扰能力强
  • 最高速率 1 Mbps(CAN 2.0),FD-CAN 可达 5 Mbps
  • 基于优先级的非破坏性仲裁机制(ID越小优先级越高)
  • 最大数据帧 8 字节(CAN 2.0)或 64 字节(CAN FD)
  • 内置 CRC 校验、位填充和错误确认机制

标准帧 vs 扩展帧:


标准帧 (11-bit ID):  SOF + 11-bit ID + RTR + IDE + r0 + DLC + Data(0-8B) + CRC + ACK + EOF
扩展帧 (29-bit ID):  SOF + SRR + IDE + 29-bit ID + RTR + r1 + r0 + DLC + Data(0-8B) + CRC + ACK + EOF

1.2 汽车网络拓扑

现代汽车采用分层网络架构:


┌─────────────────────────────────────────────────────┐
│                     中央网关 (Central Gateway)          │
│      ┌──────────┬──────────┬──────────┬─────────┐    │
│CAN-FD   │    CAN      │   LIN      │Ethernet │    │
│动力域    │   底盘域     │  车身域    │ 信息域   │    │
│          │             │            │         │    │
│ ECU-Engine│ ECU-ESP    │ BCM-Body   │IVI-Infotain│
│ ECU-TCU   │ ECU-EPS    │ ECU-Door   │ T-Box GSM│
│ ECU-BMS   │ ECU-ABS    │ ECU-Seat   │ ADAS Cam │
│ ECU-MCU   │ ECU-SRS    │ ECU-Light  │ Radar    │
└─────────────────────────────────────────────────────┘

---

二、攻击面分析:从物理到远程

2.1 物理层攻击

CAN 总线监听(Sniffing):

攻击者通过物理接入车辆的 CAN 总线(通常通过 OBD-II 接口位于方向盘下方),使用 CAN 分析仪(如 PCAN、CANtact、CANable)被动捕获所有总线流量。


# 使用 python-can 监听 CAN 总线
import can

bus = can.interface.Bus(channel='can0', bustype='socketcan')
while True:
    msg = bus.recv(timeout=1)
    if msg is not None:
        print(f"{msg.arbitration_id:03X}  [{msg.dlc}]  {msg.data.hex()}")

注入攻击(Injection):

被动监听只能获取信息,注入攻击则可以发送伪造的 CAN 帧。由于 CAN 总线没有内置的身份认证机制,任何节点发送的帧都会被所有节点接收和处理。

重放攻击(Replay):

捕获特定操作的 CAN 帧序列(如车门解锁、发动机启动),然后在需要时重放这些帧序列。

2.2 UDS 诊断协议攻击

统一诊断服务(UDS, ISO 14229)是汽车电子系统的另一大攻击面。UDS 运行在 CAN 总线的 ISO-TP(ISO 15765-2)传输层之上。

关键攻击服务:

服务 ID服务名称潜在风险
0x10DiagnosticSessionControl获取诊断会话权限
0x27SecurityAccess身份验证绕过
0x34/0x36/0x37RequestDownload / TransferData / TransferExitECU 固件刷写
0x2EWriteDataByIdentifier修改关键标定参数
0x31RoutineControl启动自定义例程
0x28CommunicationControl阻断控制通信
0x11ECUReset拒绝服务

Security Access 暴力破解:

0x27 服务的典型流程:

  1. ECU 生成 4 字节随机 Seed 发送给诊断仪
  2. 诊断仪使用密钥算法计算 Key
  3. 诊断仪发送 Key
  4. ECU 验证 Key 决定是否授权

许多老旧车型的密钥算法极其简单(如 Seed XOR 默认值、简单线性变换),可通过逆向工程和暴力破解攻破。

2.3 远程攻击面

T-Box(车联网终端):

T-Box 是车辆与外部网络(云端、手机APP、V2X)的桥梁。攻击面包括:

  • 蜂窝通信模块(2G/3G/4G/5G)的基带攻击
  • Wi-Fi /蓝牙的无线攻击面
  • OTA 更新机制的签名绕过
  • T-Box 与 CAN 网关之间的物理连接

信息娱乐系统(IVI):

车载大屏和智能座舱系统通常运行 Android 或 Linux,攻击面包括:

  • 应用商店中的恶意 APP
  • 浏览器漏洞利用
  • 无线 CarPlay/Android Auto 的攻击链
  • USB 接口的 BadUSB 攻击

自动驾驶传感器:

  • 激光雷达的干扰和欺骗
  • 摄像头的光学对抗攻击
  • GPS 信号欺骗(Spoofing)

---

三、渗透测试方法论

3.1 汽车渗透测试框架

成熟的汽车渗透测试通常遵循以下流程:


第一阶段:信息收集(Reconnaissance)
├── 车型年款与电子架构研究
├── ECU 列表与网络拓扑映射
├── CAN DBC 数据库查找(如 opendbc 项目)
├── 固件提取(OBD、调试接口、OTA 下载)
└── 公开漏洞数据库搜索

第二阶段:被动监听
├── 长时间 CAN 流量捕获
├── 帧 ID 与数据变化模式分析
├── 信号逆向解析(油门、刹车、转向、仪表等)
├── UDS 服务枚举与响应分析
└── 时序关系建立

第三阶段:主动测试
├── 帧注入测试
├── UDS 服务模糊测试(Fuzzing)
├── ECU Reset 与 DoS 影响评估
├── Security Access 算法逆向
└── 安全关键系统(刹车、转向)影响评估

第四阶段:远程利用(如适用)
├── T-Box 攻击面评估
├── OTA 流程安全性
├── 云端 API 安全性
└── V2X 通信安全

3.2 常用工具链

工具名称用途
SavvyCANCAN 总线分析、信号逆向、UDS 模糊测试
BusMaster开源 CAN 仿真与分析
can-utilsLinux CAN 工具集
ChipWhisperer侧信道分析与故障注入
UDSimUDS 服务模拟
iOSAC汽车网络安全攻击成本计算框架

---

四、纵深防御体系

4.1 车载安全架构(Defense in Depth)


┌──────────────────────────────────────┐
│  Layer 1: 云安全                      │
│  WAF / API 签名 / 速率限制 / 审计     │
├──────────────────────────────────────┤
│  Layer 2: 远程接入安全                 │
│  TLS 1.3 / 双向认证 / 安全启动 / OTA   │
├──────────────────────────────────────┤
│  Layer 3: 中央网关安全                 │
│  防火墙规则 / 消息路由控制 / IDS       │
├──────────────────────────────────────┤
│  Layer 4: 总线级安全                   │
│  CANsec / SecOC / 流量异常检测        │
├──────────────────────────────────────┤
│  Layer 5: ECU 级安全                   │
│  HSM/TPM / 安全启动 / 安全存储 / MPU  │
└──────────────────────────────────────┘

4.2 SecOC:安全车载通信

SecOC(Secure On-board Communication, AUTOSAR)是目前车载安全通信的主流方案,通过在 CAN/CAN FD 帧中附加消息认证码(MAC)来保证消息的完整性和真实性。

SecOC 帧格式:


[CAN ID] [Message] [Freshness Value (截断)] [Authenticator (CMAC 截断)]

关键设计考量:

  • Freshness Value(新鲜度值)防止重放攻击
  • MAC 截断(通常 24-32 bit)平衡安全性与带宽开销
  • 收发双方的计数器同步是使用难点

4.3 Intrusion Detection System (IDS)

车载入侵检测系统通过监控网络流量识别异常行为:

  • **基于特征**:匹配已知攻击帧模式
  • **基于频率**:检测异常帧发送频率(正常帧周期固定)
  • **基于熵值**:检测 CAN ID 分布的异常变化
  • **基于物理特征**:对比物理测量值与总线消息的一致性

4.4 硬件安全模块 (HSM)

现代汽车 MCU 集成硬件安全模块:

  • **密钥安全存储**:防止密钥被外部读取
  • **安全启动 (Secure Boot)**:验证固件签名后才允许执行
  • **加密加速**:AES-128/256、SHA-256、ECC P-256 硬件加速
  • **真随机数生成器 (TRNG)**:用于密钥协商和非ce值生成
  • **生命周期管理**:开发模式 → 生产模式 → 禁用调试接口

---

五、行业法规与标准

5.1 UN R155/R156

联合国欧洲经济委员会(UNECE)WP.29 制定的汽车网络安全法规:

  • **UN R155**:网络安全管理系统(CSMS),要求 OEM 建立覆盖全生命周期的网络安全管理体系
  • **UN R156**:软件升级管理系统(SUMS),规范 OTA 更新安全要求
  • 自 2022 年 7 月起,所有出口欧盟的新车型必须满足 R155 要求

5.2 ISO/SAE 21434

道路车辆—网络安全工程标准(2021年发布):

  • 覆盖概念、开发、生产、运营、维护和报废全生命周期
  • 提出 TARA(威胁分析与风险评估)方法论
  • 与 ISO 26262 功能安全标准互补

5.3 GB/T 中国国标

中国也在推进汽车网络安全强制性标准,预计将对国内销售的智能网联汽车实施与 UN R155 等效的网络安全要求。

---

六、防御实战:工程视角

6.1 Key Management

密钥管理是汽车安全的基石,关键原则:

  • **分级密钥体系**:根密钥 → 密钥加密密钥 (KEK) → 会话密钥
  • **一机一密**:每辆车使用唯一密钥,防止单点攻破全网
  • **密钥轮换**:定期更换密钥,限制泄露密钥的影响范围
  • **HSM 保护**:根密钥不出 HSM,访问需授权

6.2 网关安全规则

中央网关应实施严格的流量管控:

  • 跨域消息必须经网关路由
  • 禁止从 CAN 域向安全域的非授权转发
  • 速率限制防止 DoS
  • 白名单机制只允许授权的 UDS 服务访问目标 ECU

6.3 OTA 安全设计

  • 包级别:签名验证 + 版本防回滚 + 依赖检查
  • 传输级别:TLS 1.3 + 证书固定
  • 安装级别:A/B 更新分区 + 原子安装 + 失败回滚
  • 监控级别:更新成功率统计 + 异常告警

---

七、未来趋势

  • **零信任架构**:从"内网安全"转向"永不信任,始终验证"
  • **AI 驱动的 IDS**:利用机器学习检测未知攻击模式
  • **量子安全密码**:为应对量子计算威胁,探索后量子加密算法在汽车中的应用
  • **安全左移 (Shift Left Security)**:在开发早期阶段建立安全测试流程
  • **红队常态化**:建立内部安全团队持续进行渗透测试

---

结语

汽车网络安全是一个横跨硬件、固件、软件、通信和云的复杂系统工程。随着软件定义汽车时代的到来,车辆将从单纯的交通工具演变为智能移动终端,其安全边界也将从传统的物理安全扩展到网络安全的大舞台上。

理解攻击者的手法是构建有效防御的前提。本文从工程实战角度剖析了 CAN 总线攻击技术和纵深防御体系,希望为汽车安全从业者和爱好者提供一个全面的参考框架。在安全领域,知道如何攻击才能更好地防御——这正是渗透测试和威胁建模的价值所在。

---

参考资料:ISO 11898 (CAN 协议), ISO 14229 (UDS), AUTOSAR SecOC, ISO/SAE 21434, UN R155/R156, IEEE Vehicle Power and Convergence

分类: 工程制造 → 汽车电子 → 网络安全

关键词: CAN总线, 汽车网络安全, SecOC, UDS渗透测试, ECU安全, 纵深防御, HSM, OTA安全

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部