前言
随着网络技术的迅猛发展,我们对IoT技术越来越依赖,但是保障网络安全的能力却跟不上IoT技术发展的速度。目前已经知道网络技术还存在漏洞,计算机系统和企业也会面临被黑客攻击的风险,但也正是这些技术在辅助着我们的工作、为我们提供护理服务,并为我们的家庭提供安防。我们对这些设备是如此信任,但它们本质上又是如此不值得信赖,这时要如何自处呢?
网络安全分析师Keren Elazari曾说过,黑客是“数字时代的免疫系统”。我们需要大量懂技术的人去识别、报告和保护社会免受联网世界带来的伤害。这项工作的重要性前所未有,但具备必要的心态、掌握必需的技能和工具的人少之又少。
本书旨在加强全社会的免疫系统,更好地保护所有的人。
全书代码
1. 本书的写作方法
IoT黑客的领域覆盖面很广,因此本书采取了一种实用的讨论方式,聚焦能够快速开始测试实际IoT系统、协议及设备的概念与技术。书中用于示范的工具和测试的设备都经过了特别的甄选,这些工具与设备价格低廉且获取方便,非常有利于读者自行练习。
书中还创建了定制的代码示例以及进行概念性验证的漏洞,读者可以扫描二维码自行下载。有些练习还附有虚拟机,以便在设置攻击目标时更加简单明了。书中部分章节参考了流行的开源代码的案例,读者可以从网上很容易地搜索到这些代码。
本书不是一部IoT黑客工具的指南,不可能涵盖IoT安全领域的方方面面,况且,一部书中涵盖如此多的主题需要更大的篇幅,也会太烦琐以致读者无法阅读。因此,本书探讨的是最基本的硬件黑客技术,包括与UART、I2C、SPI、JTAG以及SWD的接口。书中分析了各种各样的IoT网络协议,并聚焦那些不仅非常重要,而且在其他图书中尚未被广泛涉及的协议,包括UPnP、WSDiscovery、mDNS、DNSSD、RTSP/RTCP/RTP、LoRa/LoRaWAN、WiFi和WiFi Direct、RFID和NFC、BLE、MQTT、CDP以及DICOM等。此外,还讨论了作者在过往的专业测试工作中解决的一些实际案例。
2. 读者对象
世界上不可能有两个人拥有同样的背景和经验。但是,对IoT设备进行分析需要横跨几乎所有的专业领域,因为这些设备将计算能力和连接性融入了生活的各个层面。本书的哪些部分对哪类人群会更具吸引力是无法预测的。但我们确信,将这些知识奉献给广大的读者,可以让他们对日益数字化的世界拥有更强的控制力。
本书主要面向安全研究人员,也期望对如下其他人群也能有所裨益。
安全研究人员可以将本书作为测试IoT生态系统中不熟悉的协议、数据结构、组件以及概念的一个参考。
企业的系统管理员/网络工程师可以学习如何更好地保护他们的设备环境及其公司的资产。
IoT设备的产品经理可以发掘客户的新需求,并将其融入产品中,从而降低成本,缩短产品进入市场所需的时间。
安全评估员可以掌握一套最新的技能,以便更好地服务于客户。
好奇的学生可以发现更多的新知识,这些知识会引领他们踏入一个保护人民利益的有价值的事业。
本书假设读者已对Linux命令行基础知识、TCP/IP网络概念以及编码等有一定的知识储备。
3. Kali Linux
本书的大多数练习都使用了Kali Linux,该操作系统是渗透测试(penetration testing)中最流行的Linux发行版。Kali拥有各种命令行工具,在使用这些工具时会对其进行详细的阐释。如果对操作系统不太了解,建议阅读OccupyTheWeb的著作Linux Basics for Hackers。
若想安装Kali,可参考其官网的相关说明,对于版本没有特定要求。但是,本书中大部分测试练习所用的是2019—2020年的Kali版本。在安装某种专业工具时,如果遇到困难可以下载Kali的旧镜像。较新版本的Kali默认不会安装所有的工具,但可以通过kalilinuxlarge元包(metapackage)进行添加。在终端输入以下命令就可以进行安装:
$sudo apt install kali-linux-large
同时推荐在虚拟机中使用Kali。详细的步骤可到Kali官方网站进行查询,网站中的各种在线资源描述了如何使用VMware、VirtualBox或其他虚拟化技术来实现这一点。
4. 本书结构
本书共15章,分为五部分。大多数情况下,各章之间是相互独立的,但后面的章节可能会用到前面章节中介绍的工具或概念,建议按章节的顺序进行阅读。
第一部分: IoT威胁全景
第1章IoT安全概览,描述IoT安全的重要性以及IoT黑客攻击的特殊性,为本书的其他部分做好铺垫。
第2章威胁建模,讨论如何在IoT系统中应用威胁建模,通过一步步地演示一个药物输液泵及其组件的威胁模型的案例,查看可以发现哪些常见的IoT威胁。
第3章安全测试原则,介绍对IoT系统进行全面人工安全评估的框架。
第二部分: 网络黑客攻击
第4章网络评估,讨论如何在IoT网络中进行VLAN跳跃、识别网络上的IoT设备以及通过创建Ncrack模块攻击MQTT认证。
第5章网络协议分析,提供一种处理不熟悉的网络协议的方法,介绍针对DICOM协议的Wireshark解析器以及Nmap脚本引擎模块的开发过程。
第6章零配置网络的滥用,探讨用于自动部署和配置IoT系统的网络协议,展示针对UPnP、mDNS、DNSSD和WSDiscovery的攻击。
第三部分: 硬件黑客攻击
第7章滥用UART、JTAG和SWD,涉及UART和JTAG/SWD的内部工作原理,解释如何列举UART和JTAG引脚以及使用UART和SWD黑客攻击STM32F103微控制器。
第8章SPI和I2C,探讨如何利用这两种总线协议及各种工具攻击嵌入式IoT设备。
第9章固件黑客攻击,展示如何获得、提取和分析后门固件,并检查固件更新过程中常见的漏洞。
第四部分: 无线电黑客攻击
第10章短程无线电: 滥用RFID,演示针对RFID系统的各种攻击,如读取并克隆门禁卡。
第11章低功耗蓝牙,通过简单的练习展示如何攻击低功耗蓝牙协议。
第12章中程无线电: 黑客攻击WiFi,讨论针对无线客户端的WiFi关联攻击、滥用WiFi Direct的方法以及针对接入点的常见WiFi攻击。
第13章远程无线电: LPWAN,介绍LoRa和LoRaWAN协议,展示如何捕获和解码这类数据包,并讨论针对它们的常见攻击。
第五部分: 针对IoT生态系统的攻击
第14章攻击移动应用程序,回顾常见的威胁、安全问题以及在Android和iOS平台上测试移动应用程序的技术。
第15章黑客攻击智能家居,通过描述如何绕开智能门锁、干扰无线报警系统以及回放IP摄像头画面的技术,将全书所涉及的许多想法进行了生动的展示。最后一步步地演示如何获取一台智能跑步机的控制权的真实案例。
附录IoT黑客攻击工具,列出了IoT黑客流行的实用工具,包括讨论过的那些工具以及其他虽然没有在书中涉及但常用的工具。
〓〓〓〓〓〓〓部分代码下载
编〓者
2021年11月