CN110166522A - 服务器识别方法、装置、可读存储介质和计算机设备 - Google Patents
服务器识别方法、装置、可读存储介质和计算机设备 Download PDFInfo
- Publication number
- CN110166522A CN110166522A CN201910258414.7A CN201910258414A CN110166522A CN 110166522 A CN110166522 A CN 110166522A CN 201910258414 A CN201910258414 A CN 201910258414A CN 110166522 A CN110166522 A CN 110166522A
- Authority
- CN
- China
- Prior art keywords
- field
- server
- characteristic
- response message
- content
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请涉及一种服务器识别方法、装置、计算机可读存储介质和计算机设备,所述方法包括:向目标服务器发送请求,并接收所述目标服务器返回的响应信息;从所述响应信息中提取特征数据;将所述特征数据输入混合分类模型,生成目标识别结果,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的相关联的至少两个分类模型。本申请提供的方案可以准确地识别出目标服务器的类型和版本。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种服务器识别方法、装置、计算机可读存储介质和计算机设备。
背景技术
随着计算机技术的发展,Web浏览器成为人们日常工作生活中不可或缺的工具。尤其在企业中,经常需要对Web服务器进行漏洞扫描或,此时需要先识别Web服务器的信息。
目前的web服务器的信息识别方式,一般是向Web服务器发送HTTP(Hyper TextTransport Protocol,超文本传输协议)请求或者HTTPS(Hyper Text Transfer Protocolover Secure Socket Layer,安全超文本传输协议)请求请求后,根据返回内容响应头中的Server字段的内容来确定Web服务器的信息。然而,Server字段的内容可以被人为篡改,从而导致识别结果不准确。
发明内容
基于此,有必要针对web服务器识别结果不准确的技术问题,提供一种服务器识别方法、装置、计算机可读存储介质和计算机设备。
一种服务器识别方法,包括:
向目标服务器发送请求,并接收所述目标服务器返回的响应信息;
从所述响应信息中提取特征数据;
将所述特征数据输入混合分类模型,生成目标识别结果,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的相关联的至少两个分类模型。
一种服务器识别装置,所述装置包括:
响应模块,用于向目标服务器发送请求,并接收所述目标服务器返回的响应信息;
提取模块,用于从所述响应信息中提取特征数据;
生成模块,用于将所述特征数据输入混合分类模型,生成目标识别结果,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的相关联的至少两个分类模型。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述任一项方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述任一项方法的步骤。
上述服务器识别方法、装置、计算机可读存储介质和计算机设备,通过向目标服务器发送请求,从而得到目标服务器返回的响应信息;从响应信息中提取特征数据,从而得到能够代表目标服务器的特征数据;将该特征数据输入由至少两个分类模型组成的混合分类模型中,生成目标识别结果,从而能够准确地识别出目标服务器的类型和版本。
附图说明
图1为一个实施例中服务器识别方法的应用环境图;
图2为一个实施例中服务器识别方法的流程示意图;
图3为一个实施例中接收响应信息的流程示意图;
图4为一个实施例中提取特征数据步骤的流程示意图;
图5为另一个实施例中提取特征数据步骤的流程示意图;
图6为一个实施例中生成第一识别结果的步骤的流程示意图;
图7为一个实施例中生成目标识别结果的步骤流程示意图;
图8为一个实施例中服务器识别方法的流程示意图;
图9为另一个实施例中服务器识别装置的结构框图;
图10为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中服务器识别方法的应用环境图。该服务器识别的应用环境包括终端110和服务器120。终端110和服务器120通过网络连接。终端110具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
服务器120可以是web服务器。当用户对自己使用的web服务器或企业对内部的web服务器或云上的web服务器进行漏洞扫描和资产发现时,需要识别web服务器的类型和版本。则用户通过终端110向web服务器120发送至少两个异常请求,并接收web服务器120返回的至少两个响应信息。终端110从返回的每个响应信息中各提取三个特征,第一个特征为响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段这五个字段之间的相对位置。接着,终端110获取内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值,根据字段最大值和字段最小值对这五个字段进行标准化处理,得到这五个字段标准化处理后的相对位置。第二个特征为响应信息中的返回状态码,第三个特征为内容长度。同样地,终端110按照相同方式从每个响应信息中提取特征,并对每个响应信息中选取的5个字段进行标准化处理,得到每个响应信息中的五个字段标准化处理后的相对位置。接着,终端110将每个响应信息的这三个特征输入最近邻居模型(K-NearestNeighbor,简称KNN模型)中,得到第一识别结果。该第一识别结果包括web服务器120的类型和大致的版本范围。接着,终端110将每个响应信息的这三个特征和该第一识别结果输入决策树模型或逻辑回归模型,从而得到准确的web服务器120的类型和版本。
其中一个实施例中,终端110向web服务器120发送至少两个异常请求或者至少两个正常请求,并接收web服务器120返回的至少两个响应信息。终端110从返回的每个响应信息中各提取四个特征,第一个特征为响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段这五个字段之间的相对位置。接着,终端110内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值,根据字段最大值和字段最小值对这五个字段进行标准化处理,得到这五个字段标准化处理后的相对位置。第二个特征为响应信息中的返回状态码,第三个特征为行结束符,第四个特征为内容长度字段的大小写。同样地,终端110按照相同方式从每个响应信息中提取特征,并对每个响应信息中选取的5个字段进行标准化处理,得到每个响应信息中的五个字段标准化处理后的相对位置。接着,终端110将每个响应信息的这四个特征输入最近k近邻模型中,得到web服务器120的类型和大致的版本范围。接着,终端110将web服务器120的类型和大致的版本范围作为另一个特征,并与每个响应信息的四个特征一起输入决策树模型或逻辑回归模型,从而得到web服务器120的准确的类型和版本。
如图2所示,在一个实施例中,提供了一种服务器识别方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该服务器识别方法具体包括如下步骤:
步骤202,向目标服务器发送请求,并接收该目标服务器返回的响应信息。
其中,目标服务器是指需要辨别类型和版本的服务器。目标服务器包括但不限于是web服务器,数据库服务器,文件服务器和应用服务器等。web服务器一般是指网站服务器。数据库服务器是指运行在局域网中的一台或多台计算机和数据库管理系统软件构成的服务器。文件服务器是指用于存储文件的服务器,应用服务器是指通过各种协议把商业逻辑暴露给客户端的服务器。响应信息是指目标服务器针对终端发送的请求做出的相应地响应。目标服务器针对不同的请求返回的响应信息不同。
具体地,终端向目标服务器发送正常请求或者异常请求,并接收该目标服务器针对正常请求或者异常请求返回的响应信息。
在本实施例中,终端向目标服务器发送的请求可以是HTTP(Hyper TextTransport Protocol,超文本传输协议)请求,或者是HTTPS(Hyper Text TransferProtocol over Secure Socket Layer,安全超文本传输协议)请求。其中,HTTP是指从客户端到服务器端的请求消息,HTTP请求包括:消息首行中对资源的请求方法、资源的标识符及使用的协议。HTTPS是以安全为目标的HTTP通道,简单可以认为是HTTP的安全版。HTTP/HTTPS请求方法包含GET、HEAD、POST、PUT、DELETE、OPTIONS等。终端可使用上述任意方式向目标服务器发送正常请求。正常请求行由请求方法、请求URL和HTTP协议版本三个部分组成,例如“POST/HTTP/1.1”。并且终端可使用上述任意方式向目标服务器发送异常请求,异常请求是根据修改HTTP协议版本得到的非正常请求。例如,使用HEAD、POST发送异常请求:“HEAD/H/3.1\r\n\r\n”,“POST/H/3.1\r\n\r\n”。不同的服务器针对异常请求返回的响应内容是不同的。
步骤204,从该响应信息中提取特征数据。
其中,特征数据是指从响应信息中获取的某些带有目标服务器特征的数据,一类特征数据中可包括多个特征。该特征数据可以是响应信息中的字段,也可以是某些字段的内容。例如,当前世界时:Sun,15Jun 200317:10:49GMT中,当前世界时为响应信息中的一个字段,Sun,15Jun 200317:10:49GMT为当前世界时这个字段的内容。
具体地,终端从目标服务器返回的响应信息中提取字段和字段的内容作为特征数据。并且,终端从针对正常请求或异常请求返回的响应信息中提取的一些字段和字段的内容可以存在部分相同。例如,从针对正常请求或异常请求返回的响应信息中都提取当前世界时字段作为一个特征。
步骤206,将该特征数据输入混合分类模型,生成目标识别结果,该目标识别结果包括目标服务器的类型和版本;该混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的相关联的至少两个分类模型。
其中,混合分类模型包括至少两个相关联的分类模型,例如k近邻模型和决策树模型组成的混合分类模型,k近邻模型和逻辑回归模型组成的混合分类模型。并且,该混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的。
具体地,终端将从响应信息中提取的特征数据输入到混合分类模型中,混合分类模型根据内部的逻辑对特征数据进行处理,从而识别出特征数据所代表的目标服务器的类型和版本。
上述服务器识别方法中,通过向目标服务器发送请求,从而得到目标服务器返回的响应信息。从响应信息中提取特征数据,从而得到能够代表目标服务器的特征的数据。将该特征数据输入由至少两个分类模型组成的混合分类模型中,生成目标识别结果,从而能够准确地识别出目标服务器的类型和版本。
在一个实施例中,将该特征数据输入混合分类模型,生成目标识别结果包括:将该特征数据输入第一分类模型,生成第一识别结果;将该特征数据和该第一识别结果输入第二分类模型,生成目标识别结果。
其中,第一分类模型和第二分类模型为不同的模型。例如,第一分类模型可以是KNN模型,第二分类模型可以是决策树模型或者逻辑回归模型。第一识别结果为包括目标服务器类型和大致的版本范围的结果。目标识别结果为包括目标服务器类型和版本的结果。
具体地,终端将特征数据输入第一分类模型,第一分类模型根据内部的逻辑处理该特征数据,从而输出第一识别结果。进一步地,第一分类模型可以准确识别目标服务器的类型,但无法准确识别目标服务器的版本,只能识别出目标服务器大致的版本范围。因此,第一分类模型输出的第一识别结果为一条包括目标服务器的类型和大致的版本范围的结果。接着,终端将该第一识别结果作为另一个特征数据,并将该第一识别结果与之前的特征数据一起输入第二分类模型。第二分类模型根据内部的逻辑处理输入的第一识别结果和特征数据,生成该目标服务器的类型和版本。第二分类模型输出的目标服务器的类型和版本即为目标识别结果。通过将特征数据输入第一分类模型,得到目标服务器的类型和大致的版本范围。并将第一分类模型输出的结果作为另一个特征数据,与其它特征数据共同输入到第二分类模型中,得到该目标服务器的类型和版本,从而能够降低识别的错误率,提高识别的准确性。
在一个实施例中,如图3所示,向目标服务器发送请求,并接收该目标服务器返回的响应信息,包括:
步骤302,向目标服务器发送至少两次不同的请求,并接收该目标服务器返回的至少两个响应信息。
具体地,终端向目标服务器发送至少两次不同的正常请求,并等待目标服务器的响应。当目标服务器返回对每个正常请求的响应信息时,终端接收该目标服务器返回至少两个响应信息。或者,终端向目标服务器发送至少两次不同的异常请求,并等待目标服务器的响应。当目标服务器返回对每个异常请求的响应信息时,终端接收该目标服务器返回至少两个响应信息。
从该响应信息中提取特征数据,包括:
步骤304,从该至少两个响应信息的每个响应信息中提取特征数据,得到至少两类特征数据。
具体地,一个响应信息对应一类特征数据。终端从返回的每个响应信息中提取多个特征,构成该响应信息的一类特征数据。终端接收至少两个响应信息,从每个响应信息中提取多个特征,从而得到至少两类特征数据。
将该特征数据输入混合分类模型,生成目标识别结果,包括:
步骤306,将该至少两类特征数据输入第一分类模型,得到第一识别结果。
步骤308,将该至少两类特征数据和该第一识别结果输入第二分类模型,生成目标识别结果。
具体地,终端将得到的至少两类特征数据输入到第一分类模型,该第一分类模型按照内部逻辑对输入的至少两类特征数据进行处理,再输出至少两类特征数据所代表的目标服务器的类型和大致的版本范围。接着,终端将第一分类模型输出的目标服务器的类型和大致的版本范围作为第二分类模型的输入数据,并与该至少两类特征数据输入到第二分类模型中。第二分类模型通过内部的逻辑对输入的数据进行处理,最终生成该目标服务器的类型和版本。该第二分类模型输出的目标服务器的类型和版本即为最终的识别结果。
上述服务器识别方法中,通过向目标服务器发送至少两个请求,并从每个响应信息中提取特征,从而得到至少两类特征数据。并将至少两类特征数据输入到第一分类模型,对目标服务器做一个初步的识别,得到目标服务器的准确类型和大致的版本范围,缩短了目标服务器版本的识别范围。再将第一分类模型输出的第一识别结果和该至少两类特征数据输入第二分类模型,识别出服务器的准确类型和准确的版本。该方法只需要输入两个请求,就可以通过两个分类模型准确识别出目标服务器的类型和版本,解决了需要目前的服务器识别方式中发送大量请求才能够识别的问题,从而缩短了识别的时间。
在本实施例中,终端可以先向目标服务器发送一个正常请求或异常请求,当接收到目标服务器返回的响应信息后,再继续发送下一个正常请求或异常请求。当终端接收到目标服务器针对最后一个正常请求或异常请求返回的响应信息时,完成响应信息的接收操作。
在本实施例中,终端可以发送指定数量的正常请求或异常请求给目标服务器。其中,该指定数量大于等于2个。当终端将指定数量的正常请求或异常请求完全发送给目标服务器后,再接收目标服务器返回的响应信息。当终端接收到的目标服务器返回的响应信息的数量等于正常请求或异常请求的指定数量时,完成响应信息的接收操作。
在一个实施例中,终端从返回的每个响应信息中提取相同数量的特征数据。并且,终端从返回的每个响应信息中提取的特征数据相同。例如,终端从每个响应信息中提取的特征数据都是相同的字段或相同字段的内容等。
具体地,终端接收到至少两个响应信息后,从每个响应信息中提取指定数量的特征,以得到该响应信息的特征数据。例如,从每个响应信息中提取3个特征。并且,每个响应信息中的提取的特征数据是相同的,例如,每个响应信息中提取的3个特征都是多个字段的相对位置、返回状态码和内容长度。通过从响应信息中提取指定数量和相同的特征数据,保证提取的每类特征数据的数量和类型的一致性。
在一个实施例中,如图,4所示,当该请求为异常请求时,从该响应信息中提取特征数据,包括:
步骤402,确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置。
其中,内容类型字段表示内容属于何种类型的字段。当前世界时字段表示当前的世界时时间的字段。内容长度字段表示内容的长度的字段。连接字段是指开启连接状态或关闭连接状态的字段。相对位置是指一个字段相对于另一个字段的位置。在本实施例中,字段的相对位置是指在内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段这五个字段组成的范围中,五个字段中的任意一个字段在该范围中的位置。终端可以预先指定任意一个字段作为参照,确定其它四个字段相对于该参照字段的位置。
具体地,当终端向目标服务器发送异常请求后,终端从目标服务器返回的响应信息中确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的位置。终端可给响应信息中的每个字段按顺序编号。则终端可确定响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段这五个字段的编号。接着,终端按照这五个字段的编号,将这五个字段提取出来,终端可先根据一个字段的编号,确定该字段处于这5个字段的哪个位置。再把该字段作为参照,得到其余四个字段相对于该字段的位置。
例如,响应信息中共有9个字段,内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段在响应信息中的编号位置分别为9、3、2、7和8。则内容类型字段相对于其它4个字段排在最后一个位置,服务器名字字段排在内容类型字段的前3个位置,当前世界时字段排在内容类型字段的前4个位置,内容长度字段排在内容类型字段的前2个位置,连接字段排在内容类型字段的前1个位置。则内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置为5、2、1、3和4。
步骤404,获取该响应信息中的返回状态码和内容长度。
步骤406,将该相对位置、返回状态码和内容长度作为特征数据。
其中,http的返回状态码是由三个十进制数组成,第一个十进制数定义了返回状态码的类型。内容长度是指内容的实际长度,指的是字段的实际内容,而并非字段。例如,Content-Length:100,Content-Length为内容长度字段,100为内容的实际长度。服务器针对不同的异常请求返回的状态码和内容长度是存在差异的。
具体地,终端接收目标服务器针对发送的异常请求返回的响应信息,并从响应信息中提取出返回状态码和内容长度。例如,针对某个异常请求返回的响应信息中的返回状态码为202,内容长度为100。接着,终端将内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置、返回状态码和内容长度作为该响应信息的一类特征数据。
传统的服务器识别方式通过直接获取响应信息中server字段的内容来确定服务器的类型和版本,但server字段的内容可以被人为篡改,只根据server字段的内容识别的方式并不准确。而本实施例中的服务器识别方法,通过确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将相对位置作为该响应信息的一个特征数据,无需使用server字段的内容,从而避免了因server字段的内容被篡改而识别出错的情况。并选取响应信息中的返回状态码和内容长度作为该响应信息中的另外两个特征,从而得到三个特征组成的一类特征数据。使用多个特征更能体现该目标服务器的特征,从而提高识别的准确性。
在另一个实施例中,终端确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段在响应信息中编号位置后,可先确定这五个字段中的第一个位置的字段和最后一个位置的字段。接着,终端可将已知位置的字段作为参照,得到其余字段相对于参照字段的位置。进一步地,终端可选择任意一个已知位置的字段作为参照,也可将多个已知位置的字段作为参照,从而得到其余字段在这五个字段中的相对位置。
在一个实施例中,如图5所示,从该响应信息中提取特征数据,包括:
步骤502,确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置。
具体地,终端可给响应信息中的每个字段按顺序编号。则终端可确定响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段这五个字段的编号位置。接着,终端按照这五个字段的编号,将这五个字段提取出来,终端可先根据一个字段的编号,确定该字段处于这5个字段的哪个位置。再把该字段作为参照,得到其余四个字段相对于该字段的位置。
步骤504,获取该响应信息中的返回状态码、行结束符和内容长度字段的大小写。
步骤506,将该相对位置、返回状态码、行结束符和内容长度字段的大小写作为特征数据。
其中,行结束符是指响应信息结束的标志,不同的服务器返回的行结束符不一样。例如,某些服务器返回的行结束符是\r\n,有些服务器返回的是\n。同样地,不同的服务器返回的内容长度字段不一样。一些服务器返回的内容长度字段为大写,一些服务器返回的内容长度字段为小写。例如,一些服务器返回的内容长度字段为Content-Length,有些返回Content-length。
具体地,终端提取响应信息中的返回状态码、行结束符作为该响应信息中的两个特征。接着,终端确定响应信息中的内容长度字段为大写或小写。将该内容长度字段的大写或小写作为该响应信息的另一个特征。最终确定该响应信息中的五个字段的相对位置、返回状态码、行结束符和内容长度字段的大小写作为该响应信息的一类特征数据。
上述服务器识别方法中,通过确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将相对位置作为该响应信息的一个特征,避免了因某些字段的内容被篡改而识别出错的情况。根据不同的服务器返回的返回状态码、行结束符可能不相同,并且返回的内容长度字段存在大写和小写的区别,将返回状态码、行结束符和内容长度字段的大小写作为特征,从而根据多个特征逐渐缩小目标服务器的类型和版本的识别范围。使用多个特征能够更准确地识别出目标服务器的类型和版本。
在本实施例中,终端向目标服务器发送的请求也可以是正常请求也可以是异常请求。并且,终端从目标服务器针对正常请求或异常请求返回的响应信息中确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置。无论终端发送的是正常请求还是异常请求,都将这五个字段的相对位置、返回状态码、行结束符和内容长度字段的大小写作为该正常请求或者异常请求的一类特征数据。
在其中一个实施例中,当终端向目标服务器发送至少两个请求时,还可以发送至少一个正常请求和至少一个异常请求。并且确定目标服务器返回的响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将这五个字段的相对位置、响应信息中的返回状态码、行结束符和内容长度字段的大小写作为一个请求对应的一类特征数据。需要注意的是,一个请求对应一个响应信息,一个响应信息对应一类特征数据。因此,当终端向目标服务器发送至少一个正常请求和至少一个异常请求时,可得到至少两类特征数据。
在另一个实施例中,在该确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置之后,还包括:获取内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值;根据该字段最大值和字段最小值将该内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的相对位置进行标准化处理,得到标准化处理后的相对位置。
其中,标准化是把各个维度标准化到特定的区间,将有量纲数据转化为无量纲数据的处理过程,将数据标准化是为了更好地训练学习模型。例如,五个字段的相对位置分别为1.70、1.71、1.72、1.73和1.74,这5个字段的位置之间是存在差异的,但是差异太小,不利于模型的学习。将这5个字段的位置标准化处理后的位置分别为0、0.25、0.50、0.75和1,标准化处理后相当于增大了数据之间的差异。
具体地,终端确定响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置之后,终端可将这五个字段的相对位置作为这五个字段的值。接着,终端确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值。接着,终端从五个字段中任意选取一个字段,并获取该字段的值。终端根据选取的字段的值、字段最大值和字段最小值对该字段进行标准化处理,得到该字段标准化处理后的值。并且,终端按照相同的方式将其余四个字段进行处理,从而得到四个字段标准化处理后的值。每个字段标准化处理后的值即为该字段标准化处理后的相对位置。终端可获取标准化公式,根据标准化公式对字段的相对位置实现标准化处理。
例如,终端使用的标准化公式为其中,x′为字段标准化处理后的值,x为字段当前的值,xmin为字段最小值,xmax为字段最大值。终端将每个字段的值、字段最大值和字段最小值输入该公式,可计算得到每个字段的标准化处理后的值。
上述服务器识别方法中,通过确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值,从而将每个字段的相对位置进行标准化处理,使得标准化处理后的字段的相对位置之间的差异更明显,有利于模型的训练并能够提高模型的精度。
在一个实施例中,如图6所示,当第一分类模型为最近邻居模型时,该将该特征数据输入第一分类模型,生成第一识别结果,包括:
步骤602,确定该特征数据和各训练数据之间的距离。
其中,最近邻居法(即KNN算法)是将在特征空间中最接近的训练数据进行分类的方法。最近邻居法采用向量空间模型来分类,概念为相同类别的训练数据,彼此的相似度高,因此可以计算与已知类别的训练数据的相似度,来评估未知类别的训练数据可能的分类。使用最近邻居法训练的得到的模型称为最近邻居模型(即KNN模型)。
具体地,终端将该特征数据输入KNN模型时,KNN模型计算该特征数据与模型中的各个训练数据中之间的距离。
步骤604,将该距离排序,并确定指定数量的距离最小的训练数据。
具体地,KNN模型将该特征数据与各个训练数据之间的距离进行排序,可按照升序排序或降序进行排序。接着,KNN模型可获取指定数量,该指定数量是指需要选取几个最小距离。接着,KNN模型确定指定数量的距离所对应的训练数据。例如,共有50个距离,按照升序排列,指定数量为6,则从最小的距离开始,选取前6个距离。KNN模型确定该6个距离所对应的训练数据。
步骤606,确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本。
具体地,KNN模型中的每个训练数据都带有对应的标签,标签的信息中包括该训练数据所代表的服务器的类型和版本。KNN模型获取指定数量的训练数据所对应的标签信息,则可得到该指定数量的训练数据对应的服务器类型和版本。
步骤608,将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果。
具体地,KNN模型将标签信息进行分类,相同的标签信息分为一类,得到多类标签信息。其中,多类标签指的是至少两类标签信息。接着,KNN模型计算每类标签信息在指定数量的训练数据中出现的频率。在指定数量的训练数据中出现频率最高的一类标签信息作为该特征数据的第一识别结果。
上述服务器识别方法中,通过确定该特征数据和各训练数据之间的距离,并将该距离排序,以确定特征数据与各训练数据之间的距离大小。接着获取指定数量的距离最小的训练数据,确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本。通过选择特定数量的并且距离最小的训练数据,使得能够根据距离确定该特征数据与指定数量的训练数据之间的相似度。通过将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果,从而能够根据一定数量的训练数据中与该特征数据相似度最高的标签信息得到该特征数据的初步识别结果。
在一个实施例中,KNN模型将该指定数量的训练数据按照各自的标签信息进行分类,将具有相同的标签信息的训练数据分为同一类。接着,KNN模型确定分类后的每一类标签信息中训练数据的数量,训练数据数量最多的那一类标签信息所对应的服务器的类型和版本就是该特征数据的第一识别结果。
在一个实施例中,如图7所示,当所述第二分类模型为决策树模型时,将该特征数据和该第一识别结果输入第二分类模型,生成目标识别结果,包括:
步骤702,将该特征数据和该第一识别结果作为一个节点。
具体地,终端将特征数据和第一识别结果输入训练好的决策树模型中。决策树模型将该特征数据和第一识别结果作为根节点。
步骤704,按照决策树模型中选定的特征将该节点划分为两个子节点。
步骤706,按照决策树模型中选定的其余特征将子节点继续划分。
具体地,训练好的决策树模型中已经选定了划分数据的特征,则决策树模型按照选定的特征将根节点划分为两个子节点。接着,决策树再将划分后的子节点按照第二个选定的特征再次进行划分,并重复该划分的过程。
步骤708,当按照决策树中选定的最后一个特征将子节点划分后,确定该特征数据和该第一识别结果所满足的决策树模型中选定的特征。
步骤710,该所满足的决策树模型中选定的特征对应的识别结果作为该特征数据和该第一识别结果的目标识别结果。
具体地,当决策树模型按照选定的最后一个特征将子节点进行划分后,确定该特征数据和该第一识别结果所满足的决策树模型中选定的所有特征。接着,决策树模型确定所满足的决策树模型中选定的所有特征对应的服务器的类型和版本,并将该服务器的类型和版本作为该特征数据和该第一识别结果的目标识别结果。
上述服务器识别方法,通过将特征数据和该第一识别结果作为一个节点,并按照决策树模型中已经选定的特征依次将该节点不断划分,以逐渐缩小识别的范围。并将该节点所满足的所有特征对应的服务器的类型和版本作为该特征数据和该第一识别结果的目标识别版本,从而能够准确识别该特征数据和该第一识别结果所代表的服务器的类型和版本。
在一个实施例中,终端将特征数据和第一识别结果输入训练好的决策树模型中。决策树模型将该特征数据和第一识别结果作为根节点之后,决策树模型按照选定的第一个特征将根节点划分为两个子节点。其中,一个节点为满足该特征的子节点,一个为不满足该特征的子节点。接着,决策树模型将满足该特征的子节点按照模型内选定的第二个特征继续划分,将该满足该特征的子节点继续划分,得到另外两个子节点。
同样地,每次按照选定的特征划分之后都得到一个满足该选定特征的子节点,另一个为不满足该选定特征的子节点。决策树模型继续将满足选定特征的节点进行划分,直到该特征数据和第一识别结果组成的根节点中的数据集按照所有选定的特征划分后,或者该特征数据和第一识别结果组成的根节点中的数据集无法再继续划分之后,停止对该根节点的数据集的划分。完成划分后,决策树模型可提前该根节点能够满足的所有特征,并确定这些特征所代表的服务器的类型和版本。决策树模型将这些特征所代表的服务器的类型和版本输出,作为该特征数据和第一识别结果得到的最终的目标识别结果。
该服务器识别方法中,将特征数据和该第一识别结果作为根节点,并按照决策树模型中已经选定的特征依次将该节点不断划分,以逐渐缩小识别的范围。再将该节点所满足的所有特征对应的服务器的类型和版本作为该特征数据和该第一识别结果的目标识别版本,从而能够准确识别该特征数据和该第一识别结果所代表的服务器的类型和版本。
在一个实施例中,当所述第二分类模型为决策树模型时,将该特征数据和该第一识别结果输入第二分类模型之前,还包括:获取第一分类模型的训练数据,将第一分类模型得到第一识别结果作为特征加入训练数据,得到新的训练数据;将所有新的训练数据作为一个节点;遍历每个特征数据的每一种分割方式;按照每种分割方式将训练数据分割为两个节点;返回遍历每个特征数据的每一种分割方式的步骤,直到每个节点无法继续分割时,得到决策树模型。
具体地,决策树模型是一个预测模型,它代表的是对象属性与对象值之间的一种映射关系。构造决策树的原理是通过选取特征将原始数据划分为几类数据子集,这些数据子集分布在第一个决策点的所有分支上。如果还有其它的特征,则将划分的数据子集当成原数据,实现与第一次相同的划分过程,直到所有具有相同类型的数据均在一个数据子集中。
终端获取第一分类模型的训练数据,并将第一分类模型输出的服务器类型和版本范围作为特征加入训练数据,从而得到新的训练数据。接着,终端将所有新的训练数据作为根节点,然后从特征数据中选择一个特征作为划分的方式,例如,特征数据包括五个字段的相对位置、返回状态码和内容长度,从中选择五个字段的相对位置作为划分的方式。终端按照该五个字段的相对位置将所有的新的训练数据划分为两类,一类是与这五个字段的相对位置相同的训练数据,另一类是与这五个字段的相对位置不相同的训练数据。接着,终端从其余的特征数据中选取一个特征,将与五个字段的相对位置相同的训练数据按照该特征继续划分,仍然得到两类训练数据,一类满足该特征,另一类不满足该特征。终端重复从其余的特征数据中选取一个特征,并将上一个满足特征得到的训练数据再按照选取的特征再次划分。直到选取完所有的特征将数据进行划分后,完成决策树模型的构造。通过将第一分类模型的训练数据和第一识别结果作为决策树模型的训练数据,使得两个分类模型的训练数据在保持一致的基础上,决策树模型的训练数据又增加了新的特征。将所有新的训练数据作为一个节点,从特征数据中选取特征将新的训练数据不断划分,从而根据这些新的训练数据成功构造出决策树模型。
在一个实施例中,将该特征数据和该第一识别结果输入第二分类模型之前,还包括:获取第一分类模型中的训练数据,并获取该第一识别结果;将所述第一分类模型中的训练数据和该第一识别结果作为第二分类模型中的训练数据;使用该第二分类模型中的训练数据对第二分类模型进行训练,得到训练后的第二分类模型。
具体地,终端获取第一分类模型中的训练数据,并获取第一分类模型输出的第一识别结果。并将训练数据和该第一识别结果输入第二分类模型,作为第二分类模型中的训练数据。接着,终端使用这些训练数据对第二分类模型进行训练,并根据识别的结果不断调整训练参数再进行重复训练,直到第二分类模型得到多次准确的识别结果后,生成训练好的第二分类模型。通过将第一分类模型的训练数据作为第二分类模型中的一部分训练数据,能够保证两个分类模型所使用的基础数据的一致性。并将第一识别结果作为第二分类模型中的另一部分训练数据,使得训练数据中增加了新的特征,训练模型时的要求更严格,从而使得训练得到的第二分类模型能够识别出更多的特征,进而提高识别结果的精确度。
在其中一个实施例中,当需要识别的目标服务器为web服务器,并且第一分类模型为KNN模型,第二分类模型为决策树模型时,该服务器识别方法如图8所示。终端向web服务器发送异常请求A和异常请求B,并且收web服务器返回的响应信息A和响应信息B。终端从响应信息A中提取内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置、响应信息A中的返回状态码和内容长度,构成数据集A。终端从响应信息B中提取内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置、响应信息B中的返回状态码和内容长度,构成数据集B。接着,终端将数据集A和数据集B先输入到训练好的KNN模型中,得到web服务器的类型和版本范围。接着,终端将数据集A、数据集B和web服务器的类型和版本范围输入到训练好的决策树模型中,得到该web服务器准确的类型和版本。
在一个实施例中,该服务器识别方法包括:
终端向目标服务器发送请求,并接收该目标服务器返回的响应信息。
可选地,当该请求为异常请求时,终端确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置。
接着,终端获取该内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值。
进一步地,终端根据该字段最大值和字段最小值将该内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的相对位置进行标准化处理,得到标准化处理后的相对位置。
接着,终端获取该响应信息中的返回状态码和内容长度。
接着,终端将该相对位置、返回状态码和内容长度作为特征数据。
可选地,当第一分类模型为最近邻居模型时,终端确定该特征数据和各训练数据之间的距离。
接着,终端将该距离排序,并确定指定数量的距离最小的训练数据。
接着,终端确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本。
进一步地,终端将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果。
可选地,终端获取第一分类模型的训练数据,将第一分类模型得到第一识别结果作为特征加入训练数据,得到新的训练数据。
接着,终端将所有新的训练数据作为一个节点;遍历每个特征数据的每一种分割方式。
接着,终端按照每种分割方式将训练数据分割为两个节点。
进一步地,终端返回遍历每个特征数据的每一种分割方式的步骤,直到每个节点无法继续分割时,得到决策树模型。
可选地,当第二分类模型为决策树模型时,终端将该特征数据和该第一识别结果作为一个节点。
接着,终端按照决策树模型中选定的特征将该节点划分为两个子节点。
接着,终端按照决策树模型中选定的其余特征将子节点再次划分。
进一步地,当按照决策树中选定的最后一个特征将子节点划分后,终端确定该特征数据和该第一识别结果所满足的决策树模型中选定的特征。
接着,终端该所满足的决策树模型中选定的特征对应的识别结果作为该特征数据和该第一识别结果的目标识别结果。
上述服务器识别方法中,通过向目标服务器发送请求,从而得到目标服务器返回的响应信息。通过确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将相对位置作为该响应信息的一个特征,无需使用server字段的内容,从而避免了因server字段的内容被篡改而识别出错的情况。
通过确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值,从而将每个字段的相对位置进行标准化处理,使得标注化处理后的字段的相对位置之间的差异更明显,有利于模型的训练并能够提高模型的精度。
通过选取响应信息中的返回状态码和内容长度作为该响应信息中的另外两个特征,从而得到三个特征。使用多个特征更能体现该目标服务器的特征,从而提高识别的精准度。
通过确定该特征数据和各训练数据之间的距离,并将该距离排序,以确定特征数据与各训练数据之间的距离大小。接着确定指定数量的距离最小的训练数据,确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本。通过选择特定数量的并且距离最小的训练数据,使得能够根据距离确定该特征数据与指定数量的训练数据之间的相似度。通过将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果,从而能够根据一定数量的训练数据中与该特征数据相似度最高的标签信息得到该特征数据的初步识别结果。
通过将第一分类模型的训练数据和第一识别结果作为决策树模型的训练数据,使得两个分类模型的训练数据在保持一致的基础上,决策树模型的训练数据又增加了新的特征。将所有新的训练数据作为一个节点,从特征数据中选取特征将新的训练数据不断划分,从而根据这些新的训练数据成功构造出决策树模型。
通过将特征数据和该第一识别结果作为一个节点,并按照决策树模型中已经选定的特征依次将该节点不断划分,以逐渐缩小识别的范围。并将该节点所满足的所有特征对应的服务器的类型和版本作为该特征数据和该第一识别结果的目标识别版本,从而能够准确识别该特征数据和该第一识别结果所代表的服务器的类型和版本。
图2-图7为一个实施例中服务器识别方法的流程示意图。应该理解的是,虽然图2-图7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-图7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图9所示,提供一种服务器识别装置,该装置包括:
响应模块902,用于向目标服务器发送请求,并接收该目标服务器返回的响应信息;
提取模块904,用于从该响应信息中提取特征数据;
生成模块906,用于将该特征数据输入混合分类模型,生成目标识别结果,该目标识别结果包括目标服务器的类型和版本;该混合分类模型是根据带有服务器的类型和版本标签的样本数据训练得到的相关联的至少两个分类模型。
上述服务器识别装置,通过向目标服务器发送请求,从而得到目标服务器返回的响应信息。从响应信息中提取特征数据,从而得到能够代表目标服务器的特征的数据。将该特征数据输入由至少两个分类模型组成的混合分类模型中,生成目标识别结果,从而能够准确地识别出目标服务器的类型和版本。
在一个实施例中,生成模块906还用于:将该特征数据输入第一分类模型,生成第一识别结果;将该特征数据和该第一识别结果输入第二分类模型,生成目标识别结果。通过将特征数据输入第一分类模型,得到目标服务器的类型和大致的版本范围。并将第一分类模型输出的结果作为另一个特征数据,与其它特征数据共同输入到第二分类模型中,得到该目标服务器的类型和版本,从而能够降低识别的错误率,提高识别的准确性。
在一个实施例中,响应模块902还用于:向目标服务器发送至少两次不同的请求,并接收该目标服务器返回的至少两个响应信息;提取模块904还用于:从该至少两个响应信息的每个响应信息中提取特征数据,得到至少两类特征数据;生成模块906还用于:将该至少两类特征数据输入第一分类模型,得到第一识别结果;将该至少两类特征数据和该第一识别结果输入第二分类模型,生成目标识别结果。通过向目标服务器发送至少两个请求,并从每个响应信息中提取特征数据,从而得到至少两类特征数据。并将至少两类特征数据输入到第一分类模型,对目标服务器做一个初步的识别,得到目标服务器的准确类型和大致的版本范围,缩短了目标服务器版本的识别范围。再将第一分类模型输出的第一识别结果和该至少两类特征数据输入第二分类模型,识别出服务器的准确类型和准确的版本。该方法只需要输入两个请求,就可以通过两个分类模型准确识别出目标服务器的类型和版本,解决了需要发送大量请求才能够识别的问题,从而缩短了识别的时间。
在一个实施例中,当该请求为异常请求时,提取模块904还用于:确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置;获取该响应信息中的返回状态码和内容长度;将该相对位置、返回状态码和内容长度作为特征数据。传统的服务器识别装置通过直接获取响应信息中server字段的内容来确定服务器的类型和版本,但server字段的内容可以被人为篡改,只根据server字段的内容识别的方式并不准确。而本实施例中的服务器识别装置,通过确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将相对位置作为该响应信息的一个特征数据,无需使用server字段的内容,从而避免了因server字段的内容被篡改而识别出错的情况。并选取响应信息中的返回状态码和内容长度作为该响应信息中的另外两个特征数据,从而得到三个特征数据。使用多个特征数据更能体现该目标服务器的特征,从而提高识别的准确性。
在一个实施例中,提取模块904还用于:确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置;获取该响应信息中的返回状态码、行结束符和内容长度字段的大小写;将该相对位置、返回状态码、行结束符和内容长度字段的大小写作为特征数据。通过确定该响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置,将相对位置作为该响应信息的一个特征数据,避免了因某些字段的内容被篡改而识别出错的情况。根据不同的服务器返回的返回状态码、行结束符可能不相同,并且返回的内容长度字段存在大写和小写的区别,将返回状态码、行结束符和内容长度字段的大小写作为特征数据,从而根据多个特征数据逐渐缩小目标服务器的类型和版本的识别范围。使用多个特征数据能够更准确地识别出目标服务器的类型和版本。
在一个实施例中,该服务器识别装置还包括:处理模块。其中,处理模块用于:获取该内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值;根据该字段最大值和字段最小值将该内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的相对位置进行标准化处理,得到标准化处理后的相对位置。通过确定内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值,从而将每个字段的相对位置进行标准化处理,使得标注化处理后的字段的相对位置之间的差异更明显,有利于模型的训练并能够提高模型的精度。
在一个实施例中,当该第一分类模型为最近邻居模型时,生成模块906还用于:确定该特征数据和各训练数据之间的距离;将该距离排序,并确定指定数量的距离最小的训练数据;确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本;将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果。通过确定该特征数据和各训练数据之间的距离,并将该距离排序,以确定特征数据与各训练数据之间的距离大小。接着确定指定数量的距离最小的训练数据,确定该指定数量的训练数据对应的标签信息,该标签信息包括服务器的类型和版本。通过选择特定数量的并且距离最小的训练数据,使得能够根据距离确定该特征数据与指定数量的训练数据之间的相似度。通过将该指定数量的训练数据中出现频率最高的标签信息作为该特征数据的第一识别结果,从而能够根据一定数量的训练数据中与该特征数据相似度最高的标签信息得到该特征数据的初步识别结果。
在一个实施例中,该服务器识别装置还包括:构造模块。该构造模块用于:获取第一分类模型的训练数据,将第一分类模型得到第一识别结果作为特征加入训练数据,得到新的训练数据;将所有新的训练数据作为一个节点;遍历每个特征数据的每一种分割方式;按照每种分割方式将训练数据分割为两个节点;返回遍历每个特征数据的每一种分割方式的步骤,直到每个节点无法继续分割时,得到决策树模型。通过将第一分类模型的训练数据和第一识别结果作为决策树模型的训练数据,使得两个分类模型的训练数据在保持一致的基础上,决策树模型的训练数据又增加了新的特征。将所有新的训练数据作为一个节点,从特征数据中选取特征将新的训练数据不断划分,从而根据这些新的训练数据成功构造出决策树模型。
在一个实施例中,该服务器识别装置还包括:训练模块。该训练模块用于:获取第一分类模型中的训练数据,并获取该第一识别结果;将所述第一分类模型中的训练数据和该第一识别结果作为第二分类模型中的训练数据;使用该第二分类模型中的训练数据对第二分类模型进行训练,得到训练后的第二分类模型。通过将第一分类模型的训练数据作为第二分类模型中的一部分训练数据,能够保证两个分类模型所使用的基础数据的一致性。并将第一识别结果作为第二分类模型中的另一部分训练数据,使得训练数据中增加了新的特征,训练模型时的要求更严格,从而使得训练得到的第二分类模型能够识别出更多的特征,进而提高识别结果的精确度。
在一个实施例中,当该第二分类模型为决策树模型时,生成模块906还用于:将该特征数据和该第一识别结果作为一个节点;按照决策树模型中选定的特征将该节点划分为两个子节点;按照决策树模型中选定的其余特征将子节点再次划分;当按照决策树中选定的最后一个特征将子节点划分后,确定该特征数据和该第一识别结果所满足的决策树模型中选定的特征;该所满足的决策树模型中选定的特征对应的识别结果作为该特征数据和该第一识别结果的目标识别结果。通过将特征数据和该第一识别结果作为一个节点,并按照决策树模型中已经选定的特征依次将该节点不断划分,以逐渐缩小识别的范围。并将该节点所满足的所有特征对应的服务器的类型和版本作为该特征数据和该第一识别结果的目标识别版本,从而能够准确识别该特征数据和该第一识别结果所代表的服务器的类型和版本。
图9示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图10所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现服务器识别方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行服务器识别方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的服务器识别装置可以实现为一种计算机程序的形式,计算机程序可在如图10所示的计算机设备上运行。计算机设备的存储器中可存储组成该服务器识别装置的各个程序模块,比如,图9所示的响应模块、提取模块和生成模块。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的服务器识别方法中的步骤。
例如,图10所示的计算机设备可以通过如图9所示的服务器识别装置中的响应模块执行向目标服务器发送请求,并接收所述目标服务器返回的响应信息的步骤。计算机设备可通过提取模块执行从所述响应信息中提取特征数据的步骤。计算机设备可通过生成模块执行将所述特征数据输入混合分类模型,生成目标识别结果的步骤,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的样本数据训练得到的相关联的至少两个分类模型。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述服务器识别方法的步骤。此处服务器识别方法的步骤可以是上述各个实施例的服务器识别方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述服务器识别方法的步骤。此处服务器识别方法的步骤可以是上述各个实施例的服务器识别方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (11)
1.一种服务器识别方法,包括:
向目标服务器发送请求,并接收所述目标服务器返回的响应信息;
从所述响应信息中提取特征数据;
将所述特征数据输入混合分类模型,生成目标识别结果,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的训练数据训练得到的相关联的至少两个分类模型。
2.根据权利要求1所述的方法,其特征在于,所述将所述特征数据输入混合分类模型,生成目标识别结果包括:
将所述特征数据输入第一分类模型,生成第一识别结果;
将所述特征数据和所述第一识别结果输入第二分类模型,生成目标识别结果。
3.根据权利要求1或2所述的方法,其特征在于,所述向目标服务器发送请求,并接收所述目标服务器返回的响应信息,包括:
向目标服务器发送至少两次不同的请求,并接收所述目标服务器返回的至少两个响应信息;
所述从所述响应信息中提取特征数据,包括:
从所述至少两个响应信息的每个响应信息中提取特征数据,得到至少两类特征数据;
将所述特征数据输入混合分类模型,生成目标识别结果,包括:
将所述至少两类特征数据输入第一分类模型,得到第一识别结果;
将所述至少两类特征数据和所述第一识别结果输入第二分类模型,生成目标识别结果。
4.根据权利要求1所述的方法,其特征在于,当所述请求为异常请求时,所述从所述响应信息中提取特征数据,包括:
确定所述响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置;
获取所述响应信息中的返回状态码和内容长度;
将所述相对位置、返回状态码和内容长度作为特征数据。
5.根据权利要求1所述的方法,其特征在于,所述从所述响应信息中提取特征数据,包括:
确定所述响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置;
获取所述响应信息中的返回状态码、行结束符和内容长度字段的大小写;
将所述相对位置、返回状态码、行结束符和内容长度字段的大小写作为特征数据。
6.根据权利要求4或5所述的方法,其特征在于,在所述确定所述响应信息中的内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的任意字段间的相对位置之后,还包括:
获取所述内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段中的字段最大值和字段最小值;
根据所述字段最大值和字段最小值将所述内容类型字段、服务器名字字段、当前世界时字段、内容长度字段和连接字段的相对位置进行标准化处理,得到标准化处理后的相对位置。
7.根据权利要求2所述的方法,其特征在于,当所述第一分类模型为最近邻居模型时,所述将所述特征数据输入第一分类模型,生成第一识别结果,包括:
确定所述特征数据和各训练数据之间的距离;
将所述距离排序,并确定指定数量的距离最小的训练数据;
确定所述指定数量的训练数据对应的标签信息,所述标签信息包括服务器的类型和版本;
将所述指定数量的训练数据中出现频率最高的标签信息作为所述特征数据的第一识别结果。
8.根据权利要求2所述的方法,其特征在于,当所述第二分类模型为决策树模型时,所述将所述特征数据和所述第一识别结果输入第二分类模型,生成目标识别结果,包括:
将所述特征数据和所述第一识别结果作为一个节点;
按照决策树模型中选定的特征将所述节点划分为两个子节点;
按照决策树模型中选定的其余特征将子节点再次划分;
当按照决策树中选定的最后一个特征将子节点划分后,确定所述特征数据和所述第一识别结果所满足的决策树模型中选定的特征;
将所述所满足的决策树模型中选定的特征对应的识别结果作为所述特征数据和所述第一识别结果的目标识别结果。
9.一种服务器识别装置,其特征在于,所述装置包括:
响应模块,用于向目标服务器发送请求,并接收所述目标服务器返回的响应信息;
提取模块,用于从所述响应信息中提取特征数据;
生成模块,用于将所述特征数据输入混合分类模型,生成目标识别结果,所述目标识别结果包括目标服务器的类型和版本;所述混合分类模型是根据带有服务器的类型和版本标签的样本数据训练得到的相关联的至少两个分类模型。
10.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
11.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910258414.7A CN110166522B (zh) | 2019-04-01 | 2019-04-01 | 服务器识别方法、装置、可读存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910258414.7A CN110166522B (zh) | 2019-04-01 | 2019-04-01 | 服务器识别方法、装置、可读存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110166522A true CN110166522A (zh) | 2019-08-23 |
CN110166522B CN110166522B (zh) | 2021-08-24 |
Family
ID=67638941
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910258414.7A Active CN110166522B (zh) | 2019-04-01 | 2019-04-01 | 服务器识别方法、装置、可读存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110166522B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602709A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 可穿戴式设备的网络数据安全方法、装置及存储介质 |
CN112527579A (zh) * | 2020-12-07 | 2021-03-19 | 东莞市嘉田电子科技有限公司 | 一种具有可识别计算机服务器的识别装置及识别方法 |
WO2021190068A1 (zh) * | 2020-03-27 | 2021-09-30 | 华为技术有限公司 | 一种建模方法及装置 |
WO2023093017A1 (zh) * | 2021-11-23 | 2023-06-01 | 深圳前海微众银行股份有限公司 | 一种Web服务设备的识别方法及装置 |
CN116304901A (zh) * | 2023-02-01 | 2023-06-23 | 北京市燃气集团有限责任公司 | 一种网页服务器指纹识别方法、装置、设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106899586A (zh) * | 2017-02-21 | 2017-06-27 | 上海交通大学 | 一种基于机器学习的dns服务器软件指纹识别系统和方法 |
CN107066507A (zh) * | 2017-01-10 | 2017-08-18 | 中国人民解放军国防科学技术大学 | 一种基于云机器人混合云架构的语义地图构建方法 |
US20180324269A1 (en) * | 2011-12-30 | 2018-11-08 | Akamai Technologies, Inc. | Systems and methods for identifying and characterizing client devices |
CN108989397A (zh) * | 2018-06-26 | 2018-12-11 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据推荐方法、装置及存储介质 |
-
2019
- 2019-04-01 CN CN201910258414.7A patent/CN110166522B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180324269A1 (en) * | 2011-12-30 | 2018-11-08 | Akamai Technologies, Inc. | Systems and methods for identifying and characterizing client devices |
CN107066507A (zh) * | 2017-01-10 | 2017-08-18 | 中国人民解放军国防科学技术大学 | 一种基于云机器人混合云架构的语义地图构建方法 |
CN106899586A (zh) * | 2017-02-21 | 2017-06-27 | 上海交通大学 | 一种基于机器学习的dns服务器软件指纹识别系统和方法 |
CN108989397A (zh) * | 2018-06-26 | 2018-12-11 | 腾讯音乐娱乐科技(深圳)有限公司 | 数据推荐方法、装置及存储介质 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110602709A (zh) * | 2019-09-16 | 2019-12-20 | 腾讯科技(深圳)有限公司 | 可穿戴式设备的网络数据安全方法、装置及存储介质 |
CN110602709B (zh) * | 2019-09-16 | 2022-01-04 | 腾讯科技(深圳)有限公司 | 可穿戴式设备的网络数据安全方法、装置及存储介质 |
WO2021190068A1 (zh) * | 2020-03-27 | 2021-09-30 | 华为技术有限公司 | 一种建模方法及装置 |
CN112527579A (zh) * | 2020-12-07 | 2021-03-19 | 东莞市嘉田电子科技有限公司 | 一种具有可识别计算机服务器的识别装置及识别方法 |
WO2023093017A1 (zh) * | 2021-11-23 | 2023-06-01 | 深圳前海微众银行股份有限公司 | 一种Web服务设备的识别方法及装置 |
CN116304901A (zh) * | 2023-02-01 | 2023-06-23 | 北京市燃气集团有限责任公司 | 一种网页服务器指纹识别方法、装置、设备和存储介质 |
CN116304901B (zh) * | 2023-02-01 | 2024-01-30 | 北京市燃气集团有限责任公司 | 一种网页服务器指纹识别方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110166522B (zh) | 2021-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166522A (zh) | 服务器识别方法、装置、可读存储介质和计算机设备 | |
CN108664582B (zh) | 企业关系的查询方法、装置、计算机设备及存储介质 | |
CN110619050B (zh) | 意图识别方法及设备 | |
CN107862425B (zh) | 风控数据采集方法、设备、系统及可读存储介质 | |
CN112434811A (zh) | 知识图谱构建方法及装置、计算设备、存储介质 | |
CN113157863A (zh) | 问答数据处理方法、装置、计算机设备及存储介质 | |
WO2022105119A1 (zh) | 意图识别模型的训练语料生成方法及其相关设备 | |
CN112131261B (zh) | 基于社区网络的社区查询方法、装置和计算机设备 | |
CN110377733A (zh) | 一种基于文本的情绪识别方法、终端设备及介质 | |
CN112182174A (zh) | 业务问答知识查询方法、装置、计算机设备和存储介质 | |
CN112417121A (zh) | 客户意图识别方法、装置、计算机设备及存储介质 | |
US20220245591A1 (en) | Membership analyzing method, apparatus, computer device and storage medium | |
CN110059172A (zh) | 基于自然语言理解的推荐答案的方法和装置 | |
US20230334238A1 (en) | Augmented Natural Language Generation Platform | |
CN114021175B (zh) | 用户画像的配置方法、装置、计算机设备及介质 | |
CN116094907A (zh) | 投诉信息的处理方法、装置及存储介质 | |
CN113360300B (zh) | 接口调用链路生成方法、装置、设备及可读存储介质 | |
CN115129885A (zh) | 实体链指方法、装置、设备及存储介质 | |
EP4053713A1 (en) | Question and answer method and apparatus based on knowledge graph | |
JP2010072876A (ja) | ルール作成プログラム、ルール作成方法及びルール作成装置 | |
CN116263659A (zh) | 数据处理方法、装置、计算机程序产品、设备及存储介质 | |
CN111597453A (zh) | 用户画像方法、装置、计算机设备及计算机可读存储介质 | |
KR20210061094A (ko) | 디자인 제작 서버 및 이를 이용한 인터랙티브 디자인 제작 방법 | |
CN114328797B (zh) | 内容搜索方法、装置、电子设备、存储介质及程序产品 | |
CN112685574B (zh) | 领域术语层次关系的确定方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |