[译] 巧妙使用机器学习的方法来检测 IoT 设备中的 DDoS 攻击
网络异常检测
异常检测是识别数据中与预期行为有所不同的数据模式。异常检测技术可以用来区别常用流量与异常攻击流量。常用简单的基于门阀值的检测技术并不适用于IOT的攻击本质。而使用机器学习算法的异常检测模型可以有效降低检测中的假阳性。
网络中间件的限制
网络中间件的内存和处理能力有限,导致在异常检测方面在算法上有一定的限制。智慧家庭网关路由器用的异常检测框架有以下的特征:
·轻量级的特征:路由器必须要处理高带宽的流量,所以所有的特征都要说轻量级的。一个能够处理高带宽应用的算法必须依赖网络流数据和深度的包检测。
·协议无关的特征:路由器必须要处理不同协议的包,所以算法必须考虑所有协议共享的一些包特征。
·低内存实现:路由器因为内存的限制,缓存添加的延迟和复杂度,只能处理有限的状态信息。所以最佳的算法应该是无状态的或者需要在很短的时间窗口内存储流信息。
威胁模型
对家用IoT网络的一些假设条件有网关路由器和其他中间件,可以监测本地网络上的客户IOT设备上的流量。本地网络上的Wi-Fi设备和设备与Internet之间的流量都要经过中间件。
异常检测方法
异常检测方法一共分为四个步骤:
·流量获取:流量获取过程记录了源IP地址、源端口、目的IP地址、目的端口、包大小、从智能家庭设备发送到所有IP包的时间戳。
·把包按设备和时间分组:每个IOT设备的包按源IP地址进行分组,然后根据中间件中的时间戳分割为不重叠的时间窗口。
·特征提取:基于IOT设备行为的域名知识为每个包生成无状态和有状态的特征。无状态的特征是主要的包头域,有状态的特征是短时间窗口内聚集的流信息,需要有限的内存来支持在路由器上的应用。
·二分类:K近邻(KNN)算法,随机森林,决策树,支持向量机,深度神经网络可以高精度地区分正常流量和DoS攻击流量。
流量收集
研究人员创建了一个IoT设备网络模型来收集真实的正常和恶意设备流量。
为了收集正常的流量,研究人员收集了10分钟内三个IoT设备交互的所有包。
与之相比,收集DoS流量就比较难了。为了避免运行真实Mirai僵尸代码的安全威胁和复杂性,研究人员模拟了三种最常见的Mirai感染设备的DoS攻击:TCP SYN洪泛,UDP洪泛,HTTP GET洪泛。研究人员用Kali linux虚拟机作DoS源,用Raspberry Pi 2运行Apache web服务器作为被攻击者。
最后,研究人员把正常流量和DoS流量按照IP地址、MAC地址、包发送时间等融合在一起,让模拟的流量更像真实环境中产生的流量。
特征过程
研究人员对两类特征进行归类,并分析了正常流量和攻击IoT流量的区别。可以通过独立包的独立流特征来提取无状态的特征。这些特征的生成是不需要分割入流量(incoming traffic stream)的。所以,这些特征就是轻量级的。
无状态特征
包大小:包大小的分布是与攻击流量和正常流量明显不同的。超过90%的攻击包上小于100字节的,而正常的包是在100~1200字节之间的。TCP SYN洪泛这样的DOS攻击会尝试建立尽可能多的连接来耗尽受害者服务器的资源。这样,攻击者就会让包的大小尽可能的小,来以最小的代价最大化连接数。而正常的流量包的大小从小到大都有,小的表示连接正常,大的表示视频流数据。
包间隔:正常的IoT流量有突发性的限制。大多数的包都会有正常的发送间隔。这可能反映在IOT网络ping或其他自动化网络活动上。而DOS攻击的流量的包间隔的时间一般都很短。
协议:不同的流量的协议分布也不同。正常流量中,UDP流量包数量上超过TCP流量包数量的,因为流视频是UDP包。相比,攻击流量的TCP包数量上超过UCP包数量的。而且,攻击流量的协议种类总的来说比较少。
有状态特征
带宽:带宽的使用特征也可以作为IOT设备网络流量模型的特征。研究人员将源设备的网络流量进行分割,每10秒钟计算一次平均带宽来衡量每个设备的平均带宽。正常流量和攻击流量的带宽分布差别较小,研究人员认为机器学习模型可以更好地发现这些微小的不同。
IP目的地址:IoT设备可以按照其通信的终端设备(数量)进行分类。另一个IoT设备流量的重要特征是目的IP地址集很少变化。
研究人员构造了反映这些行为的两个特征:第一个特征是10秒的时间窗口中不同目的IP地址,如果终端过多就说明书攻击流量;第二个特征是时间窗口内不同的目的IP地址数量的变化,出现新的终端表明设备正在发起攻击。
运用机器学习方法对IoT流量检测分类的结果如下图: