联网技术在为企业带来巨大业务便利的同时,也带来了风险。
我们的主要目标之一,是围绕这些技术在连接那些支撑国家运转的车辆(与机械设备)时所带来的风险,引发讨论与批判性思考。
在初级产业和关键基础设施领域,网络入侵造成的影响远不止企业的利润损失。车队遭到入侵可能扰乱必需商品和服务的获取,冲击就业,并在多个经济部门之间引发连锁反应。
在这篇博客文章中,我们概述了在针对商用及工业车辆远程信息处理设备进行漏洞分析时,我们通常会采取的最初几个步骤。具体来说,我们检验了一个用于将小松(Komatsu)机械设备接入外部网络的远程信息处理模块——这类机械设备通常部署在矿山、建筑工地等类似环境中。
快速浏览小松官网即可发现,联网功能是其业务战略的核心组成部分。它收集并传输的数据帮助客户提升效率、节省时间、降低成本。然而,一旦这些关键资产接入网络,网络安全就成为一个至关重要的考量。
在这篇文章中我们将:
- 拆解小松远程信息处理模块。
- 通过物理元器件对电路板功能进行特征分析。
- 确定设备固件存放位置并将其读取出来。
- 通过检查固件内容,对其进行初步分析。
设备信息
- 品牌 / 制造商:Komatsu(小松)
- 零件号:7826-20-1050
- 内置数据通信器制造商:ORBCOMM(卫星/蜂窝远程信息处理网络提供商——全球数据与消息服务)
- 内置数据通信器型号:KX-G7101/N
远程信息处理单元

该小松控制器是一款专为恶劣运行环境设计的远程信息处理模块,而本模块专为卫星通信运行而设计,表明其用途是部署于偏远地区。它内部主要包含一块来自 ORBCOMM 的数据通信模块——ORBCOMM 是一家为工业和商业应用运营全球卫星星座的商业卫星通信提供商。
它可直接接入兼容的小松重型机械设备,其设计目的是:
- 从机械设备上采集运行数据。
- 获取 GPS 位置数据。
- 通过卫星网络将遥测数据回传至中央管理平台。
拆解 / 分解过程
本节概述该远程信息处理单元的拆解过程。
第 1 步:拆除外壳
- 小松远程信息处理模块——外壳

- 小松远程信息处理模块——外壳打开后

第 2 步:拆除 ORBCOMM KX‑G7101
- 拆除内部印制电路板(PCB)上的所有螺丝和连接器,取下 ORBCOMM KX‑G7101 模块。

- ORBCOMM KX‑G7101 连接器


第 3 步:拆解 ORBCOMM KX‑G7101
- 拧下螺丝、取下外壳与主 PCB:

- 主 PCB 与 GPS PCB
第 4 步:拆除/去焊 ORBCOMM KX‑G7101 主 PCB 上的屏蔽罩
- 去焊 / 拆除 PCB 屏蔽罩

硬件拆解——电路板特征分析
在电路板特征分析过程中,我们发现其主要元器件的历史可追溯至 25 年多以前。这很有意思,因为该设计早于现代”安全即设计”原则——而这一原则在当年这些元器件问世时期尚未被广泛采纳。
以下图片展示了内部电路板及其主要元器件:
- 主 PCB——第 1 面

- 主 PCB——第 2 面

闪存(Fujitsu 29LV400B-12PFTN)芯片拆除
根据板上识别出的元器件,该远程信息处理模块固件最可能的存储位置是 Fujitsu 29LV400B‑12PFTN 闪存芯片。

为便于固件提取,我们将闪存芯片从 PCB 上物理取下,以便直接读取其内容:
- 用 Kapton 胶带保护 PCB,仅露出闪存芯片。

- 我们使用返修工作站将电路板加热至目标温度:

- PCB 从 160 °C 逐步加热至 270 °C,使焊料回流,从而取下器件而不损伤焊盘或周围元器件。
| 步骤 | 温度(摄氏度) | 时间(秒) |
|---|---|---|
| 0 | 升至 160 | ~45 |
| 1 | 160 | 30 |
| 2 | 200 | 30 |
| 3 | 220 | 30 |
| 4 | 240 | 30 |
| 5 | 260 | 30 |
| 6 | 270 | 30 |
- 闪存芯片已取下:

存储器镜像——固件提取
取下芯片后,我们从存储芯片中提取了固件。
使用设备
| 项目 | 品牌/型号 |
|---|---|
| Xgpro 软件 | v12.90 |
| XGecu 通用器件编程器 | T56 |
| XGecu Zif TSOP 48 适配器/支架 | RT-TSOP48 / TSOP48-40-32 |
- 将闪存器件插入 TSOP‑48 ZIF 适配器:

- 将适配器连接到器件编程器。

- 在 Xgpro 软件中,我们选择对应芯片(FUJITSU MBM29LV400B @ TSOP48)的配置:

- 随后读取芯片存储器并创建二进制镜像:


固件分析
全面的固件分析可能耗时耗力。在本项目中,我们进行了一次有针对性地分析,目的是通过检查固件内嵌的可读字符串,初步了解该远程信息处理单元的功能。
注:如果你对更深层的固件分析感兴趣,请联系我们。我们很乐意讨论将此工作扩展为后续博客文章。
字符串分析往往是固件研究中有价值的第一步。有意义的字符串可以揭示函数名、调试信息、开发者注释或其他片段,从而在不进行完整的逆向工程的情况下,提供关于固件行为的线索。
首先,我们用以下命令提取字符串:
| 项目 | 说明/链接 |
|---|---|
strings 命令 | $ strings -n 6 MBM29LV400B@TSOP48.BIN > strings.txt |
| 固件字符串分析报告 | 报告页面链接 |
| 固件字符串——有意义字符串提取 | 文本文件链接 |
对提取出的字符串进行审查,无需完整反汇编即可揭示固件的结构与能力信息。值得注意的发现包括:
| 字符串 | 说明 |
|---|---|
X2C1F-002 | 固件版本 |
1999/08/24 | 制造日期 |
--- O_MAIN() START --- | 固件入口点 |
USER_RAM CLEAR | 入口函数中的首条指令注释 |
USER_MEM CLEAR | 入口函数中的首条指令注释 |
XMODEM Protocol Starts. Start Sending 2nd Loader Software within 10sec. | 表明存在基于 XMODEM 协议的固件更新机制 |
ENG_REV | 车辆遥测数据——发动机信息 |
ENG_W_TMP | 车辆遥测数据——发动机水温 |
PMP_PRES | 车辆遥测数据——泵压力 |
CAUTION1 | 车辆遥测数据——报警/警告信息 |
CAUTION2 | 车辆遥测数据——报警/警告信息 |
--------------- [ ] GENERAL ------------------- | 诊断菜单字符串——表明固件包含可直接与其交互的方法 |
--------------- [1] SAT_LOG_1 ----------------- | 诊断菜单字符串——卫星日志菜单项 |
--------------- [9] GPS_DATA ------------------ | 诊断菜单字符串——GPS 数据日志菜单项 |
The jumper connection JP1 was set to illegal position. Set it to the 'A' position. | 表明存在电路板跳线功能 |
结论
即便是这样一次轻量级的分析,也突显了固件的几个重要特性,包括:设计年代久远、支持诊断交互式菜单、遥测采集范围,以及一个在更深入的安审审查中值得密切关注的固件更新机制。
我们在这一阶段结束了分析,并未对固件进行更深层次的分析。如果你希望讨论对固件的深入分析或漏洞评估,请联系我们。
Fortify Labs GitHub 仓库
欢迎访问我们的 Fortify Labs 汽车取证 GitHub 仓库,获取与我们汽车研究相关的更多工具。
免责声明
本分析基于我们的专业经验,并反映了我们在检验时的最佳解读。
任何选择复现这些流程的人需自行承担风险。
拆解车辆(或设备)并直接接触其电子元器件,存在损坏设备的固有风险。Fortify Labs 不保证文中所述任何流程绝无风险,也不对由此造成的任何损失承担责任。