梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

admin 2022年12月17日15:06:03评论102 views字数 2712阅读9分2秒阅读模式

梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

物联网设备是定制化的计算机设备,可根据业务场景设计不同功能,如机顶盒、路由器、智能广告牌、手机、智能音箱等。一般来说,能接入互联网的电子设备,都可以叫物联网设备。这些设备可通过 Internet 进行交互,同时和 PC 一样,会受到黑客的攻击。

一、物联网设备的特点


物联网在软件上通常使用 Linux 系统和开源软件,硬件上通常为嵌入式设计,由SoC、存储芯片、和网络适配器组成。Soc 是集成度介于单片机和 CPU 的一种通用处理芯片。在家用智能设备的应用场景下,这类 Soc 中通常集成了微处理器、GPU、USB 控制器、视频解码模块、内存单元、I/O 控制模块等。这时候你会发现,它似乎缺少了一样重要的器件——非易失性存储器我们电脑中的非易失性存储器一般是固态硬盘,它是存放软件和系统的地方,当我们按下开机按钮的时候,会首先启动主板的 BIOS 系统,然后 BIOS 会检索硬盘上安装了Windows,然后再去启动 Windows 系统,然后整个系统就运行起来了。而嵌入式计算机系统中的“固态硬盘”通常为存储芯片,常用的存储芯片一般分为 Nor Flash 、EEPROM、Nand Flash EMMC。


梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

图1 常见存储芯片


而由于非易失性存储单元太大,在寸土寸金的Soc上集成成本比较高,于是厂商很少在Soc中集成大容量的非易失性存储器。而为了能运行几MB大小Linux内核,于是硬件设计时要给Soc配一块存储芯片,用于存放Linux内核和软件。而在需要运行Android的手机中,通常会给Soc配上一块高达几十GB的EMMC。在有一些高计算能力Soc芯片中,甚至内存单元都要取消,这种Soc应用设计的时候,还需要外接内存芯片。这里就体现了物联网设备的特点,软硬件定制化,根据不同的业务需求,设计不同的软硬件。


Soc 就像一块小小的主板,里面有CPU、GPU、IO控制器、内存等。Soc 通电启动后,会先启动Soc中 ROM 里的一段代码,这段代码通常是固化 ROM 中的,然后这串代码会加载 BootLoader,然后 BootLoader 会给操作系统配置好环境,然后启动操作系统,将执行权交到操作系统的手里,然后操作系统再去读取文件系统,执行 init。因此在大部分的物联网设备中,BootLoader 和 Linux 内核以及文件系统,都是存放在外置存储器的。只要有办法提取出 Soc 的外置存储器,就有办法看到设备的文件系统。


二、从外置存储器中提取固件


以网络摄像头为例,可以很明显看到主板上有一个 winband 的存储器。经过一番搜索,可以知道它是一个128MB 的 Nor Flash


梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题 

图2 某摄像头主板


然后我们可以使用风枪,温度大概 300 度,对着芯片的一侧引脚吹。有两个需要注意的地方,一是温度不能太高,二是尽量不要对着芯片体去吹,这是因为 Flash存储时很容易受到干扰,一不小心就会把里面的存储单元全吹成 FFFF另一个方法是使用电烙铁,使用电烙铁会更安全一点。先熔化一侧的焊锡,然后稍微翘起芯片,让针脚脱离焊盘并冷却,后依照上述方法熔化另一侧焊锡,就可以将整个芯片拆下来了。芯片拆下来之后,需要对芯片进行清理,除去芯片引脚上多余的焊锡,清理芯片上的助焊剂,使芯片洁净。


然后可以根据芯片的型号选择对应的工具,常用的工具有周立功、希尔特的编程器,当然也可以,使用一些开源工具。


梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

图3 芯片底座


使用的过程中需要注意,芯片针脚要跟芯片底座针脚贴合,如果接触不良,可能会造成读取失败。芯片正常放好后,就可以点击读取,将芯片中的数据读取出来,然后保存成文件,用于后续的分析。


三、从单片机中提取固件


单片机区别于 Soc,是一种集成度更高的芯片,通常只需要搭配简单的电路就可以运行。由于单片机的代码是存放在芯片里面的,因此我们要提取单片机的程序就需要依赖于单片机的调试功能。单片机不同于存储器,单片机厂商往往有自己的私有协议,这些协议只有厂商知道,想要使用他们的单片机,不仅需要采购芯片,还需要采购编程器、开发软件包。因此从单片机中提取固件,首先需要知道单片机如何调试。


以常用的 stm32 为例,stm32 是 ARM corte-M 内核的单片机,支持 isp、SWD、JTAG 等烧录协议,用于下载工具的工具有flymcu、keil、J-Flash等。其中,flymcu 是 isp 下载工具,isp 是在系统可编程,是不需要将单片机从电路板上取下,通过串口刷入程序的一种烧录协议。Keil 是集成开发工具,具有动态调试和烧录程序的功能,支持 SWD 和JTAG协议。J-Flash 是 SEEGER 公司提供的软件,配合J-Link可以调试大部分的ARM内核的单片机。


提取单片机固件的第一步,是确定单片机的 JTAG/SWD 引脚,然后通过这些引脚去分析电路板上的接口,通过这些接口,让我们更好的飞线,甚至不用飞线就可以连接到单片机的调试接口。如下图,当我们确定了单片机的调试接口后,就可以使用J-Link 中对应的接口去连接。


梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

图4 某设备主板


然后打开 J-Flash,选择对应的芯片型号,然后点击 connect 连接 devices,如果芯片没有选对,或者针脚没有接对,可能会造成连接失败,连接成功后就可以点击 read,将芯片的数据读取出来。


如果芯片列表中没有需要芯片,则需要在 J-Flash 中添加。


四、利用 uboot 提取固件


Uboot 是一个开源的 BootLoader 程序,Android 使用的就是 Uboot 作为引导程序,在一些物联网设备中,在 Uboot 的引导过程中,可以通过敲击回车键进入 Uboot 的命令行界面,这个命令界面中有很多可以使用的命令,包括文件系统操作命令,USB 设备挂载命令,内存读写命令和修改内核启动参数等命令。


首先准备一个U盘,然后利用 usb start 挂载 U盘设备,然后使用 extls 寻找emmc 中存在文件系统和内核镜像的分区,利用 fatload 或 extload 将 emmc 中文件拷贝的 U 盘即可。


梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

随着汽车电动化、网联化、智能化交融发展,车辆运行安全、数据安全和网络安全风险交织叠加,安全形势更加复杂严峻,亟须加快建立健全车联网网络安全和数据安全保障体系,为车联网产业安全健康发展提供支撑。通过深入了解设备固件提取问题,可以帮助提高标准应用水平,支撑车联网产业安全健康发展。



推荐阅读


Recommended


>梆梆安全研究院 车联网检测专题之一| 七大执行步骤详解如何进行 TARA 分析

>车联网安全威胁分析及防护思路 | 梆梆安全让车联网应用安全“如虎添翼”

>梆安全顺利通过软件能力成熟度模型集成CMMI L3认证

梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题


原文始发于微信公众号(梆梆安全):梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年12月17日15:06:03
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   梆梆安全研究院 车联网检测专题之二 | 深入解析检测场景下的设备固件提取问题http://cn-sec.com/archives/1464179.html

发表评论

匿名网友 填写信息