《网络服务接口分析.pdf》由会员分享,可在线阅读,更多相关《网络服务接口分析.pdf(22页珍藏版)》请在专利查询网上搜索。
1、10申请公布号CN104137115A43申请公布日20141105CN104137115A21申请号201280070933722申请日20120229G06F21/5720130171申请人惠普发展公司,有限责任合伙企业地址美国德克萨斯州72发明人E芬戈尔德B菲赫尔G克德姆74专利代理机构中国专利代理香港有限公司72001代理人马红梅徐红燕54发明名称网络服务接口分析57摘要在一个实现方式中,服务接口分析系统标识针对网络服务的服务请求的部分处以及由网络服务响应于服务请求提供的服务响应内的参数。然后,所述服务接口分析系统定义请求模板,所述请求模板在与所述服务请求的所述部分相关联的所述请求模板。
2、的部分处包括占位符。85PCT国际申请进入国家阶段日2014082986PCT国际申请的申请数据PCT/US2012/0271152012022987PCT国际申请的公布数据WO2013/130069EN2013090651INTCL权利要求书2页说明书11页附图8页19中华人民共和国国家知识产权局12发明专利申请权利要求书2页说明书11页附图8页10申请公布号CN104137115ACN104137115A1/2页21一种处理器可读介质,包括表示在处理器处被执行时促使所述处理器执行下述操作的指令的代码标识针对网络服务的服务请求的部分处的参数;标识由网络服务响应于服务请求提供的服务响应内的参数。
3、;以及定义请求模板,所述请求模板在与所述服务请求的部分相关联的所述请求模板的部分处包括占位符。2如权利要求1所述的处理器可读介质,其中所述服务请求是第一服务请求,进一步包括表示在处理器处被执行时促使所述处理器执行下述操作的指令的代码基于所述请求模板生成第二服务请求,所述第二服务请求在与包括所述占位符的所述请求模板的部分相关联的所述第二服务请求的部分中包括攻击数据集合。3如权利要求1所述的处理器可读介质,进一步包括表示在处理器处被执行时促使所述处理器执行下述操作的指令的代码把所述服务请求提供到所述网络服务;以及从所述网络服务接收所述服务响应。4如权利要求1所述的处理器可读介质,进一步包括表示在处。
4、理器处被执行时促使所述处理器执行下述操作的指令的代码截取所述服务请求;以及截取所述服务响应。5如权利要求1所述的处理器可读介质,进一步包括表示在处理器处被执行时促使所述处理器执行下述操作的指令的代码访问数据存储器处的服务请求和服务响应。6如权利要求1所述的处理器可读介质,其中所述参数被包括在所述服务响应内名称/值对的值部分处;以及所述占位符包括基于所述名称/值对的名称部分的标识符。7如权利要求1所述的处理器可读介质,其中所述参数被包括在所述服务响应内标记语言文档的元素处;以及所述占位符包括基于所述元素的标志的标识符。8如权利要求1所述的处理器可读介质,其中所述服务请求的部分是服务请求的统一资源。
5、标识符、所述服务请求的报头、或所述服务请求的主体中的一个。9一种服务接口分析系统,包括采用表示指令的代码编码的处理器可读介质,所述指令在被执行时促使处理器实现服务接口分析系统,所述服务接口分析系统包括请求模块,用于把服务请求提供到网络服务,所述服务请求的部分包括参数;响应解析器,用于确定所述参数是否被包括在与所述服务请求相关联的服务响应内;以及模板模块,用于定义请求模板,所述请求模板在与所述服务请求的部分相关联的所述请求模板的部分处包括占位符。10如权利要求9所述的系统,其中所述服务接口分析系统进一步包括请求解析器,用于标识所述服务请求的部分处的参数。11如权利要求9所述的系统,其中所述服务接。
6、口分析系统进一步包括请求解析器,权利要求书CN104137115A2/2页3用于标识所述服务请求内的多个参数,所述服务请求的部分处的参数是所述多个参数中的一个。12如权利要求9所述的系统,其中所述服务接口分析系统进一步包括解释器,用于标识多个服务请求,所述服务请求是所述多个服务请求中的一个。13一种服务接口分析系统,包括请求解析器,用于标识第一服务请求的部分处的参数;响应解析器,用于确定所述参数是否被包括在与所述第一服务请求相关联的服务响应内;以及测试模块,用于基于所述第一服务请求生成第二服务请求,所述第二服务请求在与所述第一服务请求的部分相关联的所述第二服务请求的部分处包括攻击数据集合。14。
7、如权利要求13所述的系统,进一步包括模板模块,用于定义请求模板,所述请求模板在与所述第一服务请求的部分相关联的所述请求模板的部分处包括占位符。15如权利要求13所述的系统,进一步包括通信模块,用于把所述第一服务请求和所述第二服务请求提供到所述网络服务并接收所述服务响应。16如权利要求13所述的系统,进一步包括通信模块,用于接收所述第一服务请求和所述服务响应。权利要求书CN104137115A1/11页4网络服务接口分析背景技术0001安全测试被用于针对弱点或攻击矢量评价网络服务(诸如,WEB应用)。在安全测试的一种方法中,安全测试应用(或扫描仪)标识网络服务的服务接口(例如,统一资源标识符(U。
8、RI),诸如,应用在其处接受输入的统一资源定位符(URL)。网络服务的服务接口有时被称为网络服务的攻击表面。0002扫描仪通过分析与网络服务相关的网页以标识引用网络服务的URI(诸如,包括网络服务的主机标识符的URI),来标识网络服务的服务接口。在一些实现方式中,扫描仪还把超文本传送协议(HTTP)请求提供到网络服务并评估来自所述网络服务的HTTP响应,从而确定所述网络服务是否对这些URI处的请求作出响应,以及响应于这种请求返回的数据的特性。0003然后,扫描仪基于服务接口执行攻击,诸如,被导向到网络服务在其处接受输入的URI的HTTP请求。例如,这些请求被特别周密制订以(例如,具有参数或数据。
9、有效载荷来)测试攻击矢量,诸如,存储器缓冲器溢出、结构化查询语言(SQL)注入、特权提升、和任意代码执行。附加地,扫描仪可以通过评估来自网络服务的HTTP响应来诊断弱点的存在或不存在。附图说明0004图1A是依据实现方式的包括网络服务的环境的图示。0005图1B1D是依据各种实现方式的服务请求和服务响应的图示。0006图2A是依据实现方式的服务接口分析过程的流程图。0007图2B和2C是依据不同实现方式的请求模板的图示。0008图3是图示了依据实现方式的服务接口分析系统的操作的数据流程图。0009图4是依据另一个实现方式的服务接口分析过程的图示。0010图5是依据实现方式的在计算系统处托管的服。
10、务接口分析系统的示意框图。具体实施方式0011一些扫描仪通过首先解释针对网络服务的服务接口的所标识的服务请求并且更改那些服务请求的参数以包括攻击数据集合(例如,旨在测试网络服务处的攻击矢量的数据集合),来执行网络服务的安全测试。例如,具有经更改的URI的服务请求(诸如,HTTP请求)可以被提供到网络服务以执行网络服务的安全测试。0012一些网络服务的服务接口帮助这种安全测试。例如,服务接口可以基于包括HTTP/WWWSERVICECOM/DIRECTORY/LENAME1VALUE1NAME2VALUE2形式的URI的服务请求。这个URI包括主机标识符“WWWSERVICECOM”、到文件的路。
11、径“/DIRECTORY/LE”、以及查询串“NAME1VALUE1NAME2VALUE2”。典型地,查询串被转发到由路径标识的文件且由该文件处理。因此,查询串定义了对网络服务的输入或服务接口。这里,网络服务接受“VALUE1(值1)”作为被命名为“NAME1(名称1)”的输入参数,以及接受“VALUE2(值2)”说明书CN104137115A2/11页5作为被命名为“NAME2(名称2)”的输入参数。0013扫描仪可以相对容易地标识这种服务接口,因为定义这种服务接口的服务请求上的URI符合式样。更具体地,资源(这里是文件)由来自网络服务的主机标识符的路径标识,查询串由问号字符(“)标识,每个。
12、参数名称/值对通过和号字符(“)与其它参数名称/值对分离,并且任何参数名称/值对中的参数名称和值通过等号字符(“)分离。通过依据这个式样解释URI,扫描仪可以标识可被更改以执行网络服务的安全测试的参数(例如,名称/值对中的值)。0014然而,其它网络服务的服务接口不帮助这种安全测试。例如,一些网络服务暴露或定义代表性状态转移(REST)服务接口。符合REST原理的服务接口(或暴露这种服务接口的网络服务)通常被称为“RESTFUL”。REST不是协议,而是架构或接口样式。许多RESTFUL服务接口的一个公共特性是用于这种服务接口的URI包括作为URI的路径的元素而不是例如作为URI内的查询串的参。
13、数(或输入参数的值)。0015例如,相比于来自上述内容的URI示例(HTTP/WWWSERVICECOM/DIRECTORY/LENAME1VALUE1NAME2VALUE2),RESTFUL服务接口可以基于包括下述形式中的任一个的URI的服务请求HTTP/WWWSERVICECOM/DIRECTORY/LE/VALUE1/VALUE2;HTTP/WWWSERVICECOM/VALUE1/DIRECTORY/LE/VALUE2;HTTP/WWWSERVICECOM/VALUE2/DIRECTORY/LE/VALUE1;或HTTP/WWWSERVICECOM/VALUE1/VALUE2/LEHT。
14、ML。0016这种服务接口对于扫码器来说在识别上是困难的,因为这种URI具有与静态URI相似的形式。即,在不具有服务接口的单独描述的情形下,URLHTTP/WWWSERVICECOM/VALUE1/VALUE2/LEHTML可以被解释为引用由“WWWSERVICECOM”标识的主机处的具有路径“/VALUE1/VALUE2/”的目录中的标题为“LEHTML”的静态网页,而不是作为包括两个参数(即,“VALUE1(值1)”和“VALUE2(值2)”)的URI。0017此外,这种URI不符合清晰的式样,扫描仪可以从所述清晰的式样标识可被更改以执行网络服务的安全测试的参数(或输入参数值)。此外,服务。
15、请求内的被提供到网络服务的参数可以位于服务请求的除在URI内以外的部分处。例如,服务请求内的被提供到网络服务的参数可以被包括在报头部分、主体部分、或服务请求的其它部分中。因此,在不具有来自了解安全测试将在其上被执行的网络服务的服务接口的测试工程师的协助的情形下,扫描仪通常不能够有效地采用这种服务接口执行网络服务的安全测试。0018在此讨论的实现方式标识服务请求内的参数,该参数可以被更改以与网络服务的服务接口的描述无关地执行网络服务的安全测试。更具体地,例如,在此讨论的实现方式通过把服务请求中的被提供到网络服务的参数与针对那些服务请求的服务响应中的从网络服务提供的信息进行相关,来标识服务请求内的。
16、这种参数。例如,服务接口分析系统可以基于包括在服务请求中提供的参数的服务响应来定义一组请求模板(例如,服务请求或其部分,其中,包括或可能包括参数的服务请求的元素被标识)。所述请求模板然后可以被用于执行网络服务的安全测试。0019图1是依据实现方式的包括网络服务的环境的图示。图1中所示的环境被逻辑地而不是物理地图示。例如,图1中所图示的环境的部件可以包括多个物理部件或单个物理说明书CN104137115A3/11页6部件。作为具体示例,计算系统110可以是单个计算机服务器、计算机服务器的机壳或机架、在计算机服务器或计算机服务器处组处托管的一组虚拟机、或负载平衡器以及计算机服务器的集群。0020客。
17、户端140是计算系统,诸如,台式计算机、笔记本或膝上型计算机、平板设备、或托管应用(诸如,网页或互联网浏览器或者经由通信链路130访问网络服务120的其它应用)的智能电话。如图1中所图示,客户端140还托管服务接口分析系统150。如在此更详细地讨论的,服务接口分析系统150访问从客户端140发送到网络服务120的服务请求以及在客户端140处从网络服务120接收的服务响应。例如,服务接口分析系统150可以是客户端140处的代理应用,并且向通信链路130发送或从通信链路130接收的数据(例如,服务请求和响应)可以被提供到服务接口分析系统150(例如,通过在客户端140处用仪器装备应用或操作系统)。。
18、在一些实现方式中,服务接口分析系统150经由通信链路130与网络服务120进行通信。即,接口分析系统150向网络服务150发送服务请求并从网络服务150接收服务响应。因此,服务接口分析系统150可以访问服务请求和服务响应,因为服务接口分析系统150分别发送和接收服务请求和服务响应。0021在其它实现方式中,服务接口分析系统150可以被托管在与通信链路130通信的另一个计算设备(未示出)处。例如,服务接口分析系统150可以被托管在通信链路130内的代理、路由器、交换机或其它计算系统处,并可以访问由客户端140和网络服务120交换的服务请求和服务响应。作为另一个示例,服务接口分析系统150可以被托。
19、管在与通信链路130通信的计算系统处,并且通信链路130内的代理、路由器、交换机或其它部件可以被配置成把由客户端140和网络服务120交换的服务请求和服务响应提供到服务接口分析系统150。0022通信链路130包括下述部件(诸如,设备、服务或其组合)该部件定义了计算系统110、客户端140和/或其它设备或服务之间的通信路径。例如,通信链路130可以包括线缆(例如,双绞线线缆、同轴线缆或光纤线缆)、无线链路(例如,射频链路、光学链路、或声波链路)或者传送或支持信号传送的任何其它连接器或系统中的一个或多个。通信链路130可以包括通信网络,诸如,内联网、互联网、其它电信网络或其组合。附加地,通信链路。
20、130可以包括代理、路由器、交换机、网关、网桥、负载平衡器和相似的通信设备。此外,图1中所图示的连接和通信路径(例如,在通信链路130与客户端140和计算系统110之间)是逻辑的且未必反映物理连接。0023计算系统100托管网络服务120。网络服务120是资源经由其可被访问的应用或服务,诸如,WEB应用。资源121128是数据或数据的集合。例如,资源121可以是关系数据库内的表格,并且资源121、123和124可以是该关系数据库内的记录。资源125例如可以是图像的容器(或集合),资源126可以是资源125内的容器,资源127可以是资源126内的图像,并且资源128可以是该资源125内的图像。0。
21、024网络服务120定义了服务接口,经由所述服务接口,资源121128可以例如由客户端140访问。换言之,网络服务120的服务接口定义了标识资源121128和/或应被关于资源121128或其它资源(未示出)执行的操作的服务请求的结构。服务请求是标识资源和/或要被关于该资源执行的操作的数据集合。作为具体示例,服务请求可以是HTTP请求,诸如,GET、POST或PUT请求。说明书CN104137115A4/11页70025典型地,服务请求包括多个部分,在该多个部分处,参数被提供到网络服务。参数是作为对网络服务的输入而在服务请求内提供的诸如符号、字符或数字之类的数据。参数或参数组可以标识资源、标识要。
22、被关于资源执行的操作、表示用于要被关于资源执行的操作的数据(例如,用于更新资源的数据)、表示与资源相关的元数据、或表示与资源相关的其它数据。0026网络服务120从客户端140接收服务请求,并响应于所述服务请求向客户端140提供服务响应。服务响应包括响应于所述服务请求的信息,诸如,资源的表示、与资源相关的元数据、关于资源的操作的状态信息、与网络服务相关的元数据、或其它信息。0027例如,如果服务请求(或相关的操作)在网络服务120处失效或被不适当地格式化(例如,不符合网络服务120的服务接口),则对应的服务请求可以包括指示所发生的失效和/或所述失效的描述的状态信息。作为另一个示例,客户端140。
23、可以向网络服务120提供服务请求,所述服务请求标识资源128(例如,图像)并请求资源128(或资源128的表示)被提供到客户端140。网络服务120可以响应于服务请求向客户端140提供服务响应,包括指示服务请求成功的状态信息、与资源128相关的元数据、关于网络服务120的信息、和资源128的表示(例如,资源128的BASE64编码副本)。0028一些服务响应包括在服务请求中提供的参数。例如,由客户端140发送到网络服务120的服务请求包括作为资源的名称或其它标识符的参数。由网络服务120响应于所述服务请求提供到客户端140的服务响应包括资源的表示和资源的名称。换言之,来自所述服务请求的参数在所。
24、述服务响应中被回应。0029服务接口分析系统150可以通过标识在服务响应中回应的来自服务请求的参数来确定服务请求的哪些参数由网络服务120解释或使用。即,服务接口分析系统150可以假设在服务响应中回应的来自服务请求的参数由网络服务120解释。因为在网络服务120处对参数的不适当解释可能导致安全弱点,所以服务接口分析系统150可以使用关于服务请求的哪些参数由网络服务120解释的这个信息来执行网络服务120的安全测试。0030作为服务请求和服务响应的具体示例,图1B和1D图示了依据实现方式的服务请求。图1C和1E图示了服务响应。在图1B中图示的服务请求160是HTTPGET请求并包括部分161、1。
25、62、163和164。部分161标识GETHTTP方法、URI(“/PARAMETER1/PARAMETER2/PARAMETER3”)和HTTP版本的标识符。部分162包括具有名称/值对(“HOST”是名称并且“WWWSERVICECOM”是值)的报头,其标识服务请求被提供到的主机(例如,网络服务)的URI。部分163是具有名称/值对的另一个报头。部分164是标识服务请求的结尾的空行。服务请求160在部分161处包括参数1(PARAMETER1),参数2(PARAMETER2)和参数3(PARAMETER3),以及在部分163处包括参数4(PARAMETER4)。0031在图1C中图示的服务。
26、响应170由网络服务响应于服务请求160提供。更具体地,服务响应170依据JAVESCRIPT对象示意(“JSON“)而格式化,并包括提供与服务请求160相关的信息的一组名称/值对。在图1C中详述具体适用于服务请求160的服务响应170的仅几个部分。部分171包括名称/值对的名称(“数据(DATA)“),并且值是部分171和175处由花括号符号(“和“)包围的对象。对象(即,名称/值对的值)包括三个名称/值对。部分172包括第一名称/值对,其采用来自服务请求160的参数4(PARAMETER4)的值标识数据编码(名称部分是“编码(ENCODING)”)。部分173包括第二名称/值对,其采用来自。
27、说明书CN104137115A5/11页8服务请求160的参数3(PARAMETER3)的值标识资源(名称部分是“资源_名称(RESOURCE_NAME)”)。部分174包括第三名称/值对,其包括与资源相关的数据(名称部分是“资源_数据(RESOURCE_DATA)”),诸如,具有“一些文本(SOMETEXT)”的值的资源的表示。服务接口分析系统150可以分析服务请求160和服务响应170来标识服务请求160和服务响应170中的每一个中的参数(参数3(PARAMETER3)和参数4(PARAMETER4),并确定这些参数由网络服务120解释。0032相似地,图1D中图示的服务请求180是HTT。
28、PPOST请求,并包括部分181、182、183、184、185、186和187。部分181标识POSTHTTP方法、URI(“/PARAMETER1/PARAMETER2/PARAMETER3”)、以及HTTP版本的标识符。部分182包括具有名称/值对(“HOST”是名称并且“WWWSERVICECOM”是值)的报头,其标识服务请求被提供到的主机(例如,网络服务)的URI。部分183是具有名称/值对的另一个报头。部分184是具有名称/值对的另一个报头,其标识服务请求180的主体部分(这里是部分187)的内容长度(“内容长度(CONTENTLENGTH)”是名称并且21是值)。部分185是具有。
29、名称/值对的另一个报头,其标识主体部分的内容类型(“内容类型(CONTENTTYPE)”是名称并且“APPLICATION/XWWWFORMURLENCODED”是值)。部分186是标识主体部分的开始的空行。部分187是具有名称为“标识符(IDENTIFIER)”以及值为“参数5(PARAMETER5)”的名称/值对。服务请求170在部分181处包括参数1(PARAMETER1)、参数2(PARAMETER2)和参数3(PARAMETER3),在部分183处包括参数4(PARAMETER4),以及在部分187处包括参数5(PARAMETER5)。0033图1E中图示的服务响应190由网络服务响。
30、应于服务请求180提供。更具体地,服务响应190是依据标记语言(例如,可扩展标记语言(XML)格式化的标记语言文档,并包括提供与服务请求180相关的信息的一组元素。在图1E中详述具体适用于服务请求180的服务响应190的仅几个部分。部分191是打开标志,其标识包括数据集合的元素的开始,以及部分195是元素的关闭标志(即,部分195标识数据集合的结尾)。部分192是由打开标志和关闭标志标识的元素,其包括参数3(PARAMETER3)作为资源名称(或标识符)。部分193是由打开标志和关闭标志标识的元素,其包括参数5(PARAMETER5)作为新数据以用于以参数3(PARAMETER3)为名称的资源。
31、。部分194是由打开标志和关闭标志标识的元素,其包括参数4(PARAMETER4)作为数据编码的标识符。换言之,服务请求180提供了参数5(PARAMETER5)作为由参数4(PARAMETER4)标识的编码中所编码的数据以更新(或创建)名称为参数3(PARAMETER3)的资源,并且服务响应190描述了服务请求180的结果。0034如以上所讨论,服务接口分析系统150可以访问服务请求和服务响应。因此,服务接口分析系统150可以例如解析服务请求和服务响应来标识在服务请求和服务响应二者中包括的参数。作为具体示例,服务接口分析系统150可以解析服务请求160和180以及服务响应170和190,从而。
32、标识服务请求160和服务响应170中的每一个中的参数3(PARAMETER3)和参数4(PARAMETER4),并标识服务请求180和服务响应190中的每一个中的参数3(PARAMETER3)、参数4(PARAMETER4)和参数5(PARAMETER5)。如在此更详细地讨论的,服务接口分析系统150可以使用这个信息来执行网络服务120的安全测试。0035图2是依据实现方式的服务接口分析过程的流程图。过程200可以被实现在服务接口分析系统(诸如,在计算系统处托管的服务接口分析系统)处。标识服务请求内的参数(在框210)。服务请求可以依据多种方法而访问。例如,服务请求可以在客户端和网络服务说明书。
33、CN104137115A6/11页9之间被截取。作为另一个示例,服务请求可以在数据存储器(诸如,包括由客户端提供到网络服务的一组服务请求的数据库)处被访问。作为又一个示例,实现过程200的服务接口分析系统可以生成服务请求并向网络服务提供该服务请求。0036服务请求内的参数可以依据多种方法而标识。例如,实现过程200的服务接口分析系统可以解析服务请求、标识服务请求的各种部分处的值、并在存储器内的表格或阵列处存储那些值。作为具体示例,服务请求内的URI的每个元素可以被标识为参数。作为另一个示例,服务请求的部分(诸如,报头部分或主体部分)处的名称/值对的值可以被标识为参数。作为又一个示例,服务请求内。
34、的URI的查询串处的名称/值对的值可以被标识为参数。此外,来自服务请求的主体部分或者服务请求的某个或某些其它部分的值可以作为参数而被存储在存储器处,以用于在与服务请求相关联的服务响应(例如,响应于服务请求在网络服务处生成的服务响应)的各种部分处的值的随后分析。0037在针对服务请求标识参数(在框210)之后,对与该服务请求相关的服务响应进行分析(在框220)以确定该服务响应是否包括任何参数。即,服务响应被针对在框210期间标识的参数解析或搜索。0038与访问服务请求相似,可以使用多种方法来访问服务响应。例如,服务响应可以在客户端和网络服务之间被截取。作为另一个示例,可以在数据存储器(诸如,包括。
35、由网络服务提供到客户端的一组服务响应的数据库)处访问服务响应。作为又一个示例,实现过程200的服务接口分析系统可以响应于接口分析系统提供到网络服务的服务请求而接收所述服务请求。0039如果被包括在于框210处分析的服务请求中的参数没有被包括在于框220处分析的服务响应中(在框230),则过程200返回到框210来分析另一个服务请求。然而,如果被包括在于框210处分析的服务请求中的参数也被包括在于框220处分析的服务响应中,则过程200进行到框240,在框240处,定义(或生成)针对该参数的包括占位符的请求模板。请求模板描述了针对服务请求的结构,该结构符合网络服务的服务接口,并包括标识与该服务请。
36、求的包括参数的部分相关的该请求模板的部分的一个或多个占位符。0040占位符是标识请求模板的一部分的符号或符号组,在该部分处,值可以被替代以定义服务请求。例如,占位符可以是诸如下述各项之类的符号星号字符(“);串的形式“PARAM_“,其中被替换为针对每个占位符标识符的整数;或某其它符号或符号组。0041在一些实现方式中,占位符可以是描述性的或者包括关于占位符替换(或表示)的参数的信息。例如,占位符可以包括来自具有下述值部分的服务响应的名称/值对的名称部分所述值部分包括所述占位符将在请求模板中替换的参数。更具体地,参考图1C作为示例,针对请求模板中的参数4(PARAMETER4)的占位符可以是“。
37、编码(ENCODING)“。作为另一个示例,占位符可以包括来自元素的标志的标识符,所述元素包括服务响应中的标记语言文档(例如,XML文档)内的参数。更具体地,参考图1E作为示例,针对请求模板中的参数5(PARAMETER5)的占位符可以是“新_资源_数据(NEW_RESOURCE_DATA)“。0042作为具体示例,参考以上关于图1B和1D讨论的服务请求160,在图2B中图示针对服务请求160的请求模板260。除了参数3(PARAMETER3)和参数4(PARAMETER4)已被替换为作为占位符的星号字符(“)之外,请求模板260与服务请求160相同。换言之,被包说明书CN104137115A。
38、7/11页10括在服务响应170中的服务请求160的参数已由占位符在请求模板260中替换。0043在其它实现方式中,请求模板可以采取不同的形式。例如,请求模板可以由XML文档内的XML元素描述。例如,针对服务请求160的服务模板可以被表达为在图2C中图示的服务请求280。更具体地,行281和287是包围描述请求模板的多个XML元素的标志(分别为打开标志和关闭标志)。行282定义了针对请求模板的协议元素。行283定义了针对请求模板的URI元素。由URI元素表示的URI包括占位符,这里是星号字符(“)。行284定义了描述请求模板的HTTP方法的XML元素。行285是描述网络服务的主机标识符的主机元。
39、素。行286是描述服务请求的报头的报头元素。报头元素包括占位符,因为服务请求160的报头部分包括也被包括在服务响应170中的参数。0044在定义请求模板(在框240)之后,过程200返回到框210以分析另一个服务请求。在一些实现方式中,实现过程200的服务接口分析系统在返回到框210之前把请求模板存储在数据存储器(诸如,数据库或存储器的一部分)处。0045在其它实现方式中,在对实现过程200的服务接口分析系统来说可访问或可用的服务请求和服务响应已被分析之后,所述服务接口分析系统使用请求模板来在网络服务上执行安全测试。更具体地,例如,服务接口分析系统可以通过采用攻击数据集合替换服务请求处的占位符。
40、,从请求模板生成服务请求。然后,服务接口分析系统可以把这些服务请求提供到网络服务,并基于来自网络服务的服务响应确定所述网络服务是否包括安全弱点。0046图3是图示了依据实现方式的服务接口分析系统的操作的数据流程图。如以上所讨论,在一些实现方式中,服务接口分析系统可以通过与网络服务通信(即,把服务请求提供到网络服务,并从网络服务接收服务响应)或通过访问数据存储器处的服务请求和相关的服务响应来访问服务请求和服务响应。如图3中所图示,服务接口分析系统320截取在客户端310和网络服务330之间交换的服务请求和服务响应。换言之,服务接口分析系统320监控客户端310和网络服务330之间的通信来访问服务。
41、请求和相关的服务响应。换言之,服务接口分析系统320可以实时地(即,在客户端310和网络服务330传送服务请求和服务响应的同时)标识服务请求和服务响应中的参数。0047更具体地,服务接口分析系统320截取包括由客户端310提供到网络服务330的参数(标记为“PARAM”)的服务请求,并标识所述参数。网络服务330还接收服务请求、处理(或操纵)所述服务请求,并把服务响应提供到客户端310。服务响应包括被包括在服务请求中的参数(标记为“PARAM”)。0048服务接口分析系统320截取服务响应,并标识所述服务响应内的参数。然后,服务接口分析系统320基于所述服务请求定义请求模板,并在所述请求模板的。
42、一部分处插入占位符,该部分关于或表示包括了所述参数的服务请求的部分。然后,服务接口分析系统320基于所述请求模板生成服务请求,并在与包括所述占位符的请求模板的部分相关的所生成的服务请求的部分处插入攻击数据集合。0049攻击数据集合包括符号组,该符号组用于当网络服务330解释攻击数据集合时测试或探测网络服务330处的安全弱点。在这个示例中,所生成的服务请求是由客户端310提供到网络服务330的服务请求的副本,其中攻击数据集合替换所述参数。然后,服务接口分析系统320把具有攻击数据集合的所生成的服务请求提供到网络服务330,以确定网络服务330是否包括与所述攻击数据集合相关的安全弱点。说明书CN1。
43、04137115A108/11页110050图4是依据另一个实现方式的服务接口分析过程的图示。服务接口分析系统400包括请求解析器410、响应解析器420和测试模块430。在一些实现方式中,服务接口分析系统400还包括模板模块440和通信模块450。0051尽管关于图4和5以及其它示例实现方式图示和讨论了各种模块(即,硬件和软件的组合),但模块的其它组合或子组合可以被包括在其它实现方式内。换言之,尽管在图4和5中图示以及在其它示例实现方式中讨论的模块执行在此所讨论的示例中的具体功能性,但这些和其它功能性可以在不同的模块或模块的组合处被实施、实现或实行。例如,被图示和/或讨论为分离的两个或更多模。
44、块可以被组合成执行关于所述两个模块讨论的功能性的模块。作为另一个示例,如关于这些示例讨论的一个模块处执行的功能性可以在一个或多个不同的模块处被执行。0052请求解析器410是分析服务请求以标识所述服务请求的部分处的参数的模块(即,硬件和软件的组合)。例如,请求解析器410可以解析服务请求并把在所述服务请求的各种部分处包括的参数(例如,符号或值)提供到响应解析器420。作为具体示例,请求解析器410可以解析和HTTP服务请求并存储位于对于请求分析器410和响应解析器420来说可访问的存储器处的HTTP服务请求的URI部分、HTTP服务请求的报头部分或HTTP服务请求的主体部分内的参数。此外,在一。
45、些实现方式中,请求解析器410可以在存储器(未示出)处存储服务请求(或者服务请求的副本或表示),以便在例如测试模块430或模板模块440处使用。可替代地,例如,请求解析器410可以把所述服务请求直接提供到测试模块430或模板模块440。0053响应解析器420是分析服务响应以标识匹配于服务请求内标识的参数的服务响应内的值的模块。换言之,响应解析器420确定服务响应是否包括被包括在针对其所述服务响应被生成的服务请求中的参数。响应解析器420可以例如解析服务响应并比较由请求解析器410标识的参数与所述服务响应的各种部分处的值。如果参数匹配于所述服务响应的部分处的值,则响应解析器420可以确定所述服。
46、务响应包括所述参数。0054如以上所讨论,包括参数的服务响应可以是该参数在网络服务处被解释的指示。例如,网络服务可以访问服务请求处的参数并基于所述参数执行一个或多个操作。相应地,响应解析器420与测试模块430通信以向测试模块430指示服务请求的哪些参数已被标识在服务响应中。0055测试模块430是基于在请求解析器410处分析的服务请求生成服务请求的模块。此外,测试模块430采用攻击数据集合替换在请求解析器410处的那些服务请求中以及在响应解析器420处的相关服务响应中标识的服务请求的参数。换言之,测试模块430以攻击数据集合替代在测试模块430处生成的服务请求中的参数。0056然后,测试模块。
47、430把服务请求提供到网络服务,并分析一个或多个服务响应以确定针对攻击数据集合的安全弱点是否在网络服务处存在或暴露。在一些实现方式中,测试模块430生成一组服务请求,每一个服务请求具有旨在测试来自一组安全弱点的特定安全弱点的不同的攻击数据集合,并且测试模块430把该组服务请求提供到所述网络服务,以确定是否该组安全弱点中的任一个在所述网络服务处存在或暴露。0057在一些实现方式中,测试模块430基于在模板模块440处生成的请求模板生成服务请求。模板模块440是接收或访问服务请求(例如,在请求解析器410分析所述服务请求说明书CN104137115A119/11页12之后由请求解析器410提供)且。
48、基于那些服务请求定义请求模板的模块。更具体地,模板模块440可以与响应解析器420通信,以接收服务请求的哪个或哪些参数被包括在针对该服务请求的服务响应(例如,由网络服务响应于服务请求提供的服务响应)中的指示。模板模块440然后可以定义请求模板,其中那个参数(或那些参数)被占位符替换。0058此外,模板模块440可以把请求模板提供到测试模块430,并且测试模块430可以通过采用攻击数据集合替换请求模板中的占位符来生成服务请求。换言之,请求模板描述了服务请求的结构,并标识包括在网络服务器处解释的参数的那些服务请求的部分。测试模块430通过依据(或基于)一个或多个请求模板生成那些服务请求并在与该一个。
49、或多个请求模板的包括占位符的部分相对应的那些服务请求的部分处包括攻击数据集合,来把攻击数据集合注入到服务请求中。0059此外,服务接口分析系统400可以包括通信模块450。通信模块450是诸如通信接口之类的模块,经由该模块,服务接口分析系统400可以与其它系统(诸如,托管客户端或网络服务的计算系统)通信。换言之,服务接口分析系统400可以经由通信模块450访问(例如,接收)服务请求和服务响应,并可以经由通信模块450提供服务请求(例如,在测试模块430处生成)。0060图5是依据实现方式的在计算系统处托管的服务接口分析系统的示意框图。在图5中所图示的示例中,计算系统500包括处理器510、通信接口520和存储器530;以及托管操作系统531和服务接口分析系统533。服务接口分析系统533包括一组部件,该组部件包括请求模块534、响应解析器535和模板模块536。在一些实现方式中,服务接口分析系统533包括请求解析器537和解释器538。0061请求模块534是把包括一个或多个参数的服务请求提供到网络服务的模块。服务请求可以经由例如通信接口520而被提供到网络服务。对所述服务请求的服务响应例如经由通信接口520在响应解析器535处接收,并且响应解析器535分析服务响应以标识在服务请求中包括的参数。换言之,响应解析器。