特斯拉基础设施中的一个漏洞使得控制任何汽车成为可能。

已公开 相关信息 问题 在特斯拉网络中组织保护,这使得完全破坏与消费汽车交互的基础设施成为可能。特别是,所发现的问题使得能够访问负责维护与汽车的通信通道并通过移动应用程序发送命令的服务器。

结果,攻击者成功地通过特斯拉基础设施获得了对任何汽车信息系统的root访问权限,或者远程向汽车传输控制命令。除此之外,还展示了发送启动发动机和解锁车门等命令的能力。为了获得访问权限,所需要的只是知道受害者汽车的车辆识别号码。

该漏洞由安全研究员 Jason Hughes 于 2017 年初发现
(杰森·休斯(Jason Hughes)),他立即向特斯拉通报了这些问题,并在事件发生仅三年半后公开了他发现的信息。值得注意的是,特斯拉于2017年在收到漏洞通知后数小时内修复了该问题,之后从根本上加强了对其基础设施的保护。由于发现了该漏洞,研究人员获得了 50 万美元的奖励。

对特斯拉基础设施问题的分析始于对网站提供的下载工具的反编译 toolbox.teslamotors.com。在 service.teslamotors.com 网站上拥有帐户的特斯拉汽车用户有机会为开发人员下载所有模块。模块以最简单的方式加密,加密密钥由同一服务器给出。

将生成的模块反编译为 Python 代码后,研究人员发现该代码包含位于公司内部网络上的各种 Tesla 服务的嵌入式凭据,这些服务可通过 VPN 访问。特别是,在代码中,我们能够找到位于内部网络的“dev.teslamotors.com”子域中的一台主机的用户凭据。

直到 2019 年,为了将汽车连接到 Tesla 服务,使用了基于 OpenVPN 软件包的 VPN(后来被基于 Websocket 的实现取代),并使用为每辆车生成的密钥。 VPN 用于确保移动应用程序的运行、获取电池充电站列表以及其他类似服务。研究人员尝试扫描通过 VPN 连接汽车后可访问的网络,发现客户可访问的子网与特斯拉内部网络没有充分隔离。除此之外,可以访问 dev.teslamotors.com 子域中的主机,并找到了该主机的凭据。

受感染的服务器原来是集群管理节点,负责向其他服务器交付应用程序。登录指定主机后,我们能够获取特斯拉内部服务的部分源代码,包括mothership.vn和firmware.vn,它们负责向客户汽车传输命令并交付固件。在服务器上还发现了用于访问 PostgreSQL 和 MySQL DBMS 的密码和登录名。一路走来,事实证明,无需模块中的凭据即可访问大多数组件;事实证明,从客户端可访问的子网向 Web API 发送 HTTP 请求就足够了。

除此之外,在服务器上发现了一个模块,其中有一个文件 good.dev-test.carkeys.tar,其中包含开发过程中使用的 VPN 密钥。事实证明,指定的密钥有效,并允许我们连接到 vpn.dev.teslamotors.com 公司的内部 VPN。
在服务器上还发现了母舰服务代码,通过研究该代码可以确定许多管理服务的连接点。我们发现,如果使用开发人员找到的 VPN 密钥进行连接,大多数管理服务都可以在任何汽车上使用。通过操纵服务,可以提取任何汽车每天更新的访问密钥以及任何客户端的凭据副本。

通过指定的信息,可以确定通过 VPN 建立连接的任何汽车的 IP 地址。由于 vpn.dev.teslamotors.com 子网没有被防火墙正确分隔,通过简单的路由操作,就可以使用客户端之前获得的凭据,通过具有 root 权限的 SSH 到达客户端的 IP 并连接到他的汽车。

此外,获得的 VPN 连接到内部网络的参数使得可以通过 Web API mothership.vn.teslamotors.com 向任何汽车发送请求,这些请求无需额外身份验证即可被接受。例如,在测试过程中,可以演示如何确定汽车当前位置、解锁车门并启动发动机。车辆的 VIN 号用作选择攻击目标的标识符。

来源: opennet.ru

添加评论