IoT 安全性 - 第 13 部分(硬件侦察
-
沙基尔
-
1月 2020,
本博客是物联网安全系列的一部分,我们将讨论与物联网/工业物联网生态系统及其安全性相关的基本概念。如果您还没有浏览过该系列以前的博客,我建议您先浏览这些博客。如果您只对硬件侦察的基础知识感兴趣,请随时继续。
目录
物联网安全-物联网介绍及其架构
物联网安全-2.物联网攻击面
物联网安全-5.ZigBee协议物联网安全-6.ZigBee安全物联网安全-7.物联网固件逆向
物联网安全-8.软件无线电(Software Defined Radio,SDR)简介
物联网安全-9.软件无线电简介(Software Defined Radio,SDR):软件部分
物联网安全 – 10.MQTT 协议和安全简介
物联网安全 – 11 CoAP 协议和安全简介
物联网安全 – 12.MQTT 代理安全
在本博客中,我们将讨论如何在硬件上执行侦察。硬件包括物理电子元件,包括微控制器、微处理器、电阻器、电容器、LED 等,这些元件使设备工作。硬件勘测过程包括几个步骤,如设备拆卸、查看各种组件、调试端口(如 UART、JTAG/SWD)、识别芯片、查找相应的数据表以及从数据表中查找信息。因此,让我们逐一介绍它们。
硬件侦察的重要性
在渗透测试或一般安全研究的过程中,在开始攻击目标之前,我们必须对系统有一个完整的了解,即使它是一个黑匣子。侦察过程有助于识别构成系统的不同组件,以便我们可以将攻击转向我们所知道的以及在了解系统时发现的漏洞。在侦察期间,我们识别各个部分并连接这些部分以获取有助于危害系统安全性的智能信息。在攻击硬件设备时,我们需要首先了解硬件由什么组成,即硬件的不同组件是什么,以便能够创建有效的威胁模型和在查找漏洞时使用的错误用例。我们将在下面看到在此过程中得出的基本信息是什么。
五金工具
我们将需要一些关键的物理设备来执行硬件侦察。
-
万用表:
万用表是电路探测的非常重要的工具。它将帮助我们测试所有组件,并测量两点之间的电阻、电压和电流水平以及电连续性。 -
烙铁, 焊料, 助焊剂, 镊子, 焊芯, 切割器, 剥线钳:
这些是焊接工具,可用于在 PCB 中添加和移除组件. -
螺丝刀套件:
拆卸设备所必需的。如今,设备拆卸是一项相当艰巨的工作,有时制造商使用防篡改保护来防止人们访问设备的内部组件。 -
跳线:
用于电气连接两个设备。 -
脱焊泵/热空气返工:
脱焊泵需要在不破坏 PCB 的情况下移除 SMD 组件,温度合适. -
放大镜:
有助于清楚地看到组件,并有助于识别组件的型号、品牌和零件号。通常,它们以非常小的尺寸书写,难以用肉眼阅读。 -
虎钳支架:
用于在焊接或拆焊组件时固定 PCB.或在检查印刷电路板时
电子基础知识:
如果你想进入硬件黑客,基础电子是最重要的事情之一。您需要了解设备中发生的情况以及如何利用任何给定的组件。因此,在这里我们将研究一些基本的电子元件以及在电路中使用它们的目的。
-
反应:它增加了两个组件之间的电阻。它以欧姆为单位。
-
电容器:在特定时间间隔内充电和放电,用于稳定电路中的电源。它以法拉为单位。
-
电感器:用于利用电磁放电滤除和平滑电路中的高频噪声。它以亨利为单位。
-
IC:集成电路是一组小块硅上的电子电路。
-
LED:发光二极管。
-
EEPROM(电可擦除可编程只读存储器):嵌入式设备使用这些存储器作为存储手段。
-
晶体:它们以给定的频率振荡,类似于计时器。
-
变压器:它们用于转换电压电平。主要用于将交流电源转换为带有一些额外电路的直流电源。
-
二极管:用于限制一个方向的电流。
-
继电器:它是一种以机电方式控制(打开和关闭)电路的开关。
-
微控制器/微处理器:它是单个金属氧化物半导体(MOS)集成电路(IC)芯片上的微型计算机。
-
SoC(片上系统):它们可以只是一个处理器或处理器+内存+外围设备。
-
Transister:用于放大和切换信号和电力。
-
电池:它将化学能转化为电能。
-
电机:它将电能转换为机械能。
-
开关:中断电流。
-
PCB:印刷电路板 (PCB) 是一种印刷或蚀刻导电线的非导电材料.
不同类型的组件包:
封装根据如何安装在印刷电路板(PCB)上分为两种类型。
通孔安装封装:
这种类型的元件的设计方式是,元件的引脚插入 PCB 中,并且 PCB 引脚的另一侧可以焊接.这些类型的元件比表面贴装封装大。与 SMD 组件相比,这些组件更便宜。请参阅照片下方不同类型的通孔鸥翼组件。
表面贴装封装:
表面贴装封装元件直接安装在PCB表面。这种类型的组件尺寸最小,组装时间更短,但也增加了缺陷的机会。以下是SMD封装组件的类型
贴片元件类型:
-
小外形 L 引线封装 (SOP) 这种类型具有鸥翼型引线,以 L 形从主体中伸出,可以直接安装在 PCB 上
-
四方扁平L形封装(QFP) 这与SOP相同,唯一的区别是引脚从4个方向而不是2个方向出来,可以直接安装在PCB上。
-
球栅阵列(BGA) 这些类型的封装在组件的背面有一个焊球阵列。
印刷电路板 (PCB)
现在我们对电子元件及其不同的封装有了很好的了解。那么接下来呢?
在这里我们将讨论PCB,印刷电路板(PCB)是一种印刷或蚀刻导电线的非导电材料。安装在PCB板上的电子元件,如转换器,电阻器,电容器,集成电路(IC)和走线连接元件以形成工作电路。PCB 通常由玻璃纤维制成, 复合环氧树脂, 或其他复合材料.PCB由多层组成.即使是简单的单面(一层)板也是由导电金属层和基板层组合在一起的。随着PCB复杂性的增加, 其中的层数也会增加.
有很多软件工具可用于设计PCB,如Kicad,Eagle,Orcad。我们使用 Kicad 进行 PCB 设计。它易于使用,并具有以 3D 形式查看 PCB 的功能.
PCB 为我们提供了很多信息,例如不同的组件, 调试端口, 测试垫, 等等.它可以帮助研究人员为设备创建攻击场景的威胁模型/思维导图。
联邦通信委员会编号:
FCC ID 是分配给在美国联邦通信委员会注册的硬件产品的唯一标识符(因此称为 FCC ID)。大多数智能设备都有一个FCC ID,它将为您提供有关设备的许多详细信息,例如设备的内部照片,工作频率等。这些信息对于识别组件以及了解设备中使用的RF技术至关重要。您可以在 fcc.gov 上按设备的 FCC ID 搜索设备的详细信息。
例如,让我们搜索Edimax相机设备的详细信息。它的FCC ID是NDD9530401309。如您所见,我们得到了许多有趣的设备相关信息。
拆卸:
根据组装在一起的设备,我们必须使用适当的工具来拆卸所有不同的部件。我们还建议您为整个硬件评估过程提供一个好的螺丝刀工具包,因为不同的设备将使用不同类型的螺丝。因此,在这里我们将在华硕RT-N10E wifi路由器上执行硬件侦察。我们将拆卸路由器以访问印刷电路板。设备背面有 4 个螺钉应拆下,然后塑料外壳可以拉开。
电路板分析
这是一个非常简单的电路板,具有很少的组件和一个用于调试的接头。更复杂的设备将具有许多不同的组件、多个处理器、CLPD 和/或 FPGA、用于不同固件和设置的多个闪存、加密协处理器以及各种调试端口和接口。在这个PCB板中, 有 4 我们在红框中突出显示的 IC 和一些引脚排列(接头).我们需要确定什么是 IC,什么是引脚排列以及它们为什么重要,
-
赢邦
-
博通
-
菲蒂动力
-
马克罗尼克斯
-
引脚排列(针座)
芯片分析
让我们仔细看看IC,看看我们可以挖掘出什么。
1. 赢邦:
-
在这里,我们可以清楚地看到IC上写的内容。
-
华邦为制造商,W9812G6KH-6为IC的部件号。
-
让我们谷歌部件号并下载数据表。数据表
从数据表中,我们可以了解到W9812G6KH是一种高速同步动态随机存取存储器。我们将从数据表中获取更多信息,例如存储器大小,时钟频率引脚图电源,封装。
2. 博通:
-
IC的部件号为KFBG BCM5356。
-
让我们谷歌一下零件号数据表
-
BCM5356 是一款具有 2.4 GHz 无线电收发器的基带微处理器。有关此芯片的更多信息,请检查给定的链接。
3. FR9886
-
FR9886由菲蒂动力集成技术制造
-
让我们谷歌一下零件号数据表
-
FR9886 是一款同步降压型 DC/DC 转换器
-
这是fr9886降压直流-直流转换器的典型原理图
-
输入范围在4.5V至23V DC之间,我们将获得1.25V的固定输出
4. MXIC
-
该IC由马克罗尼克斯制造。
-
部件号为 25l3206e。
-
让我们下载数据表,我们知道这部分是什么。数据表
-
此 IC 是 8 Mb 串行闪存。
-
该芯片可以为目标设备存储基于 Linux 的固件。
-
引脚识别:该IC采用不同的封装,如下所示。在我们的例子中,IC封装是8-LAND WSON (6*5MM)。
-
引脚说明 这是数据手册中的引脚说明。它可用于与硬件工具建立连接以读取和写入固件。
串行闪存侦察
在确定的四个组件中,让我们看一下串行闪存以及如何从芯片中提取数据。
-
使用烙铁或热空气站从路由器PCB上卸下串行闪存。
-
拆焊时不要加热太多,因为它可能会损坏芯片
-
我们需要一个PCB适配器来焊接移除的IC,如下图所示。
-
焊接IC时要小心,检查引脚1的圆形凹口。
IC与我们的计算机接口
要读取或写入我们需要的IC,可以使用商业或开源软件。但是,我们需要将IC与我们的PC接口,以便软件能够与IC通信。我们可以使用EXPLIoT-Nano(https://expliot.io/products/expliot-nano)或任何其他使用SPI协议的硬件连接器从串行闪存读取和写入固件。
-
Expliot-Nano是一种紧凑的黑客友好型多用途、多协议硬件工具,主要用于调试和编程微控制器/处理器和闪存芯片。
-
Expliot-Nano可以配置为支持硬件协议,包括UART,I2C,SPI,ARM SWD和JTAG。即使它工作在3.3V,所有I/O引脚都可以承受5V电压。
-
将IC焊接在PCB适配器上后,如下图所示正确连接。
-
现在,您可以提取数据(在本例中为固件)并进一步分析固件中的信息。我们将在即将发布的 SPI 博客中详细介绍。
5. 引脚排列(针座)
设备制造商需要一种方法来使用其固件对设备进行编程,因此他们通常使用调试标头或测试点来调试或刷新固件或恢复砖块设备。正如我们在此路由器中看到的,PCB引脚接头有许多引脚接头,了解这些针座包含的内容非常重要。它可能是UART端口,JTAG,SWD,任何可以直接与主芯片通信的人,很少有这些引脚接头被标记。在下一个博客系列中,我们将看到 什么是不同的调试端口 ,如何识别调试端口,识别调试端口的不同方法及其用例。
结论:
我们希望这篇博文能让您概述硬件侦察的基础知识,PCB分析,组件识别及其数据表如何为您提供执行硬件评估的有用信息。这是您可以和应该做什么的非常基本的概述。在后面的博客文章中,我们将介绍分析设备中常用的不同微控制器、存储芯片和硬件协议的更多详细信息。
其它课程
windows网络安全一防火墙
windows文件过滤(更新完成)
USB过滤(更新完成)
游戏安全(更新中)
二进制漏洞(更新中)
ios逆向
还有很多免费教程(限学员)
更多详细内容添加作者微信
原文始发于微信公众号(安全狗的自我修养):物联网安全-13 硬件分析简介
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论