基于TCP多会话的被动操作系统识别方法及装置与流程

文档序号:18630162发布日期:2019-09-06 23:30阅读:172来源:国知局
基于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地址未重新分配。目的端口为在预设时间段内设备访问的端口,本实施例不限于目的端口的种类。获取设备在预设时间段内进行访问目的端口而产生的多次tcp会话,每次tcp会话会产生相应的流量数据。将这些流量数据以pcap文件形式存放,pcap是一种通用的数据流格式。tcp数据包为tcp会话产生的流量数据中的数据包。本实施例对pcap文件进行离线处理,主要基于libpcap和mysql对pcap文件进行过滤和解析,然后存入数据库中。其中,libpcap是unix和linux平台下的网络数据包捕获函数包,大多数网络监控软件都以它为基础,mysql是一个关系型数据库管理系统。由于本实施例只涉及到tcp数据包,因此在获取到各tcp会话产生的流量数据中的tcp数据包后只对tcp数据包进行解析。s102,对各所述tcp数据包中的预设字段进行解析,获取各所述预设字段的解析结果,将任一所述tcp会话所产生的tcp数据包所有预设字段的解析结果作为该tcp会话的单会话指纹;预设字段为预先设定的ip和tcp协议中作为识别操作系统的特征项,包括ttl值、窗口大小和tcp选项等。对所有tcp会话产生的流量数据中tcp数据包的预设字段进行解析,获取每个tcp数据包中各预设字段的解析结果。将由同一tcp会话所产生的流量数据中tcp数据包的解析结果作为一个单会话指纹,即tcp会话与单会话指纹一一对应。s103,将相邻两个所述tcp会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述tcp会话的多会话特征;相邻两个tcp会话是指建立时间相邻的两个tcp会话。将相邻两个tcp会话的单会话指纹中同一预设字段的解析结果进行比较,例如将相邻两个tcp会话的单会话指纹中的ipid值进行比较,从而获取到所有tcp会话的单会话指纹中ipid值的变化规律。将每个预设字段的比较结果作为一个多会话特征项,因为其依赖于多个tcp会话,通过比较的方法计算出每个预设字段的多会话特征项。将所有预设字段的多会话特征项作为所有tcp会话的多会话特征。s104,将所有所述单会话指纹和所述多会话特征进行组合,将组合结果作为所有所述tcp会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。将每个预设字段的多会话特征项和预设时间段内各tcp会话的单会话指纹组成多会话指纹,不考虑多会话指纹中各单会话指纹的排列顺序。根据预先获取的指纹库和该设备进行多次tcp会话的多指纹特征,获取该设备的操作系统识别结果。指纹库为存放多会话指纹与操作系统类型、版本之间的关联关系的数据库。指纹库中的多会话指纹按照上述tcp会话的多会话指纹的获取方法预先获得。从预先获取的指纹库中查找出多会话指纹的方法为若该设备对应的多会话指纹中的多会话特征项与指纹库中任一多会话指纹中的多会话特征项完全相同,且该设备对应的多会话指纹中的所有单会话指纹在指纹库中该多会话指纹的单会话指纹中都存在,则指纹库中的该多会话指纹为查找出的多会话指纹。本实施例通过在预设时间段内获取设备建立各tcp会话的单会话特征项,根据所有tcp会话的单会话特征项提取出所有tcp会话的多个多会话特征项,将所有多会话特征项和各tcp会话的单会话特征项进行组合,从而获取所有tcp会话的多会话指纹,根据多会话指纹与指纹库的匹配结果,能够较准确识别出该设备的操作系统的类型和版本,本实施例克服了单会话特征的局限性,提高了操作系统识别的准确率和精度。在上述实施例的基础上,本实施例中获取设备在预设时间段内产生多次tcp会话的流量数据的步骤之前还包括:对于任一类预设操作系统,创建具有任一版本的该类预设操作系统的虚拟机;基于所述虚拟机的脚本分别与各预设目的端口进行tcp会话;获取所述虚拟机的所有所述tcp会话的多会话指纹,将所述虚拟机的所有所述tcp会话的多会话指纹与所述任一版本的该类预设操作系统之间的关联关系存放到所述指纹库中。具体地,为了构建指纹库,需要先创建多个虚拟机。在每个虚拟机上分别安装不同版本的各类操作系统,如windows、linux和macos三类主流操作系统。基于任一虚拟机上的脚本访问多个目的端口产生流量数据,如访问国内alextop10网站产生浏览器网络流量数据,该网站的目的端口为80和443,并且使用telnet产生22、139、445和3389等其他目的端口的流量数据。虚拟机在访问任一目的端口时建立tcp会话。telnet协议是tcp/ip协议族中的一员,是internet远程登录服务的标准协议和主要方式。采用上述对流量数据进行处理获取多会话指纹相同的方法,获取根据任一虚拟机产生的流量数据获取该虚拟机访问时所建立tcp会话的多特征指纹。将该虚拟机上所安装操作系统的类型和版本作为该虚拟机访问时所建立tcp会话的多特征指纹的标签。将任一多指纹特征和该多指纹特征的标签存入到指纹库中。在上述实施例的基础上,本实施例中对各所述tcp数据包中的预设字段进行解析,获取各所述预设字段的解析结果的步骤之前还包括:获取各所述tcp数据包中syn标志位和ack标志位的值;对于任一所述tcp数据包,若该tcp数据包中的syn标志位为1且ack标志位为0,则将该tcp数据包确定为初始数据包;相应地,对各所述tcp数据包中的预设字段进行解析,获取各所述预设字段的解析结果的步骤具体包括:对各所述初始数据包中的预设字段进行解析,获取各所述预设字段的解析结果。具体地,解析出各tcp数据包中syn标志位和ack标志位的值。其中,syn表示同步序号,用来建立连接,ack为确认序号。对各tcp会话产生流量数据中的每个tcp数据包进行判断,判断各tcp数据包的syn是否值为1且ack是否值为0。若满足两个条件,则说明为初始数据包。具体方法为对于各任一tcp数据包判断是否同时满足两个条件,如果不满足,则继续判断pcap文件是否读取完毕,未读取完毕则继续读取并解析单个tcp数据包,直到pcap文件读取完毕。在上述各实施例的基础上,本实施例中所述预设字段包括中显示拥塞通知ip协议字段、报文生存时间字段、未分片时ipid值是否为0、tcp协议中的显示拥塞通知字段、窗口大小、tcp选项结束标识、tcp选项结束后填充字节数、tcp选项填充标识、tcp选项最大报文段长度、tcp选项窗口扩大因子、tcp选项选择性确认、tcp选项时间戳标识、tcp选项布局,以及所述窗口大小和所述tcp选项最大报文段长度之间的比值。其中,显示拥塞通知ip协议字段ecn_ip_ect为rfc3168中设置的字段,使用ip首部tos字段中的第7位。报文生存时间字段ttl表示tcp数据包在网络中的生存时间,每经过一跳减一,ttl为0时丢弃该tcp数据包。未分片时ipid是否为0字段qk_dfnz_ipid表示未设置分片时ipid值是否为0。显示拥塞通知tcp协议字段flag_cwr为rfc3168中设置的字段,使用了保留字段第5位。显示拥塞通知tcp协议字段flag_ece为rfc3168中设置的字段,使用了保留字段第6位。窗口大小win表示可以接受的缓冲区大小。tcp选项结束标识tcpopt_eol为类型kind=0。tcp选项结束后填充字节数tcpopt_eol_padnum表示tcp选项结束后可能有填充。tcp选项填充标识tcpopt_nop为tcp选项结束标识的类型kind=1。tcp选项最大报文段长度tcpopt_mss与网络环境有关,kind=2。tcp选项窗口扩大因子tcpopt_wscale用于对窗口进行放大,类型kind=3。tcp选项选择性确认字段tcpopt_sack用于通知传输的另一方接收到的数据,kind=4。tcp选项时间戳标识tcpopt_ts_flag)为类型kind=8。tcp选项布局tcpopt_layout表示按照tcp选项出现的先后顺序排序。窗口和最大报文段长度比值qk_win_mss表示窗口大小与tcp选项最大报文段长度之间的比值。以上15个单会话特征项具有区分操作系统和版本的作用,因此根据这些单会话特征项提取出单会话指纹。在上述各实施例的基础上,本实施例中所述多会话指纹包括所述单会话指纹的组合和根据所述预设字段中的ipid值和时间戳确定的多会话特征;其中,所述单会话指纹的组合通过以下步骤获取:将所有操作系统的不重复单会话指纹按预设顺序进行排序;将所述设备的每个单会话指纹与所有所述不重复单会话指纹进行比较,获取所述设备的每个单会话指纹在所述不重复单会话指纹中的位置;将所述位置对应的值设置为1,将所述不重复单会话指纹中除设置为1的位置以外的位置对应的值设置为0,生成一个二进制字符串,将所述二进制字符串作为所述单会话指纹的组合;相应地,将相邻两个所述tcp会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述tcp会话的多会话特征的步骤具体包括:将相邻两个所述tcp会话的单会话指纹中的ipid值进行比较,根据比较结果确定所有所述tcp会话的ipid值的变化结果;所述变化结果包括全局变化、局部变化和保持不变;对于任意相邻两个所述tcp会话,将该相邻两个所述tcp会话建立的真实时间之间的时长除以该相邻两个所述tcp会话单会话指纹中的时间戳之间的差值,将计算结果作为该相邻两个所述tcp会话单会话的时间戳增长单位;将所有所述tcp会话的ipid值的变化结果和相邻两个所述tcp会话的时间戳增长单位作为所有所述tcp会话的多会话特征。具体地,根据解析出的预设字段的值,提取两个多会话特征项,即ipid变化值qk_ipid和时间戳增长单位qk_tcpopt_tsrate。具体将相邻两个tcp会话的单会话指纹中的ipid值进行比较,根据比较结果确定所有tcp会话的ipid值的变化结果,即ipid值为全局变化、局部变化或一直不变始终为0。计算任意相邻两个所述tcp会话建立的真实时间之间的时长和这两个tcp会话产生的tcp数据包中的时间戳的前四位之间的差值,将时长除以差值获取时间戳增长单位,单位为ms,rfc7323规定时间戳增长单位的范围为1-1000ms。与现有的基于tcp单会话的被动操作系统识别方法相比,本实施例提高了相同类型不同版本的操作系统区分度。现有应用单会话指纹的识别与本实施例中应用多会话指纹识别在相同的虚拟机网络流量中识别结果对比如表1所示。其中,a类结果是指数据标记为win7,识别结果为win7,b类结果指数据标记为win7,识别结果为win7或win8。表1中的数据表示两类识别结果的分布占比。可以看出采用多会话指纹显著提高了识别的精度。表1现有方法与本实施例的识别结果对比方法a类结果b类结果单会话指纹16.42%83.58%多会话指纹46.88%53.12%在本发明的另一个实施例中提供一种基于tcp多会话的被动操作系统识别装置,该装置用于实现前述各实施例中的方法。因此,在前述基于tcp多会话的被动操作系统识别方法的各实施例中的描述和定义,可以用于本发明实施例中各个执行模块的理解。图2为本发明实施例提供的基于tcp多会话的被动操作系统识别装置整体结构示意图,该装置包括获取模块201、解析模块202、比较模块203和识别模块204;其中:获取模块201用于获取设备在预设时间段内产生多次tcp会话的流量数据,以及各所述tcp会话产生的流量数据中的tcp数据包;其中,设备为操作系统未知,需要识别出操作系统的设备。预设时间段为预先设定的一个合理的时间段,在预设时间段内设备的ip地址未重新分配。目的端口为在预设时间段内设备访问的端口,本实施例不限于目的端口的数量。获取模块201获取设备在预设时间段内进行访问而产生的多次tcp会话,每次tcp会话会产生相应的流量数据。由于本实施例只涉及到tcp数据包,因此在获取到各tcp会话产生的流量数据中的tcp数据包后只对tcp数据包进行解析。解析模块202用于对各所述tcp数据包中的预设字段进行解析,获取各所述预设字段的解析结果,将任一所述tcp会话中tcp数据包所有预设字段的解析结果作为该tcp会话的单会话指纹;预设字段为预先设定的tcp数据包中的字段。解析模块202对所有tcp会话产生的流量数据中tcp数据包的预设字段进行解析,获取每个tcp数据包中各预设字段的解析结果。将由同一tcp会话所产生的流量数据中tcp数据包的解析结果作为一个单会话指纹,即tcp会话与单会话指纹一一对应。比较模块203用于将相邻两个所述tcp会话的单会话指纹中同一预设字段的解析结果进行比较,将所有所述预设字段的比较结果作为所有所述tcp会话的多会话特征;相邻两个tcp会话是指建立时间相邻的两个tcp会话。比较模块203将相邻两个tcp会话的单会话指纹中同一预设字段的解析结果进行比较,例如将相邻两个tcp会话的单会话指纹中的ipid值进行比较,从而获取到所有tcp会话的单会话指纹中ipid值的变化规律。将每个预设字段的比较结果作为一个多会话特征项,因为其依赖于多个tcp会话,通过比较的方法计算出每个预设字段的多会话特征项。将所有预设字段的多会话特征项作为所有tcp会话的多会话特征。识别模块204用于将所有所述单会话指纹和所述多会话特征进行组合,将组合结果作为所有所述tcp会话的多会话指纹,从预先获取的指纹库中查找出所述多会话指纹,将所述指纹库中所述多会话指纹对应的操作系统作为所述设备的操作系统识别结果。将每个预设字段的多会话特征项和预设时间段内各tcp会话的单会话指纹组成多会话指纹,不考虑多会话指纹中各单会话指纹的排列顺序。识别模块204根据预先获取的指纹库和该设备进行多次tcp会话的多指纹特征,获取该设备的操作系统识别结果。指纹库为存放多会话指纹与操作系统类型、版本之间的关联关系的数据库。指纹库中的多会话指纹按照上述tcp会话的多会话指纹的获取方法预先获得。从预先获取的指纹库中查找出多会话指纹的方法为若该设备对应的多会话指纹中的多会话特征项与指纹库中任一多会话指纹中的多会话特征项完全相同,且该设备对应的多会话指纹中的所有单会话指纹在指纹库中该多会话指纹的单会话指纹中都存在,则指纹库中的该多会话指纹为查找出的多会话指纹。本实施例通过在预设时间段内获取设备建立各tcp会话的单会话特征项,根据所有tcp会话的单会话特征项提取出所有tcp会话的多个多会话特征项,将所有多会话特征项和各tcp会话的单会话特征项进行组合,从而获取所有tcp会话的多会话指纹,根据多会话指纹与指纹库的匹配结果,能够较准确识别出该设备的操作系统的类型和版本,本实施例克服了单会话特征的局限性,提高了操作系统识别的准确率和精度。在上述实施例的基础上,本实施例中构造模块,用于对于任一类预设操作系统,创建具有任一版本的该类预设操作系统的虚拟机;基于所述虚拟机的脚本分别与各预设目的端口进行tcp会话;获取所述虚拟机的所有所述tcp会话的多会话指纹,将所述虚拟机的所有所述tcp会话的多会话指纹与所述任一版本的该类预设操作系统之间的关联关系存放到所述指纹库中。在上述实施例的基础上,本实施例中还包括筛选模块,用于获取各所述tcp数据包中syn标志位和ack标志位的值;对于任一所述tcp数据包,若该tcp数据包中的syn标志位为1且ack标志位为0,则将该tcp数据包确定为初始数据包;相应地,解析模块具体用于对各所述初始数据包中的预设字段进行解析,获取各所述预设字段的解析结果。在上述各实施例的基础上,本实施例中所述预设字段包括中显示拥塞通知ip协议字段、报文生存时间字段、未分片时ipid值是否为0、tcp协议中的显示拥塞通知字段、窗口大小、tcp选项结束标识、tcp选项结束后填充字节数、tcp选项填充标识、tcp选项最大报文段长度、tcp选项窗口扩大因子、tcp选项选择性确认、tcp选项时间戳标识、tcp选项布局,以及所述窗口大小和所述tcp选项最大报文段长度之间的比值。在上述各实施例的基础上,本实施例中所述多会话指纹包括所述单会话指纹的组合和根据所述预设字段中的ipid值和时间戳确定的多会话特征;其中,所述单会话指纹的组合通过以下步骤获取:将所有操作系统的不重复单会话指纹按预设顺序进行排序;将所述设备的每个单会话指纹与所有所述不重复单会话指纹进行比较,获取所述设备的每个单会话指纹在所述不重复单会话指纹中的位置;将所述位置对应的值设置为1,将所述不重复单会话指纹中除设置为1的位置以外的位置对应的值设置为0,生成一个二进制字符串,将所述二进制字符串作为所述单会话指纹的组合;相应地,比较模块具体用于:将相邻两个所述tcp会话的单会话指纹中的ipid值进行比较,根据比较结果确定所有所述tcp会话的ipid值的变化结果;所述变化结果包括全局变化、局部变化和保持不变;对于任意相邻两个所述tcp会话,将该相邻两个所述tcp会话建立的真实时间之间的时长除以该相邻两个所述tcp会话单会话指纹中的时间戳之间的差值,将计算结果作为该相邻两个所述tcp会话单会话的时间戳增长单位;将所有所述tcp会话的ipid值的变化结果和相邻两个所述tcp会话的时间戳增长单位作为所有所述tcp会话的多会话特征。本实施例提供一种电子设备,图3为本发明实施例提供的电子设备整体结构示意图,该设备包括:至少一个处理器301、至少一个存储器302和总线303;其中,处理器301和存储器302通过总线303完成相互间的通信;存储器302存储有可被处理器301执行的程序指令,处理器调用程序指令能够执行上述各方法实施例所提供的方法,例如包括:获取设备在预设时间段内产生多次tcp会话的流量数据,以及所述流量数据中的tcp数据包;对各tcp数据包中的预设字段进行解析,获取各预设字段的解析结果,将任一tcp会话对应的解析结果作为该tcp会话的单会话指纹;将相邻两个tcp会话的单会话指纹中同一预设字段的解析结果进行比较,将所有预设字段的比较结果作为所有tcp会话的多会话特征;将所有单会话指纹和多会话特征进行组合,获取多会话指纹,从指纹库中查找出多会话指纹,将查找的多会话指纹对应的操作系统作为识别结果。本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:获取设备在预设时间段内产生多次tcp会话的流量数据,以及所述流量数据中的tcp数据包;对各tcp数据包中的预设字段进行解析,获取各预设字段的解析结果,将任一tcp会话对应的解析结果作为该tcp会话的单会话指纹;将相邻两个tcp会话的单会话指纹中同一预设字段的解析结果进行比较,将所有预设字段的比较结果作为所有tcp会话的多会话特征;将所有单会话指纹和多会话特征进行组合,获取多会话指纹,从指纹库中查找出多会话指纹,将查找的多会话指纹对应的操作系统作为识别结果。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1