0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

汽车CAN总线渗透测试

上海控安 来源:上海控安 作者:上海控安 2022-11-09 13:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者 |肖博阳上海控安可信软件创新研究院研发工程师

来源 |鉴源实验室

01 CAN总线

1.1 CAN总线是什么?

CAN是控制器局域网络(Controller Area Network, CAN)的简称,是ISO国际标准化的串行通信协议,由以研发和生产汽车电子产品著称的德国BOSCH公司开发,并最终成为国际标准(ISO 11898)。CAN总线是国际上应用最广泛的现场总线之一。

1.2 为什么要使用CAN总线?

在汽车产业中,出于对安全性、舒适性、方便性、低功耗、低成本的要求,各种各样的电子控制系统被开发出来。由于这些系统之间通信所用的数据类型及对可靠性的要求不尽相同,由多条总线构成的情况很多,线束的数量也随之增加。为适应“减少线束的数量”“通过多个LAN,进行大量数据的高速通信”的需要,1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议。此后,CAN 通过ISO 11898及ISO 11519进行了标准化,在欧洲已是汽车网络的标准协议。

pYYBAGNrPmKAEYcLAAB3kFr_JQM124.png

图1汽车CAN总线(From gast-auto.com)

1.3CAN总线的网络安全威胁分析

CAN网络不是一个封闭的内部网络,可直接通过车内的OBD诊断接口接入CAN总线,也可通过智能手机、云服务器等与T-Box建立连接间接接入CAN总线,这样就给不法者入侵CAN网络提供了可乘之机。通过对CAN总线协议与网络特性进行简要的TARA(Threat Analysis and Risk Assessment)分析,可将CAN网络的威胁安全属性总结为以下几方面:

(1)机密性

CAN总线的通信方式是全局广播,因此只要接入CAN总线的任一节点,就能轻易访问CAN总线上所有流量信息。CAN数据以明文形式传输,没有任何消息验证码、数字签名的保护。

(2)可用性

CAN总线采用基于优先级的仲裁方式,即当有多条消息同时需要发出时,优先级高的先行发出,因此攻击者可以利用这一点,在某节点以高频发送具有高优先级的报文以阻塞其他节点的消息发出,进而导致ECUs无法正常工作。

(3)真实性

CAN报文数据内容不包含发送方的任何信息,这使节点无法判断消息的来源是其他合法节点还是攻击者,因此外部攻击者可以伪装成任一ECU节点发送恶意消息。

(4)完整性

CAN协议本身虽然有CRC校验对传输过程进行完整性验证,但不能防止数据被第三方恶意修改后重新注入。

02 渗透测试

2.1 什么是渗透测试

渗透测试是一种通过模拟恶意攻击者的技术和方法,挫败目标系统的安全控制措施,取得访问控制权,并发现具有业务影响后果安全隐患的一种安全测试与评估方式。

2.2 为什么要对CAN总线做渗透测试?

上文已经对CAN总线的潜在风险与渗透测试做过简要的介绍,因此不难发现,对于有着一定潜在风险的通信协议,对其进行渗透测试是不可或缺的。通过渗透测试,我们能对CAN存在的漏洞等安全脆弱点进行探测、利用,进一步得到目标系统存在的安全隐患,使目标机构和组织可以参照生成的渗透测试报告进行维护。

2.3渗透测试的方式

(1)模糊攻击

模糊攻击指的是通过生成一系列随机、无效或非预期的报文后,将这些报文发送至目标总线上,以达到目标总线出现非预期的行为的一种渗透测试方式。模糊攻击不需要了解攻击对象本身的数据特点(如CAN报文的某一数据位所表示的意义),只需要构建符合CAN报文格式的数据,因此可以通过模糊攻击挖掘系统的潜在漏洞。

模糊攻击可以测试当前被测对象是否有做报文数据完整性校验的安全防护措施,若无安全防护措施,则被测对象将可能产生非预期的行为。模糊可以在不同层面上进行,分别为:原始报文层、系统信号层、协议层。针对这三种层面,均可使用随机模糊、遍历模糊或自定义的模糊策略进行模糊攻击。

例如将报文ID设置为完全随机、报文DLC设置为4、报文Data设置为”1X 12 34 56”,其中X表示需要模糊的数据,对CAN总线进行模糊攻击,可以看到发送的模糊报文如图2所示。

pYYBAGNrP5aANrZHAAAaDF_FmCQ995.png

图2模糊攻击报文信息

(2)重放攻击

重放攻击指的是恶意地将有效报文发送至目标总线上,使目标系统重现该报文所控制的行为或对应的状态的一种渗透测试方式。重放攻击的前提即是上文介绍的CAN总线利用全局广播进行通信,攻击者利用这点能够轻而易举地获取到CAN总线上所有的报文信息。重放攻击也不需要了解攻击对象本身的数据特点或工作原理,只需原封不动地将报文发送即可达到攻击目的。重放攻击可以测试当前被测对象是否有做关于数据来源的真实性校验的安全防护措施,若没有则被测对象将会执行恶意重放报文的控制行为。

(3)DoS攻击

DoS是Denial of Service的简称,即拒绝服务,指的是通过临时或无限期干扰连接于网络的服务。DoS攻击基于上文介绍的CAN总线以报文优先级进行仲裁得以实现,对于CAN总线,DoS攻击可以理解为频繁向目标总线发送高优先级报文来占满目标总线的资源,提高总线负载率,使其他正常报文不可传输。DoS攻击需要了解CAN报文的优先级仲裁机制,即CAN报文的id位越小,CAN报文的优先级越高;在具有相同id时,数据帧的优先级大于遥控帧的优先级、标准帧的优先级大于拓展帧的优先级。DoS攻击可以测试当前被测对象是否有做可用性保护的安全防护措施。

例如将报文ID设置为0x1、报文DLC设置为4、报文Data设置为“12 34 56 78”、期望负载率设置为40%,对CAN总线进行DoS攻击,可以看到总线负载率如图3所示。

pYYBAGNrP8yABlWeAAARfSXzCC0028.png

图3 DoS攻击时总线负载率图

(4)UDS探测

UDS(Unified Diagnostic Services,统一的诊断服务)诊断协议是在汽车电子ECU环境下的一种诊断通信协议。UDS报文与普通报文不同,通常情况下在CAN总线中不会存在大量的UDS报文;当用户需要对ECU请求服务时,才会向CAN总线发送UDS报文,在接收到UDS报文后,ECU会以相应的正响应或负响应进行回复,可以将这一过程理解为一种问答式的通信方式。基于这种问答式的通信,用户可以在CAN总线上实现基于ISO 14229协议中的许多服务,如诊断会话控制服务、通过ID读数据服务,暴力破解安全进入服务,进一步得到用户或者厂家的私密信息。

UDS探测并非是一种攻击方式,而可以理解为一种为之后渗透测试攻击所做的准备工作。通过UDS探测,可以获取到汽车所支持的服务类型等信息,窃取用户以及厂商的私密信息,也可采取进一步的渗透测试,如前文所介绍的模糊攻击等。

例如可先探测目标网络诊断物理寻址请求ID与ECU的响应ID,为后续进一步的渗透提供前置条件。探测效果图如4所示。

poYBAGNrP_uASzF3AAB3ElVAM00479.png

图4 UDS探测效果图

03 总结

随着汽车智能化、网联化的高速发展,对于汽车通讯网络的安全威胁越来越多,而CAN总线是目前汽车使用最广泛的总线之一,因此对汽车CAN总线网络安全威胁进行渗透测试、挖掘潜在漏洞至关重要。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 控制器
    +关注

    关注

    114

    文章

    17646

    浏览量

    190261
  • CAN总线
    +关注

    关注

    145

    文章

    2020

    浏览量

    134690
  • 汽车电子
    +关注

    关注

    3043

    文章

    8558

    浏览量

    172239
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    CAN总线电容过大?三种解决方案来了

    在新能源汽车路试中,CAN总线传输异常是一个常见问题。本期我们将探讨由于总线电容过大导致的下降沿过缓问题,并介绍三种有效的解决方案。CAN
    的头像 发表于 07-22 11:36 476次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>电容过大?三种解决方案来了

    泰克TBS1102X示波器在汽车总线测试中的专业应用

    随着汽车电子系统的日益复杂,现代车辆中集成了大量的电子控制单元(ECU)和传感器,这些设备通过总线系统(如CAN、LIN、FlexRay等)实现高效通信。汽车
    的头像 发表于 06-13 13:46 448次阅读
    泰克TBS1102X示波器在<b class='flag-5'>汽车</b><b class='flag-5'>总线</b><b class='flag-5'>测试</b>中的专业应用

    如何设计一款高可靠性的汽车CAN总线(二)

    ESD可能会发生在车辆安装和维修时CAN连接器的手动插拔,以及车辆在行驶过程中,电路噪声耦合到CAN总线等情况,具体取决于CAN总线在车辆内
    的头像 发表于 03-14 11:18 5139次阅读
    如何设计一款高可靠性的<b class='flag-5'>汽车</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>(二)

    CANape中记录总线报文及生成BLF文件的培训视频#CANape #汽车CAN总线 

    CAN总线
    北汇信息POLELINK
    发布于 :2025年03月06日 11:40:27

    CAN总线十万个为什么 | 做好这几点,总线通讯不再异常

    导读在当今的工业和汽车电子领域,CAN总线的应用极为广泛,但错误帧问题却常常困扰着工程师们。本文将通过一个真实的案例,深入探讨CAN总线错误
    的头像 发表于 02-14 11:37 924次阅读
    <b class='flag-5'>CAN</b><b class='flag-5'>总线</b>十万个为什么 | 做好这几点,<b class='flag-5'>总线</b>通讯不再异常

    罗德与施瓦茨示波器在汽车CAN总线协议分析

    在当今汽车电子系统日益复杂的背景下,汽车CAN总线协议作为车辆电子设备之间的数据传输主干,已成为汽车行业的标准通信协议。随着智能化、自动驾驶
    的头像 发表于 02-11 16:36 746次阅读
    罗德与施瓦茨示波器在<b class='flag-5'>汽车</b><b class='flag-5'>CAN</b><b class='flag-5'>总线</b>协议分析

    CAN错误帧的表现形式#汽车总线 #CAN #CANoe

    CAN
    北汇信息POLELINK
    发布于 :2025年01月22日 16:23:53

    CAN错误帧格式与错误帧分类#汽车总线 #CAN #CANoe

    汽车总线
    北汇信息POLELINK
    发布于 :2025年01月13日 09:44:37

    CAN/CANFD 总线干扰仪TESTBASE-BDI

    总线干扰仪是CAN/CANFD总线一致性测试中必不可少的重要设备,用于实现采样点以及故障注入等测试项配合桌面式车载网络自动化
    的头像 发表于 12-26 11:24 1413次阅读
    <b class='flag-5'>CAN</b>/CANFD <b class='flag-5'>总线</b>干扰仪TESTBASE-BDI

    CAN总线模拟器的使用指南 CAN总线网络的安全性分析

    CAN总线模拟器的使用指南 CAN总线模拟器(如ICSim)是一种用于模拟CAN总线通信的工具,
    的头像 发表于 12-23 09:16 3646次阅读

    如何使用Arduino实现CAN总线通信呢

    CAN(Controller Area Network)总线是一种常用于汽车和工业控制系统的串行通信协议,以其高可靠性和实时性而闻名。Arduino,作为一种流行的开源微控制器平台,可以通过附加
    的头像 发表于 12-23 09:06 2818次阅读

    使用CAN总线进行数据采集的方法

    汽车内部各个模块之间进行通信的一种协议,通过它可以获取到车辆的各种状态信息、传感器数据等。因此,在进行数据采集之前,需要熟悉CAN总线的工作原理、通信协议以及数据格式。 二、选择合适的CAN
    的头像 发表于 12-20 18:18 3462次阅读

    CAN总线工作原理分析 CAN总线汽车工业中的应用

    CAN总线工作原理分析 1. 概述 CAN总线是一种串行通信协议,由Bosch公司在1986年开发,主要用于汽车电子系统中。它允许多个设备共
    的头像 发表于 12-20 17:33 4488次阅读