IoT自动化渗透测试
物联网(IoT)是新兴技术,是对传统Internet的扩展,它使所有带有射频识别(RFID),传感器或GPS等功能的物体相互连通。
IoT安全问题频发,但是从攻击者的角度来看,用来评估物联网安全性的方法却很少。到目前为止,渗透测试已广泛应用于评估传统的Internet或系统安全性,但通常需要花费大量成本和时间。
下面,我们针对物联网的安全问题,提出一种基于BDI模型的渗透测试方法及其自动化,以评估物联网的安全性。
1 什么是IoT?
物联网(IoT)是1999年由麻省理工学院(MIT)提出;这段特殊的时期预示着重要的新一代信息技术的出现。物联网被认为是交易的延伸附加互联网,便于信息通信传递。具有识别位置,跟踪信息,监视射频识别的数据管理(RFID),传感器或GPS等功能。
根据现有的文献,物联网结构包括三层:应用层,网络层和感知层。
-
应用层为用户提供在不同的场景中的服务。
-
网络层负责信息的传输和处理。
-
感知层收集信息并识别对象。(包括各种硬件终端例如RFID,传感器,GPS等)
目前,物联网的使用技术已应用于各种领域,例如智能网格,智能交通,智慧城市,智能家居,智能医疗保健,体育锻炼和智能建筑。然而,由于安全事件不断频发,引起业界的广泛关注,特别是安全方面。
渗透测试是常见提高安全能力方法之一,通过模拟真实攻击来保障安全性。根据PTES(渗透测试执行标准),渗透测试的过程包括交互,信息收集建模,Vul-可行性分析,开发,后期开发等。渗透测试旨在提高系统的安全性,而不是为了破坏,不会影响目标系统的可用性。
越来越多的公司和组织开始利用此方法来识别和解决系统中潜在的漏洞,以防止在未来出现重大纰漏。但是,大部分IoT安全研究都侧重于分析,防御或攻击特定设备。
虽然渗透测试是一种非常受欢迎的方法,但是该过程需要花费大量的费用和时间。但是,渗透测试自动化可以科学的提高效率。
2 物联网的安全性
与传统互联网相比,物联网具有特殊的特征,三层结构会导致更多的漏洞出现。在物联网的三层结构中,每一层都有特定的安全性问题,其中一些类似于传统网络。本节分析每个人的安全性问题层。
A. 感知层安全
感知层,也称为识别层或物理层,是从现实世界中收集信息,通过RFID将这些信息集成到数字世界中(比如:传感器,GPS和其他硬件设备)。感知层中的节点一般是低功率,计算能力受限,低存储空间和重复使用。
所以,感知层并没有采用传统的信息安全解决方案。从每个感知层网络到节点,特定的安全问题会导致更多漏洞和攻击面出现。例如,节点是容易遭到窃听,欺骗,克隆,killing,干扰和屏蔽攻击等。
B. 网络层安全
网络层负责传输应用层和感知层之间的信息。网络层是各种网络架构的组合,包括互联网,移动通信网络,卫星,GSM网络,GPRS,3G,4G,WIFI网络等。
这些网络的安全性问题与传统的相似,容易受到DDoS、中间人、数据篡改、数据重放和信号干扰等攻击。此外,混合不同的网络架构也可能带来新的安全问题。
C. 应用层安全
应用层为用户提供了多种服务,例如:智能电网,智能交通,智慧城市,智能家居,智能医疗保健和智能建筑等。物联网可以通过各种平台访问,用户可以通过在不同平台上的应用程序来实现相应的功能。例如:计算机,移动设备或智能硬件设备。
应用层(与其他层类似)的安全风险取决于物联网场景的攻击漏洞(例如攻击缓冲区溢出,SQL注入,XSS,密码攻击和社会工程攻击)。
3 PENETRATION测试
基于已建立的物联网特定安全问题研究和OWASP的物联网攻击项目,我们能够分析出,传统物联网渗透测试与当前物联网渗透测试的区别在于感知层。
我们将物联网渗透测试的过程分为四个阶段:
1)信息搜集
2)分析
3)开发
4)报告
A.信息收集
初始阶段的信息收集是一个关键步骤,通过探测所有三个物联网结构层(感知、网络和应用)的信息来确定渗透测试的成功。
1) 感知层:在感知层,收集有关物理环境的各种信息,比如节点的位置、节点的类型、节点的范围、类型连接方式、通信协议类型、拓扑结构节点、节点操作系统的类型、节点的电源、安全机制、节点漏洞和传播协议漏洞等。
工具示例包括:
• Hardware Bridge API:用于物联网渗透测试。
• Nmap:开源免费工具,扫描网上电脑开放的网络连接端。
• Openvas:开放式漏洞评估系统,也可以说它是一个包含着相关工具的网络扫描器。
• Nessus:目前全世界最多人使用的系统漏洞扫描与分析软件。
2) 网络层:在网络层,利用网络攻击工具(如著名的wirelessatck套件、aircack)采集与传统渗透测试类似的网络类型、连接类型、安全机制、通信类型和传输协议漏洞等信息是非常关键的。
3) 应用层:尽管物联网被广泛用于 各种应用场景,应用层信息收集类似于传统的信息收集。它是对于收集有关操作系统类型,端口,服务信息,访问控制类型,配置Nmap提供的信息和漏洞信息,vas,Nessus等等。
4) 社会工程信息:用来改善渗透测试性能,社会工程学信息也需要收集。例如,DNS信息,电子邮件列表,应用程序信息等。Dnsenum和Fierce以收集DNS信息而闻名,我们可以通过Harvester收集电子邮件列表。
B.分析
在分析阶段,必须对目标的相关信息进行组织、分析,随后识别出目标的攻击路径,并尝试获得目标的访问权限,通常需要对实验环境进行有效性检查。
C.开发
在此阶段,将把分析阶段已经分析出来的可行的攻击路径和规划进行真正的攻击。在渗透测试期间,将禁止DDoS攻击,以确保目标的可用性。
1)感知层:感知层物联网节点的特性决定了对感知层的攻击的方法,是传统物联网渗透测试与传统物联网渗透测试不同的原因。特定攻击可由硬件桥接API或IoTseeker形成,包括:
• 略读:非法读取节点信息。
• 窃听:嗅探节点之间的信息路由器。
• 欺骗:生成伪造的节点数据。
• 克隆:克隆伪节点。
• 杀死:窃取并破坏节点。
• 缓冲区溢出w攻击节点。
• 节点上的访问控制攻击:IoTseeker打破了IoT设备的默认密码。
2) 网络层:网络层上的攻击,包括网络流量嗅探器,信号重放,信号伪造,并在不同的网络通信中劫持信号WIFI,3G,4G,GSM,蓝牙和通过无线攻击Aircrack-ng等。攻击的内容如下:
• 网络流量嗅探器:sniffer之间的信息网络。
• 信号重放:重放信息以进行攻击目标。
• 假信号:生成信息来进行攻击目标。
• 信号劫持:干扰目标网络并强制将目标节点连接到可控制的伪造网络上。
3) 应用层:对应用层的攻击与传统的渗透测试非常相似,包括Web应用程序攻击,软件缓冲区溢出攻击,密码攻击等。使用的工具有:
• Metasploit:最受好评的渗透测试框架包括成千上万的漏洞利用加载。
• W3af:Web应用程序攻击框架。
• John the Ripper:密码破解。
4)社会工程攻击:社会工程攻击是指针对那些缺乏安全意识的普通民众。假如,员工可以通过向它们启用对目标的访问特权并进一步的进行渗透测试。执行此类攻击的能力需要Setoolkit,它是渗透测试领域最著名的工具,由社会工程攻击工具组成。
D.报告
一个成功的渗透测试模拟会发现漏洞,其中的细节将被处理,并随后向目标所有者报告,以提高未来的安全性。
通过模拟渗透测试的流程,我们会从中发现某系统或应用平台的漏洞。通过对流程中的信息进行分析评估总结,形成最终的测试报告,以提高系统的安全性能。
4 BDI模型的自动化
渗透测试的成功需要一套完整的目标和计划。为了实现自动化,BDI是解决这一问题的理想模型,因为它能够在渗透测试中通过感知和动作与目标进行交互。
我们可以使用BDI模型为物联网渗透测试进行建模。BDI模型描述了在渗透测试期间如何选择与目标信息相关的操作,此过程分为三个逻辑成分:信念、愿望和意图。我们的模型遵循Jason解释器,这个模型是基于过程推理系统(PRS)。
BDI代理定义为“元组”< Ag,B,D,I,P,A,S >
• Ag是代理名称;
• B是一个信念集,代表有关目标,并在执行操作后将其更新;
• D是一个愿望集,代表所有选项或可能的渗透测试候选计划代理商
• I是一个意图集,代表代理商的目标或代理商决定执行的计划。
• P是一个计划集,由可用计划组成,每个计划提供有关如何达到的信息ve的目标。
• A是一个操作集,其中包括可以执行的代理操作。
• S是一个感知集,它存储了来自环境的各种信息。
5 验证
我们通过仿真对物联网进行自动化渗透测试实验
我们的模型运行在具有2.3 GHz,I5 CPU和8GB的RAM的PC上。如所示,
模拟实验代表BDI代理和三层物联网在Jason中使用内部沟通动作,来模拟BDI模型与物联网。我们的模型是在AgentSpeak Jason中实现的,这是一种多代理系统编程语言。
A. 物联网目标
我们将物联网目标信息预先定义为三层,包括服务和相应的漏洞能力,如所示:
该信息存储在信念集中,三个物联网结构层的仿真需要创建4个代理,分别表示应用层和网络层,以及感知层中的两个节点。
网络层负责应用层和感知层之间的信息传输此外,为了使场景不确定,我们使用随机数来确定攻击的结果。
B. BDI代理
在BDI代理中,特权的默认值是none,初始目标是应用层中的root特权或控制IoT。我们在前一节描述的物联网渗透测试的基础上,预先定义了对三层代理进行信息和攻击的探测计划,例如,BDI代理可以探测操作系统类型、端口、服务、漏洞信息和网络类型,还可以执行密码攻击、嗅探攻击,重放攻击和缓冲溢出攻击。模拟实验是由Jason的内部动作完成的
Jason代码如下所示:
+!probe information: true<−.send(agent name, askAll, information type(value)).
+!attack action: true<−.send(agent name, tell, attack action)
C.模拟
通过对应用层的失败攻击和对网络层和感知层的成功攻击,说明了传统物联网渗透测试系统与当前物联网渗透测试系统的不同。成功获得了操作系统类型、端口、服务、网络类型、网络安全和漏洞三个层次的基本信息。
显示了BDI模型对物联网进行渗透测试的过程:
此外,BDI代理成功地破解了SSH password,并获得了用户权限。
由于随机性较低,无法执行本地缓冲区溢出攻击以获取根权限。由于对每一层之间的信息传输缺乏安全保护,BDI代理成功地执行了Sniffertack。
可以获得有关光传感器和光控制指令的必要信息,BDI代理收集并存储在信念集中的信息如图5所示:
“turn on the light”命令和光传感器信息在应用程序和网络层之间传输,显示在网络层的信念集中。感知层的基本信息和值包含在图7所示的应用层代理的信念集中:
我们假设光传感器的值是40。在感知层,两个代理分别代表光和光传感器,我们的BDI代理可以根据光传感器信息和光控制指令执行重放攻击
6 结论
在本文中,我们首先介绍了物联网的概念和渗透测试。其次,我们讨论了安全性物联网的概念,并描述了其安全功能。我们提出了一种方法来执行渗透测试物联网,引入了特殊的专用tools。然后,进行效率上的改善。
我们使用BDI模型来实现其自动化,最后,我们通过模拟实验来验证我们的工作。在未来的研究中,我们将扩展模型进行更多操作并在实际环境中进行实验。