当前位置: 首页 > 专利查询>清华大学专利>正文

基于TCP多会话的被动操作系统识别方法及装置制造方法及图纸

技术编号:22060265 阅读:47 留言:0更新日期:2019-09-07 17:47
本发明专利技术实施例提供一种基于TCP多会话的被动操作系统识别方法及装置,方法包括:获取设备在预设时间段内产生多次TCP会话的流量数据,以及所述流量数据中的TCP数据包;对各TCP数据包中的IP和TCP协议字段进行解析,获取各字段的解析结果,将任一TCP会话对应的解析结果中的预设字段作为该TCP会话的单会话指纹;将相邻两个TCP会话的单会话指纹中同一字段的解析结果进行比较,将所有字段的比较结果作为所有TCP会话的多会话特征;将所有单会话指纹的组合和多会话特征组成多会话指纹,从指纹库中查找出多会话指纹,将查找的多会话指纹对应的操作系统作为识别结果。本发明专利技术实施例提高了操作系统识别的准确率和精度。

Passive Operating System Recognition Method and Device Based on TCP Multi-session

【技术实现步骤摘要】
基于TCP多会话的被动操作系统识别方法及装置
本专利技术属于网络安全
,尤其涉及一种基于TCP多会话的被动操作系统识别方法及装置。
技术介绍
随着互联网的发展,越来越多的设备都连接到了互联网上,而保护这些设备的安全非常重要。操作系统识别是通过远程主机所发送的TCP/IP数据包检测和确定主机的操作系统类型和版本。首先,从消极的角度看攻击者需要检测目标主机的操作系统,是为了利用其漏洞进行攻击。其次,从积极的方面看网络管理员也需要操作系统识别。网络管理员需要尽可能的了解本网络中的信息,包括了解连接到网络中的主机的操作类型和版本。例如,如果运行旧版本操作系统的设备很容易被攻击。通过使用操作系统识别技术,网络管理员可以清楚掌握哪台机器的操作系统需要升级。操作系统指纹则是指从某一操作系统所发出的网络数据包中提取的可以区分不同操作系统的特征。其原理是不同的操作系统厂商在实现TCP/IP协议栈时出现了细微的差别,这些差别具有独特的特性,故而被称为“指纹”。例如IP(InternetProtocolAddress,互联网协议地址)协议的TTL(TimeToLive,缓存的生存时间)字段以及TCP(TransmissionControlProtocol,传输控制协议)的窗口字段和选项字段等就是最常见的可以区分不同操作系统的预设字段。操作系统识别技术分为主动和被动两类。主动操作系统指纹识别需要精心构造不同的数据包并发送出去,根据返回的结果来分析目标的具体操作系统。此方法最大的缺点在于发送的数据包会被防火墙或者入侵检测系统拦截,并且会暴露自身的信息。被动操作系统指纹识别比主动操作系统指纹识别来说比较限制,只能被动的接受流量,从流量中分析出操作系统信息。传统的被动操作系统识别技术主要根据TCP会话建立时发送的数据包中的IP和TCP协议的预设字段来识别不同类型和版本的操作系统,其中的代表性工具就是p0f。此外,操作系统识别本质上是一个分类问题,因此新的方法是采用机器学习分类算法训练出模型来识别出操作系统。目前被动操作系统技术主要分为两类方法,一是传统基于指纹库匹配的识别方法;二是基于机器学习分类算法训练模型的识别方法。传统的操作系统识别方法所开发的工具均带有操作系统指纹库,识别出通过匹配指纹库给出结果。匹配成功时给出识别结果,匹配不成功时无法给出结果。而基于机器学习分类算法训练模型的识别方法,可以对未知操作系统进行结果预测,预测的结果也只能在已有模型的操作系统范围内。但是这两种方法本质上都是需要提取特征项,包括可以直接作为特征的字段或者间接计算的特征项。特征项的好坏决定了两种方法的给出的识别结果的正确率。现有的特征提取方法根据一个TCP会话的特征项进行匹配或识别,导致对相同类型不同版本的操作系统往往难以区分。
技术实现思路
为克服上述现有的操作系统识别方法安全性差且相同类型不同版本的操作系统往往难以区分导致的识别精度低的问题或者至少部分地解决上述问题,本专利技术实施例提供一种基于TCP多会话的被动操作系统识别方法及装置。根据本专利技术实施例的第一方面,提供一种基于TCP多会话的被动操作系统识别方法,包括:获取设备在预设时间段内产生多次TCP会话的流量数据,以及各所述TCP会话产生的流量数据中的TCP数据包;对各所述TCP数据包中的预设字段进行解析,获取各所述预设字段的解析结果,将任一所述TCP会话所产生的TCP数据包中所有预设字段的解析结果作为该TCP会话的单会话指纹;将相邻两个所述TCP会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述TCP会话的多会话特征;将所有所述单会话指纹组合和所述多会话特征作为所有所述TCP会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。根据本专利技术实施例第二方面提供一种基于TCP多会话的被动操作系统识别装置,包括:获取模块,用于获取设备在预设时间段内产生多次TCP会话的流量数据,以及各所述TCP会话产生的流量数据中的TCP数据包;解析模块,用于对各所述TCP数据包中的预设字段进行解析,获取各所述预设字段的解析结果,将任一所述TCP会话中TCP数据包所有预设字段的解析结果作为该TCP会话的单会话指纹;比较模块,用于将相邻两个所述TCP会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述TCP会话的多会话特征;识别模块,用于将所有所述单会话指纹的组合和所述多会话特征作为所有所述TCP会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。根据本专利技术实施例的第三个方面,还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器调用所述程序指令能够执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于TCP多会话的被动操作系统识别方法。根据本专利技术实施例的第四个方面,还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行第一方面的各种可能的实现方式中任一种可能的实现方式所提供的基于TCP多会话的被动操作系统识别方法。本专利技术实施例提供一种基于TCP多会话的被动操作系统识别方法及装置,该方法通过在预设时间段内获取设备建立各TCP会话的单会话特征项,根据所有TCP会话的单会话特征项提取出所有TCP会话的多个多会话特征项,将所有多会话特征项和各TCP会话的单会话特征项进行组合,从而获取所有TCP会话的多会话指纹,根据多会话指纹与指纹库的匹配结果,能够较准确识别出该设备的操作系统的类型和版本,本实施例克服了单会话特征的局限性,提高了操作系统识别的准确率和精度。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例提供的基于TCP多会话的被动操作系统识别方法整体流程示意图;图2为本专利技术实施例提供的基于TCP多会话的被动操作系统识别装置整体结构示意图;图3为本专利技术实施例提供的电子设备整体结构示意图。具体实施方式为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在本专利技术的一个实施例中提供一种基于TCP多会话的被动操作系统识别方法,图1为本专利技术实施例提供的基于TCP多会话的被动操作系统识别方法整体流程示意图,该方法包括:S101,获取设备在预设时间段内产生多次TCP会话的流量数据,以及各所述TCP会话产生的流量数据中的TCP数据包;其中,设备为操作系统未知,需要识别出操作系统的设备。预设时间段为预先设定的一个合理的时间段,在预设时间段内设备的IP地址未重新分配。本文档来自技高网
...

【技术保护点】
1.一种基于TCP多会话的被动操作系统识别方法,其特征在于,包括:获取设备在预设时间段内产生的多次TCP会话的流量数据,以及各所述TCP会话产生的流量数据中的TCP数据包;对各所述TCP数据包中的P和TCP协议字段进行解析,获取各预设字段的解析结果,将任一所述TCP会话所产生的TCP数据包中所有预设字段的解析结果作为该TCP会话的单会话指纹;将相邻两个所述TCP会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述TCP会话的多会话特征;将所有所述单会话指纹的组合和所述多会话特征作为所有所述TCP会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。

【技术特征摘要】
1.一种基于TCP多会话的被动操作系统识别方法,其特征在于,包括:获取设备在预设时间段内产生的多次TCP会话的流量数据,以及各所述TCP会话产生的流量数据中的TCP数据包;对各所述TCP数据包中的P和TCP协议字段进行解析,获取各预设字段的解析结果,将任一所述TCP会话所产生的TCP数据包中所有预设字段的解析结果作为该TCP会话的单会话指纹;将相邻两个所述TCP会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述TCP会话的多会话特征;将所有所述单会话指纹的组合和所述多会话特征作为所有所述TCP会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。2.根据权利要求1所述的基于TCP多会话的被动操作系统识别方法,其特征在于,获取设备在预设时间段内产生多次TCP会话的流量数据的步骤之前还包括:对于任一类预设操作系统,创建具有任一版本的该类预设操作系统的虚拟机;基于所述虚拟机的脚本分别与各预设目的端口进行TCP会话;获取所述虚拟机的所有所述TCP会话的多会话指纹,将所述虚拟机的所有所述TCP会话的多会话指纹与所述任一版本的该类预设操作系统之间的关联关系存放到所述指纹库中。3.根据权利要求1所述的基于TCP多会话的被动操作系统识别方法,其特征在于,对各所述TCP数据包中的IP和TCP协议字段进行解析,获取各预设字段的解析结果的步骤之前还包括:获取各所述TCP数据包中SYN标志位和ACK标志位的值;对于任一所述TCP数据包,若该TCP数据包中的SYN标志位为1且ACK标志位为0,则将该TCP数据包确定为初始数据包;相应地,对各所述TCP数据包中的IP和TCP协议字段进行解析,获取各预设字段的解析结果的步骤具体包括:对各所述初始数据包中的IP和TCP协议中的所有字段进行解析,获取各所述预设字段的解析结果。4.根据权利要求1-3任一所述的基于TCP多会话的被动操作系统识别方法,其特征在于,所述预设字段包括显示拥塞通知IP协议字段、报文生存时间字段、未分片时IPID值是否为0、显示拥塞通知TCP协议字段、窗口大小、TCP选项结束标识、TCP选项结束后填充字节数、TCP选项填充标识、TCP选项最大报文段长度、TCP选项窗口扩大因子、TCP选项选择性确认、TCP选项时间戳标识、TCP选项布局,以及所述窗口大小和所述TCP选项最大报文段长度之间的比值。5.根据权利要求1-3任一所述的基于TCP多会话的被动操作系统识别方法,其特征在于,所述多会话指纹包括所述单会话指纹的组合和根据所述预设字段中的IPID值和时间戳确定的多会话特征;其中,所述单会话指纹的组合通过以下步骤获取:将所有操作系统的不重复单会话指纹按预设顺序进行排序;将所述设备的每个单会话指纹与所有所述不重复单会话指纹进行比较,获取所述设备的每个单会话指纹在所述不重复单会话指纹中的位置;将所述位置对应的值设置为1,将所述不重复单会话指纹中除设置为1的位置以外的位置对应的值设置为0,生成一个二进制字符串,将所述二进制字符串作为所述单会话指纹的组合;相应地,将相邻两个所述TCP会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述TCP会话的多会话特征的步骤具体包括:将相邻两个所述TCP会话的单会话指纹中的IPID值进行比较,根据比较结果确定所有所述TCP会话的IPID值的变化结果;所述变化结果包括全局变化...

【专利技术属性】
技术研发人员:李良盛段海新郑晓峰
申请(专利权)人:清华大学赛尔网络有限公司
类型:发明
国别省市:北京,11

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

1