汽车信息安全:黑客攻击(一)

写了三篇该文以后,发现许多好友对具体反击颇感兴趣!其实我生前也很想如是说这种的内容,因此中止了许多理论方面的该文。开始写那个电动汽车骇客系列产品!

那个系列产品主要是如是说许多学术研究该文或是技术大牛该文里出现的反击方式。也热烈欢迎大家所推荐该文!

按照时间次序,那个系列产品的首篇是如是说这篇英语该文,Comprehensive Experimental Analyses of Automotive Attack Surfaces[1] 。这篇该文刊登于2011年USENIX,网络安全可靠顶会之一。那个时候的电动汽车安全可靠领域还处于洪荒时代,几乎没有什么安全可靠防卫措施。从这篇该文也能看出来,可反击的点很多,看着也很出彩!

所致CAN bus频宽和资源整合(把不同的ECU或是应用软件资源整合进系统)的考虑,一般来说车外部的CAN bus会分为几段。每一组相连几个ECU,蟹蛛科花1[2]。但为了机能实现,被分为几段的bus又必须相相连接出来,因此少部分ECU(图中绿色生态)要是同时和几段bus相相连,来满足用户那个机能需求。那些ECU就被叫作方法论桥(logical bridges)。

图1

继而带来的安全可靠问题就是,如果两个骇客攻破了两个bus各组里的两个ECU,那么他能透过黑掉那些方法论桥(透过许多安全漏洞或是间接改写BIOS),去反击其他的bus各组上的ECU,最终能攻破整个车。这篇该文的译者也宣称,他们在该文里叙述的那些反击方式的确能达到这种的效用!

这篇该文里加进的通用型反击方法:

第二步,加载ECUCPU里的BIOS的十进制文档;第三步,反向BIOSSCSI(I/O)部分的标识符和报文。

第二步,在大部分情况下,BIOS的十进制文档能间接透过CAN bus这种的话。听出来似乎挺容易,但操作过程出来还是挺伤痛的(译者聊著)!

第三步,领到BIOS的十进制文档之后,译者一般来说使用四种基本的数学方法,分别是:原初标识符分析,紧密结合logging检视,和互动式debugging。

原初标识符分析:先是确定CPU的类型,然后用业界标准的反汇编应用软件IDA Pro来确定控制流,找出潜在的安全漏洞,找出能帮助反向的debugging和logging的选项。紧密结合logging检视:开启logging能让我们理解ECU的正常操作,并且让我们专注在那些经常执行的标识符路径上的潜在安全漏洞。互动式debugging:把ECU从车上取下来,然后被放入测试环境中。在那个测试环境中,我们能控制输入,并检视输出。互动式的debugger被用于检查内存和单步调试存在安全漏洞的标识符段。

根据各个通道物理接触方式不同,分为四种不同的反击通道,蟹蛛科花2[3]:

非间接物理通道近距离无线通道长距离无线通道图2

考虑到篇幅,本文只如是说非间接物理通道。其他的两个通道的反击将在后续该文里如是说。

间接物理通道,主要考虑下面两个:

媒体播放器(CD播放器)OBD-II接口(服务接入)。

一,媒体播放器(CD播放器)

在车载信息娱乐系统(In-Vehicle Infotainment,简称IVI)里,我们能找到媒体播放器。它用于接收和播放无线电信号和各种格式的音频。它的应用软件机能包括音频解释(parsing),回放,和用户界面,并且间接和CAN bus相相连。

在媒体播放器里,译者发现了两个安全漏洞:

媒体播放器有两个隐藏的升级机能:它能识别两个有特殊名字的ISO 9660格式的CD文档,并且给用户在屏幕显示一段又拗口又难懂的信息(相信大家都有过类似经历)。如果用户一下没整明白,按错了按钮,那么播放器的BIOS就会被CD文档里的数据覆盖。这并不是一种标准的应用软件升级的方法,因此在译者看来,这应该是播放器供应商遗留两个机能。译者对媒体播放器的BIOS进行了反向,找出来文档系统的标识符和MP3和WMA解释器(parsers)。然后发现了其中两个文档读入函数对输入数据长度有很强的假设。但和WMA解释器相关联的一条路径(用来处理文档格式的两个未记录的属性)允许读入任意长度的数据!这两个紧密结合出来就形成了两个缓存溢出[4]安全漏洞。能这种来理解,先调用的函数能读入任意长度的数据,但后调用的函数只能处理一定长度的数据。这种后面调用的函数就会发生缓存溢出。那个安全漏洞的发现并不像看出来那么容易,实际上译者花了九牛二虎之力,克服了重重困难(译者又吐苦水)!

怎么利用第两个安全漏洞应该是很清晰的,就是把两个恶意的媒体播放器BIOS打包成两个有特殊名字的ISO 9660格式的CD文档,接着把那个文档烧入到CD碟片里,然后插入到媒体播放器里。故意或是没整对按错按钮,这时那个恶意BIOS就会写入播放器,那么那个恶意播放器就能向CAN bus发送各种恶意数据包(向其他ECU植入恶意程序,错误的刹车,油门或是转向信息)。

下面来看看译者是怎么利用第二个安全漏洞的。译者精心设计了两个WMA格式的音频文档(恶意标识符附在正常音频文档后边)并烧入到两个CD碟片里。那个碟片能在电脑上完全正常的播放,但如果插入到那个电动汽车的媒体播放器里,缓存溢出的安全漏洞就会被触发。然后媒体播放器就会向CAN bus发送译者事先准备好的恶意数据包。那个恶意的CD碟片里的WMA只比原本的文档大一点点(附在后边的恶意标识符并不会很大,比如说两个CD是200MB,恶意标识符可能就200KB),因此并不是很容易被发现。至于发布包含恶意标识符的音频文档能又很多种途径,比如透过发布到P2P共享网络上,或是盗版光盘等等。

二,OBD-II接口

OBD-II接口被设计成用来诊断(diagnose)和升级ECU的主要接口,因此它能够访问所有的CAN bus。自从2004以来,在美国的新车都要支持SAE J2534标准,PassThru。那个规范定义了两个Windows API(以DLL的方式实现)。它能透过有线或是无线网络相连诊断工具,最终和电动汽车外部bus进行通讯。那个诊断工具(PassThru设备)透过插入OBD-II接口来和电动汽车外部bus相连。这种做的好处是客户端应用能独立开发,只要它使用了那个API,就能无差别地相连任何两个PassThru设备。

经过研究,译者发现PassThru设备有三个部分,SoC(跑Linux系统),多个网络接口(USB和WiFi),和两个相连OBD-II的相连器。

然后在PassThru设备发现了两个安全漏洞:

如果反击者和PassThru设备在两个WiFi网络里,反击者能很容易的相连上设备(具体原因是客户端应用和PassThru设备之间的通讯没有身份认证。PS:因为易用性,牺牲安全可靠性)。如果那个设备也和一辆电动汽车相相连,那么那个反击者就能透过对ECU改写入BIOS获取对电动汽车的控制权。PassThru设备本身能被黑掉,然后植入恶意标识符。

下面来看看怎么利用第二个安全漏洞黑掉PassThru设备:原来译者发现,PassThru设备提供两个用于配置网络状态的API,没有身份认证。然后透过反向发现那个协议的标识符里有个bug。那个bug是没有对输入数据进行有效性检查。这种就会导致命令注入反击或是shell injection[5](实在抱歉,没找到翻译。。。P.S.: 简单来说,那个反击就是在有效输入后边附加上许多系统命令,那么系统命令就会被当作正常输入而被非法执行)。最终,骇客就会利用那个安全漏洞把PassThru设备黑掉。

图3 有命令注入安全漏洞的源文档图4 在正常输入story.txt后面添加其他命令

最后,来梳理一下那个反击的完整路径:

(0)骇客黑进电动汽车服务中心的WiFi网络(比如,透过社会工程(比如,透过套近乎或是办业务等等,总之充分发挥人的灵活性),或是利用许多安全漏洞黑掉员工的电脑等等)。利于上文提到的第两个安全漏洞相连PassThru设备。

(1)利用上文提到的命令注入反击(第二个安全漏洞)黑掉PassThru设备,并在设备中植入恶意标识符。

(2)和(3)当技术人员把PassThru设备相连到车上的时候,设备上的恶意标识符就会透过CAN bus向电动汽车通讯ECU(TCU)发送译者准备好的恶意消息或是数据包,从而在TCU上安装恶意应用软件。然后反击就能透过TCU向所有其他ECU扩散。

(4)和(5)译者升级了反击,把恶意标识符封装成蠕虫病毒植入PassThru设备,然后那个中毒的设备会自动把病毒传给同两个网络的其他设备。甚至如果中毒的设备被外接到其他服务中心,那么那个病毒也会传播给其他服务中心的设备。

发布于 2022-09-14 21:09:43
收藏
分享
海报
149
上一篇:汽车之家|本想买一辆05年二手捷达春天,结果遇到的事,大家借鉴吧|捷达|论坛 下一篇:汽车届的“鸿星尔克”,捐出5年利润?
目录