2. 车载网络基础
各位同学,欢迎来到第二章。上一章我们聊了车载网络架构的演变,从CAN总线一路走到以太网+域控。但架构越复杂,攻击者能下手的地方就越多。今天我们就来系统梳理一下:攻击者到底能从哪些地方打进来?他们用什么套路?我们怎么用模型去分析这些威胁?
我个人习惯,做安全分析之前,先画一张全景图,把攻击面、攻击场景和攻击链模型串起来。这样心里有个谱,后面做隔离和检测方案时才知道重点防哪里。
2.1 攻击面分析:攻击者从哪里下手?
攻击面,说白了就是车辆暴露给攻击者的所有入口。我经常跟团队说:你连门都数不清,怎么守门?车载系统的攻击面,我习惯分成四大类。
| 攻击面类别 | 典型入口 | 攻击者条件 | 风险等级 |
|---|---|---|---|
| 远程攻击面 | T-Box、4G/5G、Wi-Fi、蓝牙、V2X | 任意位置,有网络即可 | 极高 |
| 近场攻击面 | 蓝牙、NFC、UWB、Wi-Fi Direct | 车辆附近(10-100米) | 高 |
| 物理攻击面 | OBD-II、USB、调试接口、拆壳 | 需要物理接触车辆 | 中高 |
| 供应链攻击面 | 固件更新包、第三方SDK、诊断工具 | 在开发或售后环节介入 | 中 |
我的经验:远程攻击面是当前最危险的。为什么?因为攻击者可以在世界任何角落发起攻击,不需要靠近车辆。我记得2022年某团队演示过,通过T-Box的4G漏洞远程控制了一辆量产车的刹车系统——这就是远程攻击面的典型例子。
2.2 典型攻击场景
攻击面是入口,攻击场景是攻击者具体怎么操作。我按攻击距离分成三类,每一类都有真实案例。
2.2.1 远程攻击场景
远程攻击是当前车载安全最大的噩梦。攻击者不需要靠近车辆,只需要找到网络入口。
- T-Box远程入侵:通过4G/5G蜂窝网络,利用T-Box固件漏洞或弱口令,获取T-Box root权限,进而访问车内网络。
- 云端到车端攻击:攻击车联网云平台,下发恶意指令或篡改OTA升级包,实现批量控车。
- V2X攻击:伪造V2X消息(如红绿灯信号、前车刹车信息),诱导车辆做出危险决策。
避坑指南:我曾经见过一个项目,T-Box和IVI之间没有任何隔离,T-Box被攻破后直接就能发CAN报文控制刹车。这就是典型的「远程攻击面 + 网络隔离缺失」组合拳。所以后面我们会花大量篇幅讲网络隔离。
2.2.2 近场攻击场景
近场攻击需要攻击者在车辆附近,但不需要物理接触。这类攻击往往被低估。
- 蓝牙重放攻击:捕获蓝牙钥匙的配对信号,重放后解锁车门。我记得某国际品牌就出过这类漏洞。
- Wi-Fi中间人攻击:在车辆连接公共Wi-Fi时,攻击者伪造热点,截获或篡改车机与云端通信。
- NFC中继攻击:用中继设备放大NFC信号,让车主以为钥匙在车内,实际攻击者在远处就能启动车辆。
2.2.3 物理攻击场景
物理攻击需要接触车辆,但一旦得手,破坏力极大。你想想看,攻击者都摸到车了,还有什么不能干的?
- OBD-II端口攻击:通过OBD-II接口直接接入CAN总线,发送诊断报文或恶意控制指令。
- USB调试接口攻击:通过车机USB口进入ADB模式,安装恶意应用或提取敏感数据。
- 拆壳硬件攻击:拆开ECU外壳,通过JTAG/SWD调试接口读取固件或注入代码。
个人建议:物理攻击虽然需要接触,但你不能假设攻击者永远接触不到。比如代客泊车、维修保养、二手车交易等场景,车辆都可能脱离车主控制。所以物理接口的防护同样重要。
2.3 攻击链模型:怎么结构化描述威胁?
光知道攻击面和攻击场景还不够。我们需要一个结构化的模型来描述和分析威胁。我个人最常用的是STRIDE和攻击树,下面详细讲。
2.3.1 STRIDE 模型
STRIDE是微软提出的威胁建模方法,把威胁分成六类。每个字母代表一类威胁。
| 字母 | 威胁类型 | 车载场景举例 | 影响 |
|---|---|---|---|
| S | Spoofing(欺骗) | 伪造V2X消息、伪造ECU身份 | 身份假冒 |
| T | Tampering(篡改) | 篡改CAN报文、修改固件 | 数据完整性破坏 |
| R | Repudiation(抵赖) | 否认发送过诊断指令 | 不可追溯 |
| I | Information Disclosure(信息泄露) | 窃取车辆位置、用户隐私 | 机密性破坏 |
| D | Denial of Service(拒绝服务) | CAN总线泛洪攻击、OTA服务瘫痪 | 可用性破坏 |
| E | Elevation of Privilege(权限提升) | 从IVI普通用户提权到系统管理员 | 越权操作 |
实战用法:我在做安全需求分析时,会针对每个数据流(比如T-Box到网关的通信),逐一问自己:这个流会不会被欺骗?会不会被篡改?会不会导致信息泄露?这样就能系统性地找出所有威胁,而不是靠拍脑袋。
2.3.2 攻击树模型
攻击树是一种树形结构,根节点是攻击者的最终目标,子节点是达成目标需要的子步骤。说白了,就是把攻击者的思路画出来。
举个例子,攻击者的目标是「远程控制车辆刹车」。攻击树可能是这样的:
根目标:远程控制车辆刹车
├── 1. 获取T-Box远程访问权限
│ ├── 1.1 利用T-Box固件漏洞
│ ├── 1.2 暴力破解T-Box SSH密码
│ └── 1.3 通过云端下发恶意配置
├── 2. 从T-Box渗透到网关
│ ├── 2.1 利用T-Box与网关之间的未加密通信
│ └── 2.2 利用网关固件漏洞
├── 3. 从网关发送刹车CAN报文
│ ├── 3.1 伪造刹车ECU的CAN ID
│ └── 3.2 绕过网关的CAN报文过滤规则
└── 4. 触发刹车动作
└── 4.1 发送连续刹车指令直到车辆停止
我的习惯:画攻击树时,我会把每个叶子节点(最底层的子步骤)都标上「攻击难度」和「检测难度」。比如「暴力破解SSH密码」攻击难度低但检测难度高(容易被日志记录),而「利用固件漏洞」攻击难度高但检测难度低(需要0day)。这样就能指导我们优先防御哪些路径。
2.4 威胁分析实战:一个完整的例子
光说不练假把式。我们拿一个真实场景来走一遍完整的威胁分析流程。
场景:某车型支持手机App远程启动空调。攻击者想通过这个功能远程启动车辆并开走。
第一步:攻击面识别
- 远程攻击面:手机App、云端API、T-Box蜂窝网络
- 近场攻击面:手机与车辆之间的蓝牙配对
- 物理攻击面:T-Box调试接口
第二步:攻击场景分析
- 场景A:攻击者破解手机App账号密码,直接远程启动车辆
- 场景B:攻击者拦截手机App与云端之间的通信,重放启动指令
- 场景C:攻击者通过T-Box漏洞,直接发送启动指令到CAN总线
第三步:STRIDE威胁建模
| 数据流 | S | T | R | I | D | E |
|---|---|---|---|---|---|---|
| 手机App → 云端 | ✓ | ✓ | ✓ | ✓ | ||
| 云端 → T-Box | ✓ | ✓ | ✓ | |||
| T-Box → 网关 | ✓ | ✓ | ✓ | |||
| 网关 → 车身ECU | ✓ | ✓ |
第四步:攻击树分析
根目标:远程启动车辆并开走。子路径包括破解账号、重放指令、T-Box漏洞利用等。每个叶子节点都标注了防御措施。
重要提醒:威胁分析不是一次性的工作。车辆上市后,新的攻击手法会不断出现。我建议每半年做一次威胁分析更新,特别是OTA升级后、新功能上线后。
2.5 本章小结
好了,这一章的内容就到这里。我们系统梳理了:
- 攻击面:远程、近场、物理、供应链四大入口
- 攻击场景:远程攻击、近场攻击、物理攻击的具体手法
- 攻击链模型:STRIDE六类威胁和攻击树结构化分析