智能汽车安全新媒体
为了更便捷发现安全漏洞,提高安全防御水平。基于渗透测试的基本原理,介绍了一种针对域控制器的渗透测试方法,将该方法以渗透工具的形式进行展现,并进行实际测试验证。以简单的操作实现针对域控制的MPU 和MCU两大部分进行漏洞检查、密码破解、诊断攻击等测试,从而降低渗透测试门槛,提高工作效率。
引言
伴随着车辆智能化、网联化程度的提高,车辆已不仅仅利用CAN总线进行信息交互,而是作为智能的移动终端,实现和车、路、云、人的通信交互。在带来优质体验的同时,也带来信息安全的隐患。信息安全问题不仅能造成财产损失,还可能对用户的生命构成威胁[1],因此信息安全重要性得到国家和车企的高度重视。国家出台了相关的车辆信息安全法规,各大主机厂及供应商也正在进一步加强信息安全的防御、检测。其中渗透测试就是专门针对网络安全的测试,可帮助发现网络安全漏洞,进而协助提高网络安全水平。
作为车辆云—管—端中端的一环,域控制器得到越来越广泛应用,主要由微控制器(micro controller unit,MCU)和微处理器(micro processor unit,MPU)组成。域控制器不仅涉及CAN通信,还涉及网络通信等计算机方面内容,由于其同时涉及CAN和以太网,而且还是域中重要一环,便成为网络安全的重点保护对象。
由于渗透测试来源于计算机的信息安全,渗透测试也主要涉及计算机方面知识,入手较为困难,且委托第三方的渗透价格也较为昂贵。为此,本文利用渗透测试理论,开发出简捷的渗透测试工具,便于开发人员快速地找出域控制存在的安全漏洞。
域控制器基本组成介绍
车辆域控制一般按照功能划分为5个域:动力域(power train)、底盘域(chassis)、车身域(body)、座舱域(cockpit)和自动驾驶域(ADAS),每个域都有一个相应的域控制器来实现相应的功能[2]。
域控制器目前主要由MCU和微处理MPU两大部分组成,以目前的ADAS域控制器为例,如图1所示,MCU作为“Safety host”,主要以CAN通信的形式和车内CAN网络建立联系,MPU作为“Performance host”完成视觉算法的处理,主要以车载以太网的形式和外界建立联系,MPU端的操作系统一般采用Linux 或QNX。
图1 ADAS域控制器
MCU端渗透测试内容及方法介绍
针对MCU的攻击,这里主要以CAN总线的攻击为主,下面将介绍几种较为常见的攻击方法以及相应的防御措施[3]。
2.1 洪水攻击
洪水攻击:攻击者向CAN总线上发送高频率、高优先级的总线信号,从而使ECU无法正常响应其他低优先级的数据包,造成车辆的瘫痪,故障灯点亮。若在启动前进行洪水攻击,则可导致车辆无法正常启动。
针对洪水攻击,防御措施主要有增设网关、在OBD处增设防火墙等。
2.2 诊断攻击
诊断攻击:攻击者通过发送一些诊断命令来实现对控制器的篡改。例如,通过发送11 02实现重置功能,通过2E服务实现参数篡改等[4]。
针对诊断攻击,防御措施有增加诊断的前提条件。例如,增加车速和发动机的前置判断条件、增加27服务的解锁条件等。
27服务示例:
请求seed
发送请求:27 01
肯定响应:67 01 xx(xx为seed值)
发送key
发送请求:27 02 xx(xx为key值)
肯定响应:67 02
2.3 篡改攻击
篡改攻击:攻击者通过更改正常通信的CAN报文的有效载荷实现攻击,若ECU针对篡改的内容做出正确的响应,则可实现控制、干扰的目的,如修改车速显示信息、控制转向和制动等。
针对篡改攻击,防御措施除增加“checksum”之外,还可以升级为安全报文[5]。以MAC校验及增加新鲜度值(FV)等手段进行完整性和机密性方面的防御,如图2所示。
图2 安全报文结构
MPU端渗透测试内容及方法介绍
针对MPU的攻击,攻击的步骤比MCU测试更复杂一些,攻击也主要是通过网口或者车载以太网接口进行。针对MPU端的渗透测试主要包含下面几个步骤[6]。
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工具进行漏洞扫描。通过漏洞扫描可发现目前的漏洞数量、漏洞描述及漏洞的严重程度。可通过修复漏洞来提高网络安全的防御能力,如降低用户权限、关闭端口、密码改为证书认证等[4]。
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端测试主要进行洪水攻击、诊断攻击及信号篡改攻击。
洪水攻击:可通过设置发送频率来实现攻击的程度。
诊断攻击:通过设计CAN ID,指定攻击对象,通过设定诊断服务命令来指定攻击种类。诊断服务命令包含了UDS的26种服务,如 11 reset命令、 2E DID写入命令等。
篡改攻击:通过更改报文内容来实现,若MCU做出正确响应,则说明篡改攻击成功。
4.2 软件实际应用效果
针对MPU端测试,通过对模拟MPU端进行渗透测试,故意设计多个漏洞。例如,将root密码设置为默认的密码可以发现,通过该工具,可以准确获得IP地址和相应的漏洞信息,而且还可以破解root密码。
针对CAN通信测试,对其进行了诊断攻击和篡改攻击,诊断攻击通过发送2E DID写入服务,MCU给出了消极响应——条件不正确。说明针对2E服务,MCU设置了接收前置条件,测试通过。
篡改攻击,通过更改安全报文有效载荷进行测试,发现MCU端报了MAC校验错误故障。说明更改后的安全报文未通过MAC值校验,MCU端设置了MAC校验机制,测试通过。
软件实际应用结果如图6所示。
图6 软件实际应用结果
结语
针对域控制器的渗透测试,将MCU和MPU的测试内容结合在一起,利用渗透测试的基本原理,开发出简捷的测试方法,将该方法以软件的形式进行展现,在实际的测试中,该方法也得到有效验证,协助降低了渗透测试门槛,便于渗透测试工作在测试中的推广。
参考文献:
[1] 宋昊辰,杨林,徐华伟,等.智能网联汽车信息安全综述[J].信息安全与通信保密,2020,18(7):106-114.SONG H C,YANG L,XU H W,et al.Overview of the intelligent connected vehicles cyber security[J].Information security and communications privacy,2020,18(7):106-114.
[2] 深度详解域控制器[EB/OL].(2020-08-04)[2022-03-06].https://auto.vogel.com.cn/c/2020-08-04/1051269.shtml.
[3] 宋泽峰.面向CAN总线的车内网络渗透测试研究与实现[D].成都:电子科技大学,2018.
[4] International organization for Standardization.ISO 14229-1 Road vehicles—Unified diagnostic services(UDS)Specification and requirements[S].2013.
[5] AUTOSAR.Specification of Secure Onboard Communication [EB/OL] .[2022-03-06].https://www.autosar.org/.
[6] 魏德曼.渗透测试:完全初学者指南[M].范昊,译.北京:人民邮电出版社,2019.
- THE END -
因文章部分文字及图片涉及到引用,如有侵权,请及时联系17316577586,我们将删除内容以保证您的权益。