一种计算机网络远程服务识别系统及其识别方法

文档序号:7692817阅读:315来源:国知局
专利名称:一种计算机网络远程服务识别系统及其识别方法
技术领域
本发明主要涉及对计算机网络远程主机的服务识别方法,属于网络技术领域。
技术背景计算互联网上的运行在计算机网络上的服务类型逐渐增多,同时服务中携带的大量 漏洞,准确掌握目标主机所运行网络协议、服务及版本信息,为网络管理和网络安全设 置提供可靠的信息来源,是对网络服务特征识别提出的基本要求。由于网络的大规模性,为提高效率,需要通过远程的方式对网络中的主机服务进行 识别。具体方式为对远程的主机进行端口会话,从会话的报文中获得网络服务(协议)^ f曰息。传统的识别方法(如Nmap、 S叩erScan)利用固定端口或个别关键字识别网络协议; 使用Banner信息识别服务进程及版本信息。这些方法虽然可以有效地用于网络管理和安 全防范,但存在一些不足。首先由于固定端口的限制,使得许多使用高端端口的协议无 法识别,对某一大类协议而言,个别关键字往往不能区分出其中的具体协议(例如P2P 中的若干种协议),此外Banner信息的人为可修改,增加了服务识别的不可靠性。发明内容本发明给出了一种计算机网络服务远程识别的方法,能够克服以上的问题,准确地 对服务进行远程识别,提高识别可靠性。为此,本发明采用以下技术方案 一种计算机网络服务远程识别方法,其特征在于 步骤如下(1) 首先通过探测器获取远程服务的数据报文;(2) 得到数据报文之后,由识别器运行服务协议识别算法,从关键字序列中提取关键 字进行匹配计算,给出识别出的协议;(3) 探测器再根据识别出的协议,从指纹库中取出探测指纹用的请求报文,发送到远 程服务,从远程服务收集到数据后,再交给识别器;(4) 识别器运行服务进程识别算法,根据指纹库中的记录,计算识别的结果;(5) 最后由探测器获得Banner信息,交给识别器,给出最终识别结果。 本发明的原理在整个识别过程中,首先由探测器从运行有服务的远程主机获取数据报4文,识别器结合端口信息和关键字序列,识别出服务所运行的协议;在已知协^t的基础上, 利用服务进程的指纹,结合Banner信息,对网络服务所用到的进程(包含版本信息)进行 综合处理,给出识别结果。本发明与现有技术相比的优点在于-(1)本发明在传统的端口识别方式之上,使用协议关键字按照流程进行顺序匹配 处理,以匹配度的结果计算协议的可能性;引入进程指纹的方法,对已经编译发行的软 件版本建立"指纹库",使用探测器向制定的主机发送请求报文,获取其响应指纹,匹 配得最终的结果,增强了识别结果的可靠性。(2) 本发明以服务进程指纹为主要依据,结合Banner信息,对服务进程行识别。克 服了以往单纯依靠Banner信息识别,识别结果受人为影响不准确的缺点,提高了识别的可 靠性。(3) 本发明已经实现网络服务特征识别系统及其工作流程的测试,能提供用于网络安 全管理的基本数据,包括通信主机使用的协议名、识别精度、目标主机运行服务名称、运行 服务版本号、服务识别准确度等数据。避免了人为因素造成的网络服务识别的不准确,增强 了系统的可靠性。


图1为本发明方法的识别机制原理图;图2为本发明方法的识别流程图;图3为本发明的SMTP协议分析图;图4为本发明的SMTP协议关键字序列表图;图5为本发明的协议识别流程图图6为本发明的HTTP指纹条目图;图7为本发明的服务进程识别流程图。
具体实施方式
以下是实现本发明的最佳实施例的详细说明。这个说明没有局限意义,但它用来说明本 发明的一般的原则。附加的权利要求很好地定义了本发明的保护范围。本发明所涉及的识别方法,可以划分为4个步骤(1)方法的整体实现机制(2)分析 提取关键字序列;(3)构造服务协议识别算法;(4)建立进程指纹库,包括与指纹相对应 的请求报文;(5)构造服务进程识别算法。以下分别对这四方面内容进行说明; 1、方法的实现机制如图1所示,该机制包含探测器、识别器、进程指纹库和关键字序列表等四部分内 容。其中探测器用于获取远程主机的数据,进程指纹库和关键字序列表则记录服务进程 和协议的特征信息。识别器则是实现机制中的核心部分,负责服务的协议识别算法和服 务进程识别算法的执行。整个方法的实现机制如图2所示首先通过探测器收集目标主机与其他主机的通信 数据,而后将数据交付识别器,由识别器调用服务协议识别算法,从关键字序列中提取 关键字进行匹配计算,给出识别出的协议;而后探测器再根据识别出的协议,从指纹库 中取出探测指纹用的请求报文,发送到远程服务,收集到数据后,交给识别器,由识别 器运行服务进程识别算法,根据指纹库中的记录,计算识别的结果;最后由探测器获得Banner信息,交给识别器,给出最终识别结果。2、 提取关键字序列关键字定义为计算机网络通信协议中固定出现且有别于其它协议的字段,在协议执行 过程中关键字出现的顺序组成了该协议的关键字序列;每一个协议的关键字序列结构包括编号、关键字所属协议、关键字内容、关键字序号和关键字的重要程度,其中关键字序号表示 该关键字出现在哪一个关键字之后,用于当协议执行出现分支时,记录下一个可能出现的关键字;关键字的重要程度则表示关键字所代表的该协议的权重信息。根据RFC文档和官方文档,以及实验的验证总结的,对应协议完成正常的交互必然 出现在报文中的命令字,将这些关键字按照在协议中出现的顺序,填入关键字序列表中。以SMTP协议为例,图3所示SMTP协议工作流程。S表示客户端与服务器建立连接,SMTP 服务器会返回以220开头的报文,之后客户端(A)发送以命令字EHLO或HELLO开头的 报文,这两种命令字的区别是发送EHLO之后,客户端还需发送用户名密码,进行登录 (C-M-〉D)。而发送HELLO之后就可以直接发送邮件(B-〉D),就可以使用MAIL命令发送 寄件人地址(E) , RCPT命令发送收件人地址,其后发送DATA命令开始传输邮件的数据(F), 发送完毕后发送QUIT退出(G-〉H)。这一标准通信过程中,提取220、 EHLO、 HELLO、 MAIL、 RCPT、 DATA、 QUIT,作为其 特征状态。填写关键字序列表如图4所示,其中字段"工D"表示记录号;字段"协议名" 表示盖关键字代表的协议名,字段"关键字"为各个关键字出现的顺序,例如(2|4, 5) 表示该关键字出现在序列的第2位或第4位之后,排在第5位,字段"重要程度"则记录 该关键字在协议中权重信息,用以计算识别的准确度。3、 服务协议识别算法图4所示为整个算法的流程。在识别协议之前,所有关键字序列表中的协议放入一个集合中,识别器将从探测器获得的若干报文进行处理,首先识别端口,若端口为固定 端口,则直接输出识别的结果。否则根据输入的报文顺序,与关键字表中各个协议的关 键字进行匹配,若某个协议的关键字不能与当前报文内容匹配,则直接将该协议从集合 中去除,否则继续匹配下一条报文。直到所有报文匹配结束。按照关键字表中的"重要 程度"字段,即记录该关键字在协议中权重信息字段,计算各协议的累加值,选择其中 具有最大值的协议输出,作为识别出的协议。4、 进程指纹库运行服务的进程在接收到某些特定的报文之后,做出某些不同的相应,返回特定的 报文内容。这些特定的内容即指纹。进程的指纹库中条目格式如图6所示。其中字段 "ID"为记录号,字段"进程名"和"版本"填写各自服务进程的名称和版本号,字段 "探测报文"和字段"指纹"分别记录用以获得服务进程特征数据的请求报文和获取 到的数据中的指纹信息。以Http服务进程为例,在向80端口发送请求报文"GET/JUNK/1.0"之后,Apache 1.3服务器返回带有"0K"字符的应答报文,Microsoft-IIS 5. 0返回"Bad Request" 的信息,Netscape-Enterprise 4.1则返回一个带"Bad Request" Hup报文头。根据 这些内容,将相应的内容填入指纹库的条目中,如图5所示。5、 服务进程识别算法图7所示为服务进程的识别算法。首先根据服务协议识别的结果,挑选出运行该协 议的服务进程,组成集合。从条目中取出"探测报文"字段内容,由探测器发送;而后 探测器获得的返回报文,将集合中的进程"指纹"字段与返回报文进行匹配,成功的保 留在集合中,失败则从集合中除去。而后利用探测器获取进程的Banner,将Banner与 集合中剩余进程的"进程名"字段相匹配,输出匹配成功的结果,包括进程名、版本号 和匹配程度等。以上所述仅是本发明的实施方式,应当指出,对于本技术领域的学者来说,在不脱 离本发明的前提下,还可以作若干改进和润饰,这些改进和润饰也应视为本发明的保护 范围。
权利要求
1、一种计算机网络服务远程识别方法,其特征在于步骤如下(1)首先通过探测器获取远程服务的数据报文;(2)得到数据报文之后,由识别器运行服务协议识别算法,从关键字序列中提取关键字进行匹配计算,给出识别出的协议;(3)探测器再根据识别出的协议,从指纹库中取出探测指纹用的请求报文,发送到远程服务,从远程服务收集到数据后,再交给识别器;(4)识别器运行服务进程识别算法,根据指纹库中的记录,计算识别的结果;(5)最后由探测器获得Banner信息,交给识别器,给出最终识别结果。
2、 根据权利1所述的计算机网络服务远程识别方法,其特征在于所述的关键字定义 为计算机网络通信协议中固定出现且有别于其它协议的字段,在协议执行过程中关键字出 现的顺序组成了该协议的关键字序列;每一个协议的关键字序列结构包括编号、关键字所属 协议、关键字内容、关键字序号和关键字的重要程度,其中关键字序号表示该关键字出现在 哪一个关键字之后,用于当协议执行出现分支时,记录下一个可能出现的关键字;关键字的 重要程度则表示关键字所代表的该协议的权重信息。
3、 根据权利1所述的计算机网络服务远程识别方法,其特征在于所述的服务协议识 别算法的流程如下在识别协议之前,所有关键字序列表中的协议放入一个集合中,识别器 将从探测器获得的若干报文进行处理,首先识别端口,若端口为固定端口,则直接输出识别 的结果,否则根据输入的报文顺序,与关键字表中各协议的关键字进行匹配,若某个协议的 关键字不能与当前报文内容匹配,则直接将该协议从集合中去除,否则继续匹配下一条报文, 直到所有报文匹配结束;按照关键字序列中的重要程度值,即表示关键字所代表的该协议的 权重信息,计算各协议的累加值,选择其中具有最大值的协议作为输出结果,给出识别出的 协议。
4、 根据权利1所述的计算机网络服务远程识别方法,其特征在于所述的服务进程的 识别算法如下首先根据服务协议识别的结果,挑选出运行该协议的服务进程,组成集合, 从条目中取出"探测报文"字段内容,由探测器发送;而后探测器获得返回报文,将集合中 的进程的"指纹"字段与返回报文进行匹配,成功的保留在集合中,否则从集合中除去;利 用探测器获取进程的Banner,将Banner与集合中剩余进程的"进程名"字段相匹配,输出 匹配成功的结果,包括进程名、版本号和匹配程度。5、根据权利1所述的计算机网络服务远程识别方法,其特征在于所述的进程指纹 库结构为字段"ID"为记录号;字段"进程名"和"版本"填写各自服务进程的名称 和版本号;字段"探测报文"和字段"指纹"分别记录用以获得服务进程特征数据的请 求报文和获取到的数据中的指纹信息。
全文摘要
一种计算机网络服务远程识别方法,步骤为(1)首先通过探测器获取远程服务的数据报文;(2)得到数据报文之后,由识别器运行服务协议识别算法,从关键字序列中提取关键字进行匹配计算,给出识别出的协议;(3)探测器再根据识别出的协议,从指纹库中取出探测指纹用的请求报文,发送到远程服务,从远程服务收集到数据后,再交给识别器;(4)识别器运行服务进程识别算法,根据指纹库中的记录,计算识别的结果;(5)最后由探测器获得Banner信息,交给识别器,给出最终识别结果。本发明避免了人为因素造成的网络服务识别的不准确,增强了系统的可靠性。
文档编号H04L12/24GK101262481SQ20081010082
公开日2008年9月10日 申请日期2008年2月22日 优先权日2008年2月22日
发明者威 吴, 张淑军, 健 焦 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1