0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式设备PCB级逆向基础技术

fcsde-sh 来源:张飞实战电子 2023-05-05 11:10 次阅读

前言

本文介绍一些实用的PCB级硬件逆向的基础技术,可用于研究者和白帽团体分析未知的硬件。SEC Consult运营的硬件安全专用实验室是SEC Consult安全实验室的一部分。下面展示的研究只是硬件实验室众多研究中的冰山一角。

今天,我们生活在一个被嵌入式设备统治的世界中。每个人都可能生活在各种各样的窥探、监控中。受安全漏洞影响的路由器、网络摄像头、智能手机和其他嵌入式设备,是极易被攻击的。最近爆发的Mirai病毒事件和其他LoT恶意软件更加说明了这一点。无论是出于好奇还是应顾客要求进一步提高产品的安全性,想要深度审计该类设备的固件,我们都需要拆卸下来,好找到调试接口。只有通过对系统进行调试和运行,才能揭示其中的隐秘之处。由于该过程具有一定的破坏性,故通常会对设备造成损坏。因此,要想进行深入的分析,仅准备一台设备是不够的!

如何从熟知的设备开始?

为了节省昂贵的嵌入式分析费用,一个简单快捷方法是替换固件。大型公司很容易在引进大批IoT设备之前委托安全咨询公司对该产品的内置固件进行测试,以此最大程度地降低系统的安全风险。不过,对用户和业余爱好者来说,选择并不多,他们能安装的固件多来源于第三方如OpenWRT。尽管这些固件的性能不见得一定比原生的(原生固件是针对该专有芯片指令集开发的)更加出色,但在安全性方面,确实如此。当我们在完成对已知设备的安全审计的任务时,硬件分析的部分通常简化为在网上的相关论坛(通常是OpenWRT Wiki)寻找相关资料

硬件黑客——识别无文档设备的调试接口

要对一个完全未知的普通设备刷写固件,简直就是一个难以完成的任务。故而,我们需要逐步剖析硬件电路,以便检查其所用的固件及检测固件的安全漏洞。不过,对硬件电路进行逆向工程并不是一件简单的事,尤其是专有芯片集电路,好在一些基本的分析技术还是适用的。在我们的例子中,Broadcom(博通公司)的SoC作为Belkin F9 K1106as(Belkin:贝尔金公司)无线中继器的核心部件。我们用该设备作为例子并不是我们对它别有兴趣,而是它的芯片集也用在众多社区支持的其他设备上。为了识别该SoC的引脚,我们将它接上专用电源。打开设备的外壳,便是PCB板了。我们第一个目的是串行连接到设备,以获得shell或至少访问到引导装载程序。

1509d13e-e629-11ed-ab56-dac502259ad0.jpg

图:Belkin F9 K1106as PCB图及其不同模块

要识别金属防护罩保护的模块,最简单的办法是拆掉防护罩。

15135f7e-e629-11ed-ab56-dac502259ad0.jpg

图:用钳子打开静电防护罩

仅为了逆向分析出隐藏在PCB板上的调试引脚接口,我们不必将全部的防护罩拆除。借助暴露在PCB上的UART接口(译者注:通用异步收发器,详见百度百科)可以实现最初的调试,因为把UART直接接到以11520 Baud 8n1为终端的FT2322H板上,可以获取得root shell。相比于其他接口,很容易就可以辨认出UART,它只有两个针脚,接收端及发送端。进行串行通信并非总是UART,但这能帮助我们缩小可能性。一组3-5针的引脚通常是UART接口,这是开发PCB时预留的。

UART通常的引脚排布为(GND|RX|TX|VCC)或(GND|TX|RX|VCC)。

那JTAG(译者注:联合测试工作组,详见百度百科)在哪呢?该标准允许开发者或有经验的黑客轻易地控制CPU、在运行阶段调试SoC和对flash进行读取和编程以及运行自检测试。这个问题可以如此作答:用JTAG暴力工具。SEC Consult开发的工具(包括硬件和软件)附带有该功能,当然,网络上也有许多用于该目的的工具。由于有效的调试针脚为4-5针,PCB板上部的10个针脚看起来像是JTAG。

151939c6-e629-11ed-ab56-dac502259ad0.jpg

图:暴力检测JTAG针脚

15257a60-e629-11ed-ab56-dac502259ad0.jpg

图:SEC Consult安全实验室开发的硬件分析工具“SEC Xtractor”

经过暴力检测后,终于找出了针脚!为了保持完整性,也标记了UART接口。

152c5830-e629-11ed-ab56-dac502259ad0.jpg

图:JTAG引脚

至于JTAG适配器,用的是廉价的迷你FT2322H模块。

15366d20-e629-11ed-ab56-dac502259ad0.jpg

图:通过迷你FT2232H模块连接到JTAG

连接到OpenOCD的请求给出了如下结果:

153bb78a-e629-11ed-ab56-dac502259ad0.jpg

图:OpenOCD输出

该芯片似乎有一个ID为0x2535717f的32位的指令寄存器。此前,我们所知的仅是该Broadcom SoC标签为BCM5358UB0KFBG。现在,我们有更多的了解了——不过是针对该具体的设备;JTAG接口可以用来控制芯片及对系统底层的访问。

硬件黑客——抓取固件

提取固件,是完善该SoC信息池的最后一步。一个Macronix的串行flash芯片安装在PCB背面。花几分钟用flashrom和FT2322H即可读取出其中的内容。从datasheet上可以快速找出其引脚定义:

1545496c-e629-11ed-ab56-dac502259ad0.jpg

图:Macronix SPI flash芯片引脚

将flash芯片从PCB板上取下后,置于转接器上并启动flashrom:

1552b6f6-e629-11ed-ab56-dac502259ad0.jpg

图:用flashrom读取SPI存储器

转储文件包括整个程序存储器和暂存数据(NVRAM)。用flashrom重写固件并芯片焊接回去是刷第三方固件的另一种方法。通过调用“binwalk-Adump.bin”,得到许多的“MIPSEL”(MIPS little endian)指令,这让我们不禁假设:该Broadcom SoC 是基于通用MIPSEL32 CPU的。SOP封装的串行flash芯片是最容易读取的flash,更具挑战性的NAND和NOR flash芯片,由于其复杂的接口、狭小的封装和数目众多的引脚,操作起来甚是困难。

通过IoT Inspector对转储文件进行初步分析显示,该固件存在一些基本的安全风险,同时也获取到该设备使用的软件信息。由于我们分析的是老旧设备,一些安全漏洞可以追溯到2007年:

15588a5e-e629-11ed-ab56-dac502259ad0.jpg

图:IoT Inspector报告摘录

硬件黑客——逆向SoC引脚

正如先前所述,如果得到了SoC的引脚定义,那么我们将可以对任何使用BCM5358UB0KFBG的设备进行逆向。为此,大多数情况下我们可以用热风枪将BGA封装的芯片拆焊下来。

156295d0-e629-11ed-ab56-dac502259ad0.jpg

图:热风枪返修台

156b45b8-e629-11ed-ab56-dac502259ad0.jpg

图:拆下SoC后的Belkin PCB

根据SoC的引脚连接情况,结合datasheet的相关资料以及针脚对地/电源(GND/VCC)电压的测定和逻辑推断,我们得出该芯片部分重要引脚的功能定义。

157df136-e629-11ed-ab56-dac502259ad0.jpg

图:BCM5358U0KFBG芯片部分引脚功能定义

显然,BCM535x系列芯片有着相似的引脚定义。https://wikidevi.com网站收集有计算机硬件的相关信息,当然也包括Broadcom SoC系列。我们找到了下面的条目:

1584a10c-e629-11ed-ab56-dac502259ad0.png

图:来源: https://wikidevi.com

观察包含该类芯片的其他路由器的图片可以发现,芯片的引脚功能都是大同小异。

Wikidei网站包含众多硬件的相关信息,除此之外,制造商提供的相关文档也非常详尽。中国似乎是唯一一个各个品牌路由器的生产国。

硬件黑客——来自中国的供应链

所有这些中国制造的电子产品,芯片、外围设备、路由器等,经常是由同一家工厂组装完成的。结果很明显,这些产品的质量都在一个等级,一些工厂也为相互竞争的市场供应商生产产品。我们来看看两张华硕RT-N53路由器和Belkin F9 K1106无线中继器的内部图片。这PCB板上的标识简直就是一摸一样,是不是?

158e501c-e629-11ed-ab56-dac502259ad0.jpg

图:华硕PCB,来源:https://apps.fcc.gov/

15980a80-e629-11ed-ab56-dac502259ad0.jpg

图:Belkin PCB

巧合吗?并不像啊。这些标识的字体是ELCAD(电脑辅助电子设计)软件默认设置的,如果不是强制要求,开发者是不会去改动的。这意味着相同的模板重用于华硕PCB的开发,甚至更多其他供应商。因此,同一家ODM(原设计制造商)负责设计制造包括Belkin在内各品牌的产品。

在嵌入式设备生产中,这并不是什么不常见的生产形式,尤其是对于来自US的公司。其中的固件多半也是亚洲供应商基于标准的亦或是定制的SDK开发的。

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • pcb
    pcb
    +关注

    关注

    4319

    文章

    23099

    浏览量

    397889
  • 嵌入式
    +关注

    关注

    5082

    文章

    19126

    浏览量

    305192
  • 接口
    +关注

    关注

    33

    文章

    8598

    浏览量

    151156
  • uart
    +关注

    关注

    22

    文章

    1235

    浏览量

    101392
  • 嵌入式设备
    +关注

    关注

    0

    文章

    110

    浏览量

    16963

原文标题:嵌入式设备PCB级逆向基础技术

文章出处:【微信号:fcsde-sh,微信公众号:fcsde-sh】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    嵌入式Linux下的USB设备驱动技术

    嵌入式Linux下的USB设备驱动技术 Linux以其稳定、高效、易定制、硬件支持广泛、源代码开放等特点,已在嵌入式领域迅速崛起,被国际上许多大型的
    发表于 05-08 08:30 1858次阅读
    <b class='flag-5'>嵌入式</b>Linux下的USB<b class='flag-5'>设备</b>驱动<b class='flag-5'>技术</b>

    如何实现基于Agent技术嵌入式智能设备测试?

    如何实现基于Agent技术嵌入式智能设备测试?基于Agent的嵌入式智能设备测试系统是如何构成的?
    发表于 04-15 06:14

    视频教程-《嵌入式技术 基础课程》之逆向-X86汇编-其他 精选资料分享

    嵌入式技术 基础课程》之逆向-X86汇编 2008年毕业于沈阳航空航天大学...
    发表于 07-19 08:17

    嵌入式设备的本质是什么?

    近几年来,随着移动互联网、物联网的迅猛发展,嵌入式技术无处不在,笼罩着各行各业,在通讯、网络、工控、医疗、电子等领域发挥着越来越重要的作用。随着嵌入式技术及相关产品不断渗透到人们日常生
    发表于 10-27 06:40

    嵌入式外围设备有哪些?

    选择填空判断嵌入式系统的定义和特点定义:以应用为中心,计算机技术为基础,软硬件高度定制,适用于对功能、能耗、成本、体积、可靠性有严格要求的专用计算机系统特点:专用性可靠性实时性低功耗可裁剪嵌入式系统
    发表于 10-27 08:43

    基于蓝牙应用的嵌入式设备

    的发展.其中蓝牙技术就是一个典型的例子.它的无线通讯方式使得各类数据的传输和交换变得越来越便捷.以此同时,各类基于蓝牙应用的嵌入式设备迅速成为炙手可热的消费类电子产品.特别是蓝牙的音频技术
    发表于 11-05 06:06

    嵌入式技术是什么

    一、嵌入式开发概述1**.嵌入式技术是什么?**嵌入式技术是以应用为中心,以计算机技术为基础,并
    发表于 12-17 06:06

    物联网智能设备嵌入式技术是什么?

    物联网智能设备嵌入式技术是什么?
    发表于 12-23 07:24

    ARM嵌入式入门教程

    ARM嵌入式入门教程 本书由浅入深、通俗易懂地讲解了嵌入式Linux的系统设计与开发。全书共25章,从嵌入式处理器ARM开始,讲解了ARM处理器的资源、ARM的指令
    发表于 03-09 14:39 141次下载

    基于嵌入式设备远程在线升级技术的研究

    基于嵌入式设备远程在线升级技术的研究
    发表于 10-31 10:50 16次下载
    基于<b class='flag-5'>嵌入式</b><b class='flag-5'>设备</b>远程在线升级<b class='flag-5'>技术</b>的研究

    TI的嵌入式分析技术使设备更加智能

    嵌入式分析技术嵌入式系统和人类感官结合起来,使系统能够分析信息,做出智能决策。尽管嵌入式分析技术吸引了广泛的行业,但大多数
    发表于 04-13 16:28 13次下载
    TI的<b class='flag-5'>嵌入式</b>分析<b class='flag-5'>技术</b>使<b class='flag-5'>设备</b>更加智能

    嵌入式技术之工业嵌入式系统的应用

    物联网应用技术中,嵌入式技术是至关重要的。但是,至少有60%的人不了解什幺是嵌入式技术
    发表于 04-07 11:18 1773次阅读

    嵌入式设备固件的安全分析和测评技术

    繁多、专用性强、源码或设计文档往往不公开、运行环境受限等诸多因素的影响,通用漏洞挖掘技术无法直接适配。近年来,国内外安全专家和学者针对嵌入式设备及其固件的安全分析和测评技术提出了很多切
    发表于 06-07 16:31 8次下载

    嵌入式总结

    嵌入式总结版嵌入式系统• 嵌入式系统上的软件具有结构精简,代码轻量化,占用存储资源少的特点。• 嵌入式系统和计算机操作系统的共同特征是:
    发表于 10-20 14:51 8次下载
    三<b class='flag-5'>级</b><b class='flag-5'>嵌入式</b>总结

    嵌入式设备PCB逆向基础技术

    本文介绍一些实用的PCB硬件逆向的基础技术,可用于研究者和白帽团体分析未知的硬件。SEC Consult运营的硬件安全专用实验室是SEC Consult安全实验室的一部分。
    的头像 发表于 06-30 17:15 679次阅读
    <b class='flag-5'>嵌入式</b><b class='flag-5'>设备</b><b class='flag-5'>PCB</b><b class='flag-5'>级</b><b class='flag-5'>逆向</b>基础<b class='flag-5'>技术</b>