面试中常见的物联网设备渗透测试手段(硬件)

发布时间:2020-12-30      来源:

1.前言

IoT是物联网The Internet of Things的简称,而物联网与网络安全息息相关,面试安全岗位时大部分企业都会考察IoT安全相关的东西,虽然最后拿到offer定的岗位都是侧重web的。因此今天我们就来讲讲IoT安全的技术、demo等。

2.IoT相关看法

先说下我个人对IoT的看法,物联网关键的在于“网”这个字,万物互联,靠的就是“网”,至于这个“网”,实现的方式多种多样,这也是前些年的物联网的“碎片化“问题的一部分原因,协议、标准不同,很难有一套成熟的框架或者说是体系可以用于标准、安全地给开发者使用,开发出来的东西漏洞百出,甚至同样的一种功能实现,不同厂商的产品漏洞的危害点却在不同的层面,比如说同样是智能锁的远程开关功能,可以怎么做?

典型的应该是有两种思路,和近场还是远场有关系,近场的解决方案应该是直接蓝牙控制或者厂商私有的协议,针对这种方案可以抓包重放等,就我接触到的产品而言,重放攻击针对大部分都是有效的;远场的解决方案都离不开”云“,可能是app端与云端验证,然后云端下发指令,这种上云的操作,攻击可以从app端做,也可以从web端入手。

App端可能需要hook不同的方法了解如何与IoT设备进行交互,也需要关注交换格式的方法,比如JSON、XML等,有些app会固化编码自己的密钥,攻击者以此伪造消息传送给云端来伪造开关的指令,云端基本上和传统的web安全攻击思路都是相同的,OWASPtop10的那些漏洞,在IoT的云端甚至更加广泛,平行越权、RCE、未授权访问等都是非常常见的。

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

IoT安全从业者,必然要求是文能IDA,武能示波器,软硬方面的技能兼备。

 

接下来进入正题,讲讲物联网常用工具。

3.工具篇

推荐用树莓派吧。很多demo都是在树莓派上开发的,然后在后期出于成本等方面的考虑,联系专业的厂商进行硬件的定制,剪切了不必要的硬件。此外,树莓派自身就是ARM架构,与许多IoT设备相似,当然,还有相当一部分是MIPS、PowerPC等,这些架构的话,树莓派带起来可能会有困难,在计算机上装个QEMU或者FAT基本够用了。树莓派另一方面在于原生的raspbian,有许多的开源工具可以使用,比如OpenOCD、SPIFlash等等。

图片.png

此外,还需要一些硬件工具,比如SDR、万用表、烙铁、热风枪、烧录座等等,土豪可以再买个示波器、电子显微镜;一些使用的命令行级别的工具,如file、hexdump、strings、dd、lzma、7z等。

4.接口调试篇

主要碰到的接口有UART、JTAG、I2C、SPI等,这儿详细讲讲UART的,因为我用到的最多,其次就是JTAG,相对来说,I2C、SPI比较少。

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

是一种硬件组件,允许两个硬件外围设备之间的异步串行通信。它们可以位于同一块电路板上(例如微控制器与电机或LED屏幕通信),也可以位于两个不同的设备之间(例如设备微控制器与PC通信)。它可以允许通过串行读取/写入设备。

在许多物联网设备中,板上的UART端口保持打开状态,任何人都可以通过串口连接和访问以获得shell,日志输出等。设备通常会有一组引脚,连接到微控制器UART RX和TX引脚,用于发送和接收串行数据。

在板子上找到相应的引脚后,连接计算机前,还需要usb转ttl:

图片.png

用于转换电气标准,即高低电平的转换。

连接好后打开xshell或者secureCRT,设置端口和波特率,就可以拿到shell了。