一种基于TCP/IP协议栈指纹的操作系统被动识别方法及系统技术方案

技术编号:23472974 阅读:38 留言:0更新日期:2020-03-06 14:12
本发明专利技术提供了一种基于TCP/IP协议栈指纹的操作系统被动识别方法及系统,在不需要对网络加密流量解密的前提下,利用IP协议、TCP协议以及TLS协议的头部字段信息和网络流包长和包传输时间序列的统计信息,识别客户端的操作系统类型以及主要版本信息,进而评估目标网络中各主机的网络安全漏洞风险,推断互联网中NAT设备的存在数量。本发明专利技术借鉴流量分类领域中的已有成果,在特征集中引入网络流的统计信息特征,增强不同操作系统流量之间的区分性;并首次将LightGBM模型作为完成识别任务的机器学习模型,利用该模型支持类别特征输入的特性,解决了多维度类别特征one‑hot编码后导致的特征维度爆炸问题。

A passive identification method and system of operating system based on fingerprint of TCP / IP protocol stack

【技术实现步骤摘要】
一种基于TCP/IP协议栈指纹的操作系统被动识别方法及系统
本专利技术涉及一种基于TCP/IP协议栈指纹的操作系统被动识别方法及系统,属于计算机软件

技术介绍
近些年来,由于各种智能设备使用量的增长和网络加密技术的发展,网络监控和管理技术面临越来越多的问题和挑战。众所周知,了解本地网络中所有主机的操作系统信息,是完成保障网络安全,优化网络管理等任务必不可少的一环。一方面,大部分网络漏洞与特定的操作系统种类和版本有关,因此掌握本地网络中各主机的操作系统信息有助于及时修补潜在漏洞,免受恶意攻击;另一方面,网络地址转换(NAT)设备在互联网中的部署规模日益增大,严重破坏了IP协议的端到端特性,增加了网络拓扑的复杂性,而对于操作系统识别方法的研究可用于测量网络中的NAT规模。识别网络中客户端操作系统信息的方法主要分为两种:主动和被动。主动识别方法指构造特定的网络报文发往待测主机,根据待测主机的响应推断其操作系统相关信息,具有针对性强和准确性高等特点。然而,主动识别行为很容易被入侵检测系统或网络防火墙等安全设备检测并拦截,无法将探测数据包发送到目标主机,导致其仅适用于少量场景。与主动识别方法相比,被动识别方法不需要和目标主机进行交互,仅需监听网络中的数据包,通过提取并利用网络数据包中的协议头部信息,载荷信息和其他信息来识别目标主机的操作系统。由于被动识别方法不受防火墙等安全设备的影响,其适用范围更广,但其局限性是识别准确性相对较差。根据是否加密,操作系统被动识别方法的研究对象可分为明文流量和加密流量。对于明文流量,操作系统被动识别的主流方法是利用深度包检测(DPI)技术获取网络数据包中应用层的特征字符串,并结合正则匹配技术在已经构建好的字典或数据库中通过查询得到客户端的操作系统信息。例如,利用HTTP协议中的User-Agent字段,DNS协议中操作系统开发商的相关域名以及NTP协议的服务器地址等信息都可以获取客户端的操作系统信息。对于加密流量,操作系统被动识别方法通常利用了操作系统在实现TCP/IP协议栈时的细微差异以及设备性能上的差异。对于不同类型的操作系统,客户端发往服务端的TCP握手报文和TLSClientHello报文中都隐含了大量操作系统信息。例如,IP层的TTL初始值、报文长度值,TCP层的WIN初始值、MSS初始值、Options初始序列和TLS层的TLS版本、加密套件序列、扩展类型序列等信息都可以组成识别操作系统信息的指纹。然而,以上方法均不适用于加密网络中大规模主机操作系统信息的细粒度识别任务。仅利用TCP握手报文的IP层和TCP层信息,在识别客户端操作系统主版本任务中的准确率、召回率和精度都非常低,难以满足要求。因此,从网络流信息中引入新的指纹特征,比如TLS层的参数信息和网络流的统计信息,并结合性能更好的机器学习模型,是解决加密网络中大规模主机操作系统信息细粒度识别问题的关键。
技术实现思路
本专利技术的目的是将现有技术的已有成果结合起来,并引入新的网络流特征处理方法,克服当前技术对于动态网络中加密流量客户端操作系统信息识别精度和粒度不佳的缺陷。在不需要对网络加密流量解密的前提下,利用IP协议、TCP协议以及TLS协议的头部字段信息和网络流包长和包传输时间序列的统计信息,识别客户端的操作系统类型以及主要版本信息,进而评估目标网络中各主机的网络安全漏洞风险,推断互联网中NAT设备的存在数量。本专利技术的技术方案如下:一种基于TCP/IP协议栈指纹的操作系统被动识别方法,包括以下步骤:(1)采集待测加密流量数据,通过主被动的方法对数据集中的全部样本完成属性标注;(2)将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,并提取每次会话中TCPSYN报文的IP层,TCP层头部参数,TLSClientHello报文的TLS层头部参数,以及整个会话关于包长和包到达时间相邻差的统计信息,得到特征集;(3)将提取的特征数据输入训练完成的操作系统被动识别模型中,得到待测流量客户端的操作系统信息;其中,所述操作系统被动识别模型通过下述训练方法得到:(a)采集不同操作系统类型和版本的加密流量数据作为样本数据集,通过主被动的方法对样本数据集中的全部样本完成属性标注;(b)对完成标注的流量数据提取流量特征:将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,提取每次会话中TCPSYN报文的IP层,TCP层头部参数以及TLSClientHello报文的TLS层头部参数,得到一次会话的头部字段特征集,并基于整个会话中的包长和包到达时间序列,构建马尔可夫状态转移概率矩阵,得到一次会话的统计类特征集;(c)将特征集数据作为输入训练LightGBM模型。进一步地,上述方法中采集加密流量数据的操作系统类型包括Windows,MacOS,Linux,Android和iOS;操作系统版本包括该五类操作系统的主流版本,在本专利技术一实施例中采集21种主流版本。进一步地,上述方法中提取的特征数据在模型输入前还包括预处理:完成缺失数据的填充、数据归一化以及文本特征转化为离散数值特征等操作。进一步地,步骤(c)在训练模型时还包括通过K折交叉验证对该模型不断调参优化,并结合准确率、召回率、精度、P-R曲线以及混淆矩阵等指标评估模型性能。进一步地,步骤(3)所述操作系统信息包括操作系统类型和版本。一种基于TCP/IP协议栈指纹的操作系统被动识别系统,包括:数据采集模块:采集待测加密流量数据,通过主被动的方法对数据集中的全部样本完成属性标注;特征数据提取模块:将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,并提取每次会话中TCPSYN报文的IP层,TCP层头部参数,TLSClientHello报文的TLS层头部参数,以及整个会话关于包长和包到达时间相邻差的统计信息,得到特征集;识别模块:将提取的特征数据输入训练完成的操作系统被动识别模型中,得到待测流量客户端的操作系统信息;模型训练模块:采集不同操作系统类型和版本的加密流量数据作为样本数据集,通过主被动的方法对样本数据集中的全部样本完成属性标注,对完成标注的流量数据提取流量特征:将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,提取每次会话中TCPSYN报文的IP层,TCP层头部参数以及TLSClientHello报文的TLS层头部参数,得到一次会话的头部字段特征集,并基于整个会话中的包长和包到达时间序列,构建马尔可夫状态转移概率矩阵,得到一次会话的统计类特征集,将特征集本文档来自技高网
...

【技术保护点】
1.一种基于TCP/IP协议栈指纹的操作系统被动识别方法,包括以下步骤:/n(1)采集待测加密流量数据,通过主被动的方法对数据集中的全部样本完成属性标注;/n(2)将元组<IP source,IP destination,Port source,Port destination>作为一次网络会话的唯一标识,并提取每次会话中TCP SYN报文的IP层,TCP层头部参数,TLS ClientHello报文的TLS层头部参数,以及整个会话关于包长和包到达时间相邻差的统计信息,得到特征集;/n(3)将上述特征集中的特征数据输入训练完成的操作系统被动识别模型中,得到待测流量客户端的操作系统信息;/n其中,/n所述操作系统被动识别模型通过下述训练方法得到:/n(a)采集不同操作系统类型和版本的加密流量数据作为样本数据集,通过主被动的方法对样本数据集中的全部样本完成属性标注;/n(b)对完成标注的流量数据提取流量特征:将元组<IP source,IP destination,Portsource,Port destination>作为一次网络会话的唯一标识,提取每次会话中TCP SYN报文的IP层,TCP层头部参数以及TLS Client Hello报文的TLS层头部参数,得到一次会话的头部字段特征集,并基于整个会话中的包长和包到达时间序列,构建马尔可夫状态转移概率矩阵,得到一次会话的统计类特征集;/n(c)将特征集数据作为输入训练LightGBM模型。/n...

【技术特征摘要】
1.一种基于TCP/IP协议栈指纹的操作系统被动识别方法,包括以下步骤:
(1)采集待测加密流量数据,通过主被动的方法对数据集中的全部样本完成属性标注;
(2)将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,并提取每次会话中TCPSYN报文的IP层,TCP层头部参数,TLSClientHello报文的TLS层头部参数,以及整个会话关于包长和包到达时间相邻差的统计信息,得到特征集;
(3)将上述特征集中的特征数据输入训练完成的操作系统被动识别模型中,得到待测流量客户端的操作系统信息;
其中,
所述操作系统被动识别模型通过下述训练方法得到:
(a)采集不同操作系统类型和版本的加密流量数据作为样本数据集,通过主被动的方法对样本数据集中的全部样本完成属性标注;
(b)对完成标注的流量数据提取流量特征:将元组<IPsource,IPdestination,Portsource,Portdestination>作为一次网络会话的唯一标识,提取每次会话中TCPSYN报文的IP层,TCP层头部参数以及TLSClientHello报文的TLS层头部参数,得到一次会话的头部字段特征集,并基于整个会话中的包长和包到达时间序列,构建马尔可夫状态转移概率矩阵,得到一次会话的统计类特征集;
(c)将特征集数据作为输入训练LightGBM模型。


2.如权利要求1所述一种基于TCP/IP协议栈指纹的操作系统被动识别方法,其特征在于,采集加密流量数据的操作系统类型包括Windows,MacOS,Linux,Android和iOS。


3.如权利要求2所述一种基于TCP/IP协议栈指纹的操作系统被动识别方法,其特征在于,采集21种操作系统版本类型。


4.如权利要求1所述一种基于TCP/IP协议栈指纹的操作系统被动识别方法,其特征在于,步骤(3)中特征集数据在输入识别模型前还包括预处理:完成缺失数据的填充、数据归一化以及文本特征转化为离散数值特征。


5.如权利要求1所述一种基于TCP/IP协议栈指纹的操作系统被动...

【专利技术属性】
技术研发人员:石俊峥熊刚范鑫磊苟高鹏李镇宋嘉莹刘梦严
申请(专利权)人:中国科学院信息工程研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1