安全研究人员记录了提取并分析 Eufy HomeBase 2 固件的过程,该设备是 Eufy 智能家居生态系统中的核心枢纽。由于该设备的闪存直接焊接在电路板上,且没有暴露用于数据转储的引脚,研究人员不得不物理移除 Winbond 25Q256JWEQ 芯片。最初尝试在芯片仍留在电路板上时读取芯片失败了,因为用于读取操作的电源激活了其他组件,从而干扰了内存。为了成功转储固件,必须将芯片去焊,并使用 Raspberry Pi 的 SPI0 接口进行离板读取。

这张图片展示了从 Eufy HomeBase 2 中提取固件所需的物理硬件修改。

此视觉效果展示了在芯片从设备移除后使用的离板读取方法。
虽然提取成功,但由于去焊过程中的物理损坏,导致 64KB 的数据块被擦除或变得无法读取。尽管如此,研究人员仍能够使用 Binwalk 来识别和提取各种组件,包括 Linux 内核镜像和 JFFS2 文件系统。他们利用了一系列工具,包括用于处理多个 XZ 压缩数据流的 7-Zip,从固件块中刻录出文件。这使他们能够访问控制设备行为的内部脚本和二进制文件。

这张图片解释了需要使用多种工具解压的压缩数据流的复杂性。
分析的一个主要重点是用于生成“OCEAN_XXXXXX”管理 Wi-Fi 网络凭据的算法。通过检查提取的固件,研究人员识别出将“OCEAN_”前缀与设备的 MAC 地址拼接以创建 SSID 的脚本。他们还发现 Wi-Fi 密码是从特定的 NVRAM 变量(WPAPSK1)中检索的。为了进一步调查逻辑,研究人员使用自定义的 Python 脚本从固件块中刻录出一个 32 位 MIPS 可执行文件,其中包含与 Wi-Fi 密码设置和管理相关的符号。这一分析有助于阐明设备如何处理本地网络身份验证,以及其生成方法在近期版本中是仍然薄弱还是已经得到了更新。