《用于IMS系统的漏洞挖掘方法和系统.pdf》由会员分享,可在线阅读,更多相关《用于IMS系统的漏洞挖掘方法和系统.pdf(11页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN102025705A43申请公布日20110420CN102025705ACN102025705A21申请号200910176739722申请日20090918H04L29/06200601H04L12/26200601H04L1/0020060171申请人中国移动通信集团公司地址100032北京市西城区金融大街29号72发明人何申魏冰74专利代理机构北京英赛嘉华知识产权代理有限责任公司11204代理人余朦王艳春54发明名称用于IMS系统的漏洞挖掘方法和系统57摘要公开了一种用于IMS系统的漏洞挖掘方法和系统。所述的漏洞挖掘方法可包括基于所述IMS系统中的通信数据生成字段格式。
2、模板和交互流程模板;基于生成的字段格式模板和交互流程模板构造漏洞测试例;以及用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试。通过将漏洞挖掘过程模块化,即使是对网络通信协议并不熟知的测试人员,也能够利用本发明的方法容易地对IMS系统进行漏洞挖掘。51INTCL19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书7页附图1页CN102025719A1/2页21一种用于IMS系统的漏洞挖掘方法,包括基于IMS系统中的通信数据生成字段格式模板和交互流程模板;基于生成的字段格式模板和交互流程模板构造漏洞测试例;以及用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试。2如权利要求1所述的方。
3、法,其中,所述交互流程模板包括所述通信数据中的请求消息和与所述请求消息对应的响应消息之间的交互关系,以及其中,用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试的步骤进一步包括利用所述漏洞测试例对所述IMS系统的服务端或客户端进行漏洞挖掘测试;接收从服务端或客户端返回的响应消息;以及基于所述交互关系,确定所述漏洞测试例是否在所述服务端或客户端中引发系统漏洞。3如权利要求1所述的方法,其中,所述IMS系统漏洞测试例包括格式化串测试例,所述字段格式模板包括多个可修改字段,以及其中,通过将所述多个可修改字段中的至少一个的内容修改为包括格式化串来形成所述格式化串测试例。4如权利要求1所述的方法,其中,所。
4、述IMS系统漏洞测试例包括字符串超长测试例,所述字段格式模板包括多个可修改字段,以及其中,通过将所述多个可修改字段中的至少一个的内容加长来形成所述字符串超长测试例。5如权利要求1所述的方法,其中,所述IMS系统漏洞测试例包括畸形格式测试例,所述字段格式模板包括多个可修改字段,以及其中,通过将所述多个可修改字段中的至少一个的内容修改为具有不符合RFC规范的格式来形成所述畸形格式测试例。6如权利要求1所述的方法,其中,所述IMS系统漏洞测试例包括FLOOD格式测试例,所述字段格式模板包括多个可修改字段,以及其中,通过将所述多个可修改字段中的至少一个的头和内容重复多次来形成所述FLOOD格式测试例。。
5、7一种用于IMS系统的漏洞挖掘系统,包括模板生成模块,基于所述IMS系统中的通信数据生成字段格式模板和交互流程模板;测试例构造模块,基于生成的字段格式模板和交互流程模板构造漏洞测试例;以及测试模块,用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试。8如权利要求7所述的系统,其中,所述模板生成模块进一步包括数据获取单元,获取所述IMS系统中的所述通信数据;以及模板生成单元,根据获取的所述通信数据生成所述字段格式模板和所述交互流程模板。9如权利要求8所述的系统,其中,所述字段格式模板包括多个可修改字段,所述交互流程模板包括所述通信数据中的请求消息和与所述请求消息对应的响应消息之间的交互关系。权利要。
6、求书CN102025705ACN102025719A2/2页310如权利要求9所述的系统,其中,测试模块进一步被配置为基于所述交互流程模板中的请求消息和响应消息之间的交互关系,确定所述漏洞测试例是否在所述IMS系统引发系统漏洞。权利要求书CN102025705ACN102025719A1/7页4用于IMS系统的漏洞挖掘方法和系统技术领域0001本申请涉及漏洞挖掘技术,更具体地,涉及用于IMS系统的漏洞挖掘方法和系统。背景技术0002IMSIPMULTIMEDIASUBSYSTEM,IP多媒体子系统是3GPP提出的支持IP多媒体业务的子系统,其建立的基础是因特网工程任务组IETF所制定的会话初始。
7、化协议SIP。0003目前,通常采用传统的渗透测试方法对IMS系统进行漏洞挖掘。根据传统的渗透测试方法,在确定目标之后,首先通过例如主机网络扫描、端口扫描、操作系统类型辨别、应用服务辨别、账号扫描、配置信息辨别等方法收集通信数据,并基于安全漏洞知识库对收集的通信数据进行分析以生成渗透测试方法。然后,基于生成的渗透测试方法,针对性地制定入侵攻击计划进行入侵攻击,以检测漏洞是否存在。在上述传统方法中,入侵攻击常用的工具包括NMAP、NESSUS、NC等。此外,操作系统中内置的许多工具也可作为常用入侵攻击工具的补充。通常,在入侵攻击的过程中使用的工具包括操作系统自带的网络应用、管理和诊断工具。000。
8、4然而,使用上述传统的渗透测试方法进行IMS系统漏洞挖掘通常要求操作者具有很高的网络通信协议分析水平,特别是必须对IMS特有协议例如SIP协议具有深刻的认识和理解,从而增加了对IMS系统进行漏洞挖掘的难度和效率。发明内容0005本申请提出了能够至少部分解决现有技术中存在的上述问题的、用于IMS系统的漏洞挖掘方法和系统。0006根据本申请一个实施方式的用于IMS系统的漏洞挖掘方法,可包括基于所述IMS系统中的通信数据生成字段格式模板和交互流程模板;基于生成的字段格式模板和交互流程模板构造漏洞测试例;以及用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试。0007根据本申请一个实施方式的用于IMS系。
9、统的漏洞挖掘系统,可包括模板生成模块,基于所述IMS系统中的通信数据生成字段格式模板和交互流程模板;测试例构造模块,基于生成的字段格式模板和交互流程模板构造漏洞测试例;以及测试模块,用所述漏洞测试例对所述IMS系统进行漏洞挖掘测试。0008通过将漏洞挖掘过程模块化,即使是对网络通信协议并不熟知的测试人员,也能够利用本发明的方法容易地对IMS系统进行漏洞挖掘。附图说明0009图1示出了根据本申请的IMS系统漏洞挖掘方法的示意性流程图;以及说明书CN102025705ACN102025719A2/7页50010图2示出了根据本申请的IMS系统漏洞挖掘系统的示意框图。具体实施方式0011图1示出了根。
10、据本申请的IMS系统漏洞挖掘方法100的示意性流程图。如图1所示,在步骤S10,基于IMS系统中的服务端和客户端之间的通信数据生成字段格式模板和交互流程模板。在步骤S20中基于生成的字段格式模板和交互流程模板构造漏洞测试例。接着,在步骤S30中使用生成的漏洞测试例对IMS系统中的服务端或客户端进行测试,以判断所使用的测试例是否在服务端和客户端引发了IMS系统漏洞。0012下面,分别对步骤S1030进行进一步的描述。00131步骤S100014在一个实施方式中,首先利用如WIRESHARK、OMNIPEEK等的抓包工具获取IMS系统中的客户端和服务端之间的通信数据。IMS系统中的通信数据例如可以。
11、是VOIP通信数据、流媒体、消息类数据等。当客户端为硬件设备时,可通过该客户端所属的网关或HUB获取通信数据。如果该客户端为软终端,则可在该软终端所在的操作系统获取通信数据。获取的通信数据可包括各种情况下的数据,例如请求接入、成功接入、通话、请求通话结束、通话结束等常规情况下的数据,以及鉴权失败、目的用户不存在、目的用户忙等异常情况下的数据。0015在获取通信数据之后,对获取的通信数据的格式进行分析以生成字段格式模板,并对获取的通信数据中的请求消息和响应消息之间的交互流程进行分析以生成交互流程模板。其中,字段格式模板包括多个可修改字段,以及交互流程模板包括包含在通信数据中的请求消息和与该请求消。
12、息对应的响应消息之间的交互关系,这将在下面以示例的方式进行详细描述。0016如上所述,由于获取的通信数据可包括各种情况下的数据,因此生成对应各种情况下的字段格式模板。例如,对于获取的基于SIP协议的注册请求消息,可生成如下所示的字段格式模板0017说明书CN102025705ACN102025719A3/7页60018模板中尖括号内的内容即为可修改字段。例如,上述模板中类似、等格式的模板字段均可进行修改。在真实的通信数据中,模板中的上述字段是与具体用户相关联的数据。0019根据RFC的规定,在通信数据中允许对一些字段进行自定义以进行功能扩展,因此,在生成字段格式模板时,需要区分所获取的通信数据。
13、中符合RFC规定的内容和自定义字段,从而生成正确的字段格式模板。对于自定义字段,可以对每个字段的含义和类型进行分析,从而生成相应的自定义字段的格式模板。0020在生成交互流程模板的过程中,对获取的通信数据中的请求和响应消息之间的交互流程的分析包括两个方面其一,分析“请求和响应消息对”的配对情况,即,什么样的请求消息导致什么样的响应消息;其二,多个“请求和响应消息对”之间的交互关系,即,前一个“请求和响应消息对”发出后将产生什么样的新的“请求和响应消息对”。基于以上两方面的分析,生成交互流程模板。可以理解,生成的交互流程模板中也包含了各种情况下的请求消息与对应的响应消息之间的交互关系。例如,生成。
14、的交互流程模板可包括通过鉴权情况下的请求消息和响应消息的交互关系,以及未通过鉴权情况下的请求消息和响应消息的交互关系。以下给出了交互流程模板一个简单示例0021REGISTER00224010023REGISTER00244030025INVITE说明书CN102025705ACN102025719A4/7页7002618000272000028这一示例性的交互流程模板表示了一个具体的交互流程。该交互过程表示了注册过程和返回结果过程,根据交互过程的返回数据结果可以判定系统的对注册过程判断和执行的情况和系统接受处理数据后的状态。其中用方括号表示的“180”是交互流程中可以不存在的过程。对于复杂的。
15、交互过程,测试人员还可对生成的交互流程模板进行确认和修改以使其正确无误地表示该交互过程。00292步骤S200030在生成字段格式模板和交互流程模板之后,基于生成的上述模板构造各类漏洞测试例。生成的漏洞测试例可包括用于测试IMS系统中各种常见漏洞类型的测试例,例如,格式化串测试例、字符串超长测试例、畸形格式测试例、FLOOD格式测试例和绕过鉴权测试例等。下文将对以上几类漏洞测试例的构造进行详细描述。这些测试例可用于在用户被认证前和认证后对服务端和客户端进行漏洞挖掘。在本申请的实施方式中,这些测试例可以是用于测试工具的模板数据。0031下面,具体介绍几类测试例的生成方法。0032格式化串测试例0。
16、033格式化串漏洞是指由输入数据中包含的格式化串结构引发的漏洞。当格式化串处理函数的输入数据中包含多余的格式化串结构信息时,可能会使格式化串处理函数访问到非法地址。而当该非法地址可控时,则可以执行该非法地址处的非法代码了。0034根据一个实施方式,通过将字段格式模板中的可修改字段中的至少之一修改为包含格式化串来生成格式化串测试例。用于构造格式化串测试例以检测格式化串漏洞的格式串可包括但不限于由例如SPRINTF等格式化串处理函数定义的类似“4096D”、“D”、“N”和“X”的格式化串等。由其它任何格式化串处理函数定义的任何格式化串也都可用于格式化串测试例的构造。0035在构造格式化串测试例的。
17、过程中,可从字段格式模板中的各可修改字段中选择一个可修改字段进行修改,也可对字段格式模板中的多个可修改字段进行修改。应该认识到,单个格式化串引发异常的概率小于多个格式化串结合使用引发异常的概率。因此,在构造格式化串测试例时,优选地,可在字段格式模板中多个可修改字段中加入格式化串。例如,可在字段模板的全部可修改字段加入格式化串。对于SIP协议,例如可在SIP消息的方法名、头域、头域的项、头域的属性、SIPURI及属性和SDP消息的每一项的头和内容中都要加入格式串。可选地,在构造的格式化串测试例中,可在字段模板的多个可修改字段加入相同或不同的格式化串。0036字符串超长测试例0037对于SIP协议。
18、,几乎所有的消息都是由字符串构成。如果IMS系统对字符串长度未做限制,那么,当输入的字符串超过一定长度时,很可能会导致缓冲区溢出,即,引发字符串超长漏洞。0038字符串超长测试例可通过将字段格式模板中的多个可修改字段中的一个或多个字符串加长来构造。例如,可采用2N的形式将字符串的长度逐步加长,直到最大的经验长度为止。例如,在UDP协议下,可将最大的经验长度设定为64KB;而在TCP协议说明书CN102025705ACN102025719A5/7页8下,可将最大的经验长度设定为1MB。0039作为一种选择,可将字段格式模板中的全部可修改字段中的字符串加长。对于SIP协议,在构造字符串超长测试例时。
19、,例如可将SIP消息的方法名、头域、头域的项、头域的属性、SIPURI及属性、SDP消息的每一项的头和内容的字符串加长。0040畸形格式测试例0041畸形格式是指不符合RFC规范的格式。例如,在SIP消息中的FROM头域中,其对应的SIPURI必须使用尖括号引起并使用尖括号结束,例如FROM;TAG637E1FBC。如果少了一边的尖括号,则形成畸形格式。0042类似的畸形格式构造例如还可包括属性字段不包含头、属性字段为空只有一个分号、少一侧的引号、尖括号为空、引号和尖括号交叉使用”、百分号后面不是16进制数等等在SIP消息中,百分号是用来做冲突字符转义用的。不符合RFC规范的其它格式也均为畸形。
20、格式。0043通过将字段格式模板中的多个可修改字段中的至少一个字段修改为具有各种畸形格式,生成畸形格式测试例。同样,在生成的畸形格式测试例中,可将字段格式模板中的多个可修改字段中的至少之一修改为具有畸形格式。0044FLOOD格式测试例0045通过将字段格式模板中的多个可修改字段中的至少一个的头和内容重复多次,可生成FLOOD格式测试例。其中,可将重复多次的上述可修改字段中的至少一个的内容构造为具有相同或不同的内容。被选择用来重复多次的字段例如可以是模板中的任意可修改字段。IMS系统在处理这种大量重复的结构时,有可能会导致数组的缓冲区溢出。0046对于SIP协议,例如可通过在SIP消息中包含大。
21、量的CONTACT头域构造FLOOD格式测试例,如下所示0047CONTACT0048CONTACT0049CONTACT0050CONTACT0051CONTACT00520053CONTACT0054绕过鉴权测试例0055绕过鉴权是指用户可以不通过授权就使用服务,IMS系统具有这种漏洞将可能产生非常严重的后果。0056绕过鉴权测试实际上就是通过发送需要鉴权通过后才能调用的方法,来检查是否有某种方法没有核实是否通过了鉴权。此处所用的“方法”指的是例如应用实例数据,即,认证后才能够执行的操作命令和通讯数据,如“INVITE”。0057绕过鉴权测试可分为两个阶段一是在未通过鉴权的情况下直接发送需。
22、要鉴权通过后的才能调用的方法例如,直接发送“INVITE”,用来检查是否有某种方法没有核实是否通过了鉴权;二是在未通过鉴权的情况下首先发送上文所述的几类测试例、然后说明书CN102025705ACN102025719A6/7页9发送需要鉴权通过后的才能调用的方法例如,先发送设计的数据模版如FLOOD等,然后不管反馈结果直接发送“INVITE”,用来检查是否在处理上述测试例的过程中出现状态改变的行为,从而可以允许后面的方法被调用。00583步骤S300059如上文所述,在生成漏洞测试例之后,在步骤30使用生成的各类测试例对服务端和/或客户端进行测试,并将测试结果与交互流程模板进行比对,以判断所使。
23、用的测试例是否引发了服务端和客户端的IMS系统漏洞。0060用测试例进行测试的步骤可包括将漏洞测试例发送至服务端或客户端进行漏洞挖掘测试;接收从服务端或客户端返回的响应消息;以及基于所述交互流程模板中的请求消息和响应消息之间的交互关系,确定所述漏洞测试例是否会引发系统漏洞。在该测试过程中,可将发送的漏洞测试例视为请求消息。根据生成的交互流程模板,可确定应当与该请求消息对应的响应消息。在接收到返回的响应消息后,将所接收的响应消息与根据交互流程模板确定的应当与该请求消息对应的响应消息进行比对。当返回的响应消息和根据交互流程模板确定的应当与该请求消息对应的响应消息一致时,可确定该漏洞测试例未引发系统。
24、漏洞;否则,则可确定该漏洞测试例引发了系统漏洞。0061如果在使用某个测试例进行测试时发现服务端或客户端出现任何异常反应甚至崩溃,并且这种异常反应可多次重现,那么就认为该测试例已经引发了未知漏洞。上述异常反应例如包括没有任何消息回应、返回不正确的状态值、绕过鉴权的数据被通过等等。0062例如,当客户端将一个测试例作为请求消息发送之后,如果服务端没有任何消息回应,或者返回了与交互流程模板中的响应消息不同的消息,则都可能说明服务端的状态发生了异常。例如,在SIP协议下,如果客户端发送一个测试例作为请求消息之后返回了状态值为403或者501、502、503等消息,则说明服务端的状态发生了异常。在这种。
25、情况下,可再使用正常的终端去访问服务端,以检查正常访问时服务器的状态。如果仍能够正常访问,说明该测试例不会导致问题,否则很可能是引发了一个漏洞。0063如果发现绕过鉴权的情况,也认为是一个严重的未知漏洞。同样,通过将测试例及其响应消息与步骤10中生成的交互流程模板中的“请求和响应消息对”进行比对来实现。由于绕过鉴权测试例是在未通过鉴权的情况下发送的,因此,在这种情况下,将测试例及其响应消息与步骤10中生成的交互流程模板中未通过鉴权时的“请求和响应消息对”进行比对。如果测试例的响应消息与未通过鉴权时的交互流程模板中指定的与该测试例匹配的响应消息不同,则认为是出现了绕过鉴权的情况。也就是说,如果在。
26、未通过鉴权的状态下,能够使用鉴权后的指令或数据交互,即可判断为引发漏洞。0064以上示例性地说明了对服务端进行IMS系统漏洞检测的过程。本领域技术人员可以理解,类似地,通过从服务端向客户端发送上文所述的各类测试例,可检测客户端是否存在IMS系统漏洞。0065本申请还提供了一种用于IMS的漏洞挖掘系统200。如图2所示,漏洞挖掘系统200包括模板生成模块201、测试例构造模块202和测试模块203。0066模板生成模块201被配置为基于IMS系统中的服务端和客户端之间的通信数据生成字段格式模板和交互流程模板。IMS系统中的通信数据例如可以是VOIP通信数据。说明书CN102025705ACN10。
27、2025719A7/7页10如上所述,生成的字段格式模板中包含多个可修改字段,生成的交互流程模板包括请求消息和响应消息的交互关系。0067模板生成模块201进一步包括数据获取单元2011和模板生成单元2012。在数据获取单元2011中例如配置有WIRESHARK、OMNIPEEK等抓包工具,用于获取IMS系统中的客户端和服务端之间通信数据。模板生成单元2012对获取的通信数据进行分析,例如分析通信数据的格式、以及通信数据中的请求消息和响应消息之间的交互流程,从而生成字段格式模板和交互流程模板。生成的字段格式模板可包括各种情况下的模板,例如,请求接入、成功接入、通话、请求通话结束、通话结束等常规。
28、过程下的模板,以及鉴权失败、目的用户不存在、目的用户忙等常见的异常情况下的模板。模板生成单元2012生成的交互流程模板可包括各种情况下的请求消息和响应消息之间的交互关系,例如,通过鉴权前后的请求消息和响应关系之间的交互关系。0068测试例构造模块202基于模板生成模块201生成的字段格式模板和交互流程模板构造漏洞测试例。漏洞测试例可包括用于测试IMS系统中各种常见漏洞类型的测试例,例如上述的格式化串测试例、字符串超长测试例、畸形格式测试例、FLOOD格式测试例和绕过鉴权测试例等。上文已经对以上各类测试例的构造进行了详细描述,因此此处不再赘述。0069测试模块203用测试例构造模块202构造的漏。
29、洞测试例进行漏洞挖掘测试,并根据测试结果判断使用的漏洞测试例是否引发了IMS系统漏洞。具体地,测试模块203将测试例构造模块202构造的漏洞测试例发送至服务端或客户端进行漏洞挖掘测试,并接收从服务端或客户端返回的响应消息。在测试中,发送的漏洞测试例被视为请求消息。在接收到返回的响应消息之后,将其与模板生成模块201生成的交互流程模板中确定的应当与该请求消息对应的响应消息进行比对,以确定该测试例是否引发了漏洞。0070当发送的测试例为格式化串测试例、字符串超长测试例、畸形格式测试例或FLOOD格式测试例时,如果返回的响应消息与交互流程模板中指定的应当与该测试例对应的响应消息不同,则认为是出现了异。
30、常。当发送的测试例为绕过鉴权测试例时,由于绕过鉴权测试例是在未通过鉴权的情况下发送的,因此,在这种情况下,将发送测试例后返回的响应消息与步骤10中生成的交互流程模板中未通过鉴权情况下的“请求和响应消息对”进行比对。如果返回的响应消息与未通过鉴权时的交互流程模板中指定的应当与该测试例对应的响应消息不同,则认为是出现了绕过鉴权的情况。0071上文参照具体实施方式对本申请的IMS系统漏洞挖掘方法和系统进行了描述。然而,本领域技术人员可在本申请的精神和范围内对上述具体实施方式进行适当的变形和等效变换。说明书CN102025705ACN102025719A1/1页11图1图2说明书附图CN102025705A。