2、车载网络安全威胁分析:车载网络面临的攻击面与攻击手段

大家好,我是老张。今天咱们聊聊车载网络的安全威胁。说实话,这个领域我摸爬滚打了七八年,踩过的坑不少。你想想看,一辆智能网联汽车,它身上的电子系统比二十年前的飞机还复杂。攻击者盯上它,一点都不奇怪。

我个人习惯把车载网络安全威胁分成三个维度来看:攻击面在哪、用什么手段打、攻击的完整链条是什么。咱们一个一个说。

2.1 车载网络面临的攻击面

攻击面,说白了就是黑客能从哪里下手。我把它归纳为四大入口:T-Box、IVI、ECU 和 OBD。每个口子都有它的软肋。

2.1.1 T-Box(远程通信终端)

T-Box 是车与外界的通信桥梁。它连着 4G/5G、Wi-Fi、蓝牙。嗯,这里要注意——T-Box 一旦被攻破,攻击者就能远程控制车辆。我在项目中遇到过一起真实案例:某款车的 T-Box 固件更新没有做签名校验,黑客伪造了一个更新包,直接刷了进去。后果?远程解锁、启动,全都能干。

核心风险点:
  • 远程通信协议(如 MQTT、HTTP)未加密或弱加密
  • 固件更新机制缺乏完整性校验
  • SIM 卡或 eSIM 被克隆

2.1.2 IVI(车载信息娱乐系统)

IVI 是攻击者最喜欢的入口。为什么?因为它功能多、代码量大、漏洞也多。你想想看,一个 IVI 系统跑着 Android 或 Linux,上面装了导航、音乐、语音助手,甚至还能装第三方 App。攻击面能不大吗?

我记得有一次做渗透测试,发现某款 IVI 的蓝牙协议栈有个堆溢出漏洞。攻击者只需要发送一个精心构造的蓝牙包,就能让 IVI 崩溃,甚至执行任意代码。更可怕的是,IVI 通常和 CAN 总线相连——一旦 IVI 沦陷,攻击者就能通过它向 CAN 总线发消息。

避坑指南: 我曾经见过一个项目,IVI 和网关之间没有任何隔离。结果 IVI 被攻破后,攻击者直接往动力 CAN 上发了伪造的刹车信号。后来我们强制要求:IVI 必须通过安全网关才能访问 CAN 总线。

2.1.3 ECU(电子控制单元)

ECU 是车辆的大脑和肌肉。发动机 ECU、刹车 ECU、转向 ECU……每个 ECU 都有自己的固件和通信接口。攻击面主要来自:

  • CAN 总线直接暴露:很多 ECU 的 CAN 接口没有做访问控制
  • 固件逆向:攻击者通过调试接口(如 JTAG、SWD)读取固件,分析漏洞
  • 诊断协议滥用:UDS(统一诊断服务)协议如果没做身份认证,攻击者可以随意读写 ECU 内存

2.1.4 OBD(车载诊断接口)

OBD 接口是法规强制要求的,但它也是攻击者的“后门”。你想想看,OBD 接口直接连到 CAN 总线上,插上一个 OBD 设备就能收发 CAN 消息。攻击者只需要物理接触车辆几分钟,就能通过 OBD 注入恶意消息。

我的建议: 在 OBD 接口和 CAN 总线之间加一个硬件防火墙。只允许诊断工具发送合法的 UDS 请求,其他消息一律拦截。这个方案我在两个量产项目上用过,效果不错。

2.2 常见的攻击手段

攻击面知道了,那攻击者具体怎么打?我总结四种最常见的手段:重放攻击、DoS、欺骗、嗅探。咱们一个个看。

2.2.1 重放攻击

重放攻击,说白了就是“录下来,再放一遍”。攻击者先监听 CAN 总线,记录下某个合法消息(比如“解锁车门”),然后在需要的时候重新发送这条消息。

为什么会这样?因为很多 CAN 消息没有时间戳或序列号。我记得在某个项目中,我们测试发现:只要录下一条车窗升降的 CAN 消息,就能无限次重放控制车窗。后来我们加了消息认证码和计数器,才堵住这个漏洞。

防御思路:
  • 消息中加入单调递增的计数器
  • 使用消息认证码(MAC)验证消息完整性
  • 接收端检查时间戳,拒绝过期消息

2.2.2 DoS(拒绝服务攻击)

DoS 攻击的目标是让系统瘫痪。在车载网络中,攻击者可以往 CAN 总线上发送大量高优先级消息,挤占正常消息的带宽。你想想看,如果刹车消息被挤得发不出去,后果是什么?

我曾经在实验室里模拟过这种攻击:用一台设备以 1ms 的间隔发送 ID 为 0x000 的消息(CAN 总线上优先级最高),结果发动机 ECU 直接“失联”了。嗯,这就是典型的 CAN 总线 DoS。

注意: 车载网络中的 DoS 攻击不一定是高带宽的。有时候只需要一条精心构造的错误帧,就能让整个 CAN 网络进入“总线关闭”状态。

2.2.3 欺骗攻击

欺骗攻击,就是攻击者伪装成合法的 ECU 发送虚假消息。比如,攻击者伪装成 ABS 控制器,向发动机 ECU 发送“车轮打滑”的假消息,导致发动机错误地降低扭矩。

这种攻击最难防的地方在于:CAN 总线本身没有源地址认证。任何节点都可以发送任何 ID 的消息。所以,你无法通过消息 ID 判断它是不是来自合法的 ECU。

我的经验: 解决这个问题,要么用消息认证码(MAC),要么用安全网关做消息过滤。我个人更推荐后者——网关知道哪个 ECU 应该发哪些 ID 的消息,不符合的就直接丢弃。

2.2.4 嗅探攻击

嗅探攻击是被动的,攻击者只是“听”,不“说”。但别小看它。通过嗅探 CAN 总线上的消息,攻击者可以分析出车辆的状态、驾驶行为,甚至提取出密钥。

我记得有一次做安全评估,发现某款车的网关在明文传输诊断会话的种子和密钥。攻击者只要嗅探一次,就能拿到密钥,然后伪造诊断请求。后来我们强制要求:所有诊断通信必须加密。

2.3 攻击链模型(Kill Chain)

攻击不是一蹴而就的。它有一个完整的链条。我习惯用 Lockheed Martin 的 Kill Chain 模型来分析车载攻击。这个模型把攻击分成七个阶段:

阶段 描述 车载场景示例
1. 侦察 收集目标信息 扫描 T-Box 的开放端口、分析 IVI 的 App 列表
2. 武器化 制作攻击载荷 编写 CAN 消息注入脚本、制作恶意固件包
3. 投递 将载荷送达目标 通过 OBD 接口注入、通过 IVI 的蓝牙发送
4. 利用 触发漏洞 利用 IVI 的缓冲区溢出执行代码
5. 安装 建立持久化控制 刷写恶意固件、安装后门程序
6. 指挥与控制 建立远程通信 通过 T-Box 的蜂窝网络连接 C2 服务器
7. 目标达成 执行最终攻击 远程解锁、关闭发动机、窃取数据

你想想看,如果我们能在链条的早期阶段就阻断攻击,后面的步骤就无从谈起。比如,在“侦察”阶段做好端口隐藏和协议混淆,攻击者连门都找不到。或者在“投递”阶段做好输入验证,恶意载荷根本进不来。

核心思路: 安全网关和防火墙的部署,本质上就是在 Kill Chain 的多个阶段设置“关卡”。侦察阶段——隐藏服务;投递阶段——过滤恶意消息;利用阶段——隔离关键 ECU。每一道关卡都能让攻击者的成本翻倍。

好了,关于车载网络的攻击面、攻击手段和攻击链模型,我就讲到这里。下一章咱们聊聊安全网关和防火墙的具体部署方案。到时候我会结合我踩过的坑,给大家一些实用的配置建议。