资讯动态

车联网安全评估实战:从云端越权到CAN总线防护

发布时间:2026/10/16 20:31:02 来源:尧图企业网站定制
我最近刚做完一台智能车型的常态化安全评估过程比想象中顺利得多——准确说是有些过于顺利了。我们只花了几分钟就通过车联网云端App的一个越权接口拿到了远程控制权限。那台车不是没有防护T-Box、安全网关、通信加密模块都在但云端业务逻辑的一个漏洞让前面整套车端加固全部空转。这就是车联网安全最典型的现实攻击者根本不碰车身只要在云端或通信链路里找到一条缝隙就能把指令一路送到车辆总线。车联网安全威胁分析如果还停留在“给车机装杀毒软件、给App加个加固壳”的层面大概率是防不住真实攻击的。这篇文章想从一个安全团队的实际评估视角出发把智能汽车从云端、管端到车端的攻击面完整拆一遍再讲我们落地时用的防护思路。车厂的安全工程师、车载系统开发者、车联网产品负责人以及刚接触智能汽车安全的研究者应该都能从中找到可参考的路径。1. 智能汽车为什么天然带着一套“新攻击面”1.1 汽车正在变成“轮子上的服务器”传统汽车内部的电子控制单元虽然不少但大部分时间是一个相对封闭的本地网络。车载网络通过CAN总线连接发动机、变速箱、ABS、车身控制等ECU对外几乎不开放通信接口攻击者想控制车辆得先有物理接触的机会或者通过OBD诊断口、娱乐系统的USB口慢慢渗透。这种模型决定了传统汽车的安全问题主要集中在物理攻击和少数无线钥匙攻击上边界相对清晰。智能网联汽车完全不同。整车出厂就会带T-Box远程通信终端通过4G/5G保持在线车载娱乐系统默认连接Wi-Fi和蓝牙用户手机App可以直接访问云端控制接口。相当于汽车在原有物理边界之外又开出了两条数字化入口一条从云端来一条从近距离无线来。攻击者不用站在车旁边只要能拿下App账号、云端接口或者通信链路中的某个薄弱点就能远程定位、解锁、开关空调甚至在某些架构缺陷下触碰制动和转向相关总线。汽车的本质正在从“交通工具”变成“轮子上的服务器”攻击面也随之被重新定义。1.2 车规环境的硬约束为什么不能像修服务器一样修车网络安全领域的人经常想当然地按IT思路给汽车打补丁但真正接触车规环境之后会发现很多条条框框。第一是实时性要求底盘和动力相关的ECU对消息延迟极其敏感一条CAN报文晚到几毫秒就可能影响控制策略安全防护不能给关键控制链路增加不可控时延。第二是算力约束车规级MCU的CPU主频和内存远不如云端服务器很多高性能加解密算法跑不动必须选用轻量级密码算法。第三是生命周期约束一台车要服役十年以上但车载算力、芯片性能和存储空间都是固定的安全补丁的兼容性周期远比服务器长。第四是运营场景约束。服务器异常时可以重启、回滚汽车在行驶中出问题不能随便重启升级失败还会直接把用户困在路上。第五是供应链复杂度一台车有成百上千个ECU来自不同供应商安全水平参差不齐任何一个二级供应商的库文件带漏洞都会成为整车攻击链的跳板。这些约束组合在一起决定了车联网安全不能照搬IT安全那套“监测-告警-重启-打补丁”的循环必须在架构设计阶段就提前做好规划。维度传统IT系统车联网环境运行场景机房/云故障可重启路上行驶故障直接影响生命安全补丁节奏可快速迭代发布需OTA或进店升级发布周期长算力资源充足可上重型加密车规MCU资源紧张需要轻量算法生命周期一般3-5年整车10年以上供应链相对集中可快速替换多级供应商代码来源复杂2. 威胁建模把云端、管端、车端三层拆开看对一个车联网体系与其笼统地说“汽车被攻击了”不如把系统按数据流切成三层云端业务平台、管端通信链路、车端车载系统。我们在实际评估里都用这个模型起步每次都能快速定位到底哪一环是攻击者最容易切入的点。2.1 云端攻击面业务接口越权是重灾区云端层包括车企的用户账号体系、车辆远程控制API、大数据平台、OTA服务系统以及车端上报数据的处理服务。这一层最大的特点是代码迭代速度快、业务逻辑复杂、和互联网直接打通。在实际攻防中最常遇到的就是越权访问用户A调用接口时使用了用户B的车辆标识服务端没校验归属关系导致A能对B的车辆下发指令。为什么越权问题在车联网里格外致命因为车辆标识号在很多业务系统里是半公开的甚至能从行驶证、保险单据、App分享功能里拿到。攻击者只要拿到VIN再配合云端越权接口就能拼凑出“远程控制任意车辆”的攻击链。除了越权云端常见的还有批量注册刷接口、短信验证码绕过、车辆状态数据未授权读取、OTA升级包上传接口未校验签名等。这些问题单看都不算高深漏洞但落在车控场景里危害等级和传统Web漏洞完全不在一个量级。2.2 管端攻击面通信协议里藏着控制指令的地图管端是车辆与云端之间传输指令和数据的通道典型协议包括MQTT、HTTP/HTTPS、WebSocket和部分厂商私有TCP长连接。车端T-Box需要通过这个通道上报位置、电量、车况也要接收远程控制指令。风险评估时我们一般重点看三个细节是否启用双向认证传输层加密是否完备以及指令是否具备防重放能力。在多个评估项目里都见过这样的实现服务端下发指令时确实用了TLS加密但T-Box的设备证书以明文文件形式放在文件系统里攻击者从IVI或者调试口拿到该文件后就能仿冒设备。也遇到过MQTT主题名直接包含VIN客户端只要订阅对应主题就能监听其他车辆的指令流这是主题级权限控制缺失导致的横向越权。重放攻击则更隐蔽指令本身有签名但签名里没有时间戳和单次使用的随机数攻击者把历史指令原样重发一遍仍然有效。举一个很实际的场景如果重放的是远程加热功能反复触发影响的是能源和部件寿命如果重放的是中控锁指令后果就可想而知了。2.3 车端攻击面真正拿到车辆总线控制权的关键一步车端是最后也是最难守的一段。典型的车端节点包括T-Box、IVI车机、网关、动力域控制器、车身域控制器、ADAS控制器以及各类执行器ECU。T-Box是远程指令进入车内网络的桥头堡IVI是攻击者最容易接触到的智能终端网关则负责不同域之间的报文隔离和转发。这里根本性的难点在于CAN总线协议本身是一种广播式总线设计之初没有源身份认证所有接入总线的节点都可以收发报文。所以只要攻击者能突破某一条可联网的链路进到车内网络后续横向扩展就不需要再破解什么复杂密码只要识别出各控制器的报文ID格式就能伪造指令。OBD-II诊断接口、IVI的USB口、Wi-Fi和蓝牙模组都可能成为物理或近距离突破口。车端的威胁不是“某个电子元件有漏洞”而是整车电子电气架构在初始设计时是否足够隔离让任何单一入口都无法直达关键控制总线。层次典型入口高频风险危害程度评估难度云端App接口/API网关越权、账号批量注册、数据泄露高可直接触达车控指令中管端MQTT/TCP/TLS明文监听、证书仿冒、重放攻击高中车端IVI/T-Box/OBD/蓝牙固件提取、总线伪造、网关绕过极高高3. 一条从云端越权到CAN指令的完整攻击链复盘理论说再多不如完整走一遍。这部分是我们团队在一个模拟车型评估项目里的测试过程目标很明确验证一个仅有App和车辆标识的普通用户能否在不接触车辆的情况下控制一辆同品牌车。全程都在受控环境、封闭场地中进行。3.1 云端越权用VIN号找到别人的车辆控制接口第一站是车主App。我们在一台测试手机上安装App后开启抓包代理正常走完注册、登录、绑定车辆的流程很快就能看到App调用的远端域名和接口列表。常规接口包括获取车辆信息、获取车辆状态、远程车控等。这时把请求中代表当前车辆标识的参数从一个合法VIN换成另一个测试车的VIN服务端就返回了那台车的实时位置和电量信息。继续遍历接口发现远程解锁接口也一样完全没校验车辆归属关系。这个漏洞利用起来的复杂度非常低就是我们平时在Web渗透里常说的“对象级越权”。但它对车联网的影响被放大了App端有防止重放或风控机制吗完全没有服务端逻辑就没有做归属校验。为了确认利用范围我们批量注册了一批测试账号去遍历发现任意注册用户都能控制任意已激活车辆。整个过程不需要任何特殊工具一个抓包软件加一个脚本就能完成。# 仅演示越权测试思路参数已脱敏 curl -X POST https://api.example-cloud.com/v1/vehicle/control/unlock \ -H Authorization: Bearer 普通用户Token \ -d {vin:测试车辆VIN,command:unlock}这是代写示例用来展示测试思路真实环境中的接口封装会复杂很多。但核心逻辑不变只要服务端信任了客户端传过来的车辆标识而没有在后端重新校验归属越权就成立。3.2 管端重放一条指令的“身份证”缺失云端接口的问题暴露后我们继续向管端深挖。抓取车控指令到达T-Box前后的通信数据时发现车云链路虽然使用了TLS但服务器对设备没有做双向认证设备侧证书也不具备独立身份绑定。更关键的是车控指令里没有时间戳和随机数一条合法的“远程解锁”指令被完整记录后我们可以无限次原样发给T-Box每次都执行成功。这个问题的本质是“指令真实性”和“指令时效性”同时缺失。真实性缺失意味着攻击者可以伪造来源时效性缺失意味着即便攻击者解不开通信加密只要在某一次合法下发过程中抓包成功就能反复触发同一操作。防护方案其实并不复杂在指令中增加单调递增计数器和时间戳设备端记录最近一次已使用的计数重复报文直接丢弃。但很多车型在设计时只考虑了加密没有考虑到“重放也是一种攻击”这类细节只有在渗透测试后复盘时才会被重视。3.3 总线横向移动从OBD接口到车身控制域最后一段是车端总线。我们在封闭场地的测试车辆上通过OBD-II接口接入CAN分析工具。正常情况下诊断口的对外数据会经过网关过滤但测试车型的网关策略只对部分诊断服务做了限制远程空调、车窗、门锁等控制指令所在的报文域几乎可以直通。通过捕获正常开关锁动作的流量分析报文ID和data字段很快就建立了一套指令模板。之后我们尝试通过网关白名单放行的ID段构造伪造报文去触发车窗和后备箱动作。由于网关对报文周期和信号范围没有校验伪造报文直接被控制器执行。这一步完成后整条攻击链闭环了云端越权拿到接口管端重放拿到指令持久控制力总线伪造拿到物理执行效果。攻击者不需要站在车旁边也不需要破解车端任何密码体系就完成了一次典型的远程控制攻击。看到这里可能有读者会问如果网关隔离做得很严格攻击还能成功吗答案是难度会大幅提升但攻击路径仍然存在只是需要多突破一层防护。所以车联网安全防护的核心逻辑就是每一层都要设卡不让任何单点失守直接导致整车沦陷。4. 车联网防护思路从单车可信根一路管到云端防护思路必须对应攻击链反向设计。我们落地的时候一般分四层推进车端可信根、通信链路防护、总线与网关加固、云端和运营侧纵深配套。四层缺一不可但顺序有讲究先解决车辆本身的可信问题再谈通信和云端防护。4.1 车端可信根安全启动和HSM密钥管理第一层要解决“设备是否可信”的问题。车端T-Box、IVI和网关芯片在启动时要从BootROM开始逐级验签固件、内核、应用层都必须有合法签名才能执行否则设备可能被刷入劫持固件。光有安全启动还不够密钥必须放在HSM安全模块或SE安全单元里确保固件被读取甚至逆向时私钥不会暴露。实际项目里有个容易被忽视的点安全启动和密钥管理的方案要跟着芯片选型走。如果硬件平台本身不带HSM后期靠软件实现密钥保护很难达到同样的强度。我们通常建议整车厂在选T-Box和网关芯片时就把安全启动、安全存储、真随机数发生器作为刚性需求而不是等到软硬件设计完成后再去补。这个决策看起来只是选型问题实际上决定了整个安全体系的地基质量。4.2 通信链路防护双向认证、防重放与车规PKI车云通信必须使用双向TLS或者更高强度的mTLS车端证书由整车厂的PKI体系签发并且做到一车一证书、支持远程轮换。通信内容层还要考虑指令防重放在协议设计里加入时间戳、随机数和单调计数器。这里有必要强调很多方案只做TLS加密以为加密就等于安全但加密解决的是“看得见”的问题身份认证和防重放解决的是“能不能信”的问题两者缺一不可。密钥轮换也经常被忽略。证书有效期动辄五年十年一旦算法被破解或私钥泄露修复成本极高。我们一般建议OTA系统具备证书和密钥的远程轮换能力密钥下发本身也要走加密通道并配合车端安全存储模块完成安装。这套体系一旦建立设备失窃后即使被物理拆解也无法仿冒合法身份接入云端。4.3 总线与网关加固白名单报文过滤加异常行为检测总线层防护的关键不是给CAN加“密码”而是尽量让不可信节点进不了关键总线。网关要做区域隔离把动力域、座舱域、车身域、诊断域分成独立的安全区域区域之间的报文按白名单路由只放行业务确实需要转发的报文ID其他一律丢弃。门锁、车窗这类控制最好由车身域控制器统一管理IVI和T-Box不能直接发控制CAN帧。之前测试中暴露的“越权控制车窗”问题靠的就是网关报文过滤。在此基础上网关和域控制器上可以做轻量级入侵检测很多厂商的周期型报文发送间隔是有规律的攻击者伪造报文时发送节奏会偏离基线网关按周期抖动、报文长度、信号范围等特征做异常判定一旦发现可疑报文就隔离来源节点并上报警告。这套机制不需要重型AI轻量统计模型就能跑在车规MCU上在工程上完全可行。4.4 云端与运营侧接口权限最小化加安全运营闭环云端不能只做账号密码保护。API网关需要做细粒度权限校验车辆归属关系必须在服务端完成校验不能信任App传入的VIN账号要绑定设备指纹和风控策略异常调用直接拦截所有车控操作必须记录操作日志包括操作人、时间、车辆、指令内容做到可审计。比较容易被忽视的是安全运营闭环。车联网安全不单是静态防护车辆上报的安全事件需要接入安全运营中心由分析人员处理告警再决定是否召回升级或通过OTA修复。我们见过不少车厂花大价钱部署了车端IDS但告警没人看事件没人跟安全能力等于没有。可以简单理解车端安全设备是“眼睛”安全运营中心才是“大脑”没有大脑的眼睛没什么用。5. 防护落地时最常踩的几个坑思路正确只是第一步。真正落地的过程中我们踩过不少坑也见过同行踩坑这里把典型问题拿出来说希望能帮大家少走弯路。5.1 密钥放在代码里看似加密了实则裸奔第一个坑是证书和密钥的存放位置。有些方案在通信里确实做了加密和签名但车端私钥直接以文件形式放在文件系统里甚至还有App把内置证书打包进安装包攻击者解包就能提取。私有密钥一旦泄露整个通信链路的安全假设就瓦解了。安全的做法是私钥必须保存在HSM或SE中只能被动调用不能被导出。项目评审时如果看到“私钥文件”这种字眼基本可以判定方案不合规。这个坑之所以频繁出现是因为很多研发团队习惯把“加密”等同于“安全”但密码学体系里密钥管理才是真正的核心。算法可以公开密钥必须保密这句话在车联网场景里同样成立。5.2 OTA只做签名校验没有兼容检查和回滚机制第二个坑出现在远程升级环节。一次OTA升级云端对升级包做了签名车端验签也通过了但升级包与当前底层的Bootloader版本不兼容刷写后车机无法启动。因为没有回滚机制车辆只能拖回维修站处理用户对品牌的信任损失远比一次普通故障大得多。OTA安全不是“验签通过就完事”还要做版本兼容矩阵检查、分批次灰度发布、失败自动回滚、双分区备份。车联网安全设计要把“升级失败本身也是一种事故”考虑进去不能只盯着加解密算法忽略升级链路本身的健壮性。我们在做项目评审时现在都会加一条硬性检查项如果升级中断车辆能否自动回到上一个可用版本。这一条能拦住很多潜在的生产事故。5.3 安全测试介入太晚等量产才想起来做评估第三个坑是时间线问题。很多车厂把安全测试放在SOP前几个月才开始结果在冬季标定或者路测阶段已经冻结的软硬件被安全评估推倒重来改一个网关隔离策略就要重新走一遍测试成本和时间完全失控。安全评估应该从架构阶段就开始威胁建模、代码审计、渗透测试分批滚动进行。一个很现实的经验在选T-Box芯片的时候就把安全要求提进去比车造好后再加HSM便宜一个数量级。安全前置说起来容易但需要安全团队深入整车开发流程跟着项目节点走而不是等节点结束了才进场。另外供应链侧的SBOM物料清单管理也要尽早建立车端软件组件繁多第三方库如果没有清单追踪漏洞爆发后整车厂根本不知道哪些车型受影响这比安全测试本身更考验组织能力。做了这些年车联网安全评估一个很直接的体会是这个领域没有“一招制敌”的防护无论云端加固得多好车端总线总会暴露新的入口无论车端隔离做得多严供应链第三方库的漏洞也会冷不丁冒出来。与其追求一套完美方案不如先把基础闭环搭好——云端接口做对权限校验车端密钥放进硬件安全模块网关做好白名单隔离告警事件有人跟进。这四个基础动作如果都做到位绝大多数攻击者的成本都会大幅上升。最后再分享一个小建议如果你的团队刚开始接触车联网安全不要一上来追求覆盖所有攻击面先挑自己产品里最值钱的资产比如远程车控链路或OTA链路做一次从云端到车端的完整渗透测试拿到结果再回头补架构。安全这东西越早看越便宜越晚补越贵。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑