PLAR: Towards a Pluggable Software Architecture for Securing IoT Devices(翻译)

PLAR:建立一个保护物联网设备的可插拔软件体系结构

Uzma Maroof
[email protected]
UNSW Sydney, Australia
Cyber Security Cooperative Research Centre

Arash Shaghaghi
[email protected]
Deakin University, Australia
UNSW Sydney, Australia

Sanjay Jha
[email protected]
UNSW Sydney, Australia
Cyber Security Cooperative Research Centre

摘要

研究表明,安全链中现在最薄弱的环节不是人而是物联网(IoT)。因此,越来越多的解决方案被提出来保护这些设备。 本文,我们提出了一种用于物联网设备的可插拔和可复编程(PLAR)软件体系结构,其目的是在设备的整个开发和部署生命周期中保护设备。 PLAR是由可重构和可再编程模块组成的开源IoT设备软件解决方案。PLAR的集线器使设备操作员能够指定详细说明物联网设备特定安全功能的安全策略。 因此,在对设备进行初步分析后,它可以添加新的组件实时升级现有模块或现有模块。 它能够根据最终用户/开发人员的需求,通过覆盖弱配置来调整设备的安全能力。我们介绍了PLAR的体系结构,并通过讨论不同的用法来展示其功能。 我们也报告我们的 初始可行性研究,其中IP摄像机,易受身份验证攻击,是重新配置一个改进的身份验证模块。

关键词: 物联网;安全;可插拔架构

1 简介

近年来,物联网设备的开发和部署呈指数级增长,这是因为它们可以使用现成的物联网组件和物联网板轻松构建。然而,物联网设备的大规模部署在安全和隐私方面带来了严重的威胁。一项名为Cogni Toys Dino的研究发现,一个获得儿童智能玩具奖的公司存在严重的身份验证漏洞,攻击者可以通过注入语音消息来欺骗孩子。 同样,当智能健身手表显示美国军事基地的地图时,也报告了严重的脆弱性。 此外,研究显示,越来越多的人使用自带物联网(BYOIoT),其中25%-50%的用户承认自己的设备可以连接到家庭和企业网络。 这带来了很高的“交叉污染”风险,在这种情况下,一个不安全的家庭物联网设备可以充当恶意软件渗透到企业网络的切入点。
通常,为通用计算机开发的安全解决方案不直接适用于物联网生态系统,因为这两个领域在许多方面是不同的。 物联网设备有限的计算资源限制使其不适合于传统计算量大的安全解决方案的的检测和保护,如防病毒和基于密码的解决方案。 物联网设备在实用程序、体系结构、操作系统和通信协议方面是异构的,因此阻碍了通用安全解决方案的设计。此外,推出新的IoT设备模型的时间跨度通常很短。在通过开发具有成本效益的解决方案来获取市场份额的巨大压力下,供应商倾向于使用不安全的开放库,而忽略了安全性。物联网设备的另一个重要挑战是,这些设备中的大多数都是无头的,在设备的整个使用寿命内(例如,智能冰箱的使用寿命可能长达几十年),为任何真正的升级或修补而设计的用户界面很少或根本没有。固件也被设计成单片软件,没有任何定义良好的接口,以便将来进行任何可能的安全修补[5]。
该领域的研究工作通过对嵌入式设备固件的离线分析,提出了漏洞检测和修复解决方案[5–9]。这种方法的一个主要障碍是专有固件源代码的不可用性。另一方面,分析二进制固件也很困难,因为它们通常被设计为一个单一的可执行文件,没有标准接口。因此,在固件提取过程中,这些技术的错误率很高[9]。此外,这些技术通常侧重于特定的漏洞类,例如特定的体系结构、设备类型或操作系统。然而,在部署的物联网设备中,存在多种协议、体系结构和软件的融合。大多数情况下,设备是在部署前定制的。这将导致成功的invitro技术在invivo应用时崩溃。因此,需要一种机制,在设备部署到网络中时对其进行类似的分析。目前,最常见的漏洞缓解方法仅限于重建固件映像以及修补的软件,然后在设备上重新安装。这是一项艰巨的任务,需要大量无法扩展的手工工作。此外,此解决方案不是实时的,无法实时应用修补程序。
鉴于上述挑战,有必要为物联网安全提供一个整体解决方案。我们为下一代物联网设备提出了一种可插拔和可重构的体系结构(PLAR)。我们提倡开放式软件生态系统,具有定义良好的软件接口,其中每个物联网设备由一组动态和可编程功能模块组成,这些模块可以随时插入和播放。由此产生的物联网架构是完全模块化的,使系统管理员或最终用户能够自动评估设备的安全风险,然后根据组织的安全要求,通过重新编程其模块对其进行定制。重新编程可能需要用定制设计的模块修补或替换现有模块。为了满足异构物联网设备的需求,本系统采用弹性设计。这将确保根据设备类型和资源约束设计动态加载的模块。例如,为智能冰箱、网络打印机和智能手表设计的认证模块可能不同。
本文的其余部分安排如下。在第二节我们将讨论相关的工作。此后,在第3节中,我们描述了针对PLAR设计的威胁模型,其中还包括对当前版本PLAR的一组假设。在第4节中,我们讨论了PLAR的体系结构概述,然后讨论了其两个主要组件(即启用PLAR的物联网设备和中央集线器)的功能和设计。在第5节中,我们报告了我们早期的原型实现,我们使用一个具有已知身份验证漏洞的基于IP的摄像头,并对其进行动态重新编程以对其进行修补。第6节总结了论文,概述了采用和部署PLAR所需的一系列未来工作和研究方向。

2 相关工作

近年来,物联网安全受到了研究人员的广泛关注,特别是在物联网僵尸网络Mirai针对13000个物联网设备发起大规模攻击后[10]。Mirai产生的流量超过30gbps,比目前淘汰大多数服务器所需的流量大很多个数量级。在这里,我们提供了与我们的工作相关的现有文献的简明概述,其中我们将相关工作大致分类为物联网设备的离线或实时分析。

2.1 离线分析

通过在受控环境下对嵌入式固件进行离线程序分析,出现了大量的文献。为了满足各种物联网设备的需求,人们设计了一些工具来自动进行静态、动态或符号分析。Costin等人[6]提出了一项开创性的工作,利用静态分析开发了物联网设备中基于网络的漏洞大规模检测框架。然而,物联网固件源代码大多是专有的,不易获得。Zaddach等人[8]提出了基于使用实际设备的动态分析的技术,然而,这种方法给大规模分析带来了巨大的财政负担。Chen等人[9]通过使用设备模拟器改进了这一点。类似地,Shoshitaishvili等人[5]和Davidson等人[7]的工作基于符号分析。通常,离线分析技术在自动化程度、准确性、脆弱性类别和架构覆盖率方面有所不同。一方面,其中一些工作受到专有固件代码不可用性的限制,另一些工作则受到为大量专有物联网硬件设计精确仿真器的艰巨任务的限制。 可靠性缓解在大多数情况下需要重新编译和重新安装固件,使其成为动态物联网生态系统不可行的解决方案。

2.2 实时分析

为了进行实时的安全分析,很多研究者都采用了网络流量监控。这包括基于观察网络流量的被动分析,以及需要与设备交换质询和响应消息的主动探测。许多研究人员使用物联网设备的独特流量模式来训练分类器,从而识别恶意活动或漏洞。Meidan等人[11]在他们的工作中展示了通过对物联网设备的真实数据进行流量分析来检测两个著名的物联网僵尸网络:Mirai和BASH LITE。Koroniotis等人。[12] 使用基于异常的分类器识别僵尸网络流量,然后将其与源目标IP地址和端口相结合,以识别恶意物联网设备。同样,Jia等人。[13] 使用基于图的技术分析物联网中的网络流量跟踪以揭示漏洞。
大量相关工作采用的一种通用方法是添加一个专用的“中间盒”设备,负责网络中部署的所有物联网设备的安全管理[14–20]。IoTAegis[14]使用各种端口扫描工具和服务发现协议进行设备指纹识别。然后通过查询公共可用的公共漏洞和暴露(CVE)数据库来分析设备。它提供了自动设备配置和安全更新的机制。然而,由于物联网设备大多是无头的,这种方法只能减轻设备提供远程用户界面的那些漏洞。这意味着,如果设备本身不提供用于更改密码或使用不同密码的接口,则由于它不可编程,因此无法缓解弱cre-dentials和密码漏洞。哈达尔等人。[15] 不过,使用了类似的中间盒作为被动监视解决方案。因此,缓解技术仅限于阻止恶意IP域或匹配的签名流量。类似地,Rullo等人[19]提出了一个被动中间盒,它自动地从嗅探的流量中学习物联网设备使用的各种协议,然后动态地配置特定于协议的漏洞检测模块来监控网络流量。
这些网络流量监控方法的主要缺点是,它们完全基于从网络中嗅出的流量进行分析,而不依赖于设备。因此,他们不知道设备的内部解剖结构。这些设备是不可重新编程的,同样,缓解方案通常也仅限于过滤恶意流量或完全隔离网络中的设备。该设备可能被标记为易受攻击,但几乎没有任何机制可用于动态修复该设备。

3 威胁模型&评估

我们假设带到我们网络中的任何设备都可能已经被破坏,但是,在健全性检查和重新编程过程中(见第4.3.4和4.3.5节),攻击者不能篡改设备。一旦健全性检查和重新编程过程结束,该设备就可以连接到任何公共网络。因此,攻击者现在可以发动任何攻击来利用设备内部的任何漏洞。
正如我们将在第4节中讨论的,启用PLAR的物联网设备可以在整个设备生命周期中重新编程。后者要求设备和加载的模块相互验证。在这里,我们假设已经存在这样一种机制,例如,海伦等人提出的远程认证机制。[21]利用各种设备的资源和计算能力的差异。现在我们假设加载的模块是可信和安全的。我们还假设对于这种架构,条件是集线器和设备之间的通信是安全的(例如使用TLS)。
另一个假设是关于组织的安全策略,该策略定义组织所需的安全级别,以及如何处理易受攻击的设备。一个安全模块,比如智能手表的基于生物测量的认证,可能比基于挑战长度/响应的认证更可靠。然而,后者可能比前者更具成本效益。同样,不同的应用程序在不同的部署冲突下可能有不同的安全需求。在这个可插拔的物联网生态系统中,手动处理这些异常是不可能的。假设系统管理员已经提供了这样一个安全策略,并且为组织生成安全策略的模块的扩展被视为可能的未来工作。Rez vani等人为web应用程序提供了类似的策略。

4 可插可重编程(PLAR)体系结构

4.1 概述

现在,我们将概述所提出的可插可编程体系结构(PLAR)。在这里,我们将安全性作为一个用例来讨论,尽管体系结构的范围涵盖了物联网设备的每个功能模块。例如,这将使系统管理员能够以系统的方式用定制的旋转模块替换IP摄像机的内置旋转模块。
该框架使系统管理员能够重新远程与接入其网络的任何设备进行交互,对其进行评估并重新编程,以符合企业网络的安全标准。为了实现这个目标,PLAR在网络中有一个监视设备,我们称之为中央集线器。中央集线器负责管理所有设备的安全性,现在是启用PLAR的物联网设备,部署在网络工作中。图1展示了一个智能家庭网络,该网络配备了三个支持PLAR的物联网设备以及中央集线器。
在这里插入图片描述
图1 一个配备了支持PLAR的物联网设备和一个中央集线器的智能家庭

设备的软件体系结构现在被修改为一个完全可插入的体系结构(参见图2)。它现在支持一些定义良好的接口,其中一些模块可以通过中央集线器远程加载和连接到设备内部。然后,这些加载的模块与中央集线器密切协作,执行设备评估。与第2.2节中讨论的中间盒设备的准确性相比,从设备内部检索的附加信息提高了评估的准确性,中间盒设备的分析仅基于网络流量。现在,如果评估报告显示设备安全标准不符合本组织的标准,则将重新编程。例如,这可以通过卸载默认的基于SSL的身份验证模块并将其替换为基于O-Auth的模块来完成,或者可以使用更强大的加密算法替换较弱的加密算法。
在这里插入图片描述
图2 基于PLAR的物联网设备软件体系结构

物联网设备在硬件资源方面有着广泛的应用。例如,在一些物联网设备中,可用内存低于2MB。为了满足这些异构的资源需求,系统需要以弹性的方式设计,也就是说,它能够根据设备的能力在设备的一侧进行自我拉伸。因此,在向上加载模块之前,评估设备能力。因此,根据设备能力和安全策略确定加载模块的大小、功能和数量。这可以从高端设备(例如网络打印机)的主要修改到资源有限的设备(例如温度传感器)的一些次要修改。
PLAR由两个主要组件组成:支持PLAR的物联网设备和一个中心集线器,在下面讨论。

4.2 启用PLAR的物联网设备

为了满足PLAR架构的需求,我们需要升级核心的物联网软件架构。如图2所示,它由一个可插入的中间件组成,该中间件提供设备功能所需的核心服务。它还导出两个接口,允许模块与内核的运行时集成,而无需重新编译。一个接口是设备所需的插件应用程序和服务。另一个接口用于为安全模块提供一个包装器,该包装器在设备内部动态连接。对于某些漏洞,需要持续监视,例如,可以通过在基于Linux的内核中的sys_read()和sys_write()系统的调用处理程序中插入安全模块来监视签名流量或恶意程序。这种动机来自内核rootkit,它们通过修改系统调用表来执行恶意活动[24]。另一方面,有些模块只在需要时才需要,例如,每当任何应用程序或服务需要身份验证时,它的请求将被转发到独立运行的身份验证模块。

4.3 中心集线器

中心集线器是负责管理网络中部署的所有物联网设备的安全性的设备。它使用第2.2节中讨论的中间框所采用的方法部分地实现了这一点。除此之外,它还利用了物联网设备的可插拔架构,在设备本身部分上传安全模块,并从内部检索信息。因此,增加了检测漏洞和可能的修复的机会。中心枢纽主要部件如图3所示,说明如下:
在这里插入图片描述
图3 PLAR可插可重编程物联网架构

4.3.1 安全模块存储库。该框架不打算提供新的漏洞检测或缓解技术。相反,我们提供了一种机制,使现有的漏洞检测和修复能够以系统和可插入的方式应用。因此,我们保留了现有漏洞检测和缓解模块的存储库。漏洞可能基于制造商、设备、应用程序或协议。此存储库可以由这些参数的一个或一个组合索引。
4.3.2 模块管理器。此组件维护安全模块存储库。它跟踪公开可用的漏洞记录,如CVE,然后使用新发布的漏洞检测和缓解模块更新安全模块存储库。每个CVE都与相应的制造商、设备、应用程序或协议相关联,并且关联也保存在存储库中。
4.3.3 配置文件管理器。动态和异构的物联网生态系统需要针对设备功能定制的特定于设备的漏洞检测和缓解计划。为了实现这一点,作为第一步,一旦设备部署到系统中,配置文件管理器就会访问它并生成反映其功能和其他特性的配置文件。这是通过在设备内部上载一个基本功能扫描模块来完成的,然后将其插入设备内核。此扫描仪模块从设备中检索信息并将其传回配置文件管理器。检索到的信息大致可分为:
(1)设备能力:CPU、内存和其他硬件资源
(2)设备标识:制造商、设备类型、固件版本、MAC和IP地址
(3)易受攻击资源列表:通信协议栈、服务列表、开放网络端口、各种协议(SSH、Telnet、FTP、HTTP)的远程管理访问。
4.3.4 健全检查装置(SCU)。此组件负责对每个设备执行健全性检查过程。此过程确定设备是否满足组织安全性要求。当设备第一次解除部署时或当检测到漏洞时(见第4.3.6节和第4.3.7节),启动该程序。此过程有三种可能的结果,导致三种可能的设备状态:
(1)可重新编程:该设备具有所需的安全级别,无论怎样,对于正在进行的安全监视,该设备需要重新编程以使其与我们的PLAR架构兼容。
(2)可重新编程和可维修:设备低于重新要求的安全级别,但需要重新编程和维修。
(3)不可修复:设备低于所需的安全级别,无法重新编程或修复,因此,应将其从网络中删除。
健全性检查单元从Pro 文件管理器接收设备配置文件以及系统管理员提供的组织安全策略。它查询安全模块报告以查找与当前设备配置文件相关联的任何可能的CVE。如果找到,则需要在白盒和黑盒监视器中加载相应的漏洞检测模块(见第4.3.6和4.3.7节)。此外,还可以在此加载某些特定于组织的漏洞检测模块。因此,SCU为白盒和黑盒监视器创建一个配置,并将其传递给它们。白盒和黑盒监视器共同评估设备是否存在任何可能的漏洞,并向SCU报告。如果未检测到,设备将进入可重新编程阶段,以进行安全监视配置。如果检测到,SCU会向安全模块存储库查询任何可能的缓解计划,该计划也与当前安全策略一致,并标记为可重新编程和可修复。如果找不到,设备将被标记为不可修复,并因此从网络中删除。
4.3.5 重新编程单元(RU)。此组件负责重新编程和修复设备。无论设备是否已清除健全性检查过程,网络中的每个设备都需要持续的安全监视。重新编程是通过在设备中插入模块来解决这一问题的过程。Breiten等人。[23]建议插入修改系统调用处理程序以进行持续监视。然而,与他们重新编译内核的方法相反,我们的体系结构可以以即插即用的方式实现同样的功能。
该系统的一个重要方面是具有弹性,因此RU还考虑了设备的能力和安全策略,因此重新编程的模块的大小、功能和数量将被一致地确定。因此,虽然在IP摄像机的情况下,可以定制多个模块,但在小温度传感器的情况下,我们可能只能更新少数模块。
RU还负责修复标记为可修复的设备。它从安全模块存储库中检索缓解计划。这个计划可能会引起一次小的或大的修理。一个小的修复可以是例如,用更强的凭据替换较弱的凭据,或者用更强的凭据包装较弱的身份验证例程。另一方面,大修可能要求对设备进行大修,从用更好的服务器替换易受攻击的web服务器或更新设备固件到供应商发布的最新固件。缓解计划的执行可能需要从设备内插入/移除某些模块。
最后,RU向白盒监视器提供任何进一步的配置,以便随后与设备内的重新编程/修复的模块进行通信,并向黑盒监视器提供任何更改的流量模式。设备现在进入操作阶段。
一旦设备状态可操作,其活动将继续由其内部加载的模块(与白盒监视器相对应)以及黑盒监视器独立地监视漏洞。如果这两个监视器检测到任何此类情况,将重新启动健全性检查过程。
4.3.6 白盒监视器。为了检测或减轻某些漏洞,我们需要从设备内部提取信息。在我们的PLAR架构中,我们可以通过在设备中插入相关模块来实现这一点。白盒监视器负责管理和与这些模块通信。例如,一个加载在设备内部阻止未知程序的模块与此组件通信以接收安全进程列表。类似地,一个查找某些恶意程序代码的模块,如果它找到一个,则与白盒监视器通信。此监视器依次向健全性检查单元发出信号,以便可以重新启动健全性检查过程。
4.3.7 黑盒监视器。这与第2.2节中讨论的传统中间盒类似。它具有基于网络流量被动监听和设备主动探测的漏洞检测和修复能力。如果检测到任何漏洞,它将标记健全性检查单元,以重新启动健全性检查过程。

5 实施

我们现在用原型实现来描述我们提出的PLAR架构。为了说明我们利用的漏洞,DCS 936L型D-link IP摄像机中存在凭据泄漏漏洞(漏洞ID:CVE-2018-7698[25])。

5.1 脆弱性

为了从摄像机中检索实时视频流,任何合法用户都需要首先对安装在摄像机内的小型web服务器进行身份验证。然而,包括凭证交换在内的整个通信是以明文形式使用不安全的HTTP协议进行的。因此,任何连接到同一无线局域网的攻击者都可以捕获这些凭据,以后可以使用这些凭据完全控制摄像机并在未经授权的情况下捕获其视频流。

5.2 实验设置

该原型描述了如何在运行中检测和缓解漏洞。由于妥协和重新编程商品物联网设备是困难的,我们建立自己的物联网环境。该方案可在任何操作系统中实现。这里,我们以Linux为例,它占据了物联网设备市场的80%[23]。为了实现设备内部模块的动态连接,采用了可加载内核模块(LKM)机制。它允许在运行时使用insmod()命令与内核集成,而不需要任何重新编译。对于这个原型实现,我们需要四个实体:IP摄像机、攻击者、移动用户和中心集线器。结果拓扑如图4所示。IP摄像头是通过在Raspberry Pi 3型号B+上配置摄像头模块V2-800万像素1080p而构建的。它使用ARMv7处理器,并与Raspbian GNU/Linux操作系统一起安装,与轻量级HTTP web服务器NginX一起安装。移动用户是相机的合法用户,可以使用安装在其智能手机中的浏览器访问相机。MacBook Pro笔记本电脑用作安装有tcpdump库的中央集线器。对于攻击者,我们使用了另一台MacBook Pro笔记本电脑,在监视模式下配置了Wireshark。假设所有四个实体都连接到同一无线接入点(AP)。此外,与真正的D-link IP摄像机一样,与AP的所有通信都使用无线保护访问(WPA)协议加密。
在这里插入图片描述
图4 攻击拓扑结构

5.3 开发

在开发阶段,不使用中心集线器。为了捕获凭据,攻击者连接到AP并在打开监视模式的情况下启动Wireshark。攻击者需要捕获AP和移动用户之间的初始4路WPA握手消息,因为使用这4条消息可以解密整个会话。稍后,当移动用户试图访问相机流时,它会传递凭据,这可以在攻击者系统上Wireshark捕获的TCP/IP转储中以明文形式看到。然后,攻击者打开浏览器并使用捕获的凭据成功登录到相机。它现在可以以任何理想的方式控制摄像机及其视频流。

5.4 健康检查和重编程

为了系统地打击这种利用,我们引入了中央集线器来演示我们的PLAR架构。IP摄像机一通电,它就连接到中央集线器,然后中央集线器使用insmod()命令动态插入一个配置文件模块。然后,中心集线器将对生成的设备配置文件进行评估,以确定是否存在任何现有漏洞。如果是真正的IP摄像机,设备配置文件会提到设备制造商和型号为D-link DCS 936L,然后可以直接连接到CVE-2018-7698。然而,即使是我们定制的物联网摄像头,设备配置文件的以下部分也很有趣:
资源:
服务:nginx;远程访问:HTTP;
开放端口:80 nginx

有关详细的设备配置文件,请参阅附录。在健全性检查过程中,对不安全的基于HTTP的NginX web服务器进行了保护。为了在运行时减轻此漏洞,需要将基于HTTP的NginX服务器替换为基于HTTPS的服务器。因此,创建了一个补丁,其中包括创建SSL证书、使用SSL配置NginX,然后将HTTP重定向到HTTPS。此修补程序是从中央集线器上载到相机并在相机上执行的。同一次攻击再次启动,这一次攻击者无法检索用户凭据,从而确认已成功缓解该漏洞。

6 总结和展望

计算范式从通用计算向物联网计算的转变带来了新的安全挑战。现有安全解决方案的适应是一项艰巨的任务,在这个领域几乎没有成功的机会。在本文中,我们通过采取与相关工作完全不同的方法来解决这些挑战,相关工作要求将物联网设备架构改造为可插拔和可重新编程的架构。我们还讨论了一个原型实现,它以IP摄像机的不安全身份验证模块为例,动态地替换为安全的身份验证模块,从而成功地动态地缓解了IP摄像机的内置漏洞。原型实现揭示了新的挑战,并指出了未来有扩展空间的许多途径,下面重点介绍其中一些途径。
尽管我们的原型实现显示了可插入系统的可行性,但开发成熟的PLAR架构仍然是未来的工作。原型测试是使用Linux开发的,设计上不是可插入的。因此,面临着许多挑战,包括但不限于解决一些依赖项和安装库,即使是小的更新。这支持我们最初的主张,即在现有架构下,物联网设备的管理和修补是一项艰巨的任务。
另一个有希望的未来方向包括设计一个安全策略的“错误”规范。安全策略将确定在各种部署上下文下如何减轻易受攻击的设备。虽然用可信的第三方身份验证替换易受攻击的身份验证机制对于企业网络来说可能是一个好主意,但对于军事基地来说可能是不可行的。安全策略将控制如何根据设备的部署上下文对其重新编程。
我们计划对我们提出的系统进行深入的性能评估。我们还计划对这种动态系统的安全影响进行详细评估,以确保第4节中的假设成立。

猜你喜欢

转载自blog.csdn.net/zheng_zmy/article/details/105380848