3、汽车网络安全架构:整车电子电气架构(EEA)演进、域控制器与中央网关架构、安全域隔离与纵深防御原则
3.1 整车电子电气架构(EEA)的演进之路
聊汽车网络安全,得先搞懂整车电子电气架构。说白了,安全是长在架构上的。架构变了,攻击面、攻击路径全都会变。
我入行那会儿,还是分布式架构的天下。一辆车里有几十个ECU,每个ECU管自己的事儿——车窗的只管车窗,雨刮的只管雨刮。它们通过CAN总线互相喊话,但基本是“各扫门前雪”。
这种架构有什么问题?嗯,线束多、重量大、算力分散,关键是——安全边界太模糊。任何一个ECU被攻破,CAN总线上的消息就能被伪造。我在项目中遇到过,一个OBD接口的物理接入,就能让攻击者通过CAN总线给刹车系统发假指令。那时候的防护,基本靠“物理隔离”和“协议模糊”。
后来,架构开始向域集中式演进。几个功能相近的ECU合并成一个域控制器。比如车身域、动力域、底盘域、信息娱乐域。每个域控制器算力更强,能跑更复杂的软件,也就能做更精细的安全策略。
再到现在,中央计算平台+区域控制器的架构成了主流。一个或两个中央大脑,加上几个区域网关(Zone Controller),把整车的数据流统一管理起来。你想想看,这种架构下,攻击者想从信息娱乐域跳到动力域,中间得穿过中央网关——这就给了我们做安全防护的机会。
核心观点:架构越集中,安全边界越清晰,但单点失效的风险也越大。安全设计必须跟上架构演进的节奏。
3.2 域控制器与中央网关架构
咱们具体看看域控制器和中央网关是怎么分工的。
域控制器,你可以理解成一个“小脑”。它负责一个功能域内的所有计算和决策。比如智能座舱域控制器,管着仪表、中控、HUD、语音交互。自动驾驶域控制器,管着感知、融合、规划、控制。
每个域控制器内部,其实就是一个高性能的SoC(系统级芯片),跑着Linux或QNX,上面部署着各种应用和服务。安全方面,域控制器需要做的是:
- 应用隔离:不同安全等级的应用不能互相干扰。比如,导航App不能直接访问车辆控制接口。
- 资源访问控制:只有授权的进程才能访问硬件资源,比如CAN收发器、以太网端口。
- 安全启动:确保启动的固件和软件是未被篡改的。
中央网关,则是整车的“交通警察”。所有跨域的数据交换,都必须经过它。它不负责具体功能,只负责路由、过滤、监控。
我记得有一次做渗透测试,目标是一辆采用中央网关架构的新车。我们尝试从信息娱乐域的Wi-Fi入口进入,然后横向移动到动力域。结果发现,中央网关配置了严格的访问控制列表(ACL),信息娱乐域只能访问云端和诊断端口,根本碰不到动力域的CAN网络。这就是中央网关的价值。
实战技巧:测试中央网关时,重点关注它的ACL规则是否完整、是否有默认放行策略、是否支持深度包检测(DPI)。很多网关只做了IP和端口过滤,但对应用层协议(如SOME/IP、DDS)的攻击毫无防御能力。
3.3 安全域隔离与纵深防御原则
安全域隔离,说白了就是把不同安全等级的功能放在不同的“房间”里,房间之间只留一个带锁的门。这个门,就是网关或防火墙。
我习惯把整车分成这么几个安全域:
| 安全域 | 包含功能 | 安全等级 | 典型攻击面 |
|---|---|---|---|
| 外部通信域 | T-Box、V2X、蓝牙、Wi-Fi | 高 | 远程攻击、协议漏洞 |
| 信息娱乐域 | IVI、仪表、HUD | 中 | App漏洞、USB攻击 |
| 自动驾驶域 | 感知、规划、控制 | 极高 | 传感器欺骗、模型攻击 |
| 动力与底盘域 | 发动机、刹车、转向 | 极高 | CAN消息伪造、固件篡改 |
| 车身域 | 门窗、灯光、座椅 | 低 | 本地物理访问 |
每个域之间,必须通过安全网关进行通信。网关要做的不仅仅是路由,还要做:
- 身份认证:确认发送方和接收方的身份是否合法。
- 授权检查:确认这条消息是否被允许通过。
- 完整性校验:确认消息在传输过程中没有被篡改。
- 速率限制:防止DoS攻击。
纵深防御原则,就是“不要把鸡蛋放在一个篮子里”。即使一层防护被突破,还有下一层等着。
我曾经参与过一个项目,客户只做了网关的ACL过滤,觉得就够了。结果我们通过一个未授权的诊断会话,直接绕过了网关,访问到了动力域的ECU。为什么?因为诊断协议(UDS)的会话管理有漏洞,攻击者可以伪造一个“已授权”的会话ID。
避坑指南:我曾经见过很多团队只关注“边界防护”,忽略了“内部纵深”。记住,攻击者一旦进入内部网络,如果没有纵深防御,整个车辆就是“裸奔”的。建议在每个域控制器内部也做安全隔离,比如使用Hypervisor隔离不同虚拟机,或者使用Linux的Namespace和Cgroup做进程级隔离。
纵深防御的几个层次,我建议这样设计:
- 物理层:加密存储、防篡改芯片、安全调试接口。
- 网络层:防火墙、入侵检测系统(IDS)、安全通信协议(如SecOC、TLS)。
- 主机层:安全启动、应用白名单、内核加固。
- 应用层:权限管理、输入验证、安全日志。
- 数据层:数据加密、访问控制、隐私保护。
你想想看,攻击者要突破这五层,得花多大功夫?每一层都增加他的攻击成本。当攻击成本高于攻击收益时,他就放弃了。这就是纵深防御的精髓。
总结一下:架构演进给了我们更清晰的安全边界,域控制器和中央网关是安全策略的执行者,而安全域隔离和纵深防御是方法论。三者缺一不可。做渗透测试时,我会先画一张整车网络拓扑图,标出所有安全域和网关,然后逐个测试每个边界的防护强度。这是最有效的方法。
嗯,这一章就聊到这儿。下一章咱们会深入讲讲具体的攻击路径和测试方法,到时候拿真实案例来拆解。