Rohan Doshi, Noah Apthorpe, Nick Feamster
Princeton University
来源:https://arxiv.org/abs/1804.04159

0x00 摘要

尽管越来越多的物联网(IoT)设备连接到互联网,但其中许多设备并不安全,进一步恶化了互联网环境。利用不安全的家用物联网设备,一些僵尸网络(如Mirai)对关键基础设施进行分布式拒绝服务(DDoS)攻击。这也促进了新技术的发展,研究人员开始研究检测家用物联网设备的DDoS攻击流量。
在本文中,我们发现可以利用物联网设备特定的网络行为(例如有限数量的服务器和数据包时间间隔的规律)来进行特征提取,通过各种机器学习算法(包括神经网络)实现高精度DDoS检测。这些结果表明,家庭路由器或其他网络中间件可以应用低成本的机器学习算法,在流量和协议不可知的流量数据中自动检测本地IoT设备的DDoS攻击行为。

0x01 引言

研究机构预计物联网(IoT)设备的数量将从2017年的80亿增长到2020年的200亿[1]。然而,大量的物联网设备都存在安全问题。一项对10种流行的物联网设备的分析发现了250个漏洞,包括开放的telnet端口、过时的Linux固件以及未加密的敏感数据传输[2,3]。

不安全的物联网设备的激增让僵尸网络对互联网基础设施的攻击有了可乘之机。在2016年10月,Mirai僵尸网络远程控制了约10万个IoT设备(主要是闭路电视摄像机)对Dyn DNS基础设施进行DDoS攻击[4]。当时,包括Github、Amazon、Netflix、Twitter、CNN和Paypal在内的许多热门网站都在几个小时内无法访问。2017年1月,Mirai源代码被公布,Mirai衍生的僵尸网络发起DDoS攻击的频率和严重程度的不断增加[5]。

这种不断增长的威胁促使开发新技术来识别和阻止来自物联网僵尸网络的攻击流量。 最近的异常检测研究已经表明机器学习可以用于识别恶意网络流量[6]。然而,很少有人使用机器学习算法来检测物联网设备的攻击流量。然而幸运的是,物联网设备的流量与其他互联网设备(例如笔记本电脑和智能手机)的流量存在很大差异[7]。例如,物联网设备通常与一组有限的远程主机进行通信,而不是大量的网络服务器。物联网设备大多使用重复的网络流量模式,例如为了进行日志而在固定时间间隔内使用ping远程主机。

基于这一特性,我们开发了一个用于物联网设备DDoS检测数据收集、特征提取和二分类的流量采集通道。旨在利用物联网设备特定的网络行为,同时还利用网络流量特性(如数据包长度、数据包间隔和协议)。我们比较了各种用于攻击检测的算法,包括随机森林、K近邻、SVM、决策树和神经网络。

由于缺乏家用物联网设备攻击流量的公共数据集,我们通过模拟家用物联网设备网络来生成分类器培训数据。我们建立了一个本地网络,包括路由器、主流家用物联网设备以实现良性流量、攻击设备以进行DoS攻击。我们设计的机器学习模型能够成功识别攻击流量,其准确率高于0.999,其中随机森林、K近邻和神经网络的性能最为强大。我们预计深度学习分类将继续有效地学习来自真实世界部署的额外数据。

我们的流量采集通道主要用于在网络中间件(例如路由器、防火墙或网络交换机)上运行,以识别可能的异常流量和相应设备。由于流量采集通道是流式的、无状态的和协议不可知的,因此,它非常适合部署在家庭路由器或ISP的交换机。
据我们所知,这是第一个面向物联网特定功能的网络异常检测框架,也是第一个将异常检测专门应用于本地网络层面的物联网僵尸网络的框架。

0x02 研究背景与相关工作

在本节中,我们将简要介绍有关网络异常检测和网络中间件的局限性。

1 网络异常检测

异常检测的目的是识别不符合预期的行为。在我们的工作中,可以使用异常检测技术来区分正常流量和攻击流量。过去使用的基于阈值的技术容易将正常流量错误地分类为异常流量,并且无法适应攻击方式的高速演变[6],因此我们考虑使用更复杂的异常检测算法,特别是那些使用机器学习的算法,这可以帮助最大限度地减少误报。这些算法相比传统的方法能够更好地应对海量数据的场景。

网络入侵检测系统(NIDS)长期以来一直使用异常检测算法来检测传统网络中的恶意行为。因此针对NIDS的研究可以在一定程度上为物联网设备流量检测提供合适的异常检测方法。具体而言,一些文献中提出了最近邻算法[8]、SVM[9]和一些基于规则的方案(如决策树和随机森林[10, 11]。

虽然NIDS和物联网设备的僵尸网络检测之间存在相似之处,很少有专门针对物联网设备的异常网络流量检测。物联网的流量不同于其他类型的网络行为,例如,在笔记本电脑和智能手机上访问的网络端点大多来自于网页浏览,而物联网设备会自动发送ping到有限数量的服务器。另外,物联网设备也往往保持着固定数量,因此他们的网络活动更可预测和结构化。例如,一个智能灯泡可以有三种状态:“开”、“关”和“连接到Wi-Fi”,都有着不同的网络流量模式。

这一观点得到了其他文献的支持。Apthorpe等人认为家用物联网设备的有限状态实际上表现在流量发送/接收速率的重复时间结构中,这一特征甚至可以用来推断消费者使用行为[7]。类似地,一些针对SCADA系统的异常检测的文献发现了基础设施系统中传感器和控制器的特殊网络流量模式[12,13]。Miettinen等人进一步展示了如何使用机器学习算法完成类似的任务,如区分物联网设备网络流量模式[14]。因此,我们利用网络流量特征捕捉物联网特定行为,以更好地模拟物联网DoS攻击流量。

2 网络中间件的局限性

网络中间件具有有限的内存和处理能力,因而限制了异常检测算法使用的技术。以下文献对如何满足上述限制进行了研究。例如,Sivanathan等人研究了软件定义的网络流量流级细粒度监控[15]。他们的工作表明,使用基于流的特征可以有效地检测安全威胁,而不会产生高代价的深度包检查。因此,智能家庭网关路由器的异常检测框架应该具有以下特性:

  • 轻量级特性:由于路由器需要面对处理高带宽产生的流量,因此生成的任何特性必须都是轻量级的[16]。为了将算法扩展到高带宽应用程序,算法必须依赖于网络流统计(包是如何发送的),而不是深度包检查(包中的内容)。
  • 协议兼容特性。路由器必须处理来自各种协议(例如TCP、UDP、HTTP等)的数据包,因此该算法必须考虑所有协议所共有的分组特性。
  • 低内存实现。由于内存的限制,路由器只能保持有限的状态;而缓存提高了延迟和复杂性。因此,最优算法要么是无状态的,要么只需要在短时间内存储流信息[15]。

0x03 威胁模型

我们的威胁模型(图-1a)对家用物联网进行了各种假设。我们假设网络中包括一个如一个家庭网关路由器或其他代理的装置,可以观察家用物联网设备在本地网络(例如智能家庭局域网)和互联网上的流量,并检查、存储、修改和阻止任何通过其路径的网络通信。

我们的目标是检测和防止来自智能家庭局域网中物联网设备的DoS攻击。连接到中间件的任何设备都可以在同一时间段内发送网络和攻击流量。由于僵尸网络的CC服务器可能修改命令,每台设备还可能串行地进行各种不同的DoS攻击,并且攻击的持续时间可能会有所不同。我们假设DoS攻击的时间大约为1.5分钟,这是DoS攻击尝试避开检测的常见持续时间[5]。

0x04 异常检测通道(Pipeline)

在本节中,我们提出了一种基于机器学习的物联网设备DDoS检测框架,包括了四个步骤(图2):

  • 流量捕获:流量捕获流程记录智能家庭设备发送的所有IP报文的源IP地址、源端口、目的IP地址、目的端、,报文大小和时间戳。
  • 基于设备和时间的数据包分组:来自每个物联网设备的数据包按源IP地址分隔,利用时间戳将每个设备的数据包进一步划分为不重叠的时间跨度。
  • 特征提取:基于物联网设备行为的领域知识,为每个数据包生成无状态特征和有状态特征。无状态功能主要是数据包报头字段,而有状态功能是非常短的时间跨度中的聚合流量信息,仅占用低内存以支持路由器部署。(详见第4节-B部分)。
  • 二分类:K近邻、随机森林、决策树、支持向量机和深度神经网络可以高准确度地区分正常流量和DoS攻击流量(详见第5节A部分)。

1 流量采集

我们建立了一个实验性的物联网设备网络环境来收集现实中正常流量和恶意流量(图b)。我们将Raspberry Pi v3配置为WiFi接入点充当中间件,然后将YI Home Camera [17]和Belkin WeMo Smart Switch [18]连接到Raspberry Pi的WiFi网络中,将Withings血压监测器通过蓝牙连接到与WiFi网络相关的Android智能手机上[19]。

为了收集正常流量,我们与这3个物联网设备进行了10分钟的交互并截取了pcap文件,由此记录该时间段内发送的所有数据包。我们执行了许多在常规设备使用过程中会发生的交互,包括在HD和RD模式下从YI摄像机到服务器的视频流、打开/关闭WeMo智能开关和安装固件更新、从Withing血压器采集血压测量值并将测量结果发送到云服务器进行存储。最后,我们删除了pcap中所有非IoT流量,例如Android手机的后台流量。

收集DoS流量则更具挑战性。为了避免运行真实Mirai代码的安全风险,我们模拟了Mirai感染设备的三种常见DoS攻击类别:TCP SYN Flood、UDP Flood和HTTP GET Flood[5]。 我们使用运行在笔记本电脑上的Kali Linux虚拟机作为DoS源,以及运行Apache Web服务器的Raspberry Pi 2作为DoS受害者,并通过WiFi将两台设备连接到我们的Raspberry Pi 3热点。然后,DoS攻击源对受害者的IP地址分别发起持续约1.5分钟的各类DoS攻击。Raspberry Pi 3使用Linux dumpcap工具记录了攻击流量的pcap文件。其中,HTTP GET Flood使用Goldeneye工具[20]进行模拟,TCP SYN Flood和UDP Flood使用Kali Linux的hping3进行模拟[21]。

然后,我们混合DoS流量与正常流量,修改源IP地址、MAC地址和数据包发送时间,使其看起来是物联网设备同时产生正常流量和DoS攻击流量。每个物联网设备将分别进行一种攻击,攻击发生在一个随机的时间范围内(90-110秒),并彼此独立。最后,我们收集每台设备约300秒(5分钟)的攻击流量。

上述的流程将在491855个数据包中进行,其中包括459565个恶意数据包和32290个正常数据包。

2 特征工程

我们通过研究两类特征并分析它们与区分正常和攻击流量的相关性。无状态特征可以从各个数据包的无关特性中推导出来,生成这些特征时不会依赖IP源的通信流,因此这些特征的提取是最轻量级的。有状态特征则反应了一定时间跨度内的网络流量,在生成这些功能时需要较大开销。我们按照设备将网络流量分成流并划分为固定的时间跨度。时间跨度内的网络行为将用一个时间序列来表示。这些特征需要在一个时间跨度内汇总多个数据包的统计数据,执行分类的网络中间件(如路由器)必须存储时间跨度内的状态,我们可以通过使用较短的(例如10秒)时间跨度来限制内存开销。

2.1 无状态特征

  • 数据包大小:在攻击和正常流量之间数据包大小存在显着不同(图a)。超过90%的攻击数据包都在100字节以内,而正常数据包通常在100至1,200字节之间变化。进行DoS攻击的设备(如TCP SYN Flood)试图尽可能多地向受害者发送连接请求,以便耗尽受害服务器的资源。因此,攻击者需要使数据包尽可能小,以实现连接请求数量最大化。相比之下,正常流量可以从服务器远程指示(小数据包)到视频流数据(大数据包)。
  • 数据包间隔:正常的物联网流量突发性有限(图b,图c,图d),物联网网络或其他自动化网络活动,大多数数据包以固定的时间间隔发送给服务器。相反,绝大多数DoS攻击流量发送时间间隔(ΔT)接近于零,而时间间隔(ΔT)的一阶和二阶导数都非常高。使用ΔT以及ΔT一阶和二阶导数作为特征能够帮助分类算法找到正常流量和DoS流量之间的差异
  • 通信协议:正常和DoS攻击流量的协议分布也存在差异(图e,图f)。由于采用了UDP传输视频,在正常流量中UDP数据包比TCP数据包高出近三倍,相比之下,攻击流量中的TCP数据包和UDP数据包数量几乎相同。除此之外,攻击流量中的协议类型更为单一。我们通过三种最流行的攻击协议(IS_TCP,IS_UDP和IS_HTTP)的one-hot编码记录协议差异,另一个二进制值表示其他类型的协议(IS_OTHER)。这样既能采集主流的协议,同时降低不太相关协议产生的噪声。

2.2 有状态特征

  • 带宽:一些文献指出,可以使用带宽来描述物联网设备的网络流量模式。例如,Apthorpe等人根据发送/接收速率描述了家用物联网设备的网络流量特征[7]。因此,我们基于不同的源设备分割网络流量,并在10秒时间跨度内计算平均带宽,以测量每个设备的瞬时带宽。 正常流量和攻击流量之间带宽利用率的差异较小(图g)。我们预测ML模型将能够利用这些差异。
  • 目标IP地址数目和差异性:物联网设备的特征是它们通信的服务器数量有限[7]。 例如,WeMo智能交换机仅与四个远程主机进行通信,用于从云端进行激活/停用、检索固件更新以及记录其状态。物联网设备流量的另一个关键特征是目标IP地址集很少随时间变化。
  • 我们生成了上述2个特征来反映具有时间跨度的网络行为。首先,在10秒时间跨度内计算不同的目标IP地址。然后,我们计算时间跨度内不同目标IP地址数量的变化,过多的新IP可能表明设备正在进行攻击。图h表明了这两个特征的重要性。 攻击流量平均与更多的IP进行通信,这种分布差异可以用于区分正常流量和攻击流量。

0x05 实验结果

1 分类算法

我们测试了5种机器学习算法,以区分正常数据包和DoS攻击数据包:

  1. K近邻算法(KN)
  2. 线性核的支持向量机(LSVM)
  3. 基于基尼不纯度的决策树(DT)
  4. 基于基尼不纯度的随机森林(RF)
  5. 全连接神经网络(NN)

我们使用Scikit-learn Python库[22]实现了前4个机器学习模型,使用Keras库[23]实现的神经网络模型。除非另有说明,否则所有超参数都是默认值。

我们基于训练集训练了模型,其中85%是正常流量,15%是DoS流量,并在测试集上计算分类准确率(表I)。我们四个分类模型的精度从0.91到0.99。由于DoS攻击的Flood特性,攻击数据包的数量几乎是正常数据包的15倍。 因此,一个基线预测算法在全恶意数据包数据集的精度大约为0.93。
线性SVM模型的精度最低,这表明数据并非线性可分的。而决策树模型表现良好,达到0.99的准确度,这表明数据可以在更高维度的特征空间中分割。K最近邻算法也达到了同样的准确性,这表明两个不同的数据类型能够在特征空间中很好地聚类。尽管从10分钟的数据包捕获中仅获得了约50万条样本,但神经网络的表现仍然令人惊讶。鉴于该算法的性质,神经网络可能根据可用的训练数据量来调整其性能。

2 特征重要性

正如基尼不纯度所表明的那样,无状态的特征的重要程度大大超过了有状态特征(表2)。 这是因为正常和攻击流量无状态特征的差异相比有状态特征更明显(图a-h)。这个结果表明,IoT攻击流量的实时异常检测是可行的,因为进行无状态特征采集不需要大量内存开销,可以直接从网络流属性(例如五元组和包大小)中导出。

与仅使用无状态特征的分类相比,结合有状态特征进一步提高了准确性(表3)。利用有状态特征,模型的F1均增加0.01至0.05。这表明将关于物联网设备网络行为的领域知识应用于特征工程可以增强DoS检测性能。

0x06 结论与展望

这项工作初步表明,简单的分类算法和低维特征就可以有效区分正常物联网设备流量和DoS攻击流量。这个结果促使了后续的研究,以评估更真实的网络环境下物联网DoS检测。

首先,我们希望将本研究的结果应用在其他物联网设备的正常流量以及实际DDoS攻击记录的攻击流量中。这可能包括使用发布的代码在受保护的实验室网络上创建物联网设备僵尸网络,或与ISP合作获取在DDoS攻击期间记录的NetFlow记录或数据包捕获。这将是评估该方法外部性能的重要测试。

收集更大的数据集还可以让我们研究DoS流量的检测精度如何受到IoT流量的数量和多样性的影响。物联网设备的网络行为因设备类型而异[7],我们很好奇某些设备是否会因为它们的正常流量更具规律,而更适合网络异常检测,反之亦然。

除了本文讨论的内容之外,我们还想尝试其他特征以及更复杂的机器学习算法。我们认为,在物联网网络中应用深度学习进行异常检测具有巨大的潜力,特别是用于检测比DoS Flood更复杂的攻击。我们希望这项工作能够进一步促使研究人员开发专门为物联网设备设计的网络保护技术。

如何最好地干预已经沦陷的物联网设备也是一个值得探讨的问题。许多智能设备在没有网络连接的情况下不保留基本功能[24],因此简单地将设备从网络上隔离可能是不切实际的,尤其是在该设备是必不可少的情况下(例如血糖监测器或家用水泵)。 通知用户是一种选择,但家用物联网设备的许多用户并不知道如何进行维护。

[1] (2016) Unlocking the potential of the internet of things. McKinsey & Company. [Online]. Available: http://www.mckinsey.com/business-functions/digital-mckinsey/our-insights/the-internet-of-things-the-value-of-digitizing-the-physical-world
[2] (2015) Internet of things research study. Hewlett Packard Enterprise. [Online]. Available: http://h20195.www2.hpe.com/V4/getpdf.aspx/4aa5-4759enw
[3] (2016) Internet of things (iot) security and privacy recommendations. BITAG. [Online]. Available: https://www.bitag.org/report-internet-of-things-security-privacy-recommendations.php
[4] S. Hilton. (2016) Dyn analysis summary of friday october 21 attack. Dyn. [Online]. Available: https://dyn.com/blog/dyn-analysis-summary-of-friday-october-21-attack/
[5] (2016) Threat advisory: Mirai botnet. Akamai. [Online]. Available: https://www.akamai.com/us/en/multimedia/documents/state-of-the-internet/akamai-mirai-botnet-threat-advisory.pdf
[6] V. Chandola, A. Banerjee, and V. Kumar, “Anomaly detection: A survey,” ACM computing surveys (CSUR), vol. 41.3: 15, 2009.
[7] N. Apthorpe, D. Reisman, and N. Feamster, “A smart home is no castle: Privacy vulnerabilities of encrypted iot traffic,” 2016.
[8] L. Ertoz, E. Eilertson, A. Lazarevic, P.-N. Tan, V. Kumar, J. Srivastava, and P. Dokas, “Minds minnesota intrusion detection system,” In Data Mining: Next Generation Challenges and Future Directions, 2004.
[9] E. Eskin, W. Lee, and W. Stolfo, “Modeling system call for intrusion detection using dynamic window sizes,” 2001.
[10] M. Qin and K. Hwang, “Frequent episode rules for internet anomaly detection,” 2004.
[11] D. Barbard, J. Couto, S. Jajodia, and N. Wu, “Adam: A testbed for exploring the use of data mining in intrusion detection,” SIGMOD, vol. 30:4, 2001.
[12] J. Bigham, D. Gamez, and N. Lu, “Safeguarding scada systems with anomaly detection,” in Computer Network Security, V. Gorodetsky, L. Popyack, and V. Skormin, Eds. Berlin, Heidelberg: Springer Berlin Heidelberg, 2003, pp. 171–182.
[13] S. N. Shirazi, A. Gouglidis, K. N. Syeda, S. Simpson, A. Mauthe, I. M. Stephanakis, and D. Hutchison, “Evaluation of anomaly detection techniques for scada communication resilience,” in 2016 Resilience Week (RWS), Aug 2016, pp. 140–145.
[14] M. Miettinen, S. Marchal, I. Hafeez, N. Asokan, A. Sadeghi, and S. Tarkoma, “Iot sentinel: Automated device-type identification for security enforcement in iot,” CoRR, vol. abs/1611.04880, 2016. [Online]. Available: http://arxiv.org/abs/1611.04880
[15] A. Sivanathan, D. Sherratt, H. H. Gharakheili, and A. V. Vijay Sivaraman, “Low-cost flow-based security solutions for smart-home iot devices,” 2016.
[16] S. Hao, N. A. Syed, N. Feamster, A. G. Gray, and S. Krasser, “Detecting spammers with snare: Spatio-temporal networklevel automatic reputation engine,” USENIX security symposium, vol. 9, 2000.
[17] (2017) Yi home camera. [Online]. Available: https://www.yitechnology.com/yi-home-camera
[18] (2017) Wemo insight smart plug. [Online]. Available: http://www.belkin.com/us/F7C029-Belkin/p/P-F7C029/
[19] (2017) Wireless blood pressure monitor. [Online]. Available: https://health.nokia.com/us/en/blood-pressure-monitor
[20] (2017) Goldeneye code repository. [Online]. Available: https://github.com/jseidl/GoldenEye
[21] (2017) hping3 package description. [Online]. Available: http://tools.kali.org/information-gathering/hping3
[22] (2017) Scikit learn: Machine learning in python. [Online]. Available: http://scikit-learn.org/stable/
[23] F. Chollet et al., “Keras,” https://github.com/fchollet/keras, 2015.
[24] N. Apthorpe, D. Reisman, and N. Feamster, “Closing the blinds: Four strategies for protecting smart home privacy from network observers,” Workshop on Technology and Consumer
Protection (ConPro), 2017.

点击收藏 | 0 关注 | 1
  • 动动手指,沙发就是你的了!
登录 后跟帖