怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程( 四 )


Dropbox安装
位于/ local / bin的脚本“ unpack.sh”安装位于/ home / tesla / dropbox文件夹中的软件包 。
该脚本描述了该过程,并对其进行了大量注释和 。
尽管它是自定义的,但软件包格式非常简单,攻击者很容易重新创建 。从高层次来看,该过程如下:检查是否提供了文件名,并且该文件存在 。一旦汽车“停放”,另一个shell脚本将执行此检查-/ usr / local / bin / car-is-parked 。
在CID的端口4035上,这会向Web API发出HTTP请求,以检查汽车是否处于“停车”档 。
值得注意的是,停放脚本包含检查速度为零的函数,但是这些函数不会被调用 。
脚本等待5分钟,然后再次检查汽车是否未停放 。
为了防止CID休眠20分钟,然后在端口4035上向Web API发出请求 。使用实用程序mktemp在
/home/tesla/unpack.tmp-XXXXX中创建一个临时目录 。tar文件已解压缩到临时目录中 。检查是否存在4个文件:

  • NAME of the package
  • VERSION number of the package
  • md5sums of files in the package
  • tar.gz – files associated with the package
该过程不会检查它是否存在,但是它期望文件“ install.sh”存在 。为了检查文件的完整性,将文件md5sums馈送到工具md5sum 。这不增加安全性,而纯粹是完整性检查 。
将名称,版本和data.tar.gz作为参数传递后,将执行文件install.sh 。为了最终控制软件包的功能,install.sh可以执行root用户通常可以执行的任何操作 。
install.sh文件可以包含任意命令,并且整个过程以root用户身份运行 。为了控制,攻击者可以将有效的升级程序包放置在保管箱中,以对CID或IC进行任意操作 。
我们已经看到一些评论,这些评论表明,众所周知,此过程不健全且存在问题:
怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程

文章插图
 
这种机制远非安全,它在VPN提供的传输加密之外几乎没有保护措施 。这可能是不推荐使用的主要原因 。我们不知道为什么它仍然存在于系统中 。
开发人员可能会担心删除众多脚本之一可能会导致意想不到的后果 。
更新程序更新
【怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程】我们认为这是更新固件的正常机制 。它是一个大型的整体二进制文件,包含大量功能 。幸运的是,反向工程通过静态链接(即,将所有代码编译到其中)和调试版本(即,它包含通常会被剥离的字符串和函数名)而得以加速 。
怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程

文章插图
与调试信息静态链接
通过更改二进制文件的名称激活,更新程序可以采用几种不同的“个性” 。每个人都可以打开一个命令端口和一个HTTP端口,它们侦听设备的所有接口 。
1、ic-updater – IC的更新程序 。打开用于命令的端口28493,并打开21576作为Web服务器 。
2、cid-updater – CID的更新程序 。打开端口25956用于命令,打开20564作为Web服务器 。
3、gwxfer –用于将文件传输到网关,是gwxfer shell脚本的二进制替代,sm-updater –尚不清楚“ sm”是指什么 。这可能是工厂使用的东西,因为二进制文件的其余部分都引用了“ sitemaster” 。
4、ethdeploy –似乎是将软件包部署到车辆内其他设备的一种方法upackager –与网关有关,采用release.tgz(用于ECU的更新)和internal.dat(车辆的配置)和vhcs(车辆配置字符串)的参数
怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程

文章插图
不同规格的不同名字
根据二进制文件的开头名称,二进制文件的行为会有所不同 。这包括其执行的服务,其使用的路径和技术 。该代码引用了个性存储超过330次的变量 。
为了易于确定代码是否基于个性而偏离,0对应于IC,1对应于CID,5对应于SM 。
怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程

文章插图
用于不同个性的command / http端口
将更新程序作为“集群”运行,该系统旨在与多个设备(CID和IC)一起使用 。通过VPN连接并下载固件,CID充当主服务器 。
在代码中称为“继电器”,然后使用命令/ HTTP端口将固件分发到IC 。更新程序在启动时执行某些任务,例如检查当前系统,将出站连接到固件服务器(称为“握手”)以及启动命令和Web服务器 。
怎么使用黑客手段逆向分析一点点揭开特斯拉固件更新过程


推荐阅读