面向车辆域控制器的渗透测试方法研究

来源:优秀文章 发布时间:2022-11-11 点击:

杨洪福, 朱翔宇, 孙延秋

上海创时汽车科技有限公司, 上海 201201

伴随着车辆智能化、网联化程度的提高,车辆已不仅仅利用CAN总线进行信息交互,而是作为智能的移动终端,实现和车、路、云、人的通信交互。在带来优质体验的同时,也带来信息安全的隐患。信息安全问题不仅能造成财产损失,还可能对用户的生命构成威胁,因此信息安全重要性得到国家和车企的高度重视。国家出台了相关的车辆信息安全法规,各大主机厂及供应商也正在进一步加强信息安全的防御、检测。其中渗透测试就是专门针对网络安全的测试,可帮助发现网络安全漏洞,进而协助提高网络安全水平。

作为车辆云—管—端中端的一环,域控制器得到越来越广泛应用,主要由微控制器(micro controller unit,MCU)和微处理器(micro processor unit,MPU)组成。域控制器不仅涉及CAN通信,还涉及网络通信等计算机方面内容,由于其同时涉及CAN和以太网,而且还是域中重要一环,便成为网络安全的重点保护对象。

由于渗透测试来源于计算机的信息安全,渗透测试也主要涉及计算机方面知识,入手较为困难,且委托第三方的渗透价格也较为昂贵。为此,本文利用渗透测试理论,开发出简捷的渗透测试工具,便于开发人员快速地找出域控制存在的安全漏洞。

车辆域控制一般按照功能划分为5个域:
动力域(power train)、底盘域(chassis)、车身域(body)、座舱域(cockpit)和自动驾驶域(ADAS),每个域都有一个相应的域控制器来实现相应的功能。

域控制器目前主要由MCU和微处理MPU两大部分组成,以目前的ADAS域控制器为例,如图1所示,MCU作为“Safety host”,主要以CAN通信的形式和车内CAN网络建立联系,MPU作为“Performance host”完成视觉算法的处理,主要以车载以太网的形式和外界建立联系,MPU端的操作系统一般采用Linux 或QNX。

图1 ADAS域控制器

针对MCU的攻击,这里主要以CAN总线的攻击为主,下面将介绍几种较为常见的攻击方法以及相应的防御措施。

2.1 洪水攻击

洪水攻击:攻击者向CAN总线上发送高频率、高优先级的总线信号,从而使ECU无法正常响应其他低优先级的数据包,造成车辆的瘫痪,故障灯点亮。若在启动前进行洪水攻击,则可导致车辆无法正常启动。

针对洪水攻击,防御措施主要有增设网关、在OBD处增设防火墙等。

2.2 诊断攻击

诊断攻击:攻击者通过发送一些诊断命令来实现对控制器的篡改。例如,通过发送11 02实现重置功能,通过2E服务实现参数篡改等。

针对诊断攻击,防御措施有增加诊断的前提条件。例如,增加车速和发动机的前置判断条件、增加27服务的解锁条件等。

27服务示例:

请求seed

发送请求:27 01

肯定响应:67 01 xx(xx为seed值)

发送key

发送请求:27 02 xx(xx为key值)

肯定响应:67 02

2.3 篡改攻击

篡改攻击:攻击者通过更改正常通信的CAN报文的有效载荷实现攻击,若ECU针对篡改的内容做出正确的响应,则可实现控制、干扰的目的,如修改车速显示信息、控制转向和制动等。

针对篡改攻击,防御措施除增加“checksum”之外,还可以升级为安全报文。以MAC校验及增加新鲜度值(FV)等手段进行完整性和机密性方面的防御,如图2所示。

图2 安全报文结构

针对MPU的攻击,攻击的步骤比MCU测试更复杂一些,攻击也主要是通过网口或者车载以太网接口进行。针对MPU端的渗透测试主要包含下面几个步骤。

3.1 信息收集

收集目标的相关信息,例如:IP地址、端口信息、操作系统版本信息等,可通过Wireshark或者Netdiscover等工具来获得MPU的IP地址;也可通过Netdiscover-p来实现监听,发现在线的设备信息,如图3所示。

图3 IP信息

获取IP地址之后,可以通过Nmap工具来获得开放的端口信息。例如,通过发送Nmap-Pn1-65535 192.167.68.130命令可以获得针对IP 192.167.68.131中1-65535的开放端口的信息。

如图4所示,获取这些端口之后,就可以利用开放端口存在的漏洞,进入到MPU内部,进而实施一些违规操作。

图4 端口扫描

通过Nmap 或者Nessus工具可获得操作系统的版本信息。例如,Linux或QNX的版本信息,通过已知版本信息,在接下来的漏洞扫描中,查找该版本是否有已知的漏洞,利用该漏洞就可进行渗透攻击。

3.2 漏洞扫描

漏洞扫描的目的是找出MPU弱点,攻击者可利用该弱点进行渗透攻击,如权限设置错误、采用默认的弱密码、http 端口开启等可通过Nessus工具进行漏洞扫描。通过漏洞扫描可发现目前的漏洞数量、漏洞描述及漏洞的严重程度。可通过修复漏洞来提高网络安全的防御能力,如降低用户权限、关闭端口、密码改为证书认证等。

3.3 渗透攻击

渗透测试主要指利用漏洞加载攻击载荷,实现对MPU的攻击。渗透攻击可以通过Metasploit工具进行。密码暴力破解也属于攻击的一种,若密码设得很简单或者未采用证书认证方式登录,则很容易进行暴力破解,进而进入MPU内部,实施更改或破坏。

4.1 渗透测试工具展示

由于渗透测试需要较多的不同工具,而且大部分需在终端中输入相应的指令来进行完成,过程比较烦琐,且可视化不强。基于目前渗透测试遇到的痛点以及MCU和MPU的渗透测试逻辑,将主要的渗透内容进行汇总,编译开发出可视化较强的渗透测试软件。测试者只需要输入一些简单信息,点击相应按钮即可完成对应的测试工作,如图5所示。

图5 渗透测试工具展示

4.1.1 MPU端测试

MPU端测试主要包含信息收集、漏洞扫描和密码破解3个方面:

信息收集:可进行IP地址、端口、操作系统、可用命令的收集。其中端口信息通过调用底层Nmap工具来实现,并将最终的收集展示。

漏洞扫描:基于IP信息进行漏洞扫描,找出漏洞及漏洞的严重程度。

密码破解:基于需要破解的用户名及密码字典进行破解。例如,若 root账户使用了默认或者简单密码,则很容易进行破解。

4.1.2 MCU端测试

MCU端测试主要进行洪水攻击、诊断攻击及信号篡改攻击。

洪水攻击:可通过设置发送频率来实现攻击的程度。

篡改攻击:通过更改报文内容来实现,若MCU做出正确响应,则说明篡改攻击成功。

4.2 软件实际应用效果

针对MPU端测试,通过对模拟MPU端进行渗透测试,故意设计多个漏洞。例如,将root密码设置为默认的密码可以发现,通过该工具,可以准确获得IP地址和相应的漏洞信息,而且还可以破解root密码。

针对CAN通信测试,对其进行了诊断攻击和篡改攻击,诊断攻击通过发送2E DID写入服务,MCU给出了消极响应——条件不正确。说明针对2E服务,MCU设置了接收前置条件,测试通过。

篡改攻击,通过更改安全报文有效载荷进行测试,发现MCU端报了MAC校验错误故障。说明更改后的安全报文未通过MAC值校验,MCU端设置了MAC校验机制,测试通过。

软件实际应用结果如图6所示。

图6 软件实际应用结果

针对域控制器的渗透测试,将MCU和MPU的测试内容结合在一起,利用渗透测试的基本原理,开发出简捷的测试方法,将该方法以软件的形式进行展现,在实际的测试中,该方法也得到有效验证,协助降低了渗透测试门槛,便于渗透测试工作在测试中的推广。

猜你喜欢 报文IP地址端口 海法新港一期自动化集装箱码头电子数据交换报文系统设计与实现集装箱化(2022年2期)2022-06-08基于报文类型的限速值动态调整科学家(2021年24期)2021-04-25一种端口故障的解决方案科学家(2021年24期)2021-04-25用户设备进行组播路径追踪的方法及系统科技创新导报(2016年8期)2016-10-21为程序或设备在路由器上打开端口电脑爱好者(2015年22期)2015-09-10《IP地址及其管理》教学设计中国信息技术教育(2015年22期)2015-09-10计算机的网络身份IP地址新课程·上旬(2014年6期)2014-08-22轻松明白网络IP地址以及子网划分问题网络与信息(2009年7期)2009-07-11推荐访问:渗透 面向 车辆
上一篇:新时代背景下共享旅行创新发展研究
下一篇:多类时延下混合车辆队列建模与协同控制*

Copyright @ 2013 - 2018 优秀啊教育网 All Rights Reserved

优秀啊教育网 版权所有