一种基于流量指纹的物联网设备实时自动检测及识别

2021-06-04 06:58:22王纪军吴小虎张明远
信息安全研究 2021年6期
关键词:字段报文指纹

徐 超 王纪军 吴小虎 张明远

(江苏电力信息技术有限公司 南京 江苏 210009)

据Gartner[1]报告,截至2016年,全球有超过64亿个物联网设备在线,并且估计到2020年全球物联网设备的数量将超过200亿.根据IoT Ana-lytics[2]的报告,预测从2019—2025年,全球设备的互联网连接数量将保持17%的年均增长率,而连接到尖端5G网络的设备数量将保持113%的复合年增长率.我们发现,尽管成千上万的公司正在积极地为各种类型的用户提供物联网,但是由于许多传统设备制造商在生产设备时并未考虑到计算机网络安全性的因素.安全性导致当前在各种家庭环境中传播,工业生产环境中的物联网设备具有极大的潜在安全问题,此类设备容易受到黑客和其他犯罪分子实施网络攻击,从而对整个网络空间造成危害.

近年来,网络安全的形式日益严峻,犯罪分子利用网络终端发起的网络攻击时间也很频繁,并且攻击造成的破坏和影响范围有明显的扩大趋势.2016年10月,Dyn遭受了分布式拒绝服务(DDoS)攻击.攻击者使用Mirai病毒和大量初始用户密码来非法访问网络中发现的IoT设备,然后继续对遭到破坏后发现的其他设备发起类似攻击.攻击者使用Mirai病毒非法控制了超过100万个网络摄像头、DVRS和其他终端设备,从而导致大量使用Dyn DNS服务的网站无法正常访问,包括Twitter,GitHub,Airbnb,PayPal和其他知名互联网服务崩溃,导致美国大规模的网络混乱.这类攻击又将“僵尸网络”(botnets)再次推向人们的视线,僵尸网络是指由网络组成的一些恶意病毒软件IoT设备,因此网络可以让黑客远程进行DDoS攻击,将各种网络设备用于垃圾邮件轰炸,窃取敏感密钥或勒索软件.近年来,物联网技术的飞速发展为这些黑客提供了机会.基于物联网的僵尸网络不同于在Windows平台上传播的普通僵尸病毒.个人计算机和服务器之间的连接将受到各种防病毒软件和防火墙的保护,而大多数物联网设备没有这种安全性机制,并且设备的数量非常大.物联网设备一旦受到黑客的控制,不仅可以在短时间内更快地传播僵尸病毒,而且还会对社会秩序造成许多不利影响.某些物联网病毒可以入侵交通信号灯系统,破坏城市的各种基础设施,并引起社会动荡.这些案例表明,当今世界的网络攻击正在扩展到物联网设备,并且物联网终端安全已成为网络安全领域不可或缺的一部分.

建立和完善这些设备的安全保护机制迫在眉睫.本文提出了一种用于在线物联网设备的实时自动检测和指纹识别方法,该方法首先检测物联网设备的实时数据,捕获设备的网络协议数据,然后提取与终端相关的网络协议信息和业务信息.在此基础上,实时发现新的物联网设备.其次,根据收集到的信息,使用设备指纹来识别所连接的物联网终端设备的类型.我们使用机器学习的多分类识别方法来识别物联网设备.

仿真实验表明,该方案可以达到93.75%的平均预测精度.

1 相关工作

Medaglia等人[3]提出,随着智能设备数量的爆炸性增长,物联网的隐私保护机制将成为信息安全领域的一个主要问题,尤其是移动物联网设备的安全性.为了实现互联智能设备的安全保护,最重要的工作就是完善其身份认证和管理系统.Weber[4]提出,为了保护物联网的安全,应考虑4个方面:防止网络攻击、数据认证、访问控制和保护用户(自然人和法人)的隐私.由于硬件资源有限,物联网的传感器层无法添加高级加密保护算法.

近年来,在物联网设备安全保护措施的研究中,设备识别和身份认证一直是重点.如何为物联网设备生成高度可识别的设备指纹已逐渐成为研究热点.Kohno[5]在2005年提出了一种在没有被检测设备的主动帮助情况为远程物理设备生成指纹的方案.他们通过使用部分设备硬件中的小时钟偏移误差来实现对设备的识别.2010年,Cui等人[6]设计了一种用于嵌入式网络设备的扫描分析系统,对网络空间中的公共可访问嵌入式网络设备进行了广泛的扫描.结果表明,超过54万台嵌入式设备仍在使用供应商设置的初始密码,存在很高的安全风险.这些设备占所有可扫描设备的13%,其中包括企业使用的防火墙、路由器、网络打印机以及家庭用户使用的VoIP适配器和IPTV机顶盒等.使用Nmap进行网络端口扫描,并以Telnet和HTTP服务器的初始输出为特征,实现了上述设备类型的识别.2015年,Radhakrishnan等人[7]设计了一种主动和被动2种方式可用于无线局域网设备的GTID设备类型识别系统,他们利用相同时钟漂移的不同设备硬件模块的差异,结合统计该技术使用网络流量数据生成设备类型的指纹,加入人工神经网络分类器的训练,并使用所有常用的方法,在校园、平板电脑、智能手机等设备上进行了大量的实验测试,结果表明准确性很好.2016年,曹来成等人[8]提出一种方案:使用HTTP数据头数据生成指纹,并使用k-means算法进行智能仪器身份验证,并以高精度识别物联网设备,例如网络摄像头、交换机和路由器.在另一项研究中,他们提出了一种使用HTTP数据标头的字段和HTML源Web服务中的部分信息来提取网络终端设备的Web指纹的方法.2017年,任春林等人[9]提出了一种从大量物联网设备的Web管理页面中提取特定类型设备特征的方法,并使用正样本反馈将PU算法(FE-PU)增强为过滤出符合要求的物联网设备的类型.他们在网络空间中的100万个Web管理页面上进行了一项实验,以实现对视频监视设备类型的识别.同年,Meidan等人[10]应用机器学习算法连接到物联网设备识别,通过从不同互联网设备中提取交通信息,使用多阶段分类器的监督学习进行训练,不仅实现了物联网设备的识别,并实现了对互联网设备的分类,精度可以达到99.281%.在2018年,Bezawada等人[11]还使用了物联网设备的流量数据来提取特征,实现了设备的行为指纹的生成,并以99%的准确性实现了物联网设备的识别.同年,Meidan等人[12]提出使用机器学习分类算法(例如随机森林算法和梯度增强算法)来识别受感染的物联网设备,从而为企业提供更好的工具来检测网络系统入侵.

2 基于GAN的图像隐写

本文所提的物联网设备实时自动检测及识别方案设计包含2个主要组件:物联网设备自动检测以及物联网设备指纹识别.

2.1 自动发现模块

自动检测是一种基于设备发现模块的余弦相似度匹配方法.在自动检测期间,我们提取特征以发现新的物联网设备.特征可以分为两大类:固有特征和协议特征.固有特征代表设备本身的特征,例如设备制造商、设备特定参数和其他信息.协议特征表示物联网设备的协议特征,例如源IP地址、目标IP地址、源端口ID、目标端口ID、传输层协议有效负载中默认特征值的出现次数.我们用v1,v2,v3,…,vi表示固有特征.用vi+1,vi+2,vi+3,…,vn表示协议特征.未知物联网设备表示为V=(v1,v2,v3,…,vn).样本数据的特征向量表示为Sj=(sj1,sj2,sj3,…,sjn),其中j表示第j个物联网设备的已知特征.

RAFM检测到未知设备后,将提取该设备的特征向量V,并使用余弦相似度来判断该未知设备是否为新型物联网设备:

(1)

如果计算出的相似度小于预设阈值,则将未知设备视为新设备,并将新设备的网络流量特征存储在数据库中.

2.2 指纹识别

我们在启动时收集了物联网设备的流程以进行分析.在启动期间,设备需要从电源关闭状态切换到正常工作状态,其主要工作是加载相关的软件和硬件配置.由于各个附加组件之间的依赖性,因此此过程的工作顺序很严格.

物联网设备的网络协议框架由应用层、传输层和网络层组成.但是,由于应用层协议种类繁多且数据量相对混合,我们仅选择传输层和网络层进行指纹识别:

在网络层,我们主要研究其报文报头的IP字段,调查不同的物联网设备之间是否在IP字段存在差异.IP报头的可用字段包括协议版本(version)、头部长度(header length)、区分服务(differentiated services feild)、报文长度(total length)、标志位(flags)、生存时间(time to live)、协议(protocol).我们发现其中的很多字段都与设备本身具有一定的相关度,因而在不同设备上采集的相同字段会具有明显的差异.

1) 版本字段占4 b,它描述了报文的IP协议版本,版本为IPv4则字段值为0100 B,版本为IPv6则为0110.

2) 区分服务字段占8 b,前6 b为DSCP字段,后2 b为CU字段,DSCP即区分服务代码点,也叫DS标记值.这8 b结合不同的编码实现对不同转发方式的控制.低2 b的CU字段即显示拥塞通知(explicit congestion notification, ECN)字段,使 BIG-IP 系统可以前瞻性地向同类设备发射调度路由器即将超载的信号,从而确保它们能够及时采取避退措施.

3) 标志位字段大小为3 b,只有后2 b是有效位.第2个bit是禁止分片标志(Don’t fragment, DF),如果这一标志是1,那么路由器在接收到当前报文后无法对报文实施分片工作;第3个bit是更多分段标志(more fragments, MF),如果1条报文长度过长需要进行分片,那么在分成的多个片段中,我们令末尾片段的这一标志为0,表示当前报文为最后片段,其余片段的这一标志均为1,接收方不断接收MF为1的分段,直到遇到MF置0的分段停止.

4) 生存时间片段占8 b,表示数据报可以在不同设备间传送的次数,是报文在被丢弃之前允许进行的最大网络跃点数,如果路由器收到的IP数据报的TTL值为0或1,路由器将不会转发该报文,而是将数据报丢弃并且发送ICMP超时信息.

在传输层,我们将传输层协议分为3类分别进行编码,分为TCP,UDP和其他协议3种,可以用于提取特征的字段有PORT字段、最大分段大小(maximum segment size)、窗口大小(window size value)、可选项(options).

5) 对于PORT字段,我们根据IANA的划分规则,将周知端口(0~1023)、注册端口(1024~49151)、动态端口(49152~65535)3种类别的端口分别编码为0,1,2.

6) 最大分段长度字段是报文一次能够发送的信息的极限,发送数据方在和接收方进行通信之前,TCP协议要求2边要先确定各自单次能接收的数据量最大值,也就是MSS字段值.这个最大值确定后,发送方在发送数据时如果数据量超过了MSS的限制,就必须分成多个片段进行发送.这个字段的值通常等于最大传输单元的长度减掉网络层报头长度以及TCP报头的长度.

对于网络层和传输层这些字段在不同设备上的差异,文献[12]作了大量研究.表1是部分物联网设备网络协议字段上的差异,这些设备包括物联网的多个领域:PLC Schneider和PLC SIEMENS均为工业系统物联网设备;而Printer Lexmark,DVR Dahua,Camera Linksys都是面向大众消费者的生活物联网设备;Router Cisco属于网络传输类型的物联网设备.从表1可以看出,不同类别的物联网设备在这些字段都有着不同程度的差异,这也验证了这些字段作为特征的有效性.

表1 不同物联网设备之间报文字段差异

根据以上分析,我们可以生成特征矩阵F1:

(2)

其中,n表示所采用特征的数量,m表示数据包的数量.然后我们把矩阵F1转化为一个m×n的向量F2:

F2=(f1,1,f1,2,…,f1,n,…,fm,1,fm,2,…,fm,n).

(3)

基于以上特征提取过程,我们可以获得最终特征向量F:

F=(F2,Y),

(4)

其中Y代表物联网的设备类型标签.

然后应用机器学习对设备指纹进行分类.考虑到简单性和通用性,我们的系统首先采用了随机森林.分类模型是一种离线学习架构.我们收集了一批准备阶段的流量样本进行学习,表2列出了设备列表.我们希望表1中的功能具有通用性,因此使用SVM和逻辑回归算法进行相同的实验.详细的性能报告在第3节中给出.

3 数据分析

3.1 数据采集

我们选取了网络摄像头、智能音响、门窗传感器、交换机、网桥、网络打印机等十几种物联网设备以及平板电脑、手机2种移动终端设备进行了数据采集.在采集流量数据时,数据的稳定性是一个需要慎重考虑的问题,通过我们的观察,随着设备开始工作后时间的变迁,设备的网络行为会发生各种无法预知的改变,这表明设备的网络行为具有很高的不确定和不稳定性,这样会在很大程度上降低指纹生成方案的可行性.

通过调查我们发现设备的工作过程可以划分为2个时期:启动时期和服务时期.启动时期即设备从接通电源开始到完成各种固件配置和软件设置的时期;而服务时期是设备在经历前面的启动时期后开始进行正常工作任务并实现各项功能的时期.我们发现,在服务时期内设备的网络通信行为会受到很多环境因素的干扰和影响,比如所连接的网络环境发生变化或者管理员更改网络配置时,设备发送、接收的报文数量和间隔时间都会因此受到影响发生变化.虽然部分由网络环境变化造成的设备网络行为变化可以在一定长度的时间内表现出规律性,但是如果要实现一个可行的设备指纹生成方案,采集数据的时间要尽可能短.因此在设备的服务时期进行数据采集会大大降低系统的可行性.

我们发现大部分物联网设备由于其功能简单、资源受限,因此很多配置项会以很简单的方式固化到软件和硬件中.这些粗糙的设计会从一定程度增加设备制造商维护、更新软件和硬件的难度,但是这样却为我们生成设备指纹提供了一个网络行为稳定的时间窗口——设备启动时期.设备在启动时期时需要从断电状态转换为正常工作状态,其主要工作是加载相关的软件和硬件配置.由于各个加载项之间存在的依赖关系,这个过程具有严格的工作顺序.例如Linux操作系统复杂的启动过程,首先基本输入输出系统(BIOS)需要检查硬件的状态,之后文件系统中的引导记录(MBR)进行加载,然后MBR再加载Linux操作系统自举程序,最后自举程序实现对整个操作系统的加载.而且,设备的启动时期经历的时间长度具有良好的稳定性,由于大部分物联网设备均为轻量级系统,它们的启动时间非常短暂.基于以上原因,我们采用物联网设备的启动时期进行流量数据的采集.

基于上述的采集数据方案,我们采集了10个不同设备的流量数据,如表2所示:

表2 物联网设备采集列表

我们对31台设备均进行了20次数据采集,每次采集40~60个左右的数据报文,每次采集单独保存为1个pcap文件.我们将每个pcap文件作为1个收集样本,提出来自10个设备的各个特征向量,并将特征矩阵组合为分类算法的输入.我们使用BP神经网络、支持向量机和k最近邻算法来测试上述数据.

3.2 数据测试

我们对3种分类模型的训练结果进行了10次交叉验证,即将数据集随机分为10个部分,其中9个作为训练集,其余1个作为测试集,分别在模型上执行10次.对于测试,将10个分类的准确度取平均值作为最终算法的准确度估算值.结果如表3所示.

从以上结果可以看出,BP神经网络和SVM算法对于该系统采用的特征模式显然具有良好的识别效果.与BP算法相比,SVM具有一些优势.我们选择在本文方案中使用SVM算法.

表3 交叉验证准确率

我们在SVM上构建了一个多分类器,并且使用二进制分类器对每种设备类型进行了训练.

SVM的识别精度如图1所示,我们发现8台设备的准确率超过90%.而其他2个设备的准确率仅为80%.这证明RAFM非常不稳定.但是,当我们进入图2所示的混淆矩阵时,其他2个设备的准确度仅为80%的原因是它们是TP-Link的类似设备.这反过来证明了本文方案的准确性.

图1 物联网设备的识别准确率

图2 物联网设备的预测标签

4 结 论

在本文中我们提出了一种基于流量指纹的物联网设备实时自动检测及识别方案,实现物联网设备的自动发现和类型识别.实验结果表明,本文方案可以有效发现物联网设备连接并进行类型识别,其识别精度可达93.75%.在我们的工作中,因实验环境受限仅测试了10种类型的物联网设备.在未来的工作中,我们将尝试将本文方案应用于更多的场景;同时,我们也将尝试将更多的检测方法[13-15]应用到基于流量指纹的物联网设备实时自动检测及识别应用中.

猜你喜欢
字段报文指纹
基于J1939 协议多包报文的时序研究及应用
汽车电器(2022年9期)2022-11-07 02:16:24
图书馆中文图书编目外包数据质量控制分析
像侦探一样提取指纹
为什么每个人的指纹都不一样
CTCS-2级报文数据管理需求分析和实现
浅析反驳类报文要点
中国外汇(2019年11期)2019-08-27 02:06:30
ATS与列车通信报文分析
基于自适应稀疏变换的指纹图像压缩
自动化学报(2016年8期)2016-04-16 03:39:00
可疑的指纹
CNMARC304字段和314字段责任附注方式解析