物联网黑客手册1物联网入门

1. 物联网入门

在通信技术领域,有两个事件具有特殊意义,一个是ARPANET 的发明,它是计算机网络,允许计算机在地理位置不同的情况下交换数据,另一个是物联网(IoT Internet of Things)的兴起。不过,后者是一个不断发展的过程,而非单一事件。最早实现物联网概念的是卡内基梅隆大学的几名学生,他们发现了一种通过让设备与外部世界通信来监控自动售货机中剩余易拉罐数量的方法。他们在设备上添加了光传感器,每当易拉罐离开自动售货机,光传感器就会计数,从而计算出剩余易拉罐的数量。如今,物联网设备能够监测心率,甚至在发生不利事件时控制心率。此外一些物联网设备现在还可以作为法庭审判时的证据来源,如 2015 年底,一名妇女的FitBit数据被用于谋杀案的审判。其他事件还包括在各种法庭审判中使用起搏器数据和亚马逊Echo录音。可以说,物联网设备从大学寝室到出现在人类体内的历程非常迷人。

凯文-阿斯顿(Kevin Aston)第一次提到物联网一词时,可能不会想到这些设备的数量很快就会超过整个人类。阿斯顿提到这个词是指射频识别(RFID Radio Frequency Identification)技术,它被用来将设备连接在一起。此后,物联网的定义发生了变化,不同的组织赋予了该术语各自的含义。高通公司(Qualcomm)和思科公司(Cisco)提出了 "万物互联(IoE Internet of Everything)"一词,有人认为这是出于营销目的。根据他们的说法,该术语意味着将物联网的概念从局限于机器与机器之间的通信扩展到机器与机器和物理世界之间的通信。

2000年6月,LG公司推出了第一台与互联网连接的冰箱--互联网数字DIOS,这是当今物联网的雏形。这款冰箱包含一个高质量的TFT-LCD屏幕,具有多种功能,包括显示冰箱内的温度、提供所储存物品的新鲜度评分,以及使用网络摄像头功能跟踪所储存的物品。最受媒体和消费者关注的早期设备可能是2011年10月推出的Nest学习型恒温器。这款设备能够学习用户的日程安排,在一天的不同时间调节不同的理想温度。谷歌以32亿美元的价格收购了这家物联网恒温器公司,让世界意识到即将到来的技术革命。

很快,就有数百家新创公司试图将物理世界的所有不同方面与设备互联起来,大型企业也开始组建专门的内部团队,以尽快推出自己的一系列物联网设备。现在,我们可以在家里与智能电视互动,喝着由互联网控制的咖啡机煮好的咖啡,用智能助手播放的音乐控制灯光。然而,物联网并不仅仅局限于我们的物理空间。它在企业、零售商店、医疗保健、工业、电网甚至先进的科学研究领域也有大量应用。

面对物联网设备的快速崛起,数字世界的政策制定者们苦于无法制定严格的质量控制和安全法规。直到最近,GSMA (全球移动通信系统协会 Global System for Mobile Communications Association)等组织提出了物联网设备的安全和隐私准则,美国联邦贸易委员会(FTC Federal Trade Commission)也制定了确保安全和保障的步骤,情况才有所改观。然而,这一延迟导致了物联网设备在所有不同垂直领域的广泛应用,同时也使开发人员忽视了这些设备的安全考虑因素。直到Mirai僵尸网络的广泛影响,人们才知道这些设备的安全缺陷。Mirai是一个僵尸网络,它通过检查端口23和2323的状态,并使用普通凭证强行进行身份验证,从而攻击物联网设备(主要是连接互联网的摄像头)。不出所料,许多暴露在互联网上的IP摄像头都有telnet,用户名和密码极其普通,很容易就能找到。同样的僵尸网络后来还被用于接管利比里亚的互联网基础设施以及DYN,从而导致了对几个流行网站的攻击,包括GitHub、Twitter、Reddit 和 Netflix。

在过去几年中,尽管这些设备的安全性在慢慢提高,但还没有达到可以认为使用这些设备非常安全的程度。2016 年11月,四位安全研究人员--Eyal Ronen、Colin O'Flynn、Adi Shamir 和 Achi-Or Weingarten--提出了一个有趣的概念验证(PoC)蠕虫病毒,利用无人机发动攻击,控制了一栋办公楼的飞利浦Hue智能灯。尽管这只是一次PoC攻击,但我们不难想到,我们将会看到类似于WannaCry的智能设备勒索软件,向我们要钱才能打开门锁或开启心脏起搏器。几乎所有的智能设备都被认定存在严重的安全和隐私问题,包括智能家居自动化系统、可穿戴设备、婴儿监视器,甚至个人性玩具。考虑到这些设备收集的大量隐私数据,我们面临的网络攻击风险之大令人恐惧。

物联网设备安全事件的增加也导致对物联网安全专业人员的需求不断增加,他们既是建设者,也是破解者。这使企业能够确保其设备免受恶意攻击者利用漏洞入侵系统的影响。此外,许多公司已开始提供漏洞悬赏,以激励研究人员评估其物联网设备的安全性,有些公司甚至向研究人员提供免费的硬件设备。未来几年,这一趋势还将发展,随着物联网解决方案在市场上的兴起,对物联网安全专业人才的需求也将增加。

1.1 以往的物联网安全问题

了解这些设备安全性的最佳途径是了解过去发生的事件。通过了解其他产品开发商在过去所犯的安全错误,我们可以了解我们正在评估的产品会出现什么样的安全问题。尽管有些术语在这里可能显得陌生,但我们会在接下来的章节中详细讨论。

1.1.1 Nest恒温器

Grant Hernandez、Orlando Arias、Daniel Buentello 和 Yier Jin 撰写的论文《Smart Nest Thermostat : A Smart Spy in Your Home》提到了Google Nest 的一些安全缺陷,即允许在设备上安装新的恶意固件。方法是按下Nest上的按钮约1 秒钟,触发全局重置。在这一阶段,设备可以通过与sys_boot5引脚通信来寻找USB媒体以安装固件。USB设备上存在恶意固件,设备在启动时会使用该固件。

Jason Doyle在Nest产品中发现了另一个漏洞,该漏洞涉及通过蓝牙向目标设备发送 Wi-Fi 服务集标识符(SSID)细节中的定制值,从而使设备崩溃并最终重启。这样一来,窃贼就可以在设备重启期间(约 90 秒)破门而入,而不会被Nest安全摄像头捕捉到。

1.1.2 飞利浦智能家居

飞利浦家居设备的整个产品系列都存在一些安全问题。其中包括安全研究人员Eyal Ronen、Adi Shamir、Achi-Or Weingarten和Colin O'Flynn作为PoC构建的流行飞利浦Hue蠕虫。在PoC中,他们演示了如何利用飞利浦设备使用的硬编码对称加密密钥,通过ZigBee控制目标设备。其中还包括自动感染放置在附近的飞利浦Hue灯泡。

2013年8月,安全研究员Nitesh Dhanjani也提出了一种新技术,利用重放攻击技术控制飞利浦Hue设备,造成永久停电。他在发现飞利浦Hue智能设备只将媒体访问控制(MAC)地址的MD5作为验证信息真实性的唯一参数后,发现了这个漏洞。由于攻击者可以非常容易地得知合法主机的MAC地址,因此他或她可制作恶意数据包,表明它来自真正的主机,并在数据包中包含关闭灯泡的命令。连续这样做,攻击者就能造成永久性停电,用户除了更换灯泡别无选择。

飞利浦Hue(以及当今许多其他智能设备)使用一种名为ZigBee的技术在设备之间交换数据,同时将资源消耗降至最低。对使用Wi-Fi数据包的设备进行的攻击同样适用于ZigBee。在ZigBee的情况下,攻击者只需捕获合法请求的ZigBee数据包,然后在稍后的时间点重放数据包以执行相同的操作并接管设备。

1.1.3 Lifx智能灯泡

智能家居设备一直是安全界最热门的研究目标之一。另一个早期的例子是Context公司的安全研究员亚历克斯-查普曼(Alex Chapman)发现Lifx智能灯泡存在严重的安全漏洞,攻击者可以将恶意数据包注入网络,获取解密的Wi-Fi凭据,并在没有任何身份验证的情况下接管智能灯泡。

本案例中的设备使用6LoWPAN进行通信,这是建立在802.15.4基础上的另一种网络通信协议(与 ZigBee 类似)。为了嗅探6LoWPAN数据包,查普曼使用Atmel RzRaven闪存了Contiki 6LoWPAN固件镜像,这样他就可以查看设备之间的通信。通过该网络进行的大部分敏感数据交换都经过了加密,这使得产品看起来相当安全。

在物联网渗透测试过程中,最重要的一点是能够从整体上观察产品,而不是只看一个组件来识别安全问题。这意味着,要弄清数据包是如何在无线电通信中加密的,答案很可能就在固件中。获取设备固件二进制文件的技术之一是通过JTAG等硬件开发技术进行转储。在Lifx bulbs的案例中,JTAG提供了访问Lifx固件的权限,反向操作后可以识别加密类型(在本案例中为高级加密标准 (AES))、加密密钥、初始化向量和用于加密的块模式。由于这些信息对所有Lifx智能灯泡都是一样的,攻击者可以控制任何灯泡并侵入Wi-Fi,因为设备也在通过无线电网络通信Wi-Fi凭据,而这些凭据现在都可以被解密。

1.1.3 吉普车黑客

吉普车黑客事件可能是有史以来最流行的物联网黑客事件。两名安全研究人员查理-米勒(Charlie Miller)博士和克里斯-瓦拉塞克(Chris Valasek)在2015年展示了他们如何利用克莱斯勒Uconnect系统的漏洞远程接管和控制一辆吉普车,导致克莱斯勒不得不召回140万辆汽车。

这次完整的黑客攻击利用了许多不同的漏洞,包括对各种单个二进制文件和协议进行逆向工程的大量工作。使攻击成为可能的首要漏洞之一是Uconnect软件,它允许任何人通过蜂窝连接远程连接该软件。在启用匿名身份验证后,可以访问6667端口,并发现该端口正在运行用于进程间通信的D-Bus over IP。与D-Bus交互并获取可用服务列表后,发现其中一个名为NavTrailService的服务有一个执行方法,允许研究人员在设备上运行任意代码。下图显示了用于在主机上打开远程 root shell 的利用代码。

http://illmatics.com/Remote Car Hacking.pdf

一旦获得了任意命令执行权,就有可能执行横向移动并发送CAN消息,从而控制车辆的各种元素,如方向盘、刹车、大灯等。

1.1.3 Belkin Wemo

Belkin Wemo是一个为消费者提供整体家庭自动化的产品系列。开发人员采取了预防措施,防止攻击者在设备上安装恶意固件。然而Belkin Wemo的固件更新是通过未加密的渠道进行的,攻击者可以在更新过程中修改固件二进制包。作为一种保护措施,Belkin Wemo使用了基于GNU隐私防护(GPG)的加密固件分发机制,这样设备就不会接受攻击者注入的恶意固件包。由于设备在更新过程中通过未加密的渠道将固件签名密钥与固件一起分发,因此这种安全保护措施非常容易被攻破。因此,攻击者可以很容易地修改软件包,并用正确的签名密钥进行签名,而设备也会欣然接受这个固件。该漏洞由IOActive 的Mike Davis于2014年初发现,并因其严重性被评为10.0分(CVSS)。

后来,贝尔金公司被发现还存在其他一些安全问题,包括SQL注入和修改设备名称以便在用户的Android智能手机上执行任意JavaScript等漏洞。FireEye小组还对贝尔金Wemo进行了其他研究(https://www.fireeye.com/blog/threat-research/2016/08/embedded_hardwareha.html ),包括使用通用异步接收发送器 (UART) 和串行外设接口 (SPI) 硬件技术访问固件和调试控制台。这也使他们发现,通过硬件访问,可以轻松修改引导加载程序参数,使设备的固件签名验证检查失去作用。

1.1.4 Insulin Pump

Rapid7公司的一位名叫Jay Radcliffe的安全研究人员发现,一些医疗设备,特别是胰岛素泵,可能存在基于重放的攻击漏洞。Radcliffe本身患有1型糖尿病,他开始研究市场上最流行的胰岛素泵之一,即强生公司子公司Animas生产的 OneTouch Ping胰岛素泵系统。在分析过程中,他发现胰岛素泵使用明文信息进行通信,这使得任何人捕获通信、修改胰岛素输送剂量并重新发送数据包变得极其简单。当他在OneTouch Ping胰岛素泵上尝试攻击时,攻击完美地成功了,攻击期间无法知道胰岛素的输送量。

Animas公司在五个月内就修补了这个漏洞,这表明至少有一些公司认真对待安全报告,并采取行动保护消费者的安全。

1.1.5 智能门锁

一位名叫Jmaxx的安全研究人员开始寻找August智能门锁中的安全漏洞,它被认为是最流行、最安全的智能门锁之一,既被消费者用于家居,也被Airbnb房东用于让客人在方便的时候登记入住。他发现的一些漏洞包括:客人可以通过修改网络流量中的一个值将自己变成管理员,从用户变成超级用户;固件没有签名;绕过安全套接字层(SSL)针脚(启用调试模式)的应用程序功能等。

在同一次活动中,安全公司Merculite的安全研究人员Anthony Rose和Ben Ramsey还发表了题为 "从四分之一英里外撬开蓝牙低能耗锁"的演讲,他们在演讲中披露了一些智能门锁产品中存在的漏洞、其中包括Quicklock挂锁、iBluLock 挂锁、Plantraco Phantomlock、Ceomate蓝牙智能门锁、Elecycle EL797和EL797G智能挂锁、Vians蓝牙智能门锁、Okidokey智能门锁、Poly-Control Danalock门锁、Mesh Motion Bitlock挂锁和Lagute Sciener智能门锁。

罗斯和拉姆齐发现的漏洞类型各异,包括以明文传输密码、易受基于重放的攻击、逆转移动应用程序以识别敏感信息、模糊处理和设备欺骗。例如,在重设密码的过程中,Quicklock Padlock会发送一个蓝牙低能耗(BLE)数据包,其中包含操作码、旧密码和新密码。由于正常的身份验证也是通过明文通信进行的,因此攻击者可以利用密码为门锁设置新密码,从而使设备对原主人失去作用。重置密码的唯一方法是在打开外壳后取出设备的电池。在另一个设备Danalock Doorlock中,人们可以对移动应用程序进行逆向工程,以识别加密方法并找到正在使用的硬编码加密密钥("thisisthesecret")。

1.1.6 入侵智能枪支和步枪

除了典型的智能家居设备和电器,步枪也变得越来越智能。TrackingPoint就是这样一家智能步枪技术制造商,它提供了移动应用程序来查看射击视图并进行调整。这款应用程序被发现存在几个安全问题。Runa Sandvik和Michael Auger发现了智能步枪中的漏洞,这些漏洞允许他们在通过UART进入设备后访问管理应用编程接口(API)。通过利用移动应用程序,基于网络的攻击可以让攻击者在准备发射子弹时更改各种参数,如风速、风向、子弹重量和其他所需参数。当这些参数被修改时,射手不会知道这些变化已经发生。

另一个例子是,一位名叫Plore的安全研究人员绕过了IP1(Armatix公司生产的一种智能枪)的一些安全限制。该智能枪要求枪手佩戴IP1提供的特殊手表才能开枪。为了绕过安全限制,Plore最初进行了无线电信号分析,找到了枪支通信的确切频率。后来,他发现使用几块磁铁就可以操纵锁住发射塞的金属塞,使枪手能够发射子弹。尽管磁铁的使用并不是您可能认为的利用物联网设备所需的高科技攻击,但它却是一个很好的例子,说明发散思维可以帮助您识别漏洞。

这些漏洞只是作为示例,帮助您了解物联网设备中常见的各种漏洞。稍后,我们将介绍物联网设备的各种组件,包括硬件、无线电、固件和软件利用技术,您将进一步了解如何在您正在研究或执行pentest的物联网设备中使用这些技术。

参考资料

1.2 物联网的碎片化

由于物联网是一个巨大的领域,每家公司都想从中分一杯羹,因此您经常会发现自己接触到各种协议和框架,它们可以帮助开发人员更快地将产品推向市场。

物联网框架是各种现成的产品,可帮助物联网开发人员利用现有的代码库和库加快物联网设备解决方案的开发过程,缩短将产品推向市场所需的时间。虽然这为开发人员和公司带来了极大的便利,但往往被忽视的另一方面是这些框架的安全性如何。事实上,根据我对物联网设备进行渗透测试的经验,使用各种框架的设备往往容易受到基本安全问题的影响。我后来与产品团队讨论时发现,他们的普遍心态是,如果使用的是流行的框架,通常就会认为它在设计上是安全的,从而对其安全性评估漫不经心。

无论你是站在建设者还是破坏者的哪一方,都必须关注产品的安全问题,无论底层框架或所使用的协议集是什么。例如,你经常会发现使用ZigBee的开发人员认为它非常安全,从而使他们的产品容易受到各种基于无线电的攻击。

在本书中,我们并不一定关注任何特定的框架或技术堆栈,而是研究一种适用于任何物联网设备解决方案的方法,无论其底层架构如何。不过,在此过程中,我们也会介绍一些流行的协议(如ZigBee和BLE),让您了解会出现哪些漏洞以及如何查找这些安全问题。

一些流行的物联网框架包括以下几种:

这只是你在深入物联网世界时会遇到的一些最流行的物联网设备框架中的一小部分。同样,在通信协议方面,制造商在其物联网解决方案中使用了各种协议。比较流行的通信协议包括以下几种:

  • Wi-Fi
  • BLE
  • Cellular/Long Term Evaluation (LTE)
  • ZigBee
  • ZWave
  • 6LoWPAN
  • LoRA
  • CoAP
  • SigFox
  • Neul
  • MQTT
  • AMQP
  • Thread
  • LoRaWAN

要正确评估特定设备或通信协议的物联网安全性,您需要各种硬件工具。例如,捕获和分析BLE数据包需要Ubertooth One,ZigBee需要Atmel RzRaven等等。

既然我们已经对物联网和所涉及的各种技术有了一个很好的了解,那么让我们来看看导致这些设备不安全的一些因素。

1.3 物联网安全漏洞的原因

鉴于物联网设备的性质极其复杂,您遇到的大多数设备都极有可能存在安全问题。如果我们首先要了解这些漏洞存在的原因,以及如何在构建产品时避免这些安全问题,我们就需要深入研究从构思阶段到产品上市的整个产品开发生命周期。
以下是在构建这些设备时造成安全问题的一些突出原因

  • 开发人员缺乏安全意识
    开发这些智能设备的开发人员通常对物联网设备可能存在的安全漏洞了解较少,甚至完全没有意识到。鉴于在大型企业中,开发人员通常已经非常忙碌,因此最好定期召开会议,讨论开发人员如何从零开始构建安全产品,包括可操作的策略,如严格遵守编码指南,以及为他们所处理的任何代码样本制定安全检查清单。

  • 缺乏宏观视角
    正如我们在下一章中看到的关于构成物联网设备的各种组件,开发人员或安全团队很容易忘记这样一个事实,即设备和各种技术的相互连接才可能导致安全问题。例如,只看移动应用程序可能不会发现安全问题,但如果将移动应用程序的发现与网络通信的工作方式结合起来,就有可能发现关键的安全问题。产品团队必须投入更多的时间和精力来研究整个设备架构,并执行威胁建模。

  • 基于供应链的安全问题

造成物联网设备安全漏洞的原因之一是许多利益相关者的参与。这意味着你经常会发现设备的不同组件由不同的供应商制造,所有部件由另一家供应商组装,最后由另一家供应商分销。尽管在大多数情况下这是不可避免的,但其中一个厂商可能会引入安全问题(或后门),从而使整个产品处于危险之中。

  • 使用不安全的框架和第三方库

在物联网设备或任何其他技术中,你经常会发现开发人员使用现有的库和软件包,并将可能存在漏洞的代码样本引入到安全产品中。尽管有些组织会对开发人员编写的代码进行质量检查,但这些检查往往会遗漏开发人员正在使用的软件包。此外,企业的业务需求也会导致管理层要求产品在更短的时间内(通常是不现实的)投放市场,这就把产品的安全评估放在了次要位置。通常直到产品出现安全漏洞时,人们才意识到它的重要性。

1.4 小结

在本章中,我们了解了什么是物联网设备、这些智能设备使用的协议和框架,以及这些设备经常易受攻击的原因。我们还研究了流行的物联网设备解决方案中以前发现的一些安全问题,以了解现实世界中的设备存在哪些漏洞。在下一章中,我们将更深入地研究这些设备的攻击面映射,以及如何识别和避免物联网设备中的安全风险。

posted @ 2023-10-16 20:01  磁石空杯  阅读(108)  评论(0编辑  收藏  举报