研究文章|开放获取
圣地亚哥埃尔南德斯拉莫斯,m·特蕾莎修女Villalba拉奎尔Lacuesta, ”MQTT安全:小说起毛的方法”,无线通信和移动计算, 卷。2018年, 文章的ID8261746, 11 页面, 2018年。 https://doi.org/10.1155/2018/8261746
MQTT安全:小说起毛的方法
文摘
物联网是一个概念,越来越多的出现在我们的生活。智能设备的出现导致了一种范式转移的技术与环境的相互作用,导致社会智慧的地球。因此,新的先进的遥测方法似乎互相连接各种设备,与公司,或与其他网络,如互联网。的道路上越来越相互联系的世界上,关键设备依赖于通信网络提供必不可少的服务,这就需要确保这些协议和应用程序的安全性和可靠性。在本文中,我们讨论一个基于安全性的方法MQTT(消息队列遥测传输),这是一个非常轻量级的和广泛使用的通讯和信息交换协议为物联网(物联网)设备在整个世界。为此,我们提出建立一个框架,允许执行一个小说,基于模板的起毛MQTT协议技术。第一个实验结果显示,这里给出的模糊技术的性能使它适合用于网络架构处理能力较低的传感器,如智能城市。此外,在广泛使用的应用程序中使用这个fuzzer实现MQTT导致一些新的安全漏洞的发现不是迄今为止报道,证明其有用性作为一种工具寻找安全漏洞。
1。介绍
如今,城市面临着复杂的挑战,包括可持续的城市发展,减少污染和能源消耗,和安全1]。物联网(物联网)被认为是构建智能城市的核心技术,是基于概念的“一切都可以连接到互联网。“便宜的传感器和其他设备的发展,以及采用云服务,提供新的机会开发新服务,提高城市的生活质量。随着城市发展,探索新的物联网技术的兴趣增加。一些例子的物联网技术如何支持智能城市建设如下:(我)智能路灯与传感器检测汽车的运动,将数据发送到控制开关打开或关闭,节约能源(2)减少水的消耗在公园(3)卫生人员参加公民在紧急情况下的实时访问他们的医疗记录(2- - - - - -4](iv)电的消耗和监管控制的智能仪表和传感器,实时发送数据(3,5,6]
由于物联网,由设备位于不同的地方相互通信和生成大量数据,信息变得更加难以保护(7]。妥协的可用性、完整性或保密的数据可以有不利,直接影响人们的生活8]。因此,有必要实施机制,验证的安全物联网设备,他们所使用的网络协议来交换信息,为他们开发的应用程序。
在本文中,我们提出一个框架来提高应用程序的安全协议实现的MQTT(消息队列遥测传输),一种广泛使用的协议分享物联网设备之间的数据交换。MQTT是一个极其简单、轻量级的消息传递协议,发布/订阅体系结构,设计成简单的部署,能够支持数以千计的客户提供一个单独的服务器。此外,MQTT提供了在不利条件下的可靠性和效率。所有这些特性使本议定书的一个最常用的智能设备之间的通信协议,与大量的应用程序在此基础上,随着时间的推移迅速增加(9,10]。
测试应用程序的安全性实现MQTT,我们已经创建了一个框架基于一个验证技术称为起毛。起毛测试技术寻找漏洞在软件应用程序(11)通过向目标系统,然后意想不到的输入数据监测结果。通常,它由一个自动或半自动过程,包括数据的发送和重复操作的系统研究。所有fuzz可以分为两大类12]:mutation-based和生成的fuzz。Mutation-based fuzz应用突变在现有数据样本来创建测试空间,同时生成fuzz从头创建测试用例通过造型目标协议或文件格式。作为生成的方法更复杂和耗时,我们专注于mutation-based fuzzer方法以及小说起毛技术基于模板。这项技术的目的是减少努力和提高用户的生产率在执行安全验证的应用程序实现MQTT协议。这种新技术允许完全自动生成模板领域我们要为每个网络包测试。它还支持其他规范的定义,比如我们想要的字段过滤流量或者我们想要插入的值默认发送。
剩下的纸是组织如下。节2,我们简要解释的基本概念理解提出所需要的工作。部分3讨论了关于MQTT协议相关工作安全与现代起毛的方法。部分4处理框架的基本元素和上面讨论的概念和方法的实现。部分5然后介绍了fuzzer的架构,部分6显示了实验阶段的结果。最后,给出了结论。
2。背景和动机
2.1。消息队列遥测传输
MQTT使用发布/订阅消息传递模式,使信息提供者之间的松散耦合,叫做出版商,和消费者的信息,调用用户。这是通过引入一个发布者和订阅者之间的message broker。
与传统的点对点模式相比,这种模式的优点是,出版设备或应用程序不需要知道任何关于订阅,反之亦然。我们可以区分三个MQTT基本概念仍将呈现论文的整个开发过程。
(我)的话题。的出版商负责编目他们发送的消息的主题。一个主题定义了消息的内容或类别的消息可以被分类。主题很重要,因为在点对点协议消息被发送到一个特定的地址,在发布/订阅模式中,信息分布基于所选主题的订阅者。通过订阅一个特定的主题,用户将获得所有消息发送任何出版商与主题。
(2)客户端。MQTT客户机连接到代理交换信息。他们必须订阅主题,可以发布信息到其他实体连接到同一个经纪人通过提供一个主题。
(3)代理。MQTT代理服务器作为中介的消息。MQTT协议消息的格式由三部分组成:一个固定头,表所示1;一个变量头;和一个负载。fuzz考虑标题的字段和位置对于插入数据执行模糊的过程。
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
MQTT是全世界最常用的协议,如表所示2。
|
|||||||||||||||||||||||||||||||||||||||
2.2。起毛流程
起毛的阶段过程是高度可变的,取决于许多因素,如被测试的应用程序或程序员的经验(13]。然而,有一组基本步骤,总是跟随,无论或应用程序分析的方法。发展的工具,将下面,以下阶段被认为是:(我)确定一个目标:第一步在每个起毛过程包括确定目标可以是一个应用程序,一个协议,甚至一个特定的函数库。这里的目标是MQTT协议和应用程序协议实现的。(2)确定入口点:几乎所有可利用的漏洞是由应用程序接受用户值处理不适当提前检查。列举的输入向量是至关重要的一个方面的起毛处理成功。最后,任何能够从客户机发送到目标系统应考虑作为输入向量。这包括标题、文件名、环境变量和注册表键值。(3)生成模糊数据:一旦确定了输入向量,我们必须生成适当的数据执行起毛的过程。高度的自动化生成测试用例是很重要的,许多情况下必须生成。(iv)执行测试用例:这一步是与前一个密切相关的过程,由发送数据包到目标系统。在前一个阶段,过程自动化是至关重要的。(v)异常监控:起毛过程监测的一个重要部分的例外。导致目标系统的崩溃后,发送大量的数据包没有好处,如果不能确定特定的数据包,导致错误。监控可以采取许多形式和目标系统密切相关和起毛的类型被执行。
3所示。相关工作
3.1。MQTT协议的安全
尽管MQTT安全的研究还很少,一些工作还刚刚开始提出对其安全问题。几乎所有出现安全问题,相关的状态默认协议工作。因为MQTT是一个简单的协议设计处理能力较低的设备,默认情况下,该协议试图最小化处理需要交换消息,这意味着严重的安全问题。这些缺点可以用一个适当的解决协议配置。下面是一些最常见的安全问题,可以通过适当的解决协议配置(14,15]:(我)缺乏认证:MQTT协议没有提供一个安全的身份验证机制在默认情况下,这会导致欺骗的身份有些参与者的沟通或发送未经授权的数据。这个问题可以很容易地通过配置协议特性充分解决。身份验证时,协议本身提供了连接的用户名和密码字段信息使客户发送用户名和密码连接到MQTT代理。(2)缺乏授权:MQTT客户连接到代理后,可以发布消息或订阅的主题。每个经过身份验证的客户端都可以发布和订阅各种主题即使没有适当的授权。这可能是一个重要的问题,因为该协议本身并不提供任何机制来执行,因此代理的责任。尽管如此,它可以很容易地通过主题的实现权限代理方(16]。(3)缺乏保密:MQTT依赖于TCP作为传输协议,这意味着默认连接不使用加密通信。这意味着包可以被攻击者监视监听同一个网络。为了避免这种情况,几乎所有的MQTT经纪人允许整个MQTT的加密通信,使用TLS代替普通TCP。(iv)缺少完整性:当MQTT系统不受信任的客户端或身份不明的MQTT客户机访问MQTT代理和主题,应该发送消息的数据完整性检查,特别是当不使用TLS。MQTT支持三种机制来提供交换数据包完整性:校验和,MAC和数字签名。
其他方法也提出了一些作者。此外,一些研究试图解决一般问题的基于ip协议使用的物联网设备,其中一个是MQTT。在这些情况下,作者关注的安全这种类型的设备作为一个更广泛的光谱的一部分,把层的保护,它可以包含TCP / IP协议和安全体系结构和模型,最适合物联网网络(17]。除了保密,其他安全特性已经解决;(18)处理智能设备的问题当他们没有足够的处理能力,使用非对称加密算法执行身份验证任务,它提出了一种新的基于操作的验证方法消耗一些资源,比如哈希函数或操作。其他一些有趣的方法关注如何强迫遵守MQTT协议可以实现可选的安全功能。SecKit是一个基于模型的安全工具包,试图迫使使用一系列的安全策略,这样的协议实现中所没有的一些保护措施默认实现(19]。也有研究,继续关注安全限制,该协议提出了通过设计并提出了框架来提高他们的安全运输相关各方之间的信息添加额外的层的连接,如SSL / TLS (20.,21]。
本节开始时出现的因素表明,该协议安全漏洞相关操作,特别是,交流信息的方式。本文旨在有助于改善MQTT协议有关的安全验证的设备,实现它。当应用程序实现MQTT协议过程包错误,严重的安全故障如拒绝服务或远程执行任意代码可以发生的22,23),即使上述安全措施。评估实现这样一个协议的应用程序不同部分的连接(客户端和代理)来验证他们的行为当收到错误或意想不到的数据可以帮助避免一些严重的安全漏洞。
3.2。现代起毛
前面已经说过的,有许多类型的起毛和许多方面来执行这种技术,包括物联网起毛的提出了Modbus协议(24)的物联网系统的书(25]。然而,一般而言,正如Aitel所说在他的论文(26现代起毛,试图解决三个主要问题对传统的起毛。(我)如果网络协议是由一个API定义的客户端和服务器的实现,很可能这些预定义的功能将使某些检查的数据发送和因此会间接影响起毛的过程。(2)即使完成协议的知识,为协议创建一个客户端可以是一个相当大的事业,客户很少被移植到其他协议,即使是那些类似的性质。(3)通常,测试人员只有有限的知识的协议受到攻击或协议可能会破坏方式。
为了解决这个问题,现代起毛工具,比如Boofuzz [27,打盹28),和麻醉品29日]或[30.)等,提出一种基于块的方法,包括将协议分解为多个字段和数据长度字段和为用户提供一个框架来创建这样的工具,而不必担心控制领域(如长度或校验和)的较低层次。这是最新的框架使用的方法,它有一个非常简单的基础。几层组成的,如果当一个网络包可用,上层是应用程序的物理层次和较低的层,我们想执行起毛测试的应用程序层,它还不足以进入测试值和发送消息,因为底层控制层可能包含字段,如果无法正确更新将导致拒绝数据包到达服务器,前值插入处理。为了解决这个问题,提出了一些结构称为块。,一系列变量分组之前定义的框架,占领一个指定大小。这些变量形式的一组块,块可以开启和关闭如下(31日]:
s_block_size_binary_bigendian_word (“somepacketdata”);
s_block_start (“somepacketdata”);
s_binary (“01020304”);
s_block_end (“somepacketdata”);
实现的是低层次的控制字段自动重新计算,一旦所有的块都被关闭,因此,用户不需要担心处理它们。
如果我们专注于特定主题的模糊性MQTT协议,很少可以找到引用或工具。唯一的公共工具的作者有证据mqtt-fuzz [32),其主要工具是快速和传统的方式验证协议,没有提供太多的复杂性。此外,其他起毛或正式的测试方法提出了MQTT协议,尽管有不同的目的。这是这样的33),作者讨论网络协议的正式的方法验证通过有限状态机和标签转换系统。重点是演示的实现MQTT不符合标准。CG-Fuzzing模糊算法对无线个域网,专注于创造一个高效的测试用例的数量。
3.3。代理起毛
代理起毛几乎是一个普遍和研究技术,造成现有的某些局限性。一些工作进行了关于这项技术,比如ZAP代理(34代理[],打嗝35],ProxyFuzz [36]。这一切工作的共同点是fuzzer必须放置在中间的连接,客户端和服务器之间,作为中继代理。为了有效地完成这一任务,客户端和服务器必须配置手动或自动的IP欺骗,例如,ARP欺骗。这允许客户端和服务器在的地址寻找另一个代理,所以客户端认为代理服务器,反之亦然。这个起毛方法提供了一些改进之前的流程,如简单的使用。然而,这是一个困难的技术来实现,这就是为什么工具实现这种技术并介绍鲜为人知极其基本的绒毛面技术。这种技术已经导致了专利(37]。
4所示。方法
在本节中,我们将展示如何实现了前面几节中提到的方法,以及其他新方法创建MQTT协议起毛工具。
4.1。起毛MQTT消息
侦察一个协议或应用程序的过程,实现它需要知道在某种程度上说,协议的规范,通过它的公共文档或通过逆向工程技术。一旦我们知道它的规格我们可以解释字节的包,我们必须选择感兴趣的包和字段插入信息的意图验证应用程序正确处理他们这样做。
MQTT的情况下,不需要逆向工程的过程,因为其规范公开(38]。因此,我们只需要看看的规范文档类型的包交换和字段变量头和有效载荷(表3)。
|
||||||||||||||||||||||||||||||
如果我们更深入看数据包交换的协议的类型,我们很快意识到,该消息发布可能是最多的信息传播,因此一个最处理执行的执行协议的应用程序。一旦我们发现了这种类型的包(发布、连接订阅等),我们研究变量头(表4)选择类型的字段和字段的位置以字节为单位,测试用例将插入进行起毛的过程。一旦测试用例是插入的字段被选中,我们寻找控制字段,将插入测试用例重新计算一次。最后,我们找一个领域,明确标识包为了能够过滤“动态”。
|
||||||||||||||||||||||||||||
4.2。推进代理起毛
应用模糊过程,我们使用起毛代理技术在前面解释道。
正如我们已经所说,这种技术不是很广泛,和执行的工具,它是过时的和现在很大程度上缺乏与现代技术。但是,如果我们深入研究应用这种技术的优势,我们可以验证它允许我们解决的缺陷提出了一些现代的起毛。这些不足提出如下。
4.2.1。准备起毛不同组件的连接
一般来说,当前起毛工具只是为了验证某些点的连接。这意味着,如果我们使用一个工具来测试一个特定的服务器,它通常不能用于在客户机上重复该过程,或者至少不是没有投入大量的精力在修改的结构框架。此问题的解决方案是工具的主要特点之一是,因为要实现我们的目标是减少努力的验证的用户应用程序实现MQTT协议的安全性。与代理技术,因为fuzzer中间的沟通,包的主要目标是在不同的组件之间的流通。因此,起毛工具并不适合一个特定的服务器或客户端,但是对于一个给定的包,因为包的规范标准为所有应用程序执行协议,起毛过程将完全从连接(客户、代理等)进行测试,只关注的包交换。
4.2.2。起毛基于以前的响应消息
在某些情况下,是不可能的起毛适用于特定数据包协议确定的值是否正确处理的目标机器。这是因为它的一些领域是基于前一个消息。如果你想测试一个特定值的包一个随机处理领域,之前发送的服务器,它并不足以建立一个连接,不断发送这种类型的包,因为他们将被拒绝因为一个不正确的处理领域,和目标应用程序永远不会到达过程的价值,因此起毛过程将不会在任何情况下进行。
这是另一个问题解决了代理方法。自从消息过滤和处理fuzzer来自一个合法的客户端和代理,建立一个合理的连接,字段之前发送从一端到另一端将保持不变,用适当的值。
4.3。基于模板的起毛
在本文中,我们提出一个新颖,基于模板的绒毛面技术,旨在解决问题的提出部分2.1和2.2。
如前所述,当前起毛工具使用方法,试图简化工作为用户自动重新计算控制字段使用基于块的技术。即便如此,这种方法继续证明高度复杂的用户希望对一个特定的协议执行安全检查。如下所示的代码代表了所有的句子都必须实现一个小程序,允许应用程序的起毛四个消息在一个非常简单的协议(FTP)通过一个框架Boofuzz(27),这是广泛使用的今天,和接班人苏利(39),进而严重影响斯派克。复杂协议的定义可以看到,在这种类型的框架仍然是一个单调乏味的任务,除了需要全面了解该工具本身和整个规范的协议。在这一点上,基于模板的方法是有用的。def main ():会话=会话(目标=目标(连接= SocketConnection (127.0.0.1,8021年,原型= " tcp ")))s_initialize(“用户”)s_string(“用户”)s_delim (" ")s_string(“匿名”)s_static (“∖r∖n”)s_initialize(“通过”)s_string(“通过”)s_delim (" ")s_string(“詹姆斯”)s_static (“∖r∖n”)s_initialize(“的”)s_string(“的”)s_delim (" ")s_string (“AAAA”)s_static (“∖r∖n”)s_initialize (“retr”)s_string (“RETR”)s_delim (" ")s_string (“AAAA”)s_static (“∖r∖n”)session.connect (s_get(“用户”))session.connect (s_get(“用户”),s_get(“通过”))session.connect (s_get(“通过”),s_get(“的”)session.connect (s_get(“通过”),s_get (“retr”))session.fuzz ()
基于模板的方法工作如下:(我)工具听中间的沟通就好像它是一个嗅探器,使用代理技术。用户之前必须提供一系列的参数,通过它的数据包将被过滤。这些字段是前面几节中讨论。(2)用户生成客户机和合法服务器之间的通信协议的他或她想模糊。当指定的数据包截获在前面点工具过滤和处理。(3)处理方案后,。json用以下格式模板自动生成。
这部分显示了MQTT的模板发布层MQTT包。正如你所看到的,每个字段出现在包和两个额外的属性被添加到每个:fuzzable和重新计算。所有用户必须做起毛适用于一个特定的领域,一个包是修改的fuzzable属性被分配了真正的价值。用户还必须指定字段的值重新计算属性的,被认为是为了保持包一致性自动重新计算。该工具会自动输入验证值的字段标记为fuzzables和也会重新计算中的所有字段包的重新计算标志设置为真正的。
我们可以看到在图1的世代时间模板相当快,和生成算法 ,这意味着世代时间保持不变,无论数量的模板生成。
因此,第三个问题是解决了,因为用户不需要知道任何细节的结构或协议本身所使用的工具,除了他或她想要的字段应用起毛,和在任何情况下,他或她想重新计算的字段。注意,为了使修改模板,用户不需要任何特殊的工具;这可以用一个常见的文本编辑器编辑,只要。json维护结构。
4.4。测试用例生成
应用程序生成的值将被测试是一个重要的起毛过程的一部分(40,41]。通常,运行测试用户感兴趣的自定义词典生成与外部应用程序;在其他时候,与此同时,用户感兴趣的测试用例的自动生成与一定程度的智慧。该工具实现了这两种方法并试图维持简单的在这两种情况下使用。这是如何实现的细节将在下一节中讨论。
5。系统设计
本节讨论设计考虑激励我们的设计,然后介绍了MQTT fuzzer系统架构。
5.1。Fuzzer的体系结构
在本节中,我们将讨论的工具的结构设计和实现的观点。我们将参观它的主要模块组成及其功能。此外,一些辅助行动工具必须为了使起毛过程满意的将讨论。
图2显示了通用体系结构。该工具由以下模块组成。
Mitmfuzzer。的mitmfuzzer模块的驱动程序被称为应用程序的其余部分功能。其中,解析用户输入的参数;这是使用python模块argparse(42]。此外,它提供了一个小工具的界面显示活动的状态在一个给定的情况下。
嗅探器。的嗅探器模块是工具的主要特点之一。它负责监听的中间连接以包过滤和处理。因此过滤指定的用户随后生成模板。这个模块的实现的核心是基于Scapy(43),低级处理网络数据包的框架,它支持大量的协议。一旦这个模块检测到与用户选择的一个包,它的流程和序列化特定格式,使其处理使用python编程语言。这个包将提供给模板为模板生成模块。
模板。这个模块接收一个包在一定格式的嗅探器模块和负责处理以生成模板。json格式。生成的模板存储在模板目录和fuzzer确定将使用后的包和田野春光,重新计算。
Fuzzer。fuzzer模块是最重要的模块的工具,因为它执行倾听的过程中,信息包过滤,生成和插入的测试用例。这个模块的输入是一个模板文件,生成一定是以前的模板模块。通过使用iptables和nfqueue(44,45),该模块继续听沟通就好像它是一个嗅探器,将包不认同的模板,和过滤和处理包匹配的模板。匹配的包被处理时,它的所有字段模板相比,看看是否其中一个用户已经选择的春光。在一个或多个字段的情况下,模块检查用户是否已经进入了一个自定义词典来执行测试过程:如果是这样,该模块将用户提供的检索的一个测试用例,输入显示的字段验证。用户没有提供一个自定义的测试用例,该模块将调用吗Radamsa(46),作为一个参数传递的文件的情况下有效的例子validcases / fieldnamedirectory。Radamsa是股票发电机专门设计的软件验证。它通过阅读示例文件包含正确的数据,并通过一系列算法变异这些数据,从而提供一些情报,所以生成的结果更有可能导致一个错误。Radamsa模块将自动生成50个不同的测试用例,并将其中一个输入字段的春光。应该注意的是,所执行的测试用例的生成模块是连续和无限;当模块尾气50的测试用例生成的,它会自动调用Radamsa生成另一个50新病例。
Scapy。Scapy是包库操作,支持大量的网络协议。它被认为是必要的名字在应用程序体系结构中,因为它形式的核心应用程序的一个重要组成部分。Scapy的优势,除了广泛的协议支持,它使用一个基于块的方法。这意味着,如果您修改一个字段在一个包,您可以重新计算长度和其他字段非常简单和自动控制。当一个包到达Fuzzer模块,它发送Scapy进行处理;Scapy然后返回一个结构,表示包和它很容易操作。完成操纵MQTT包之后,Scapy这个操纵的包,这可能是不正确的由于不一致性控制等领域长度字段(如果文本被插入或删除)或校验和字段(如果有字节的包已经被修改),重新计算所有控制字段使用基于块的方法,封装了数据,因为它是在原来的包。它将这包转发Fuzzer模块,Fuzzer将它转发到合法应用程序。值得强调的是,Scapy没有支持MQTT协议,协议的研究对象,因为它是在本文中,我们扩展了通过添加支持MQTT库提供。目前,开发的模块是正式库的一部分Scapy [47]。
5.2。测试用例生成的实现
在本节中,我们描述了如何自动生成测试用例已应用于该框架的实现阶段。
5.2.1。自动生成测试用例
作为解释工具的体系结构的描述,测试用例的自动生成是由一个名为Radamsa的外部应用程序。这个应用程序是被用来发现漏洞cve - 20073641和cve - 2007 - 3644 (archive_read_support_format_tar。c库漏洞),cve - 2008 - 6536 (7 - zip程序漏洞),和cve - 2010 - 2482 (LibTIFF 3.9.4漏洞)和其他很多。的方式提出了工具使用此模块如下:工具的目录中有两个重要的文件夹:一个目录valid-cases,由一组子目录,一个用于每个字段的包来追究。在这些子目录中,有一个或多个特定领域的示例文件为正确的数据。这些将提供给Radamsa变异并生成测试用例。另一方面,还有另一个目录fuzz-cases,在里面创建了一个目录的每个字段春光在一定包。Radamsa自动生成所有领域测试用例里面,所以该工具随后检索它们,将它们插入到包。
5.2.2。使用自定义测试用例
如果使用自动生成的测试用例,需要使用一组的情况下,使用另一个工具或手动生成,用户可以在一个简单的方式通过执行以下步骤上面的目录结构说明:(我)在fuzz-cases目录中,创建一个目录的精确名称字段你想模糊。(2)在创建子目录,输入所有的测试用例,每个文件。订单或名称的文件是不相关的。
6。实验和结果
在本节中,我们目前的结果应用工具的一系列今天广泛使用的应用程序。所有的测试场景,提出了在一个被控制的环境中进行。测试工具都是开源的,它们的使用是免费的。
6.1。性能考虑
在本节中,我们考虑了工具的性能影响。部分分为几个部分,评估工具提供的不同的功能,每个人对其性能的影响。
但是。包处理
正如前面介绍的,工具位于中间的客户端和代理之间的通信,并从那里开始修改所有网络数据包流之间,应用代理起毛技术。由于这个原因,许多工具的处理负载对应的修改和处理数据包,理解测试用例的处理,如插入数据包数据字段的重新计算所有控制字段前面的层。
轴承这一点,我们测量的一个方面是每包的处理时间。我们可以看到在图3每个包的处理时间,哪一个测试用例是插入保持相对稳定,与一些变化由于测试用例被插入。如果测试用例有一个长的长度,处理时间将会更长,因为它需要重新计算的多个字段。的建筑图,1300年的网络数据包被认为是一个子集,已报道的平均处理时间0.003699秒。这可以被认为是可接受的时间保持稳定的连接。
一旦处理时间计算为每个数据包,一组100包的到达延迟处理后计算。这已经完成,因为不仅包的整体处理时间由插入一个测试用例和重新计算所有较低的层的控制字段,但是也有必要考虑造成的延误发送数据包从内核空间到用户空间,以便它可以被修改,发送的包从用户空间到内核空间,这样就可以发送,所花费的额外时间,通过网络,运输等等。
我们可以看到在图4春光的渡越时间包增加大约90%对一个合法的包的时候,总共0.013085秒,这仍然是一个可以接受的时间保持稳定的连接没有过多的延迟。
6.1.2。Fuzzer负载和CPU消耗
在前面的章节中,我们显示的模板数量工具可以生成和所花费的时间生成。另一个重要性能指标的测试用例数量fuzzer能够插入每个时间单位和主机的CPU消耗。
fuzzer有几个定制特性,允许您选择测试用例之间插入的时候,这样你就可以插入一切尽可能快或不时。为了评估主机的CPU消耗,不同时间之间插入测试用例已经考虑。
我们可以看到在图5机器的CPU消耗,房屋fuzzer大大取决于不同的延迟时间之间插入测试用例。这允许定制环境中使用的工具是用更少的资源。
6.2。应用场景
术语“应用场景”是指提供的可能性工具在连接起毛应用于它的元素。前面解释的,采用的方法是可能的模糊连接的不同时间点的协议。下面是一系列的用例基于MQTT协议:(我)Pub-fuzzer-broker-Sub:在这种情况下,该工具将放置在客户端和代理发布消息,以这样一种方式,该工具可以模糊的消息流从客户机向服务器和从服务器向客户端发送的消息发布。(2)Pub-broker-fuzzer-Sub:在这种情况下,场景会改变一点:fuzzer将订阅代理和客户端之间,等待消息的接收。从代理工具可以模糊的消息到客户端,听消息从客户端代理,通常会确认。
6.3。结果
后应用工具当前一些经纪人和客户,fuzzer已经能够检测几个失败导致拒绝服务,这可能是潜在的可利用的执行其他类型的攻击技术。这些故障如下:(我)拒绝服务地毯代理v0.10起毛包和不正确的处理后抛出一个Java异常破坏应用程序(2)错误由代理在处理传入的连接地毯v0.10解析起毛后包,它起源于一个连接重置(3)拒绝服务MOSQUITTO客户v1.4.11订阅某个话题时收到消息从代理起毛
这表明起毛的方法提供了真正的结果用于世界各地的广泛采用物联网设备的应用程序,因此它可以被用作安全措施,确保设备在给定网络满足最低安全标准。
7所示。结论
这项工作的目的是为提高物联网的安全设备和更具体的应用程序,实现一个协议广泛采用物联网(MQTT)作为信息交换的通信协议。为此,我们开发了一个框架来对MQTT执行安全测试。该工具实现了一种新型的模糊技术基于模板,根据我们的知识没有被使用。这里给出的模糊技术有助于该领域通过改善当前fuzz的一些缺陷。这个框架的重要贡献在于,它提供了灵活性,模糊的不同的点连接而无需任何适应工作。其他解释在本文的贡献,值得强调的是,它允许起毛的包是基于先前提供的数据包,通过交换,它促进了可移植性和错误报告模板。最后,这种技术简化了安全分析的MQTT协议对用户和应用程序通过使用基于模板的方法,提供一种方式来模糊协议不知道或定义的规范。
实验结果给每春光包可接受的处理时间。此外,观察到工具的不同行为取决于每个测试用例之间的时间,通过插入。我们可以减少主机的CPU消耗2%的最小值。这种灵活性来控制CPU消耗环境中允许使用这个工具处理能力较低的设备,如智能城市。广泛使用的工具是用来测试漏洞等客户地毯或MOSQUITTO,拒绝服务等问题报告和沟通重置的经纪人。这些发现的漏洞探测工具的有效性。
该框架也有一些局限性。最重要的一个是相关的报告和检测错误。进行错误检测通过的执行被测试应用程序在调试器。显然,这需要自动化来提高效率和可用性。另一个重要限制是该框架目前仅用于验证MQTT协议安全;因此这个工具不是有效的物联网体系结构实现几种不同的协议。
改善上述局限性,作为未来的项目的一部分,我们将扩展框架,允许使用更广泛的网络协议的验证通过物联网设备。此外,我们分析的可能性,使用该工具作为服务执行安全分析的所有元素首次纳入一个网络。这将能够确保所有组件的最低级别的安全性和可靠性的基础设施。
的利益冲突
作者宣称没有利益冲突有关的出版。
引用
- 李和k·李,“物联网(物联网):应用程序、投资、企业和挑战,”业务范围,卷。58岁的没有。4、431 - 440年,2015页。视图:出版商的网站|谷歌学术搜索
- b . Chowdhury和m . Chowdhury,“基于rfid的实时智能垃圾处理系统,”2007年《澳大拉西亚的电信网络和应用程序的会议2007年,页175 - 180,https://doi.org/10.1109/ATNAC.2007.IEEE。视图:谷歌学术搜索
- b Padmavathi”,实现基于物联网的医疗解决方案基于云计算,“国际工程和计算机科学杂志》上,2016年。视图:出版商的网站|谷歌学术搜索
- d·盖·派斯·m·德Buenaga罗德里格斯·e·普埃尔塔Sanz, m . t . Villalba和r·穆尼奥斯吉尔“健康和福祉活动推广使用大数据方法,”卫生信息学杂志,146045821666075页,2017年。视图:出版商的网站|谷歌学术搜索
- d·g·派斯·m·德Buenaga罗德里格斯e . p . Sanz m . t . Villalba和r·m·吉尔”大数据处理使用可穿戴设备健康和健康推广活动,”环境辅助生活。线解决方案在现实生活的情况卷,9455在计算机科学的课堂讲稿,页196 - 205,施普林格国际出版,可汗,2015年。视图:出版商的网站|谷歌学术搜索
- v . s . s . s . r . Depuru l . Wang Devabhaktuni,和n . Gudi“电网智能电表——挑战、问题、优势和地位,”学报2011年IEEE / PES电力系统会议和博览会,PSCE 2011美国2011年3月。视图:出版商的网站|谷歌学术搜索
- r·罗马j .周和j·洛佩兹,”特性和挑战的分布式网络安全与隐私的事情,”计算机网络卷,57号10日,2266 - 2279年,2013页。视图:出版商的网站|谷歌学术搜索
- m·t·Villalba m . de Buenaga d·盖和f . Aparicio”安全医疗的物联网体系结构,分析”计算机科学研究所的课堂讲稿,Social-Informatics和电信工程,LNICST卷,169年,第460 - 454页,2016年。视图:出版商的网站|谷歌学术搜索
- n . j .林w . Yu, x, h . Zhang和w·赵”在物联网的一项调查显示:架构、实现技术,安全和隐私,和应用程序,”IEEE物联网,4卷,不。5,1125 - 1142年,2017页。视图:出版商的网站|谷歌学术搜索
- m . b . Yassein李奉儒Shatnawi, d . Al-Zoubi”物联网应用层协议:一项调查,”《2016年国际会议上工程和管理信息系统,ICEMIS 20163月,2016年9月。视图:出版商的网站|谷歌学术搜索
- h·杨,y, Y.-P。胡,Q.-X。刘,”艾克漏洞发现基于起毛,”安全性和通信网络》第六卷,没有。7,889 - 901年,2013页。视图:出版商的网站|谷歌学术搜索
- m·萨顿a·格林,p . Amini起毛:强力vulnerabilty发现美国,addison - wesley,波士顿,质量,2007年。
- h·杨,y, y,和刘问:“艾克漏洞发现基于起毛,”安全性和通信网络》第六卷,没有。7,889 - 901年,2013页。视图:出版商的网站|谷歌学术搜索
- HiveMQ,“企业MQTT代理2016”,https://www.hivemq.com/wp content/uploads/hivemq -产品-表- v2 - 1. - pdf。视图:谷歌学术搜索
- HiveMQ,https://www.hivemq.com/blog/mqtt-security-fundamentals-authenticationusername-password。
- 海迪,即Špeh, a .Šarabok”物联网网络协议比较为目的的物联网限制网络,”40学报》国际公约在信息和通信技术,电子和微电子,MIPRO 2017克罗地亚,页501 - 505年,2017年5月。视图:出版商的网站|谷歌学术搜索
- t .陆军o . Garcia-Morchon r . Hummen s l . Keoh s . s . Kumar和k . Wehrle”基于ip的网络安全挑战的事情,”无线个人通信,卷61,不。3、527 - 542年,2011页。视图:出版商的网站|谷歌学术搜索
- A . Esfahani g .蝠鲼r . Matischek et al .,”一个轻量级的认证机制M2M通信在工业物联网环境中,“IEEE物联网1 - 1页。视图:出版商的网站|谷歌学术搜索
- r·奈塞河、g . Steri和g .巴尔迪尼”实施物联网的安全策略规则,”学报》2014年第10 IEEE无线和移动计算国际会议上,网络和通信、WiMob 2014塞浦路斯,页165 - 172年,2014年10月。视图:出版商的网站|谷歌学术搜索
- k . s . Shin Kobara c c。壮族,w .黄,“MQTT的安全框架,”学报2016年IEEE会议通信和网络安全,CNS 2016美国,页432 - 436,2016年10月。视图:出版商的网站|谷歌学术搜索
- a . Manzoor“保护装置连接在工业物联网(物联网)”为智能设备连接框架、计算机通信和网络、页3-22施普林格国际出版,可汗,2016年。视图:出版商的网站|谷歌学术搜索
- j·福斯特,诉Osipov: Bhalla):阿,和d . Aitel“缓冲区溢出攻击,”缓冲区溢出攻击,2005年。视图:出版商的网站|谷歌学术搜索
- k·卡巴斯基和a . Chang“远程代码执行通过英特尔CPU bug,”程序的黑客在盒子里(HITB),2008年马来西亚。视图:谷歌学术搜索
- d . Reynders, s·麦凯和e·赖特网络通讯协议概述。实际工业数据通信,10.1016 / b978 3/50012-7, 2004。视图:出版商的网站
- d . Serpanos和m .狼”安全测试物联网系统”在物联网(物联网)系统施普林格,页77 - 89年,可汗,瑞士,2017。视图:谷歌学术搜索
- d . Aitel基于块的协议分析的安全测试的优势免疫公司,2002年2月。
- j . Pereyda boofuzz:网络协议起毛对于人类来说,http://boofuzz.readthedocs.io/en/latest/。
- g银行,m . Cova诉Felmetsger k . Almeroth r . Kemmerer和g .豇豆属“小睡:向一个有状态的网络协议fuzZEr”课堂讲稿在计算机科学(包括子系列讲义在人工智能和课堂讲稿在生物信息学):前言卷,4176年,第358 - 343页,2006年。视图:谷歌学术搜索
- h . j . Abdelnur r状态和o . Festor“麻醉品:一个有状态的SIP fuzzer”诉讼的第一原则,国际会议系统和应用程序的IP电信、IPTComm ' 072007年7月,页47-56、美国、。视图:出版商的网站|谷歌学术搜索
- Gorbunov和r·罗AutoFuzz,自动化的网络协议的侦察系统框架数学与计算科学,多伦多大学,米西索加,加拿大,2010。
- d . Aitel介绍尖峰,Fuzzer创建工具,https://www.blackhat.com/presentations/bh-usa-02/bh-us-02-aitel-spike.ppt。
- “Github.org mqtt_fuzz。”https://github.com/F-Secure/mqtt_fuzz。视图:谷歌学术搜索
- k . Mladenov s . van Winsen c . Mavrakis和k . p . m . g .网络形式验证的MQTT协议的实现物联网设备。
- “OWASP.org, ZAP代理”,http://www.zaproxy.org/。视图:谷歌学术搜索
- “PortsWigger.net, BurpSuite。”https://portswigger.net/bur。视图:谷歌学术搜索
- “Github.com, ProxyFuzz。”https://github.com/SECFORCE/proxyfuz。视图:谷歌学术搜索
- l .蓝道,“使用代理起毛请求和响应,”美国专利申请11/276,454。视图:谷歌学术搜索
- OASIS.org,“MQTTVersion3.1.1: OASISStandard”,http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html。视图:谷歌学术搜索
- 查尔斯和m . a . Takanen j .更,“起毛软件安全性测试和质量保证,Artech房子信息安全和隐私,”起毛软件安全性测试和质量保证,Artech房子信息安全和隐私,2008年。视图:谷歌学术搜索
- a . a . Sofokleous和a . s . Andreou撰写“Batch-optimistic使用遗传算法生成测试用例,”学报19 IEEE国际会议上与人工智能工具,ICTAI 2007希腊,页157 - 164年,2007年10月。视图:出版商的网站|谷歌学术搜索
- r . Abbassi s Guemara f·厄尔,“对安全策略的测试用例生成方法,”学报》第16届国际会议上电信、ICT 20092009年5月,页41-46、摩洛哥、。视图:出版商的网站|谷歌学术搜索
- “Python.org, Argparse。”https://docs.python.org/3.4/library/argparse.html。视图:谷歌学术搜索
- “Scapy Python工具安全测试,”计算机科学与系统生物学》杂志上,8卷,不。3,2015。视图:出版商的网站|谷歌学术搜索
- j·艾伦,”Netfilter和IPTables -结构检查,”SANS研究所,2004年。视图:谷歌学术搜索
- “Netfilter.org, Netfilter。”https://www.netfilter.org/。视图:谷歌学术搜索
- “Radamsa奥卢大学”,https://www.ee.oulu.fi/roles/ouspg/Radams。视图:谷歌学术搜索
- “Scapy.org, MQTT层Scapy。”https://goo.gl/oo45XC。视图:谷歌学术搜索
版权
版权©2018年圣地亚哥埃尔南德斯拉莫斯等。这是一个开放的分布式下文章知识共享归属许可,它允许无限制的使用、分配和复制在任何媒介,提供最初的工作是正确引用。