在之前的文章中,我们探讨了ChargePoint Home Flex电动车充电桩的攻击面。在这篇文章中,我们将探讨另一款电动车充电桩的攻击面。
Ubiquiti Connect EV Station是一款电动车充电桩。该充电桩旨在由运行UniFi OS控制台的Ubiquiti管理平台管理,如Ubiquiti Dream Machine或Cloud Gateway。用户还可以使用iOS或Android UniFi Connect移动应用程序来配置EV站点。
攻击面总结
Ubiquiti EV站点是一款Android设备。在这方面,它在Pwn2Own汽车2024纳入的电动车充电桩目标设备中是独一无二的。
在设备开机时观察了该设备的UART端口。Ubiquiti EV站点使用Qualcomm APQ8053 SoC作为主CPU。Android操作系统启动并在设备外壳内的UART串行端口上发出启动消息。以下区域已被确认,并代表了设备上潜在的攻击面:
-
Android操作系统
-
USB
-
Ubiquiti Connect移动应用程序
-
网络攻击面
-
UDP端口10001
-
Realtek
-
包括Wi-Fi驱动的Wi-Fi
-
以太网/本地IP网络
-
多播IP网络
-
蓝牙低功耗(BLE)4.2
-
近场通信(NFC)
Ubiquiti EV站点文档
Ubiquiti EV站点的文档只提供了有关设备安装和操作的高层次信息。更多文档可以在以下位置找到:
Ubiquiti EV站点硬件分析
Ubiquiti在其网站上为EV站点提供了高层次的技术规格。趋势科技的研究人员对EV站点中发现的离散硬件设备进行了分析。以下列表总结了趋势科技的研究人员识别出的显著组件和/或Ubiquiti EV站点潜在的攻击面。
Qualcomm APQ8053 SoC
Nuvoton M482LGCAE(ARM)
Samsung KMQX60013A-B419 DRAM / NAND
Realtek RTL8153-BI以太网控制器
Qualcomm WCN3680B(Wi-Fi)
NXP PN71501(NFC)
TI USB 4端口集线器 - TUSB2046BI
Qualcomm PMI8952(PMIC)
Qualcomm PM8953(PMIC)
UART DEBUG端口
USB C端口
下图1是Ubiquiti EV站点主CPU板的概览。该板有几组高度集成的组件,每一个都位于板上自己的专用足迹内。这些PCB区域似乎都专用于离散功能,如CPU与RAM和闪存、Wi-Fi、NFC、以太网、USB和显示等。
在板中心位置是Qualcomm APQ8053和Samsung KMQX60013A-B419组合的DRAM和NAND控制器。这些代表了设备的主应用处理器,以及设备的RAM和闪存存储。它们在PCB丝印上标记为U5。
PCB这一部分正下方有三个连接器。一个标记为JDB2和UART DEBUG的连接器在Ubiquiti EV站点启动时发出启动消息。中间是一个标记为J20的USB-C连接器。右边是一个标记为J28的两针连接器。这个连接器的功能目前还不清楚。
在以下图片的顶部中心是一个未贴片的组件,标记为U20。这可能是一个未贴片的蜂窝通信模块的足迹。
图1 – Ubiquiti EV站点主PCB的概览图
以下图片展示了Ubiquiti EV站点内部的Qualcomm CPU及其关联的RAM和NAND闪存芯片:
图2 – EV站点Qualcomm APQ8053 SoC、Samsung KMQX60013A-B419 DRAM / NAND和UART调试端口的细节图
在以下图片中,PCB显示了一个标记为‘J23’的模板。趋势科技的研究人员努力发现这个接头是连接到哪里的。他们推测,J23上的通孔可能连接到板上的一个调试接口。经进一步检查,他们确定J23上的通孔连接到了标记为U20的未贴片设备。
图3 – EV站点Realtek RTL8153-BI以太网控制器的细节图
该设备可以通过Wi-Fi和以太网连接到本地网络。趋势科技的研究人员将EV站点连接到一个测试以太网网络,以调查网络攻击面,然后再将EV站点关联到Ubiquiti UniFi控制台。
在未配置状态下,EV站点不监听任何TCP端口。EV站点定期发送探测包,寻找TCP端口8080上的HTTP代理。
此外,Ubiquiti EV站点尝试使用IP地址233.89.188.1加入IGMP组。EV站点通过UDP端口10001向此地址发送数据包。EV站点使用被称为‘UBNT Discovery Protocol’的协议在此端口上通信。这个协议识别了设备模型、固件和其他信息。
以下十六进制数据显示了一个封装了UBNT发现数据包的以太网帧、IP数据包和UDP数据包。UBNT发现数据从偏移量0x2A开始。
在未配置状态下,Ubiquiti EV站点的蓝牙LE接口作为一个BLE外围设备。使用BLE扫描工具,趋势科技的研究人员观察到EV站点上的以下蓝牙LE端点。
设备将其BLE名称设置为QCOM-BTD,这似乎是一个默认的Qualcomm配置。定义了一个单一的BLE服务。这项服务导出了三个特性:一个特性是只读的,一个特性是仅通知的,一个特性允许读取、写入和通知操作。
对EV站点文件系统的进一步分析显示了负责观察到行为的本地代码库。对这些库的进一步调查可能对参赛者有益。
通过对移动应用程序的分析,也可以了解到预期的BLE功能。趋势科技的研究人员对UniFi Connect Android应用程序进行了逆向工程,发现了旨在通过BLE与设备通信的代码。然而,Android应用程序中发现的BLE特性与EV站点广播的特性不匹配。可能的是,在完全设置EV站点后,BLE堆栈可能会被重新配置以匹配预期的BLE端点。
为了在东京的Pwn2Own汽车竞赛中成功攻击Ubiquiti EV站点,参赛者将需要对设备进行额外分析,以确定潜在的弱点。趋势科技的研究人员研究已经通过从EV站点提取Samsung KMQX60013A-B419 DRAM / NAND设备来分析它。这个组合的DRAM和NAND闪存设备包含了支持EV站点功能的存储。
如前所述,Ubiquiti EV站点运行Android操作系统。EV站点闪存包含多个分区。使用标准Linux工具,趋势科技的研究人员识别了几个潜在的分区。其中一些是真实的分区,而一些看起来是各种工具的误报。已经验证并调查了几个分区。以下列表显示了在NAND闪存设备上使用parted
命令列出分区时在Linux系统上产生的输出。
趋势科技的研究人员使用了几种方法来识别分区数据并在NAND闪存设备上挂载分区。以下命令显示了挂载system_a分区的一种方法。一旦分区被挂载,就会发现一个典型的Android OS系统分区。
从闪存存储中提取数据是进行必要分析以发现Ubiquiti EV站点中可能存在的漏洞的第一步。
虽然这些可能不是Ubiquiti EV站点上唯一可用的攻击面,但它们代表了威胁行为者可能用来利用设备的最有可能的途径。
原文始发于微信公众号(安全脉脉):Ubiquiti Connect EV Station的攻击面