物联网设备测试工具及方法简介

物联网设备测试方法简介

IOT测试简介

物联网是互联网、传统电信网等信息承载体,让所有能行使独立功能的普通物体实现互联互通的网络。在物联网上,每个人都可以应用电子标签将真实的物体上网联结,在物联网上都可以查出它们的具体位置。通过物联网可以用中心计算机对机器、设备、人员进行集中管理、控制,也可以对家庭设备、汽车进行遥控,以及搜索位置、防止物品被盗等,类似自动化操控系统,同时透过收集这些小事的数据,最后可以聚集成大数据,包含重新设计道路以减少车祸、都市更新、灾害预测与犯罪防治、流行病控制等等社会的重大改变,实现物和物相联。
物联网实现的方式多种多样,这也是前些年的物联网的“碎片化“问题的一部分原因,协议、标准不同,很难有一套成熟的框架或者说是体系可以用于标准、安全地给开发者使用,开发出来的东西漏洞百出,甚至同样的一种功能实现,不同厂商的产品漏洞的危害点却在不同的层面,比如说同样是智能锁的远程开关功能,每家厂商都是怎么做的呢。
典型的应该是有两种思路,和近场还是远场有关系,近场的解决方案应该是直接蓝牙控制或者厂商私有的协议,针对这种方案可以抓包重放等;远场的解决方案都离不开”云“,可能是app端与云端验证,然后云端下发指令,这种上云的操作,攻击可以从app端做,也可以从web端入手。App端可能需要hook不同的方法了解如何与IoT设备进行交互,也需要关注交换格式的方法,比如JSON、XML等,有些app会固化编码自己的密钥,攻击者以此伪造消息传送给云端来伪造开关的指令,云端基本上和传统的web安全攻击思路都是相同的。

但是像智能锁这一类的由传统产品改造后的IoT设备是目前应用最典型的,应该说也是存在漏洞最多的层面。为什么?还是以智能锁为例,本来锁具面临的攻击只是物理攻击而已(拿一些工具撬开),现在它成IoT了,增加了其他功能,比如说用app控制了,攻击者可以从app端下手,控制了app就控制了智能锁,再进一步,上云了,攻击面就更大了,web的攻击技术也可以用来控制锁具了。功能越多,漏洞的攻击面越多。
智能锁

工具简介

第一个推荐的就是树莓派(RPI),它是一款只有信用卡大小的微型电脑。
树莓派的用途很多,他就是一部微型电脑,电脑能实现的东西他基本都可以实现,比如改造成无线路由器、FTP文件服务器、v*n网关,甚至是装上摄像头当成摄像机来用。
此外,还需要一些硬件工具,比如万用表、烙铁、热风枪、烧录座、编程器、串口转接器等等,还有一些超贵的示波器、电子显微镜等。
树莓派制作相机

接口调试篇

在我们测试设备的时候会碰到很多不同的接口有UART、JTAG、I2C、SPI等。比较常见的UART和JTAG。
1、UART(通用异步接收器发送器)
是一种硬件组件,允许两个硬件外围设备之间的异步串行通信。它们可以位于同一块电路板上(例如微控制器与电机或LED屏幕通信),也可以位于两个不同的设备之间(例如设备微控制器与PC通信)。它可以允许通过串行读取/写入设备。

在这里插入图片描述
在这里插入图片描述
在许多物联网设备中,板上的UART端口保持打开状态,任何人都可以通过串口连接和访问以获得shell,日志输出等。设备通常会有一组引脚,连接到微控制器UART RX和TX引脚,用于发送和接收串行数据。我们在主板上找到相应的引脚后,连接计算机前,还需要usb转ttl,用于转换电气标准,即高低电平的转换,同时能够直接连接到计算机,连接好后打开xshell或者secureCRT,设置端口和波特率,就可以拿到shell了。但多数情况下可能没这么简单,还需要进一步地搜集、解密root的密码等操作。
在这里插入图片描述
2、JTAG属于微控制器调试接口。
微控制器具有在运行期间使用指定引脚进行调试的规定,这些引脚连接到电路板上的引脚。这些引脚(端口)由开发人员和设计人员用于调试,读/写固件和微控制器内部存储器,生产后控制/测试微控制器引脚。
在这里插入图片描述
因为可以使用这个接口进行测试,所以这使得JTAG接口成为最关键的攻击面之一,它为攻击者提供了强大的功能和访问权限。我们可以用转接器直接连接电脑进行调试。
在这里插入图片描述
3、I2C串行总线
内部集成电路是一种短距离通信协议,用于同一板上芯片之间的通信。I2C的一个用例是EEPROM芯片,它连接到微控制器I2C引脚,通常存储数据或代码。典型的攻击包括篡改数据,提取敏感信息,破坏数据等。我们分析EEPROM芯片上的静态数据,并通过嗅探I2C通信来执行运行时分析,可以了解安全隐患。
在这里插入图片描述4、SPI
串行外设接口也是一种短距离通信协议,用于同一板上芯片之间的通信。与I2C相比,具有更高的吞吐量。它用于与各种外围设备通信。测试和分析的方法与I2C类似都是通过SPI转USB连接到电脑后使用调试助手进行测试。
在这里插入图片描述
常见固件提取方法:
1、官网或联系售后索取升级包。
2、在线升级方式提取固件
3、逆向升级软件,软件内置解包和通讯算法
4、从调试接口:JTAG/SWD等方式获取固件。
5、拆flash、SD/TF卡、硬盘等,用编程器/读卡器获取固件。
6、从串口(UART)调试口获取固件。
7、通过利用网页和通讯漏洞获取固件的敏感信息。
8、用逻辑分析仪监听flash,ram获取信息。
通过JTAG/SWD接口进行读取。将提取出的芯片固件在烧录座上,将仿真器与烧录座的JTAG接口连接,插入计算机,打开配套的客户端进行读取。
在这里插入图片描述
如果我们是直接从设备上将芯片拆下来的话需要用到RT809F编程器,连接电脑进行估计获取。但是一般IOT设备价格都不便宜,这种方法可能会对设备造成无法挽回的损害,所以除非其他方法都不可行,才使用这种暴力方式。
在这里插入图片描述
当我们提取完之后就可以使用一些解包工具对提取的固件进行解包,获取固件信息进行分析就可以了。
在这里插入图片描述
在这里插入图片描述