五分钟使用VT-CAN-eye 获得特斯拉Model X总线拓扑

【摘要】

  1. 特斯拉MODEL X的电池管理系统并没有完全的保护,黑客可以获得高达38个相关ECU ID,对其中任意可以发起攻击,可能破坏TPM的正常工作;
  2. 4路CAN线只有一路3-11通过网关完全过滤防护,其他三路依然可以获得相关的信息,从而进行进一步的攻击。
  3. 特斯拉总线的隐私泄露方面有待改进,黑客可以获得整个CAN网络的拓扑架构。

 

【前言】

人生的一大痛苦是感知到它的存在却不能触摸,这种苦楚不仅适用于别人钱包里的现金,同样也适用于汽车内部设计。

如同去医院做全身CT一样,如果医生非要进行人体解剖才能知道器官情况,绝对不能接受。中华文化精髓崇尚含蓄,诸如悬丝诊脉,看一叶知秋的高深。尤其在后疫情下,在线化自动化轻量化快速化已经成为一种趋势。在这篇文章里,我们首次对特斯拉汽车进行内部ECU全身扫描,在短时间内自动判断各个ecu所属的功能模块类别。各位看官移步继续往下阅读。

 

【为什么选择特斯拉?】

一位摄影自媒体人可以面对一款精致的镜头洋洋洒洒地用五分钟数落出它一大堆缺点来解释他为什么不买。其实答案就是“我穷,我没钱!”

为什么选择特斯拉?因为它最牛,最难!

美国载人火箭成功发射再次间接奠定了电动车领域中特斯拉王者的地位。这当然不是主要原因。特斯拉拥有最多的总线数目,4-6条, 而且ECU数量极多,高达200多个。相对其他车型只有区区几十个ECU,舍它其谁。其次,目前对于特斯拉车型的总线内部结构介绍非常少,除了几个零星的无人驾驶团队逆向出来的特斯拉DBC文件之外(而且是针对MODEL S的)其他的只是介绍了几个CAN ID指令功能。这就更加的引起了我们的兴趣,下面就用VT-CAN-eye软件对特斯拉model x车型来进行全身快速扫描。

 

【特斯拉总线】

特斯拉拥有多达四个CAN接口,这是我们在数百种车型中发现的最多的接口。在测量电压值之后,我们在OBD接线盒上找到并标记了这四个CAN接口。除了传统的3-11和6-14引脚对。特斯拉还使用2-10和12-13引脚对。

 

   图1 特斯拉总线接口

 

此外,很难找到汽车的真正OBD端口。与其他汽车一样,您可以在方向盘下方轻松找到“ OBD端口”,但该端口是伪造的!由于已接地,因此没有CAN数据流出,为什么还要保留该端口?因为根据联邦法律,每辆汽车必须在驾驶员/方向盘2英尺内有一个OBD端口。

图2,连接总线位置(X437A)端口

真正的OBD端口位于大信息娱乐屏幕下方的存储小隔间后面。托盘顶部有两个固定夹,向下拉托盘,然后松开固定夹以松开托盘。将其拔出,您将看到两根电缆,一根用于CAN总线,一根用于以太网。特斯拉的以太网运行在CAN协议层之上。

 

我们需要做X437A和传统OBD端口的转换。特斯拉有四路总线.

表1. X437A和传统OBD端口

CAN PINOUT

代号

名称

6-14

CAN3

Drive train

3-11

CAN2

body

12-13

CAN4

Body fault

2-10

CAN6

chassis

 

【全车扫描】

   

图3. VT-CAN-eye软件界面

 

连接端口后进行全车扫描,运行VT-CAN-eye软件, 对思路端口依次扫描。软件将收到的结果自动处理并以图形的方式进行展现。每一路CAN线需要几分钟,下图显示扫描结果。

  图4  特斯拉总线扫描结果

 

 

 

表1. 扫描分组结果

CAN PINOUT

代号

ID数目

名称

分组数目

模块数目

6-14

CAN3

194

Power train

11

11

3-11

CAN2

240

body

1

15

12-13

CAN4

44

Body fault

3

5

2-10

CAN6

130

chassis

9

19

 

【分组结果】

 

CAN 3 – Powertrain

其他研究人员【1】找出来9个模块,我们扫描出11个模块.

结果显示,特斯拉的分组ID有规律可循。比如CAN3的大多数分组中包括的ECU ID最后一位绝大多数都是相同的。这在其他总线也得到了验证,说明这个现象不是偶然。另一方面,也验证了VT-CAN-eye的分组的正确率很高。

CAN 2 – body

其他研究人员【1】找出来10个模块,我们扫描出15个模块。由于CAN2后面的数据被网关过滤,我们统一归于一组。CAN2 总线指的是3-11, body CAN,可以控制车门,天窗等。VT-CAN-eye的扫描结果显示这路总线后面直接有网关。网关过滤相关模块流量,起到了保护作用。特斯拉的网关采用的Freescale SPC5668GVMG板子,操作系统是FreeRTOS。

CAN 4 – Body Fault Tolerant

CAN4 是特斯拉body fault. 很明显分成三个模块。这个网上资料【1】一致,这三组分别代表RCCM (Remote Climate Control Module),PTC (Positive Temperature Coefficient) Air Heater 和Memory Seat Module。

CAN 6 – Chassis

其他研究人员【1】找出来14个模块,我们扫描出19个模块。

 

【ECU ID 分组正确性比较】

我们还从另一个维度:对比无人驾驶团队逆向出来的特斯拉DBC文件,验证我们结果的准确。

图5. ID分组正确性验证。

上图是某开源的特斯拉DBC文件,其中三个ID属于统一模块,VT-CAN-eye的分组结果将这些ID分到一组中,结果相符。

 

图6. 电池系统ID分组正确性验证。

另一个例子是研究人员【2】发布的特斯拉电池系统的一些CAN ID,和我们的结果完全一致。而且我们的结果更全面:38个ECU ID属于电池管理系统TPM,而且最后一位都是2结尾,如上图。

 

【安全隐患】

通过对扫描结果分析,我们可以推断出下面的猜想。

  1. 特斯拉MODEL X的电池管理系统并没有完全的保护,黑客可以获得高达38个相关ECU ID,对其中任意可以发起攻击,从而破坏TPM的正常工作;
  2. 4路CAN线只有一路3-11通过网关完全过滤防护,其他三路依然可以获得相关的信息,从而进行进一步的攻击。
  3. 特斯拉总线的隐私泄露方面有待改进,黑客可以获得整个CAN网络的拓扑架构。

 

 

【结束语】

这篇文章中,我们通过使用VT-CAN-eye工具对特斯拉MODEL X进行了全车总线拓扑扫描。这种扫描完全自动化并在短时间完成。通过和其他研究成果进行比较,结果显示VT-CAN-eye能够有效地获得车辆CAN拓扑设计架构和对应的ECU ID分组。而且结果还发现特斯拉总线拓扑存在的几点安全隐患。这种扫描方法可以适用于任何车型,快速方便的扫描总线拓扑并发现漏洞。如有兴趣请联系我们。