CN102075508B - 针对网络协议的漏洞挖掘系统和方法 - Google Patents

针对网络协议的漏洞挖掘系统和方法 Download PDF

Info

Publication number
CN102075508B
CN102075508B CN201010271811.7A CN201010271811A CN102075508B CN 102075508 B CN102075508 B CN 102075508B CN 201010271811 A CN201010271811 A CN 201010271811A CN 102075508 B CN102075508 B CN 102075508B
Authority
CN
China
Prior art keywords
client
controller
service end
bug excavation
communication data
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.)
Active
Application number
CN201010271811.7A
Other languages
English (en)
Other versions
CN102075508A (zh
Inventor
刘业欣
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nsfocus Technologies Inc
Nsfocus Technologies Group Co Ltd
Original Assignee
Beijing NSFocus Information Security Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing NSFocus Information Security Technology Co Ltd filed Critical Beijing NSFocus Information Security Technology Co Ltd
Priority to CN201010271811.7A priority Critical patent/CN102075508B/zh
Publication of CN102075508A publication Critical patent/CN102075508A/zh
Application granted granted Critical
Publication of CN102075508B publication Critical patent/CN102075508B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种针对网络协议的漏洞挖掘系统,包括:根据网络协议进行通信的客户端和服务端;中间人控制器,对客户端和服务端之间的通信进行监控,并捕获和修改通信数据以对客户端或服务端进行漏洞挖掘;以及客户端控制器和/或服务端控制器,其中客户端控制器对客户端进行控制并监视客户端的运行状态,以及服务端控制器对所述服务端进行控制并监视所述服务端的运行状态,其中当客户端处理由中间人控制器所修改的通信数据而导致客户端运行状态异常时,重新启动客户端,以及当服务端处理由中间人控制器所修改的通信数据而导致服务端运行状态异常时,重新启动服务端。本发明还公开了适于在漏洞挖掘系统中运行的漏洞挖掘方法。

Description

针对网络协议的漏洞挖掘系统和方法
技术领域
本发明涉及计算机网络安全领域,尤其涉及对网络协议的漏洞进行挖掘的漏洞挖掘系统和方法。
背景技术
针对网络协议的漏洞挖掘技术是计算机网络安全领域的基础技术。对网络协议进行漏洞挖掘通常是指对用于解析和处理网络协议的应用的漏洞挖掘。目前主要采用模糊(Fuzzing)测试技术来进行漏洞挖掘。具体而言,模糊测试通过构造大量的畸形输入数据,并将所构造的畸形输入数据输入到作为测试目标的应用中以检测测试目标是否能够正确处理畸形输入数据,从而可以触发并发现测试目标中存在的未知漏洞。
目前,基于模糊测试技术的漏洞挖掘技术主要有以下几种方式:以SPIKE(http://www.immunitysec.com/resources-freesoftware.sht ml)为代表的技术,其在了解网络协议格式和交互流程的前提下构造畸形的协议报文;以beSTORM(http://www.beyondsecurity.com/black-box-testing.html)为代表的技术,其对未知的网络协议有自学习功能,并且可以对学习内容做人工修正,然后根据自学写的格式来构造畸形的协议报文;以zzuf(http://caca.zoy.org/wiki/zzuf)和ProxyFuzz为代表的技术,其使用中间人方式对未知的网络协议报文进行捕获,在原始报文数据的基础上构造畸形的协议报文;以及以catchconv(http://catchconv.pbworks.com)为代表的技术,其基于二进制的符号执行求解导致安全问题的畸形数据。
但是现有的这些网络协议漏洞挖掘技术均存在一些缺点。例如以SPIKE为代表的技术需要把网络协议搞清楚才能进行漏洞挖掘,由于在多数情况下应用层的网络协议都有其非常复杂的格式和交互流程,因此对未知协议分析工作的难度较大,前期消耗的时间较多。甚至某种未知的网络协议是某一个程序独有的私有协议,协议分析工作的代价与回报不成比例。
这些网络协议漏洞挖掘方式还存在效率低下的问题,例如当测试目标由于触发漏洞而发生异常崩溃时,测试不能继续进行,必须进行人为干预,无法做到自动化地完成整个测试过程,从而导致测试效率低下。由于涉及网络协议的测试通常会涉及多个应用,因此效率问题更加严重。
此外,诸如zzuf和ProxyFuzz之类的中间人方式的测试技术还存在中间人模式单一,很难适用于对所有的网络应用程序进行测试的问题,例如zzuf是对网络接口函数进行拦截的中间人网络协议漏洞挖掘技术,其中通过对操作系统中诸如accept()、bind()、connect()、socket()、recv()、recvfrom()和recvmsg()等等socket相关函数以及read()、readv()、pread()和aio_read()等对网络进行操作的文件相关函数进行拦截,就可以捕获到网络应用程序的网络通信数据。由于zzuf需要和服务端或者客户端紧密结合,因此zzuf通常只能对服务端或者客户端之一进行测试,通常而言,zzuf更适合对客户端的应用程序进行网络协议的漏洞挖掘。
ProxyFuzz工具为利用TCP和UDP端口转发来进行的中间人网络协议漏洞挖掘技术。然而,利用TCP和UDP端口转发技术无法捕获到固定IP地址进行通讯的应用程序的网络通讯数据,因此无法适用于广泛的网络协议应用。
因此,可以看出现有的网络协议漏洞挖掘技术无法对未知网络协议进行快速且自动化的漏洞挖掘,在本领域需要一种可以在不对未知网络协议做分析的情况下就进行全面自动化漏洞挖掘、并且适用于大部分网络应用的漏洞挖掘技术。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的针对网络协议的漏洞挖掘系统和漏洞挖掘方法。
根据本发明的一个方面,提供了一种针对网络协议的漏洞挖掘系统,包括:根据所述网络协议进行通信的客户端和服务端;中间人控制器,对所述客户端和服务端之间的通信进行监控,并捕获和修改所述通信中的通信数据以对所述客户端或服务端进行漏洞挖掘;以及客户端控制器和/或服务端控制器,所述客户端控制器对所述客户端进行控制并监视所述客户端的运行状态,以及所述服务端控制器对所述服务端进行控制并监视所述服务端的运行状态,其中当所述客户端处理由所述中间人控制器所修改的通信数据而导致客户端运行状态异常时,重新启动所述客户端,以及当所述服务端处理由所述中间人控制器所修改的通信数据而导致服务端运行状态异常时,重新启动所述服务端。
由于根据本发明的漏洞挖掘系统具有可以重新启动客户端和/或服务端的客户端控制器和/或服务端控制器,因此可以实现自动化的漏洞挖掘。
可选地,在根据本发明的漏洞挖掘系统中,客户端控制器适于控制客户端的运行行为。例如,客户端控制器可以以预定过程来模拟用户在客户端上的操作以便由客户端生成通信数据等。通过控制客户端的运行行为,减少了在客户端处构造通信数据需要事先了解网络协议的要求,从而使得本发明可以在不了解网络协议的情况下就可以开始测试。
可选地,在根据本发明的漏洞挖掘系统中,服务端控制器适于控制服务端的运行行为。同理,这使得本发明可以在不了解网络协议的情况下就可以开始测试
可选地,在根据本发明的漏洞挖掘系统中,客户端控制器和服务端控制器可以和中间人控制器进行通信,将有关客户端和服务端运行状态异常的信息发送给中间人控制器,以便与导致客户端和服务端运行状态异常的通信数据一起存储在中间人控制器处。通过分析这些通信数据和异常运行状态,可以进一步确认客户端和服务端所存在的漏洞。
另外,在根据本发明的漏洞挖掘系统中,客户端控制器和服务端控制器在中间人控制器的控制下重新启动客户端和服务端,因此,通过在中间人控制器处的集中控制,可以在完成一次漏洞挖掘尝试后自动重新启动客户端,以及可以在客户端和服务端运行状态出现异常时自动重新启动客户端和服务端,从而进一步提高了漏洞挖掘的效率。
根据本发明的另一个方面,提供了一种针对网络协议的漏洞挖掘方法,所述漏洞挖掘方法在根据本发明的漏洞挖掘系统上运行,所述漏洞挖掘方法包括步骤:从所述客户端发送通信数据给所述服务端;所述中间人控制器截获所述客户端发送给所述服务端的通信数据,对所述通信数据进行修改并将修改后的通信数据发送到所述服务端;所述服务端对修改后的通信数据进行处理,并根据处理结果而改变所述服务端的运行状态;由服务端控制器监视所述服务端的运行状态,当所述服务端处理所述修改的通信数据而导致服务端运行状态异常时,由所述服务端控制器重新启动所述服务端。
可选地,根据本发明的漏洞挖掘方法还包括步骤:由客户端控制器来控制客户端的运行行为,例如模拟用户与客户端之间的交互,选择客户端的网络配置等,以便利用客户端生成通信数据。由于可以由客户端控制器来控制客户端的运行行为尤其是模拟客户端的运行行为,使得有可能在不了解待测试网络协议内容时就可以对网络协议进行测试,并且可以简化在客户端构造通信数据的过程,从而进一步提高了漏洞挖掘的效率。
根据本发明的另一个方面,还提供了一种针对网络协议的漏洞挖掘方法,所述漏洞挖掘方法在根据本发明的漏洞挖掘系统上运行,所述漏洞挖掘方法包括步骤:应所述客户端的请求,从所述服务端发送通信数据给所述客户端;所述中间人控制器截获所述服务端发送给所述客户端的通信数据,对所述通信数据进行修改并将修改后的通信数据发送到所述客户端;所述客户端对修改后的通信数据进行处理,并根据处理结果改变所述客户端的运行状态;由客户端控制器监视所述客户端的运行状态,当所述客户端处理所述修改的通信数据而导致客户端运行状态异常时,由所述客户端控制器重新启动所述客户端。
可选地,根据本发明的漏洞挖掘方法还包括步骤:由客户端控制器来控制客户端的运行行为,例如模拟用户与客户端之间的交互,选择客户端的网络配置等,以便利用客户端生成通信数据。由于可以由客户端控制器来控制客户端的运行行为尤其是模拟客户端的运行行为,使得有可能在不了解待测试网络协议内容时就可以对网络协议进行测试,并且可以简化在客户端构造通信数据的过程,从而进一步提高了漏洞挖掘的效率。
根据本发明的上述两种漏洞挖掘方法,可以分别对网络协议的客户端和服务端分别进行自动化的漏洞挖掘。此外,本领域技术人员应当理解的是,可以结合所述两种漏洞挖掘方法以实现同时对客户端和服务端二者的自动化漏洞挖掘。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示意性地示出了根据本发明一个实施例的针对网络协议的漏洞挖掘系统的框图;
图2示意性地示出了根据本发明一个实施例的针对网络协议的漏洞挖掘方法的流程图;以及
图3示意性地示出了根据本发明另一个实施例的针对网络协议的漏洞挖掘方法的流程图。
具体实施例
下面结合附图和具体的实施方式对本发明作进一步的描述。
图1示意性地示出了根据本发明一个实施例的针对网络协议的漏洞挖掘系统100的框图。如图1所示,漏洞挖掘系统100包括以要进行漏洞挖掘的网络协议进行通信的客户端112和服务端132。根据网络协议的特点,利用网络协议进行通信的设备在逻辑上通常可以分为客户端和服务端,其中即便是P2P协议可以按照这个逻辑来划分。一般而言,客户端112首先发起到服务端132的通信请求,随后服务端132应客户端112的请求而返回通信数据给客户端112。
漏洞挖掘系统100还包括中间人控制器120,用于对客户端112和服务端132之间的通信进行监控和转发。具体而言,中间人控制器120可以根据要进行模糊测试的相关网络协议部分,截取客户端112发送给服务端132的与相关网络协议部分相对应的通信数据,对该通信数据进行修改以加入畸形数据,并且将经修改的通信数据转发到服务端132。同理,中间人控制器120还可以截取服务端132发送给客户端112的与相关网络协议部分相对应的通信数据,对该通信数据进行修改以加入畸形数据,并且将经修改的通信数据转发到客户端112。应当注意的是,本领域技术人员可以根据现有针对网络协议的模糊测试技术,设想出任何对通信数据进行修改的方式,所有这些修改方式都在本发明的保护范围之内。
漏洞挖掘系统100还包括对客户端112及其运行状态进行监控的客户端控制器114以及对服务端132及其运行状态进行监控的服务端控制器134。具体而言,客户端控制器114可以监控客户端112的运行状态,当客户端112由于处理由中间人控制器120所修改的通信数据而导致客户端112运行状态异常时,客户端控制器114可以存储有关客户端112运行状态异常的信息,并且重新启动客户端112以进行新的漏洞挖掘尝试。客户端控制器114还可以将有关客户端112运行状态异常的信息发送到中间人控制器120以进行进一步分析和处理。客户端控制器114还可以控制客户端112的运行行为,例如以预定参数运行客户端112,模拟用户与客户端112的交互等。对于要测试的网络协议涉及客户端112和服务端132之间的多次交互的情况,利用客户端控制器114来控制运行行为尤其重要。例如可以模拟用户在客户端112上选择网络配置、输入用户名和密码、在特定用户界面上输入信息以便由客户端112生成通信数据等。通过控制客户端112的运行行为,减少了在客户端处构造通信数据需要事先了解网络协议的要求,从而使得本发明可以在不了解网络协议的情况下就可以开始测试。可以有多种方式来控制客户端112的运行行为,例如客户端112通常为驻留在已知操作系统上的部件,此时客户端控制器114可以利用操作系统的任何已知模拟技术来模拟用户和客户端112的交互。所有可以控制客户端运行行为的方式都在本发明的保护范围之内。另外,客户端控制器114还可以在完成一次漏洞挖掘尝试之后,自动重新启动客户端112,以便进行下一次漏洞挖掘尝试。
服务端控制器134可以监控服务端132的运行状态,当服务端132由于处理由中间人控制器120所修改的通信数据而导致服务端132运行状态异常时,服务端控制器134可以存储有关服务端132运行状态异常的信息,并且重新启动服务端132以进行新的漏洞挖掘尝试。服务端控制器134还可以将有关服务端132运行状态异常的信息发送到中间人控制器120以进行进一步分析和处理。同样,服务端控制器134也可以控制服务端132的运行行为。
应当注意的是,在图1所示的漏洞挖掘系统100中分别示出了客户端控制器114和服务端控制器134,但是根据进行漏洞挖掘的网络协议的特殊性,漏洞挖掘系统100可能仅仅需要客户端控制器114和服务端控制器134之一。例如一些服务端为专门硬件设备或者一些服务端不可控,因此导致不能部署用于监控服务端132的服务端控制器134。还例如由于仅仅需要对网络协议的服务端部分进行漏洞挖掘、网络协议为无状态协议以及网络协议的客户端部分非常简单等原因,仅仅需要用于监控服务端132的服务端控制器134。
还应当注意的是,由于客户端控制器114和服务端控制器134需要分别监控客户端112和服务端132及其运行状态,并需要分别重新启动客户端112和服务端132,因此,客户端控制器114需要和客户端112一起部署在客户端设备110上,且服务端控制器134需要和服务端132一起部署在服务端端设备130上。
中间人控制器120可以进一步包括中间人代理装置122、控制器通信装置124和存储设备126。中间人代理装置122适于实现上面所描述的用于监控、截取、修改和转发在客户端112和服务端132之间的通信的功能。控制器通信装置124与客户端控制器114和服务端控制器134进行通信,以分别从客户端控制器114和服务端控制器134接收有关客户端112运行状态异常的信息和有关服务端132运行状态异常的信息,并且将这些运行状态异常的信息与导致运行状态异常的、由中间人控制器120所修改的通信数据一起存储到存储设备126中以便进行进一步的漏洞分析。
控制器通信装置124可以在从客户端控制器114或者服务端控制器134收到运行状态异常信息之后,发信号通知相应的客户端控制器114或者服务端控制器来重新启动对应的客户端112或者服务端132。另外,控制器通信装置124可以在完成一次漏洞挖掘尝试之后,发信号通知客户端控制器114来重新启动相应的客户端112,以便进行下一次漏洞挖掘尝试。
另外,控制器通信装置124还可以发信号通知相应的客户端控制器114或者服务端控制器来控制对应客户端112或者服务端132的运行行为,以便可以从中间人控制器处对漏洞挖掘进行集中控制。
应当注意的是,本文所提及的漏洞挖掘尝试意指针对网络协议中要测试的部分而进行的客户端和服务端之间的交互,取决于要进行测试的网络协议部分,其可以包括一次或者多次在客户端和服务端之间的交互。例如,为了对某个网络协议的认证部分进行测试,则仅仅需要客户端构造认证报文、中间人控制器修改认证报文并检测服务端是否能正常处理修改后的认证报文即可,即仅仅需要客户端和服务端之间的一次交互。然而,如果为了对通过认证后网络协议中的消息传递部分进行测试,则需要首先在客户端和服务端之间进行交互来通过认证,随后再进行报文内容修改等测试,此时需要客户端和服务端之间的多次交互。
可以看出,利用根据本发明的上述漏洞挖掘系统100,可以在被测试目标由于模糊测试而出现运行状态异常时,自动重置被测试目标以进行新的漏洞挖掘尝试,或者可以在完成一次漏洞挖掘尝试之后,自动重置客户端来进行新的漏洞挖掘尝试,这样可以大大提高漏洞挖掘的效率。另外,由于可以由客户端控制器来控制客户端的运行行为尤其是模拟客户端的运行行为,使得有可能在不了解待测试网络协议内容时就可以对网络协议进行测试,并且可以简化在客户端构造通信数据的过程,从而进一步提高了漏洞挖掘的效率。
另外,在漏洞挖掘系统100中,可以由中间人控制器120集中控制整个漏洞挖掘过程并收集所有漏洞挖掘信息,因此可以进一步方便漏洞挖掘。
在漏洞挖掘系统100中,为了使得客户端112和服务端312之间的通信均经由中间人控制器120进行转发,可以针对不同的网络协议特性采用不同的网络配置方式:
(1)TCP和UDP转发:网络协议基于TCP/IP,在客户端112处将与之进行通信的服务端312的IP地址设置成中间人控制器120的IP地址,并且在中间人控制器120处设置真正服务端312的IP地址,由此,从客户端112与服务端312之间的通信均经由中间人控制器120。该配置方式尤其适用于可以在客户端112处设置服务端312的IP地址的网络通信;
(2)DNS欺骗:网络协议基于TCP/IP,在客户端112处利用DNS域名解析将服务端的域名解析成中间人控制器120的IP地址,并且由中间人控制器120将来自客户端112的数据转发到服务端312。由此,从客户端112与服务端312之间的通信均经由中间人控制器120。该配置方式尤其适用于客户端使用DNS域名来访问服务端并且无法更改服务端IP地址的网络通信;
(3)ARP欺骗:网络协议基于TCP/IP,其中利用局域网内的ARP欺骗技术,即利用ARP协议使得客户端112认为中间人控制器120的IP地址为客户端的对应网关地址,这样客户端的通信数据都会先发送给中间人控制器120,而中间人控制器120可以捕获所述客户端的通信数据进行处理并转发到服务端312。此配置方式尤其适用于客户端直接使用服务端IP地址来访问服务端并且无法修改服务端IP地址,或无固定服务端IP地址的网络通信(如P2P网络通信);
(4)底层通信部件拦截(hook):网络协议基于TCP/IP,其中对客户端112的底层通信部件进行监控,如在客户端112以Windows操作系统运行的情况下,对socket相关的系统API函数进行拦截hook,从而可以监控客户端112上所有的网络通信数据,并且将发送给服务端132的通信数据先发送到中间人控制器120进行处理。此配置方式适用于客户端直接使用服务端IP地址来访问服务端并且无法修改服务端地址或无固定服务端地址的网络通信(如P2P网络通信);
(5)PCAP抓包:在客户端的网络适配器的级别上捕获从客户端发送到服务端的通信数据,然后对所捕获的通信数据进行修改以便将通信数据先发送到中间人控制器120进行处理。此配置方式适用于对使用非TCP/IP应用层协议的网络通信。
漏洞挖掘系统100在开始漏洞挖掘之前,根据网络协议的具体特征选择上述网络配置方式之一来对客户端以及中间人控制器进行配置,由此可以使得漏洞挖掘系统100适于针对多种网络协议进行漏洞挖掘。
图2示意性地示出了根据本发明一个实施例的针对网络协议的漏洞挖掘方法200的流程图。漏洞挖掘方法200适于在漏洞挖掘系统100中执行,并且适于对服务端132进行漏洞挖掘。漏洞挖掘方法200始于步骤S210,在步骤S210开始漏洞挖掘尝试,其中从客户端112发送通信数据给服务端132。随后在步骤S220处,中间人控制器120截获客户端112发送给服务端132的通信数据,根据模糊测试技术,对与要进行漏洞挖掘的网络协议部分相对应的通信数据进行修改以插入畸形数据,并将修改后的通信数据转发到服务端132。在步骤S230处,服务端132对接收到的通信数据进行处理,并据此设置服务端的运行状态。随后在步骤S240处,监视服务端运行状态的服务端控制器134判断服务端运行状态是否出现异常。当确定服务端运行状态正常时,则开始新的漏洞挖掘尝试,这可选地包括步骤S250,其中利用客户端控制器重新启动客户端,并返回到步骤S210开始新的漏洞挖掘尝试。当在步骤S240处确定服务端运行状态异常时,则在步骤S260处,由服务端控制器134将有关服务端运行状态异常的信息发送到中间人控制器120,并且重新启动服务端132,并开始新的漏洞挖掘尝试。可选地,在开始新的漏洞挖掘尝试之前,在步骤S270处,由中间人控制器120存储有关服务端132运行状态异常的信息以及导致服务端132运行状态异常的通信数据。此外,还应当注意的是,取代步骤S260中重新启动服务端的是,可以在步骤S270中存储了相关数据之后,由中间人控制器120通知服务端控制器134来重新启动服务端132,这可以实现在中间人控制器120处的集中管理,以提高漏洞挖掘的效率。
可选地,在步骤S210中,可以由客户端控制器来控制客户端的运行行为,例如模拟用户与客户端之间的交互,选择客户端的网络配置等,以便利用客户端生成通信数据。客户端控制器还可以在中间人控制器的控制下来控制客户端的运行行为。
应当注意的是,在上述漏洞挖掘方法200中,在服务端运行状态正常的情况下开始新的漏洞挖掘尝试时,并没有重新启动服务端,但是根据本发明的一个实施例,也可以在每次漏洞挖掘尝试结束之后均重新启动服务端。这也在本发明的保护范围之内。
图3示意性地示出了根据本发明一个实施例的针对网络协议的漏洞挖掘方法300的流程图。漏洞挖掘方法300适于在漏洞挖掘系统100中执行,并且适于对客户端112进行漏洞挖掘。漏洞挖掘方法300始于步骤S310,在步骤S310开始漏洞挖掘尝试,其中应客户端112的请求,从服务端132发送通信数据给客户端112。随后在步骤S320处,中间人控制器120截获服务端132发送给客户端112的通信数据,根据模糊测试技术,对与要进行漏洞挖掘的网络协议部分相对应的通信数据进行修改以插入畸形数据,并将修改后的通信数据转发到客户端112。在步骤S330处,客户端112对接收到的通信数据进行处理,并据此设置客户端的运行状态。随后在步骤S340处,监视客户端运行状态的客户端控制器114判断客户端运行状态是否出现异常。当确定客户端运行状态正常时,则开始新的漏洞挖掘尝试,即在步骤S350,利用客户端控制器重新启动客户端,并返回到步骤S350以开始新的漏洞挖掘尝试。当在步骤S340处确定客户端运行状态异常时,则在步骤S360处,由客户端控制器114将有关客户端运行状态异常的信息发送到中间人控制器120,并且在步骤S350中重新启动客户端112,并开始新的漏洞挖掘尝试。可选地,在开始新的漏洞挖掘尝试之前,在步骤S370处,由中间人控制器120存储有关客户端112运行状态异常的信息以及导致客户端112运行状态异常的通信数据。此外,还应当注意的是,可以在步骤S370中存储了相关数据之后,在步骤S350中,由中间人控制器120通知客户端控制器114来重新启动客户端112,这可以实现在中间人控制器120处的集中管理,以提高漏洞挖掘的效率。
可选地,在步骤S310中,可以由客户端控制器来控制客户端的运行行为,例如模拟用户与客户端之间的交互,选择客户端的网络配置等,以便利用客户端生成通信请求并发送到服务端,以便服务端可以应客户端的请求来生成通信数据。客户端控制器还可以在中间人控制器的控制下来控制客户端的运行行为。
应当注意的是,在上述漏洞挖掘方法300中,在客户端运行状态正常的情况下开始新的漏洞挖掘尝试时,并没有重新启动服务端,但是根据本发明的一个实施例,也可以在每次漏洞挖掘尝试结束之后均重新启动服务端。这也在本发明的保护范围之内。
另外,在上述漏洞挖掘方法200和300中开始漏洞挖掘尝试之前,可以根据要进行漏洞挖掘的网络协议的具体特征选择上面所描述的网络配置方式之一,由此可以使得漏洞挖掘方法200和300适于针对多种网络协议进行漏洞挖掘。
根据本发明的漏洞挖掘系统和方法实现了自动化的漏洞挖掘过程,从而大大提高了针对网络协议的漏洞挖掘效率。此外,根据本发明的漏洞挖掘系统可以扩展到利用一个或者多个客户端以及一个和多个服务端来同时进行漏洞挖掘的分布式漏洞挖掘方式,即,中间人控制器还可以同时控制多个客户端和多个服务端,这进一步提高了漏洞挖掘的效率。
应当注意的是,在本发明的各个部件中,根据其要实现的功能而对其中的部件进行了逻辑划分,但是,本发明不受限于此,可以根据需要对各个部件进行重新划分或者组合,例如,可以将一些部件组合为单个部件,或者可以将一些部件进一步分解为更多的子部件。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的信号处理部件中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

Claims (27)

1.一种针对网络协议的漏洞挖掘系统,包括:
根据所述网络协议进行通信的客户端和服务端;
中间人控制器,对所述客户端和服务端之间的通信进行监控,并捕获和修改所述通信中的通信数据以对所述客户端或服务端进行漏洞挖掘;以及
客户端控制器和/或服务端控制器,所述客户端控制器对所述客户端进行控制并监视所述客户端的运行状态,以及所述服务端控制器对所述服务端进行控制并监视所述服务端的运行状态,
其中当所述客户端处理由所述中间人控制器所修改的通信数据而导致客户端运行状态异常时,重新启动所述客户端,以及
当所述服务端处理由所述中间人控制器所修改的通信数据而导致服务端运行状态异常时,重新启动所述服务端;
其中所述中间人控制器包括:
控制器通信装置,适于与所述客户端控制器和/或所述服务端控制器进行通信,以分别从所述客户端控制器和/或所述服务端控制器接收有关所述客户端运行状态异常的信息和/或有关所述服务端运行状态异常的信息;
存储设备,用于存储所述有关所述客户端运行状态异常的信息以及导致所述客户端运行状态异常的所述修改的通信数据和/或所述有关所述服务端运行状态异常的信息以及导致所述服务端运行状态异常的所述修改的通信数据;
所述控制器通信装置还适于发信号通知所述客户端控制器和/或服务端控制器分别重新启动所述客户端和/或所述服务端。
2.如权利要求1所述的漏洞挖掘系统,其中所述漏洞挖掘系统包括所述客户端控制器和服务端控制器。
3.如权利要求1或者2所述的漏洞挖掘系统,其中所述客户端控制器适于在所述客户端由于处理由所述中间人控制器所修改的通信数据而导致所述客户端运行状态异常时,将有关所述客户端运行状态异常的信息发送到所述中间人控制器。
4.如权利要求1或者2所述的漏洞挖掘系统,其中所述服务端控制器适于在所述服务端由于处理由所述中间人控制器所修改的通信数据而导致所述服务端运行状态异常时,将有关所述服务端运行状态异常的信息发送到所述中间人控制器。
5.如权利要求1或者2所述的漏洞挖掘系统,其中所述客户端控制器适于控制所述客户端的运行行为。
6.如权利要求1或者2所述的漏洞挖掘系统,其中所述服务端控制器适于控制所述服务端的运行行为。
7.如权利要求1或者2所述的漏洞挖掘系统,其中所述控制器通信装置适于发信号通知所述客户端控制器和/或服务端控制器来控制所述客户端和/或所述服务端的运行行为。
8.如权利要求1或者2所述的漏洞挖掘系统,其中所述网络协议基于TCP/IP,并且所述客户端适于将所述服务端的IP地址设置为所述中间人控制器的IP地址,以便经由所述中间人控制器和所述服务端进行通信。
9.如权利要求1或者2所述的漏洞挖掘系统,其中所述网络协议基于TCP/IP,并且所述客户端适于将所述服务端的DNS域名解析为所述中间人控制器的IP地址,以便经由所述中间人控制器和所述服务端进行通信。
10.如权利要求1或者2所述的漏洞挖掘系统,其中所述网络协议基于TCP/IP,并且所述客户端适于基于ARP协议而将所述中间人控制器的IP地址确定为所述客户端的网关IP地址,以便经由所述中间人控制器和所述服务端进行通信。
11.如权利要求1或者2所述的漏洞挖掘系统,其中所述网络协议基于TCP/IP,并且所述客户端适于监控底层通信部件,对所有发往服务端的数据进行修改以便发送到所述中间人控制器。
12.如权利要求1或者2所述的漏洞挖掘系统,其中所述客户端具有用于收发通信数据的网络适配卡,所述网络适配卡适于获取所述客户端发送到所述服务端的数据并对其进行修改,以便发送到所述中间人控制器。
13.一种针对网络协议的漏洞挖掘方法,所述漏洞挖掘方法在一种漏洞挖掘系统上运行,所述漏洞挖掘系统包括根据所述网络协议进行通信的客户端和服务端以及对所述客户端和服务端之间的通信进行监控的中间人控制器,所述漏洞挖掘方法包括步骤:
从所述客户端发送通信数据给所述服务端;
所述中间人控制器截获所述客户端发送给所述服务端的通信数据,对所述通信数据进行修改并将修改后的通信数据发送到所述服务端;
所述服务端对修改后的通信数据进行处理,并据此设置所述服务端的运行状态;
由服务端控制器监视所述服务端的运行状态,当所述服务端处理所述修改的通信数据而导致服务端运行状态异常时,由所述服务端控制器重新启动所述服务端,其中所述服务端控制器在所述中间人控制器的控制下重新启动所述服务端。
14.如权利要求13所述的漏洞挖掘方法,还包括步骤:
当所述服务端处理所述修改的通信数据而导致服务端运行状态异常时,所述服务端控制器将有关所述服务端运行状态异常的信息发送到所述中间人控制器。
15.如权利要求13所述的漏洞挖掘方法,还包括步骤:
在所述中间人控制器处存储所述服务端运行状态异常的信息以及导致所述服务端运行状态异常的所述修改的通信数据。
16.如权利要求13所述的漏洞挖掘方法,还包括步骤:
由客户端控制器监视所述客户端的运行状态,并且在完成一次漏洞挖掘尝试后,由所述客户端控制器重新启动所述客户端。
17.如权利要求13所述的漏洞挖掘方法,还包括步骤:
由客户端控制器控制所述客户端的运行行为以生成通信数据。
18.一种针对网络协议的漏洞挖掘方法,所述漏洞挖掘方法在一种漏洞挖掘系统上运行,所述漏洞挖掘系统包括根据所述网络协议进行通信的客户端和服务端以及对所述客户端和服务端之间的通信进行监控的中间人控制器,所述漏洞挖掘方法包括步骤:
应所述客户端的请求,从所述服务端发送通信数据给所述客户端;
所述中间人控制器截获所述服务端发送给所述客户端的通信数据,对所述通信数据进行修改并将修改后的通信数据发送到所述客户端;
所述客户端对修改后的通信数据进行处理,并据此设置所述客户端的运行状态;
由客户端控制器监视所述客户端的运行状态,当所述客户端处理所述修改的通信数据而导致客户端运行状态异常时,由所述客户端控制器重新启动所述客户端,其中所述客户端控制器在所述中间人控制器的控制下重新启动所述客户端。
19.如权利要求18所述的漏洞挖掘方法,还包括步骤:
当所述客户端处理所述修改的通信数据而导致客户端运行状态异常时,所述客户端控制器将有关所述客户端运行状态异常的信息发送到所述中间人控制器。
20.如权利要求18所述的漏洞挖掘方法,还包括步骤:
在所述中间人控制器处存储所述客户端运行状态异常的信息以及导致所述客户端运行状态异常的所述修改的通信数据。
21.如权利要求18所述的漏洞挖掘方法,还包括步骤:
在完成一次漏洞挖掘尝试后,由所述客户端控制器重新启动所述客户端。
22.如权利要求18所述的漏洞挖掘方法,还包括步骤:
由客户端控制器控制所述客户端的运行行为以生成所述客户端的请求。
23.如权利要求13-22中的任一个所述的漏洞挖掘方法,其中所述网络协议基于TCP/IP,并且所述方法还包括步骤:
在所述客户端处将所述服务端的IP地址设置为所述中间人控制器的IP地址,以便经由所述中间人控制器和所述服务端进行通信。
24.如权利要求13-22中的任一个所述的漏洞挖掘方法,其中所述网络协议基于TCP/IP,并且所述方法还包括步骤:
在所述客户端处,将所述服务端的DNS域名解析为所述中间人控制器的IP地址,以便经由所述中间人控制器和所述服务端进行通信。
25.如权利要求13-22中任一个所述的漏洞挖掘方法,其中所述网络协议基于TCP/IP,并且所述方法还包括步骤:
在所述客户端处,基于ARP协议而将所述中间人控制器的IP地址确定为所述客户端的网关IP地址,以便经由所述中间人控制器和所述服务端进行通信。
26.如权利要求13-22中任一个所述的漏洞挖掘方法,其中所述网络协议基于TCP/IP,并且所述方法还包括步骤:
在所述客户端处,对底层通信部件进行监控,以便对所有发往服务端的数据进行修改以便发送到所述中间人控制器。
27.如权利要求13-22中任一个所述的漏洞挖掘方法,其中所述客户端具有用于收发通信数据的网络适配卡,并且所述方法还包括步骤:
利用所述网络适配卡获取所述客户端发送到所述服务端的数据并对其进行修改,以便发送到所述中间人控制器。
CN201010271811.7A 2010-09-02 2010-09-02 针对网络协议的漏洞挖掘系统和方法 Active CN102075508B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010271811.7A CN102075508B (zh) 2010-09-02 2010-09-02 针对网络协议的漏洞挖掘系统和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010271811.7A CN102075508B (zh) 2010-09-02 2010-09-02 针对网络协议的漏洞挖掘系统和方法

Publications (2)

Publication Number Publication Date
CN102075508A CN102075508A (zh) 2011-05-25
CN102075508B true CN102075508B (zh) 2014-01-29

Family

ID=44033854

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010271811.7A Active CN102075508B (zh) 2010-09-02 2010-09-02 针对网络协议的漏洞挖掘系统和方法

Country Status (1)

Country Link
CN (1) CN102075508B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102868699A (zh) * 2012-09-26 2013-01-09 北京联众互动网络股份有限公司 一种提供数据交互服务的服务器的漏洞检测方法及工具
CN103856456A (zh) * 2012-12-04 2014-06-11 中山大学深圳研究院 一种网络安全的方法和系统
CN104168288A (zh) * 2014-08-27 2014-11-26 中国科学院软件研究所 一种基于协议逆向解析的自动化漏洞挖掘系统及方法
CN105988928B (zh) * 2015-03-02 2019-06-18 腾讯科技(深圳)有限公司 终端应用的测试方法及移动终端
CN106294102B (zh) * 2015-05-20 2021-04-09 腾讯科技(深圳)有限公司 应用程序的测试方法、客户端、服务器及系统
CN106657163B (zh) * 2017-03-02 2019-12-17 北京网藤科技有限公司 工业控制动态防御方法和系统
CN106973107A (zh) * 2017-03-29 2017-07-21 小沃科技有限公司 一种基于hook方式实现的移动客户端定向流量代理系统与方法
CN106998275B (zh) * 2017-03-31 2020-05-12 武汉斗鱼网络科技有限公司 一种测试漏洞的方法及装置
CN109818973B (zh) * 2019-03-13 2021-06-04 信联科技(南京)有限公司 一种基于串接方式的协议模糊测试方法
CN110704267B (zh) * 2019-09-23 2022-08-30 福建经联网络技术有限公司 一种核心控制芯片固件分析与验证系统
CN111581644A (zh) * 2020-03-26 2020-08-25 中国电力科学研究院有限公司 一种基于Hook函数进行数据包拦截的漏洞挖掘方法及系统
CN112685301A (zh) * 2020-12-28 2021-04-20 浙江国利网安科技有限公司 模糊测试方法及装置

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7536678B2 (en) * 2003-12-04 2009-05-19 International Business Machines Corporation System and method for determining the possibility of adverse effect arising from a code change in a computer program
US8336102B2 (en) * 2007-06-01 2012-12-18 Microsoft Corporation Delivering malformed data for fuzz testing to software applications
CN101388807B (zh) * 2008-05-22 2011-03-30 清华大学 基于报文变异的协议鲁棒性测试生成方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
《基于协议分析的漏洞挖掘研究》;刘驰等;《2009年研究生学术交流会-通信与信息技术会议论文集》;20091231;302-308页 *
《基于模糊测试的网络协议漏洞挖掘》;张宝峰等;《清华大学学报(自然科学版)》;20091231;第49卷(第S2期);2114-2118页 *
刘驰等.《基于协议分析的漏洞挖掘研究》.《2009年研究生学术交流会-通信与信息技术会议论文集》.2009,
张宝峰等.《基于模糊测试的网络协议漏洞挖掘》.《清华大学学报(自然科学版)》.2009,第49卷(第S2期),

Also Published As

Publication number Publication date
CN102075508A (zh) 2011-05-25

Similar Documents

Publication Publication Date Title
CN102075508B (zh) 针对网络协议的漏洞挖掘系统和方法
US8433811B2 (en) Test driven deployment and monitoring of heterogeneous network systems
CN110209583B (zh) 安全测试方法、装置、系统、设备和存储介质
US10218717B1 (en) System and method for detecting a malicious activity in a computing environment
CN111385260B (zh) 一种端口探测方法、系统、服务器和存储介质
CN108256118B (zh) 数据处理方法、装置、系统、计算设备以及存储介质
CN105141448B (zh) 一种日志的采集方法及装置
KR20190017208A (ko) 직렬 포트 기반 사이버 보안 취약점 점검 장치 및 그 방법
CN111611140B (zh) 埋点数据的上报验证方法、装置、电子设备及存储介质
CN108768960A (zh) 病毒检测方法、装置、存储介质及计算机设备
CN114422254B (zh) 云蜜罐部署方法、装置、云蜜罐服务器及可读存储介质
CN106789486B (zh) 共享接入的检测方法、装置、电子设备及计算机可读存储介质
CN108924159B (zh) 一种报文特征识别库的验证方法与装置
CN102209006B (zh) 规则测试设备及方法
CN114301676A (zh) 一种电力监控系统的无损化资产探测方法
CN112804220A (zh) 一种防火墙测试方法、装置、电子设备及存储介质
CN115023919A (zh) 防火墙规则的更新方法、装置、服务器及存储介质
CN113810427B (zh) 一种渗透测试方法、终端设备及存储介质
US20080072321A1 (en) System and method for automating network intrusion training
CN103731315A (zh) 一种服务器故障检测方法
CN112148604B (zh) iOS软件测试方法、装置、设备及计算机可读介质
CN112685301A (zh) 模糊测试方法及装置
CN112769845A (zh) 漏洞测试方法、装置、电子装置和计算机设备
CN111082996A (zh) 一种带内监控软件的自动配置方法、装置和介质
US9819741B1 (en) Device for sensor simulation using constrained application protocol

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: NSFOCUS TECHNOLOGY CO., LTD.

Effective date: 20140318

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20140318

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai five storey building

Patentee after: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai five storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

CP01 Change in the name or title of a patent holder

Address after: 100089 Beijing city Haidian District Road No. 4 North wa Yitai five storey building

Patentee after: NSFOCUS Technologies Group Co.,Ltd.

Patentee after: NSFOCUS TECHNOLOGIES Inc.

Address before: 100089 Beijing city Haidian District Road No. 4 North wa Yitai five storey building

Patentee before: NSFOCUS INFORMATION TECHNOLOGY Co.,Ltd.

Patentee before: NSFOCUS TECHNOLOGIES Inc.

CP01 Change in the name or title of a patent holder