APP下载

基于随机森林的物联网设备流量分类算法

2022-03-08李锐光段鹏宇沈蒙祝烈煌

北京航空航天大学学报 2022年2期
关键词:数据包样本流量

李锐光,段鹏宇,沈蒙,祝烈煌,*

(1.北京理工大学 网络空间安全学院,北京 100081; 2.国家计算机网络应急技术处理协调中心,北京 100029)

物联网技术将各种带有传感器的终端设备接入互联网,组成网络并实现人和物的互联互通。目前,物联网技术在家庭、校园、企业、城市等应用场景已得到广泛应用[1],海量的网络摄像头、身体传感器、智能家电等物联网设备接入互联网,给人类生活带来了重大变革。

然而,在物联网广泛普及的同时,政府监管机构、网络运营者对网络空间中的物联网设备缺少统计和管理。一方面,各种类型的物联网设备通常由不同运营者、不同厂商、不同人员安装,对全量设备的登记和统计非常困难;另一方面,物联网广泛采用了NAT技术和IP地址动态分配,缺少唯一化的标记手段,使得掌握网络中物联网设备总体情况变得困难。

由于物联网设备普遍资源受限导致的安全防护不足,使得很多物联网设备成为网络攻击的工具或跳板,对全球网络空间安全带来严峻挑战。因此,对网络空间中的海量物联网设备的识别和分类,成为当前工业界和学术界关注的热点研究问题。

现有的物联网设备流量分类算法主要有基于协议特征识别和基于流量统计两大类。基于协议特征识别需要找到流量强特征,在目前普遍加密的网络中已越来越难,因此基于流量统计的识别方法逐步成为研究热点。本文主要对当前流量识别领域广泛应用的随机森林算法进行了改进,并取得了不错的实验效果。

1 物联网设备识别方法

现有的物联网设备识别方法主要包括主动资源探测和被动流量分析两大类。

1)主动资源探测是按照物联网设备通信协议格式,向远端设备发送探测包,采集和分析响应数据,从而得到远端设备重要信息的识别方法。通过主动探测,可以得到操作系统、开放端口、漏洞分布、设备类型、厂商型号、所属组织等重要信息,从而掌握网络中全量物联网设备情况。Feng等[2]使用Modbus和S7协议标语的格式和信息识别工控设备的厂商和设备版本。Li等[3-4]使用设备的登录页面提取关键字从而识别设备,并测量页面中单词的集中度,将搜索引擎返回的结果作为设备指纹。Leonard和Loguinov[5]使用TCP ACK探测主机是否存活,使用DNS、HTTP、SMTP等协议的响应识别主机的设备类型和操作系统。

2)被动流量分析是指从某一网络关口采集流量数据,分析和提取不同类型物联网设备的协议指纹或流量特征,从而实现对物联网设备类型的识别。Kohno等[6]使用多种协议的时钟偏移,即时钟时间与实际时间的差进行设备识别。Aneja等[7]使用到达间隔时间(IAT)图作为特征使用CNN算法进行分类。Husák等[8]使用HTTPS协议中的SSL/TLS握手信息作为设备指纹对用户代理进行分类。

主动资源探测方法通常用于对某一网域以外设备的探测识别,而被动流量分析通常用于对某一网域内设备的识别分类。本文重点研究被动流量分析方法,提出并实现了一种基于随机森林的物联网设备流量分类算法。

2 物联网设备流量分类技术

物联网设备流量分类技术分为2类:①协议特征识别,即依靠协议中存在的强特征对不同设备流量进行匹配分类,如文献[2,8];②统计识别,即寻找流量数据中的包数、包长、时间间隔、请求数量等弱特征,采用统计的方法对不同设备流量进行分类识别,如文献[6-7]。

协议特征识别方法的优点是识别准确率高,但需要提前知道设备类型及其通信协议,对于未知的物联网设备无法识别,而且随着加密技术在网络协议传输中的广泛采用,协议特征变得越来越模糊,因此,基于协议强特征的识别方法越来越表现出局限性。基于统计的识别方法有可能识别出未知的物联网设备,因为同一厂家产品在流量上具有相似性,另外可以有效地识别和分类加密流量。

学术界对基于统计的设备流量分类算法开展了大量研究。Arunan等[9]使用流的信息和DNS、NTP的请求数量、请求间隔等进行分类。Msadek等[10]将端口号分为公认端口、注册端口、动态端口,结合协议类型和流统计信息对设备流量进行分类。Yao等[11]提出一种可以自动选择流量特征、基于深度学习的物联网设备分类算法,主要应用于智慧城市场景。Desai等[12]仅使用流的统计信息,包括均值、中位数、方差、分布相似度进行分类。Meidan等[13]除了使用流信息,还使用其他数据,包括Alexa排名和GeoIP信息进行分类。Shahid等[14]使用发送和接收到的前N个包的大小、IAT进行分类。

在基于统计的流量分类技术中,特征向量(统计参数)的选择至关重要,直接影响分类准确率及算法性能。大多数研究中采用了完整的TCP/UDP流的信息,有的辅助采用了DNS、NTP的请求数量、请求间隔[9],有的辅助采用了域名、地理位置[13]等参数信息。本文在现有工作基础上,重点研究了TCP/UDP流的数据包信息,在特征向量中加入包长、包数、包TLL等参数,实验表明提升了分类准确性。

3 数据集

本文在研究中采用了Sivanathan等[15]公开的数据集。该数据集来自一所学校网关处捕获的真实流量,持续时间为2016年9月23日至10月6日。实验者在网关处部署了tcpdump软件捕获流量,使用kmod-usb-core和kmod-usb-storage软件存储流量数据。

数据集中包括了21种物联网设备和9种非物联网设备的混合流量,以PCAP包格式按天保存,总大小为9 GB。由于数据集中包含了各设备的MAC地址,这为从混合数据中提取各设备流量、建立训练数据集提供了很大便利。所有设备名称及类型如表1所示。

表1 物联网设备Table 1 IoT device list

数据集中的物联网设备类型包括网络摄像头、智能开关、空气质量传感器、智能音箱、智能灯泡、智能相框及医疗保健设备等。非物联网设备包括打印机、笔记本电脑、智能手机、平板电脑等。设备厂商涵盖了亚马逊、TP-Link、三星、贝尔金、Netatmo、苹果、惠普、NEST、谷歌等主流设备厂商。因此,基于该数据集开展的研究工作具有很好的普适性。

4 算法设计

本文改进了文献[15]提出的基于随机森林的物联网设备流量分类算法,在特征选择上除了流信息外也将每条流数据包信息作为统计参数,算法过程如下。

4.1 数据预处理

文献[15]公开的数据集中保存了从网关捕获的全部设备的混合流量,为了对机器学习模型进行训练和测试,先需要对流量做预处理,获取训练集DT和测试集DM。

原始流量数据是按天保存的,文献[15]直接使用设备一天的流量作为样本数据。由于设备一天的流量数据较多,在训练模型时耗费的时间较长。采用设备连接后几分钟内的流量数据作为样本,减少了机器学习模型训练时间,实验表明分类效果未受影响。

首先,对全部流量按MAC地址进行分割,然后,按算法1筛选出每类设备建立连接后几分钟内的流量,作为样本数据保存,最终,获取到80万条样本数据。对全部样本数据按设备类型进行了分类标注。

算法1 流量分割算法。

步骤1 输入时间阈值tT。

步骤2 读取未保存的第一个流,ts1为流开始时间,te1为流结束时间。

步骤3 读取下一个流,ts2为流开始时间,如果ts2-te1>tT,将从ts1~ts1+tT之间的所有数据包保存为一条数据,返回步骤1;如果ts2-te1<tT,流结束时间大于te1,将te1保存为新的流的结束时间,重复步骤3。

在这80万条数据中包含了表1中每类设备的样本数据,平均每类设备有2万~3万条样本。从各类设备样本中选取90%作为训练集DT,剩余样本混合后作为测试集DM。

4.2 特征提取

在处理后的样本数据中,编制脚本程序从中自动提取出流信息和数据包信息。流信息包括流数量、协议种类、最常用协议、端口数量、最常用端口等。数据包信息包括发送和接收到的总字节数和总包数信息、发送和接收数据包的TTL、发出和接收数据包的首个时间窗口等。

从样本中自动提取特征的算法如算法2所示。

算法2 特征提取算法。

步骤1 选取下一条流。

步骤2 记录流的个数、采用的协议、连接的端口。

步骤3 选取流中的下一个包。

步骤4 如果包是流中第一个包,记录接收窗口。

步骤5 记录包的长度、包的个数、数据包TTL。

步骤6 如果包是流中最后一个包,返回步骤1,否则返回步骤3。

步骤7 统计这条样本中流的数量、协议种类、最常用的协议、连接端口数量、最常用的端口、发送和接收的总字节数和总包数。

本文算法的特征向量包括流信息和包信息,如表2所示。

表2 特征向量Table 2 Feature vectors

4.3 算法实现

在分类算法设计上,近年来机器学习算法得到了广泛应用并取得良好效果,如朴素贝叶斯(naive Bayes)、支持向量机(supporting vector machine)、K近邻(KNN)、决策树(decision trees)、随机森 林(random forest)、神 经 网 络(neural network)等。通常,流量分类场景中特征向量复杂度远少于图像处理、自然语言处理等场景,因此一般不必采用太复杂的机器学习算法(如深度学习)即可取得良好效果。

随机森林是一种使用多棵决策树进行训练和预测的分类器,从原始的训练数据中有放回地抽取k个样本构成m个训练集,在每个训练集上构造一棵决策树。构造决策树时,在节点寻找特征进行分裂时,随机选取一些特征,在抽取到的特征中选择最优解进行分裂,最终根据多数投票原则产生分类结果。该算法已在流量分类等应用场景中得到了广泛应用。

根据表2中的特征向量,在Python集成开发环境中利用Scikit-Learn工具包实现了随机森林算法。设置时间阈值tT为10 min,设置随机森林算法中树的数量为10。利用每类设备的训练集DT对模型进行训练,在测试集DM上进行了测试,并统计了分类准确率、召回率、F1得分等情况。

5 实验结果

基于公开数据集,对文献[15]算法和本文算法进行了对比测试,并比较了分类准确率、召回率、F1得分、混淆矩阵等指标。

5.1 评价标准

对机器学习算法的评价标准有分类准确率、召回率和F1得分,也包括混淆矩阵。例如,预测为正的样本中,实际为正的样本数为TP,实际为负的样本数为FP;预测为负的样本中,实际为正的样本数为FN,实际为负的样本数为TN。

分类准确率定义为

召回率定义为

F1得分定义为

混淆矩阵也是衡量分类算法性能的一种方式,如图1所示。矩阵中第i行第k列表示将第i种设备错误识别成第k种设备的样本数量,颜色越深表示样本数越多。这样,如果对角线位置的方块颜色越深而其他位置颜色越浅,则表示分类器分类的准确性越高。

图1 文献[15]中算法的混淆矩阵Fig.1 Confusion matrix of algorithm in Ref.[15]

5.2 文献[15]中算法分类效果

在公开数据集上复现了文献[15]中提出的算法,并进行了测试。该算法以某设备一天内的流量数据作为样本集,在特征选择上只采用样本集中流信息作为统计参数。该算法分类效果如表3所示。

表3 文献[15]中算法的分类效果Table 3 Classification results of algorithm in Ref.[15]

文献[15]中算法形成的混淆矩阵如图1所示,图中横竖坐标数字对应表1中的设备序号。可见,除对角线外,还零散分布着一些样本点。

5.3 本文算法分类效果

本文对文献[15]中算法进行了改进,一方面是将某设备连接建立后几分钟内的数据作为样本,而不是全天数据,另一方面是除了流信息外加入了数据包信息作为统计参数。本文算法的分类效果如表4所示。

表4 本文算法的分类效果Table 4 Classification results of proposed algorithm

本文算法的混淆矩阵如图2所示,图中横竖坐标数字对应表1中的设备序号。与图1比较,样本点基本集中在对角线处,除对角线外零散分布的样本点很少,因此分类效果优于图1。

图2 本文算法的混淆矩阵Fig.2 Confusion matrix of proposed algorithm

5.4 对比分析

通过5.2节和5.3节的实验结果表明:

1)本文算法对真实流量分类的平均分类准确率达82%,平均召回率达67%,平均F1得分为0.74,具有较好的实用性。

2)文献[15]中算法的平均分类准确率为56%,平均召回率为47%,平均F1得分为0.43,可见本文算法比文献[15]中算法分类性能有明显提升。

3)在设备流量分类技术的特征选择上,单纯选择流信息的分类效果并不很好,而加入数据包信息后的分类效果提升明显。

4)表3中Android Phone、Laptop、LiFX Smart Bulb等设备和表4中的 NEST Protect smoke alarm、Netatmo Welcome等设备未测到分类准确率、召回率和F1得分数据,原因是测试集DM中数据是从80万条样本中随机选择的,未包括这些设备流量。

5)本文算法对Belkin Wemo switch和Belkin wemo motion sensor两个设备分类效果较差,可能是由于同一厂商的设备行为比较相似,在流量上难以分辨。

6)2种算法的运算时间和内存占用情况如表5所示。由于本文算法特征向量维度大于文献[15]算法,故运算时间及内存占用均略高,但仍处于可接受范围之内。

表5 算法性能对比Table 5 Algorithm performance compar ison

本文算法与文献[15]算法相比,在统计参数的选择上更加精确,因此具有更好的分类效果。但由于特征向量维度的增加,本文算法实际消耗的计算和存储资源略有增长,因此更适用于对物联网设备的精确识别场景。

6 结 论

本文提出一种基于随机森林的物联网设备流量分类算法。在文献[15]公开数据集和提出算法的基础上,本文对文献[15]算法做了改进,主要如下:

1)将设备连接建立后几分钟内的数据作为样本,而没有采用全天数据,从而缩短了模型训练时间。

2)在特征选择中除了流信息外加入了完整流的数据包信息。

实验结果表明,本文提出算法的平均分类准确性由56%提高到82%,平均召回率由47%提高到67%,平均F1得分由0.43提高到0.74,混淆矩阵对比也有明显提升,具备更好的分类效果。

由于数据集中设备数量限制,本文只对部分物联网设备进行了研究,分类识别也仅限于已知设备。未来应研究更多类型的物联网设备,并分析归纳同厂家或同类设备的流量特点,探索对未知类型物联网设备的识别发现技术,更好地服务于网络空间安全管理。

猜你喜欢

数据包样本流量
直播助农冲流量 勿忘质量
二维隐蔽时间信道构建的研究*
寻找书业新流量
过去的一年开启了“流量”明星的凛冬时代?
C#串口高效可靠的接收方案设计
规划·样本
随机微分方程的样本Lyapunov二次型估计
网络数据包的抓取与识别
三大运营商联手阿里巴巴酝酿推出“流量钱包”
基于支持向量机的测厚仪CS值电压漂移故障判定及处理