物联网安全 - 14 硬件调试端口指南:概述和识别

admin 2023年10月30日01:47:57评论61 views字数 4832阅读16分6秒阅读模式

本博客是物联网安全系列的一部分,我们将讨论与物联网/工业物联网生态系统及其安全性相关的基本概念。如果你还没有看过该系列的前几篇博客,我强烈建议你先看一遍。如果您只对硬件调试端口感兴趣,请随时继续。

本周天(2023/10/29)直播

直播内容

  1. 了解二进制安全行业

  2. 课程内容介绍

  3. 提问

物联网安全 - 14 硬件调试端口指南:概述和识别

了解详情扫微信群

物联网安全 - 14 硬件调试端口指南:概述和识别

目录






物联网安全-物联网介绍及其架构

物联网安全-2.物联网攻击面

物联网安全3.物联网10大安全漏洞

物联网安全-4.低功耗蓝牙BLE

物联网安全-5.ZigBee协议物联网安全-6.ZigBee安全物联网安全-7.物联网固件逆向

物联网安全-8.软件无线电(Software Defined Radio,SDR)简介

物联网安全-9.软件无线电简介(Software Defined Radio,SDR):软件部分

物联网安全 – 10.MQTT 协议和安全简介

物联网安全 – 11 CoAP 协议和安全简介

物联网安全 – 12.MQTT 代理安全

物联网安全-13 硬件分析简

在之前的博客中,我们讨论了如何在硬件上执行侦察。在这篇博客中,我们将讨论硬件调试端口、不同的调试端口是什么,以及如何使用不同的方法查找调试端口。

查找硬件调试端口过程包括几个步骤,例如查看各种测试焊盘、引脚排列和接头。这些引脚很少在PCB上标记,因此我们必须手动识别引脚。微控制器数据表中有关引脚和使用万用表进行简单连续性检查的信息对于 DIP/TSOP、TQFP 等 IC 封装来说已经足够了,但对于 QFN、BGA 等封装,如果引脚在 PCB 上无法触及,则很难手动识别。

对于无法进行连续性检查的情况,Bus Auditor 或 Jtagulator 等工具非常方便。一旦在PCB上识别出JTAG/SWD、UART、I2C引脚,就可以访问微控制器、固件提取、根外壳访问。

为什么 PCB 必须调试端口?

硬件调试端口可以直接与微控制器通信。JTAG/SWD端口在开发过程中用于下载、调试固件源代码、恢复砖砌硬件、执行边界扫描。边界扫描是一种测试印刷电路板 (PCB) 上互连的方法。这是对设备进行故障排除的最简单方法。另一方面,UART 端口通常用于通过控制台访问设备,以调试硬件上运行的应用程序。在这篇博文中,我们将使用 Bus Auditor 在 DIVA 板上找到 UART、JTAG/SWD、I2C。

总线审核员:

Bus Auditor 是一款紧凑的多协议工具,用于扫描和识别暴露在任何硬件板上的调试端口和通信接口,它可以暴力破解多种硬件协议,包括 JTAG、Arm SWD、UART、I2C。
该器件具有 16 个独立通道,用于连接到目标 PCB 上的接头引脚。内置的USB端口用于与PC上运行的EXPLIoT框架连接。

物联网安全 - 14 硬件调试端口指南:概述和识别



图 1.总线审计员


特征:

  • USB 2.0高速接口。

  • IEEE 1149.1 JTAG和arm SWD支持。

  • UART RX、TX 引脚和波特率检测。

  • I2C 引脚和 I2C 地址检测。

  • 可调目标电压电平1.2V-3.3V。

  • 16 个 I/O 通道,具有电平转换和输入保护功能。

因此,让我们看一下调试端口的类型,并使用 Bus Auditor 对其进行识别。

注:
16 个 IO 通道标记为 CH0 至 CH15,以便于识别。

DIVA

DIVA(该死的不安全和易受攻击的应用程序)物联网板是 EXPLIoT 产品之一。DIVA Board 是一种连接的物联网设备和易受攻击的目标板,旨在教授物联网安全的基础知识。

物联网安全 - 14 硬件调试端口指南:概述和识别



图 2.天后


该板提供标准JTAG调试接口以及SWD接口,该接口可用作固件调试的调试端口和UART端口,用于在终端上发送调试消息的自定义控制台。
DIVA 板上有 3 个分线接头,我们将扫描分线并找到调试端口。



物联网安全 - 14 硬件调试端口指南:概述和识别




图 3.DIVA电路板布局


我们可以在照片中看到DIVA板布局,所有外设和分支都标记了。
我们将识别 breakout1、breakout2 和 breakout3 上的 JTAG/SWD、UART、I2C 端口。


物联网安全 - 14 硬件调试端口指南:概述和识别

JTAG(联合测试行动组):

如今,PCB和SOC已经变得更小和先进。随着时间的流逝,PCB在生产后变得复杂且难以调试和编程。为了便于测试、调试和编程电路板的后期生产,业界开发了一种称为联合测试行动组(JTAG)的接口。它用于测试、调试和编程接口,使用PCB板上的引脚排列(Header)或测试焊盘。
后来,该接口被采用为IEEE 1149.1标准。该标准定义了具有JTAG接口的处理器中使用的测试访问端口(TAP)控制器逻辑。
JTAG接口需要5个引脚。在许多系统中,未实现可选的 TRST 引脚,因此 TRST 是可选的。导致其四线接口
,JTAG引脚是,

  • TMS – 测试模式选择

  • TCK – 测试时钟

  • TDI – 测试数据输入

  • TDO – 测试数据输出

  • TRST – 测试复位(可选引脚)

我们即将发布的博客将更详细地介绍JTAG接口。

识别DIVA上的JTAG端口:

我们将扫描或 J3 接头以查找可能的 JTAG 接口,到目前为止,我们还不知道哪个引脚是 JTAG 端口的引脚。breakout 1

物联网安全 - 14 硬件调试端口指南:概述和识别



图 4.分组讨论 1


1) 识别 GND(接地引脚)。
检查连续性时,应关闭 DIVA 板的电源。识别任何金属片区域(通常金属片区域在板上接地)或识别 DIVA 板输入直流电源的 GND 引脚。



物联网安全 - 14 硬件调试端口指南:概述和识别




图 5.识别接地引脚


2) 如果万用表发出哔哔声,则表示引脚排列已接地,即它是 GND 引脚。
现在让我们将总线审计器 GND 引脚连接到 diva GND 引脚,将 CH0-CH8 引脚连接到接头(总线审计器引脚标记为 0 到 15)
Breakout 1


物联网安全 - 14 硬件调试端口指南:概述和识别



图 7.引脚连接


3) 使用 USB 转 Micro USB 电缆将两个设备连接到 PC。


物联网安全 - 14 硬件调试端口指南:概述和识别



图 9.电路板通电


4) 运行 EXPLIoT 框架(如果您的系统不允许用户进程连接到 tty* 设备,请使用 root/sudo)。


  • $ expliot

5) 运行 Busauditor 插件

  • ef> run busauditor.generic.jtagscan -v 3.3 -p /dev/ttyACM0 -s 0 -e 10

-v 用于设置电压。

-p dev/tty* 端口。

-s 起始通道。

-e 结束通道。

等待插件完成JTAG端口扫描。

物联网安全 - 14 硬件调试端口指南:概述和识别



图 9.JTAG扫描


总线审计结果:

以下是一些JTAG引脚和ID代码

TCK:CH0

磁敏反应:CH1

TDO:CH3

TDI:CH2

TRST:CH4

ID CODE 是

身份证号码 :0x4ba00477

身份证号码 :0x06431041

ID CODE是一个32位数字的唯一制造商ID,用于标识JTAG链中的器件类型。ID 代码因供应商而异。在这里,我们找到了 2 个 ID 代码,一个来自 STM electronics 的主控制器,一个是 SOC 中的 JTAG 控制器。

SWD(串行线调试器):

JTAG连接器在许多应用中需要四个引脚:引入了JTAG的一个变体,称为串行线调试(SWD),它仅使用2个引脚,带有时钟和双向数据引脚,SWDIO和SWCLK覆盖在TMS和TCK引脚上。

识别 DIVA 上的 SWD 端口:

我们将保持相同的连接以识别 SWD 引脚,

运行命令:

  • ef> run busauditor.generic.swdscan -s 0 -e 10

(注意:电压和设备端口默认为3.3v和ttyACM0)

物联网安全 - 14 硬件调试端口指南:概述和识别



图 10.SWD扫描


总线审计结果:

在这里,我们找到了 Pin 图

SW_CLK:CHO

SW_DIO:CH1

和ID代码:0x2ba01477

我们找到了 SWD 引脚和 ID 代码。利用这些信息,攻击者可以提取固件,对逻辑进行逆向工程,并在设备上刷写恶意固件。
JTAG/SWD在调试微控制器时增加了重要的功能 但是,它们需要访问处理器上的JTAG/SWD引脚。GDB 和 OpenOCD(开放式片上调试器)等调试工具可以通过 JTAG/SWD 用于调试/操作代码/执行。

I2C(内部集成电路):

I2C 是一种异步、多主、多从、串行通信总线,这意味着多个芯片可以连接到同一总线,每个芯片都可以通过启动数据传输来充当主芯片。I2C 用于在同一块板上的短距离内在低速外设 IC 和处理器/微控制器之间进行通信。
与 UART 通信一样,I2C 仅使用两根线在设备之间发送和接收数据。

  • SDA(串行数据) – 主站和从站发送和接收数据的线路。

  • SCL(串行时钟) – 承载时钟信号的线路。


物联网安全 - 14 硬件调试端口指南:概述和识别




图 11.I2C 通信(源)


识别 Diva Board 上的 i2c

我们将总线审计器连接到 diva 排针breakout 2

物联网安全 - 14 硬件调试端口指南:概述和识别



图 12.分组讨论 2


1) 将接地引脚识别为我们之前使用万用表连续性测试发现的相同。
将 GND 和其他 CHO-CH8 通道连接到排针分线板
,如下图所示 连接已建立


物联网安全 - 14 硬件调试端口指南:概述和识别



图 13.引脚连接


2) 使用 USB 转 Micro USB 电缆将两个设备连接到 PC。


物联网安全 - 14 硬件调试端口指南:概述和识别



Fig 14. Boards Power up


3) Open EXPLIoT framework
Run command:


    ef> run busauditor.generic.i2cscan-v 3.3 -p /dev/ttyACM0 -s 0 -e 10


物联网安全 - 14 硬件调试端口指南:概述和识别




Fig 15. I2C Scan


Bus Auditor Result :

We can see that the bus auditor identified 2 pins out of 8 pins and found the device address.

SCL: CH1

SDA: CH8

Device Address : (0x48)

Device Address : (0x50)

I2C 的用例之一是连接到微控制器 I2C 引脚的 EEPROM 芯片,通常存储数据或代码。典型的攻击包括篡改数据、提取敏感信息、破坏数据等。我们应该分析EEPROM芯片上的静态数据,并通过嗅探I2C通信来执行运行时分析,以了解其行为和安全影响。

UART(通用异步接收器-发送器):

UART(通用异步接收器发送器)是一种硬件组件,允许两个硬件组件之间的异步串行通信。这可以位于相同的设备(连接到设备上的任何传感器的微控制器)或两个不同的设备(设备微控制器通过外部 UART 硬件与 PC 通信)


物联网安全 - 14 硬件调试端口指南:概述和识别




图 16.UART通信(Img.来源)


在 DIVA 上识别 UART:

在这里,当我们不知道微控制器的UART引脚和微控制器的数据表时,我们将识别PCB板上的UART引脚。

1) 我们将总线审计器通道引脚连接到 diva 上的排针分线 3。


物联网安全 - 14 硬件调试端口指南:概述和识别




图 17.分组讨论 3


2) 首先,如前所述,我们将使用万用表识别接地引脚。一个引脚是 VCC,无需连接它,为了识别 TX、RX,我们将连接总线审计器的 CH0 和 CH1。


3) 使用 USB 转 Micro USB 电缆将两个设备连接到 PC。

物联网安全 - 14 硬件调试端口指南:概述和识别




图 18.引脚连接


4)打开EXPLIoT框架
运行命令:


    ef> run busauditor.generic.uartscan -v 3.3 -p /dev/ttyACM0 -s 0 -e 1


物联网安全 - 14 硬件调试端口指南:概述和识别




图 19.UART扫描


总线审计结果:

我们找到了正确的波特率和正确的 RX、TX 引脚、

波特率为9600

接收:CH1

发送:CH0

这是一个有趣的攻击面,因为它可能允许通过串行对设备上运行的应用程序进行读/写访问。在许多设备中,板上的UART端口保持开放状态,任何人都可以通过串行连接和访问,以获得某种控制台,即简单的shell,自定义命令行控制台,日志输出等。

设备通常有一组引脚连接到微控制器 UART RX 和 TX 引脚,用于发送和接收串行数据。在这里,我们使用总线审计器识别了 UART 端口,在接下来的博客文章中,我们将了解如何访问设备上的 UART 端口。

 


结论:

我们希望这篇博文能让您大致了解硬件调试端口,以及总线审计器如何扫描和识别PCB测试焊盘和引脚排列接头上暴露的调试和通信接口。这为您提供了执行硬件评估的有用信息。在后面的博客文章中,我们将介绍每个硬件调试端口的更多详细信息。


物联网安全 - 14 硬件调试端口指南:概述和识别

 

 

物联网安全 - 14 硬件调试端口指南:概述和识别




原文始发于微信公众号(安全狗的自我修养):物联网安全 - 14 硬件调试端口指南:概述和识别

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年10月30日01:47:57
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   物联网安全 - 14 硬件调试端口指南:概述和识别https://cn-sec.com/archives/2154778.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息