您知道破解物联网设备有多容易吗?除了显而易见的 - 大多数物联网设备缺乏安全性 - 这很容易,因为黑客可以使用一系列令人惊讶的软件和硬件工具,这些工具往往使他们查找和利用物联网漏洞的工作变得微不足道。这些工具利用不安全的接口,反编译固件,模拟和分析代码,以查找导致网络漏洞的缺陷。没有适当网络安全的物联网设备可以在几个小时内被黑客入侵,如果没有网络安全,可以在几分钟内被黑客入侵。在最近的DEFCON会议上,一些更着名的物联网设备黑客包括Apple Air Tags,Sonos网络音频设备以及Landis和Gyre电表。
本文是该系列文章的第三部分,该系列文章探讨了现实世界的物联网黑客攻击以及如何解决暴露的漏洞。目标是通过提供可以缓解攻击的控制来帮助您改善物联网设备的网络安全。
在这里,我们将回顾网络对手用来攻击物联网设备的工具。暴露办公电话中实际漏洞的方法将说明这些工具的使用。通过使用硬件和软件工具,发现了许多缺陷。但是,基本安全功能(包括软件更新和加密代码)可以缓解攻击。在这种情况下,代码加密不仅是为了保护敏感数据,而且还通过使代码的纯文本列表几乎不可能获得来保护设备的整体安全性免受这些黑客工具的侵害。
在33种不同的VoIP办公电话中发现40个漏洞的工作由Fraunhofer FIT的Stephan Huber和Philipp Roskosch完成,并在DEFCON 27上展示。发现的漏洞类型多种多样。总共有十三个,包括错误的加密,堆栈溢出和无需身份验证即可更改的密码。从闪存转储固件以访问纯文本代码列表被广泛使用。这极大地帮助了逆向工程工作和识别漏洞。对提取的纯文本代码都使用了静态和动态分析。如果这些手机包括安全启动、闪存加密和安全软件更新,那么访问纯文本列表和找到可以利用的弱点就会变得更加困难。
尝试获取纯文本代码通常是黑客采取的第一步。由于纯文本列表的价值,尝试了许多不同的方法来提取它。在这项研究中,一个是检查固件是否直接从制造商处获得。另一种方法是触发软件更新,如果未加密,则嗅探下载的网络流量的数据包以获取纯文本代码列表。使用 HTTPS(即加密)发送的更新可关闭此漏洞。第三种方法,也是最常用的方法是从手机本身获取代码。
有数量惊人的逆向工程/黑客工具可用。电话研究使用工具来获取根访问权限、提取代码和模拟提取的代码。用于提取代码的工具包括BuSPIrate和JTAGulator。两者都使用串行终端和来自PC的USB连接。BuSPIrate被描述为“开源黑客多工具”。它可以连接到I2C,SPI,JTAG和其他几个。JTAGulator将检测与JTAG/IEEE 1149.1、ARM单线调试(SWD)或UART引脚的连接。当电路板的调试接口未知时,JTAGulator的检测功能使连接变得更加容易,因为它会自动识别接口类型。它将运行不同的引脚排列,并寻找与这三种协议之一的匹配项。
一旦从手机中提取纯文本代码,就使用软件模拟工具。其中包括QEMU和独角兽。QEMU是一个开源模拟器/虚拟器,支持特定操作系统(Linux,Windows等)和指令集(MIPS,ARM,x86)的仿真。在这项研究中,将QEMU工具的ARM/MIPS处理器内核仿真功能与gdb一起使用,以获取代码痕迹。Unicorn是基于QEMU的CPU仿真器,但重量更轻,并提供一些附加功能,包括仪器。
其他未用于电话安全研究但值得一提的仿真工具是Ghidra(由NSA开发),IDA Pro和Angr。Ghidra 和 IDA Pro 是逆向工程工具,支持多种处理器类型的二进制文件反编译,包括 x86、ARM、PPC、MIPS、MSP430 和 AVR32。Angr是一个用于分析二进制文件的Python框架。它使用静态和动态符号分析。
由于这些工具很容易实现物联网设备的逆向工程,从而揭示代码中的漏洞,因此保护物联网设备免受这些工具的利用至关重要。为了防止代码的简单提取,应锁定串行/JTAG接口。此外,对于纵深防御方法,还应加密代码。这提供了另一层保护,以防设备的接口受到损害或使用其他方法破坏非易失性存储器。
采用多种方法从各种手机的闪存中获取代码。BuSPIrate和JTAGultor器件用于通过SPI,UART或JTAG接口进行访问。检查了UART接口是否存在具有命令接口的引导加载程序或对Linux shell的可能root访问权限。基于 IP 的方法会导致内存转储,而 Telnet 命令注入会产生根访问权限。如果闪存中的代码是加密的,则访问代码清单将更加困难。
由于访问纯文本代码,几个漏洞被利用。如果没有这些代码清单,识别这些缺陷将更加困难。他们有助于识别以下漏洞:未经授权远程更改管理员密码,在代码中发现管理员密码的硬编码密钥,以及弱密码加密方案。在另一部手机中,使用了 DES 加密方案,这并不安全。DES 是在 40 多年前推出的,现在可以使用一台现代 PC 在合理的时间(几天)内进行暴力破解。
这项工作中出现的许多漏洞都是在运行时被利用的。这突出了拥有良好的运行时保护的重要性,例如使用可信的执行环境,如 TrustZone 和入侵检测系统 (IDS) 软件,可以检测由于攻击而导致的代码操作变化。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !