更新时间:2022-03-03 06:23:09下载pdf
本文介绍如何根据整个物联网系统框架结构,从各个角度切入进行涂鸦IoT设备的安全测试。
测试分类 | 测试项 |
---|---|
硬件安全 | 物理破坏、固件提取、存储介质 |
固件安全 | 固件 OTA 安全、固件静态分析、固件动态调试、固件签名验证 |
通信安全 | Wi-Fi 协议、蓝牙协议、Zigbee 协议、NFC/RFID |
系统安全 | 设备本地服务端口开放、权限分离措施、系统内核漏洞、缓冲区溢出、信息泄露 |
加密与认证算法 | 加密与认证算法 |
隐私安全 | 用户数据删除 |
服务端安全 | 服务端安全测试 |
PCB( Printed Circuit Board),中文名称为印制电路板,又称印刷线路板,是重要的电子部件。
硬件攻击第一步通常是设备拆解,然后通过检查设备的芯片以及暴露的接口来获取更多信息,为后续分析提供准备。
主要检查范围包括:
主要风险包括不限于:
黑客攻击硬件的主要手段也是最有效手段就是固件提取,通过对固件的提取后就可以进行固件分析测试,从而可以挖掘固件的通用性漏洞。或者可以通过对固件进行硬编码参数分析,从而导致该型号存在可猜解口令(通常叫做后门)。读取和获取固件的方式很多,而获取到固件可以让我们的分析更加全面。
固件是设备运行的操作系统,固件一般在存储在芯片中运行时从 flash 中导出,然后通过 CPU 进行运算。在 flash 中存储可以被加密,但也存在 flash 以明文形式存储的情况,在内存中调用的数据也是明文。
固件可以分为有登录 Shell 系统和无登录 Shell 系统两类,两类系统在分析上有一定出入,但总体上依然是可以被进行逆向分析。
设备存储除了 flash 以外,有些特殊设备存在额外的存储,如 SD 卡等。这些存储存在特殊功能,比如从本地升级固件。
常见此类功能的设备为摄像头、路由器等,如果存在此类功能,且本地升级时没有对固件进行验证,可能存在任意代码执行的问题。
空中编程(英语:Over-the-air programming,缩写OTA)是一种为设备分发新软件、配置,乃至更新加密密钥的方法;固件 OTA 的过程也很容易发生安全问题,如 OTA 中间人劫持、固件降级等问题。
获取到智能设备固件后,需要得到固件中所包含的文件,固件内容提取可以选择手动提取,也可以使用自动化工具提取。提取出的固件一般是 16 进制的 .bin 文件或者 .hex 文件,通过逆向分析或解包之后,获得实际的逻辑代码,根据需求分析或修改其中的关键代码,之后再重打包刷回芯片中,使硬件执行修改之后的固件以完成攻击目的。
固件硬编码其实只是静态分析中的一种常见问题类型,攻击者还可以通过分析固件进行漏洞寻找,获取技术资料等操作,以及检查是否存在明文或者可以猜解的敏感信息,通过一系列问题的发现和组合使用,可能导致设备被破解获取设备权限等问题。
在获取固件之后,需要运行固件通过模拟固件中的程序进行调试和漏洞挖掘。
该操作旨在将获取的固件运行起来,并为后续的系统安全部分的分析做准备。
QEMU 是一套由法布里斯·贝拉(Fabrice Bellard) 所编写的以 GPL 许可证分发源码的模拟处理器,在 GNU/Linux 平台上使用广泛。Bochs,PearPC 等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过 KQEMU 这个闭源的加速器,QEMU 能模拟至接近真实电脑的速度。
QEMU有两种主要运作模式:
检查固件是否存在被篡改校验机制,比如版本号校验等。检查是否可以二次编辑固件或者升级恶意固件,可能导致获取设备权限,对设备添加后门等严重问题。
Wi-Fi,是一个创建于 IEEE 802.11 标准的无线局域网技术。
Wi-Fi 常见的问题包括不仅限于数据重放,密钥泄露,解密、伪造报文等。
蓝牙低能耗(Bluetooth Low Energy,或称Bluetooth LE、BLE,旧商标Bluetooth Smart)也称低功耗蓝牙,是蓝牙技术联盟设计和销售的一种个人局域网技术,旨在用于医疗保健、运动健身、信标、安防、家庭娱乐等领域的新兴应用。相较经典蓝牙,低功耗蓝牙旨在保持同等通信范围的同时显著降低功耗和成本。
由于现在的设备主要以低功耗蓝牙为主,这里的测试也是以低功耗蓝牙为主。
低功耗蓝牙常见问题包括不仅限于,设备死锁、溢出、密钥信息泄露、关键数据重放等。
Zigbee,也称紫蜂,是一种低速短距离传输的无线网上协议,底层是采用 IEEE 802.15.4 标准规范的媒体访问层与物理层。主要特色有低速、低耗电、低成本、支持大量网络节点、支持多种网络拓扑、低复杂度、可靠、安全。
使用Zigbee设备常见问题包括不仅限于,使用默认密钥、关键数据重放、密钥信息泄露、溢出等。
射频识别(RFID)是 Radio Frequency Identification 的缩写。
其原理为阅读器与标签之间进行非接触式的数据通信,达到识别目标的目的。RFID 的应用非常广泛,典型应用有动物晶片、汽车晶片防盗器、门禁管制、停车场管制、生产线自动化、物料管理。
额外端口包括用途不明确端口,生产无需使用的端口等。此类端口容易导致敏感信息泄露、缓冲区溢出、命令注入等问题。
若可通过串口登录设备,系统使用 root 权限账号执行,当攻击者进入系统直接拥有 root 权限。
系统版本过低存在多个 Linux 内核漏洞,常用于权限提升。
在堆或栈内写入超出长度限制的数据,从而破坏程序运行甚至获得系统控制权的攻击手段。容易造成获取系统权限、DDos 等问题。
传输的信息未加密或携带敏感信息,可被攻击者利用。
检查设备和云端通信时是否采用可靠的加密,是否对通信内容进行完整性校验,是否存在通信认证,是否存在授权检测。
重置后需要删除用户的敏感信息。
设备和云端一般通过互联网进行通信,通信时交互的数据包中可能含有设备的操作信息、MAC 地址等敏感信息,这些信息可能被用来进行设备绑定等操作。对于数据通信的检查包括通信是否加密或者加密不完全,通信是否存在完整性校验,通信是否存在认证,在授权方面是否存在漏洞,通信的数据包重放后是否可以运行等。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈