冯文超
(兰州职业技术学院电子信息工程系,甘肃兰州,730070)
关键字:物联网;机器学习;异常流量检测
随着5G通信技术以及NB-IoT技术[1]的成熟,物联网已经广泛的应用在智慧城市,智能农业,智慧家庭等各个方面。物联网环境下,各个设备通过某种规定的通信协议进行数据采集和交互,从而完成设备的自动化智能化控制。
相对于普通的互联网设备,物联网设备具有数量大,类型多,分布广,处理能力弱等特点[2],但物联网设备在系统复杂度,处理能力,安全重视程度相对较弱,因此物联网对网络攻击的抵抗能力更差,往往成为互联网安全防护的缺口,极大的威胁到用户的隐私安全。近些年来,国内外都出现一系列针对物联网的安全事件,如2018年台积电遭遇病毒攻击导致三大产线停产,2019年的委内瑞拉全国大规模停电事件,2020年伊朗港口被网络攻击事件,综上,基于物联网的安全问题面临着更严峻的挑战,急需一种高效的异常流量检测技术,以应对物联网面临的安全威胁。
为应对上述情况,提出了基于机器学习的物联网异常流量检测方法,该对一段时间内的流量进行分析,将样本数据打标,然后将数据分为训练集和测试集,使用训练集建立分类模型,最后使用连续假设检验算法[3]对特征进行分类,过滤物联网中的正常流量,然后使用神经网络算法对恶意流量的空间分布进行二次特征分析,从而降低流量分析的复杂度。
一般情况下,由于物联网中的设备的功能专一,如温度湿度传感器,压力传感器,摄像头,因此其网络流量会比较平稳且具有一定的周期性。如果出现异常流量则会使物联网中的流量出现异常波动。根据上述特点,可以将网络流量按时间划分为多个等份,设时间等份为时间越长,该时间区间内数据包的数量就越多,处理所需的开销就越高。通过分析不同时间段内流量的变化趋势,进行甄别哪段时间内的流量可能出现问题。物联网流量特征提取方法中,首先需要对一定时间窗口内的流量进行采集,然后对其特征进行打标,然后使用聚类算法对数据进行聚类分析,形成若干个集群,最后采用概率分类算法[4]进行分类。
通过分析一个时间段内所有流量进行分析,将数据包以源IP,目的地址,数据类型等进行聚合,在提取上述特征之后,以该时间段内类型最大的特征为该时间段内的流量特征。物联网流量特征变量如表1所示。
图1 物联网流量特征提取框架
表1 物联网流量特征变量
在物联网流量特征聚类分析过程中使用期望最大化算法,由于不同的流量是不同的业务数据,也就是说各个流量出现的概率各不相同,因此一个时间区间内网络上的总体流量与各流量概率大致相同。在对一个时间段内所有流量进行采集并打标时,需要对集群的是否恶意进行甄别,标准是恶意流量的概率是否超过某个阈值,超过即标为恶意集群,否则标为正常集群。
总体来说,基于机器学习的异常流量检测方法就是通过获取物联网中数据流量,并以等长时间段内的数据分片,然后对该数据分片内的数据包进行特征提取并人工标记,然后使用机器学习的聚类算法[5]划分为恶意数据和正常数据,当恶意数据包的数量超过一定的阈值时,将该数据区分为恶意集群和正常集群。总体架构如图2所示。
图2 基于机器学习的异常流量检测框架
为了验证真实的网络环境下的网络流量,本文采集了智能温室管理系统中的数量流量作为系统测试的背景流量,并在该流量中使用kali虚拟机发送了端口扫描,SYN flood攻击,SSH暴力破解,FTP爆破,Dos GoldedEye攻击,网络SQL注入攻击,僵尸网络,DDos攻击,Dos Hulk攻击等,然后捕捉相应的数据流量以便后续处理和分析。测试环境如图3所示。
图3 仿真测试环境
在图3中的数据采集节点使用Zeek[6]获取网络数据包,获取的数据包括时间戳,源IP,源端口,目的IP,目的端口,网络协议,服务类型,连接时间,数据包数量,发送的数据长度,连接状态,丢包数据等。在获取流量之后,根据类型提取关键字段,去除非必要字段,降低后续处理工作的难度。以10分钟区间为例,一个小时内数据统计结果如表2所示。
表2 一个小时内流量数据包统计结果
30-40min正常GoldedEye攻击SQL注入攻击26340(93.9%)747(2.7%)962(3.4%)8753(99.3%)32(0.4%)32(0.4%)36866 40-50min正常僵尸网络DDos攻击25098(92.9%)441(1.6%)1465(5.4%)5341(97.5%)65(1.2%)74(1.4%)32484 50-60min正常端口扫描Dos Hulk攻击26654(91.4%)936(3.2%)1579(5.4%)1757(94.9%)32(1.7%)62(3.3%)31020
数据采集完毕之后,使用脚本将每个数据包进行人工标记,按照表1中所列举的特征变量进行分类,统计各特征变量在各个时间区间内的数量,包括数据流的数量,唯一源端口的数量,唯一目的IP的数量,唯一目的端口的数量,发出数据包的个数,发送数据包的字节数,接受到数据包的数量,接受数据包的字节数等。上述特征的选取与物联网上可能存在的攻击类型相符合,如flood攻击里,源IP和源端口,目的IP和端口都是固定的,而SSH爆破攻击的目的IP和目的端口都为单一值。由于攻击流量和正常流量有很大的不同,因此统计不同时间段内这些特征值,可以较为清晰显示其流量的特征变化趋势。
在一个时间段内的所有特征字段都打好标签之后,网络流量集群就建立完成,下一步就是通过连续假设检验来测试多个时间段内异常流量出现的概率,设前n个时间段内统计的恶意流量的概率分别为Y1,Y2,… ,Yn,则采用多时间段关联算法总计各个时间段内值的异常判断,定义当前时间段t内似然比Λt为
用检准率PD和误报率PF度量检测精度,同时定义其上下限为α和β。随着时间的推进,如果时间段n的似然比Λn不断增加并达到阈值B= l n( 1 -β)/α,则该时间段n的数据为异常流量,如果Λn不断减小,达到阈值A= l n( 1 -α) /β,则认为该事件段内的数据为正常流量。
本文采集了智能温室管理系统中的数量流量作为系统测试的背景流量,并在该流量中使用kali虚拟机发送了端口扫描,SYN flood攻击等攻击流量,以此作为本文的实验环境。根据前文所述,当恶意流量被正确识别为恶意流量时,则标识为TP,反之标记为FN,当正常流量被标记为恶意流量时,此判断标识为FP,否则标识为TN。分类器的性能评估分类器的性能指标为
通过使用不同长度的时间段获取流量,然后使用连续假设检验来计算该时间段内的流量是正常流量还是异常流量,并计算分类器的性能指标值,计算结果如表3所示。
表3 不同时间段长度下算法准确率计算
从表3中可以看出,随着时间长度的增加,检测的准确率先升高,然后不断降低,最高在时间窗口长度为4min时可达到82.3%,而TPR和FPR的检测效率大致相同,而F值的甲酸基本处于0.7-0.85之间,所以将时间窗口定为4min时计算结果较为理想。
随着物联网的广泛应用,物联网面对的安全形势越来越严峻。为了适应物联网中设备处理能力差,系统结构复杂等特点,提出了基于机器学习的异常流量检测方法,通过分析一段时间内恶意数据包在整体数据包中的概率,使用连续假设检验算法对特征进行分类,过滤物联网中的正常流量,然后使用神经网络算法对恶意流量的空间分布进行二次特征分析,从而降低流量分析的复杂度。