网络服务接口分析的制作方法

xiaoxiao2020-9-10  5

网络服务接口分析的制作方法
【专利摘要】在一个实现方式中,服务接口分析系统基于与网络服务相关联的多个统一资源标识符定义多个服务模板,并且生成来自多个服务模板的每个服务模板的至少一个效用度量。
【专利说明】网络服务接口分析

【背景技术】
[0001]安全性测试用于针对脆弱性(vulnerability)或攻击向量(attack vector)而评定诸如web (网络)应用之类的网络服务。在安全性测试的一种方法中,安全性测试应用(或扫描器(scanner))识别网络服务的服务接口(例如,统一资源标识符(URI),诸如应用在其处接受输入的统一资源定位符(URL))。网络服务的服务接口有时被称作网络服务的攻击面。
[0002]扫描器通过分析与网络服务有关的网页以识别引用网络服务的URI (诸如包括网络服务的主机标识符的URI)来识别网络服务的服务接口。在一些实现方式中,扫描器还向网络服务提供超文本传输协议(HTTP)请求并且评估来自网络服务的HTTP响应以确定网络服务是否在这些URI处对请求进行响应以及响应于这样的请求而返回的数据的特性。
[0003]扫描器然后基于诸如导向网络服务在其处接受输入的URI的HTTP请求之类的服务接口而执行攻击。这些请求特别地被精心制作成(例如具有参数或数据有效载荷以)测试攻击向量,诸如,例如,存储器缓冲器溢出、结构化查询语言(SQL)注入、特权提升和任意代码执行。此外,扫描器可以通过评估来自网络服务的HTTP响应来诊断存在或不存在脆弱性。

【专利附图】

【附图说明】
[0004]图1是根据实现方式的包括网络服务的环境的图示。
[0005]图2是根据实现方式的服务接口分析过程的流程图。
[0006]图3是根据另一个实现方式的服务接口分析系统的示意性框图。
[0007]图4是根据另一个实现方式的服务接口分析过程的流程图。
[0008]图5是根据实现方式的服务接口分析系统的数据流图。
[0009]图6是根据实现方式的在计算系统处主控(host)的服务接口分析系统的示意性框图。

【具体实施方式】
[0010]一些扫描器通过首先解释(interpret)网络服务的服务接口的识别出的URI并且使那些URI的参数改变成包括攻击数据集(例如旨在测试网络服务处的攻击向量的数据集)来执行网络服务的安全性测试。然后将具有改变的URI的诸如HTTP请求之类的请求(还称为服务请求或资源请求)提供给网络服务以执行网络服务的安全性测试。
[0011]一些网络服务的服务接口适用于这样的安全性测试。例如,服务接口可以基于以下形式的 URI:http://www.service, com/directory/file?parameterl=valuel&parameter2=value20 该 URI 包括主机标识符“www.service, com”,到文件的路径“/directory/file”,以及查询串“parameterl=valueI&parameter2=value2”。典型地,查询串被转发到路径识别的文件并且被其处理。因此,查询串定义到网络服务或服务接口的输入。这里,网络服务接受“valuel”作为名为“namel”的输入参数以及“value2”作为名为“name2”的输入参数。
[0012]扫描器可以相对简单地识别这样的服务接口,因为定义这样的服务接口的URI符合模式。更具体地,资源(这里,文件)被来自网络服务的主机标识符的路径所识别,查询串由问号字符(“? ”)识别,每个参数名称/值对通过与字符(“&”)与其它参数名称/值对分开,并且任何参数名称/值对的参数名称和值通过等号字符(“ = ”)分开。通过根据该模式解释URI,扫描器可以识别可以被改变以执行网络服务的安全性测试的值。
[0013]然而,其它网络服务的服务接口并不适用于这样的安全性测试。例如,一些网络服务显露或定义表述性状态转移(REST)服务接口。符合REST (或显露这样的服务接口的网络服务)的原则的服务接口通常称作“REST的(RESTful)”。REST不是协议,而是架构或接口式样。许多REST的服务接口的一个共同特点是用于这样的服务接口的URI包括作为URI路径的元素而不是例如作为URI内的查询串的参数(或输入参数的值)。
[0014]例如,与来自上文的URI 7]\ 例(http://www.service, com/directory/file?namel=valueI&name2=value2)形成对照,REST的服务接口可以基于以下形式中的任一种的URI:
http://www.service, com/directory/file/valuel/value2,
http://www.service, com/valuel/directory/file/value2,
http://www.service.com/value2/directory/file/valuel,或者
http://www.service.com/valuel/value2/file.html。
[0015]这样的接口对于扫描器而言难以识别,因为这样的URI具有类似于静态URI的形式。也就是说,在没有服务接口的单独描述的情况下,URI http://www.service, com/valuel/value2/file.html可以解释成是指在由www.service, com识别的主机处的具有路径“/valUel/valUe2/”的目录中的题为“file, html”的静态网页,而不是作为包括两个参数(即 “ value I ” 和 “ value2 ”)的 URI。
[0016]此外,这样的URI不符合扫描器从其可以识别可以被改变以执行网络服务的安全性测试的参数(或输入参数值)的清楚模式。结果,扫描器通常不能在没有来自具有将在其上执行安全性测试的网络服务的服务接口的理解的测试工程师的辅助的情况下利用这样的服务接口有效地执行网络服务的安全性测试。
[0017]本文所论述的实现方式不依赖于网络服务的服务接口的描述而识别可以被改变以执行网络服务的安全性测试的URI内的参数。例如,本文所论述的实现方式基于针对网络服务的服务接口的URI组而识别URI内的这样的参数。作为更特定的示例,服务接口分析系统可以基于通过爬行(crawl) —组网页而识别出的URI来定义服务模板组(例如其中识别出包括或者可以包括参数的URI的元素的URI或其部分)。此外,服务接口分析系统可以基于该服务模板的属性而生成针对每个服务模板的一个或多个效用度量(measure)。服务接口分析系统然后可以基于针对每个服务模板的一个或多个效用度量将启发法(例如表征或分类的规则)应用于服务模板以识别由于不太可能正确地识别包括参数的URI的元素而应当被丢弃的服务模板。剩余的服务模板(即未被丢弃的那些)可以用于执行网络服务的安全性测试。
[0018]图1是根据实现方式的包括网络服务的环境的图示。图1中所示的环境被逻辑地而非物理地图示。例如,图1中图示的环境的组件可以包括多个物理组件或单个物理组件。作为特定示例,计算系统110可以是单个计算机服务器、计算机服务器的外壳或机架、在计算机服务器或计算机服务器组处主控的虚拟机组、或负载平衡器和计算机服务器集群。
[0019]客户端140是诸如web或因特网浏览器或在计算系统(诸如台式计算机、笔记本或膝上型计算机、平板设备或智能电话)处主控的其它应用之类的应用。客户端140通过使用URI请求那些资源来访问网络服务120处的资源。
[0020]通信链路130包括定义计算系统110、客户端140和/或其它设备或服务之间的通信路径的设备、服务或其组合。例如,通信链路130可以包括线缆(例如,双绞线缆、同轴线缆或光纤线缆)、无线链路(例如,射频链路、光学链路或声波链路)或者传输或支持信号传输的任何其它连接器或系统中的一个或多个。通信链路130可以包括诸如内联网、因特网、其它电信网络或其组合之类的通信网络。此外,通信链路130可以包括代理、路由器、交换机、网关、桥接器、负载平衡器和类似的通信设备。此外,图1中图示的连接和通信路径(例如,在通信链路130和客户端140和计算系统110之间)是逻辑性的并且不一定反映物理连接。
[0021]计算系统100主控网络服务120。网络服务120是资源经由其可以被访问的诸如web应用之类的应用。资源121-128是数据或数据的集合。例如,资源121可以是关系数据库内的表,并且资源121、123和124可以是关系数据库内的记录。资源125可以是,例如,图像的容器(或集合),资源126可以是资源125内的容器,资源127可以是资源126内的图像,并且资源128可以是该资源125内的图像。
[0022]网络服务120定义资源121-128经由其可以例如被客户端140访问的服务接口。换言之,网络服务120定义识别资源121-128的URI的结构。URI是识别资源的符号组。因此,服务接口定义在网络服务120处如何解释URI以识别资源。
[0023]URI 190是URI的示例。URI 190包括各种片段(或部分或元素)。在图1中图示的示例中,URI 190的片段由斜线字符(“/”)划界或分开。更具体地,URI 190包括五个片段:模式“HTTP”,其描述数据要如何被传送;主机标识符,其识别网络服务120 ;以及作为URI的主体或路径的部分的三个片段。在其中网络服务120定义REST的服务接口的示例中,例如,作为URI的路径的部分的三个片段可以每一个包括被网络服务120用于识别资源的参数。也就是说,网络服务120将这些片段的内容解释为参数或输入参数值。
[0024]参数是诸如在URI (或诸如包括URI的HTTP请求之类的请求)内作为输入提供给网络服务的符号、字符或数字之类的数据。参数或参数组可以识别资源、识别关于资源要执行的操作、表示用于相对于资源被执行的操作的数据(例如用于更新资源的数据)、表示与资源有关的元数据或者表示与资源有关的其它数据。
[0025]作为特定示例,网络服务120可以提供与图书有关的信息。在该示例中,资源121可以是关系数据库内的表,所述关系数据库包括诸如唯一图书标识符(例如国际标准图书编号(ISBN))、标题、作者、出版日期、页数和其它信息之类的关于图书的信息。也就是说,资源122、123、124中的每一个和资源121内的其它资源是与特定图书有关的信息集合。此外,在该示例中,资源125可以包括图书封面的图像。对于该示例更具体地,资源126可以是针对特定图书的不同图书封面的图像的集合(资源127可以是那些图像之一),并且资源128是图书封面的图像。包括PARAMETER1 (参数I)的片段可以被网络服务120用于确定是否请求关于图书或图书封面的信息。如果PARAMETER1具有值“data”,关于图书的信息被请求并且包括PARAMETER2 (参数2)的片段可以被网络服务120用于识别所期望的图书的唯一图书标识符,并且包括PARAMETER3 (参数3)的片段可以被网络服务120用于识别针对该所期望的图书的资源中的信息的特定类型或字段。如果PARAMETER1具有值“cover”,图书封面被请求并且包括PARAMETER2的片段可以被网络服务120用于通过使用所期望的图书的唯一图书标识符来识别请求针对其的图书封面图像的图书,并且包括PARAMETER3的片段可以被网络服务120用于识别所请求的图像的格式(例如,位图图像、JPEG图像、PNG图像、GIF图像或某个其它图像格式)。
[0026]因此,如果客户端140通过向网络服务120提供URI http://www.service, com/data/29132464/titIe来请求网络服务120处的资源,网络服务120将用由29132464唯一识别的图书的标题向客户端140提供响应。类似地,如果客户端140通过向网络服务120提供URI http://www.service, com/data/36007380/title 来请求网络服务 120 处的资源,网络服务120将用由36007380唯一识别的图书的标题向客户端140提供响应。然而,如果客户端 140通过向网络服务 120提供URI http://www.service, com/cover/29132464/JPEG来请求网络服务120处的资源,网络服务120将用以JPEG格式的针对由29132464唯一识别的图书的图书封面的图像向客户端140提供响应。此外,如果客户端140通过向网络服务 120 提供 URI http: //www.service, com/cover/36007380/PNG 来请求网络服务 120 处的资源,网络服务120将用以PNG格式的针对由36007380唯一识别的图书的图书封面的图像向客户端140提供响应。
[0027]扫描器可以通过,例如,爬行链接到网络服务120的网页(或经由网络服务120可访问的资源121-128)和/或监视去往计算系统110的通信(例如网络业务)来获取包括网络服务120的主机标识符的URI大组(在该示例中,www.service, com)。这些URI将具有形式http://www.service.com/cover/〈唯一图书标识符 >/〈图像格式 > 或形式http://www.service, com/data/<唯一图书标识符>/〈信息字段 >。本文论述的实现方式分析这些URI以生成描述这些URI的哪些片段包括可以被改变以执行网络服务120的安全性测试的参数的服务模板。
[0028]作为示例,图2是根据实现方式的服务接口分析过程的流程图。过程200可以在诸如在计算系统处主控的服务接口分析系统之类的服务接口分析系统处实现。基于URI组在块210处定义服务模板组。服务模板描述针对用于网络服务的服务接口的URI的结构。作为示例,服务模板可以是包括与包括参数的其它URI的片段对应的服务模板的部分(或片段)处的一个或多个占位标识符的URI (或其部分)。换言之,服务模板中的占位标识符是对于URI中的参数的代替。因此,服务模板通过描述网络服务经由其接受输入的URI和那些URI的哪些片段可以包括参数来描述服务接口(或其部分)。在其它实现方式中,服务模板可以以除了 URI或字符串之外的格式来描述,诸如使用诸如可扩展标记语言(XML)之类的标记语言。
[0029]作为特定示例,参考以上关于图1论述的示例,网络服务可以显露基于以下形式的URI的服务接口:http://www.service.com/cover/<唯一图书标识符>/〈图像格式 > 或形式http://www.service, com/data/<唯一图书标识符>/〈信息字段 >。该服务接口可以通过例如两个服务模板来描述:http://www.service, com/cover/*/*或形式http://www.service, com/data/*/*,其中星号字符(“*”)是占位标识符。换言之,服务模板http://www.service, com/cover/*/*描述网络服务经由其接受输入的URI的结构。通过用各种值(例如字母数字字符或其它符号串)取代占位标识符(这里,星号字符),诸如攻击数据集之类的数据可以被提供作为对网络服务的输入。
[0030]在该示例中,URI可以按如下从服务模板http://www.service, com/cover/*/*生成或基于所述服务模板生成。第一星号字符可以用作为唯一图书标识符的要被输入到网络服务的值“SQL ATTACK”取代,并且第二星号字符可以用作为图像格式的要被输入到网络服务的值“SHELL CODE”取代。更具体地,在该示例中所生成的URI将是http://www.service,com/cover/ SQL ATTACK / SHELL CODE。
[0031]作为另一个示例,服务模板可以由XML文档内的XML元素描述。例如,服务模板http://www.service, com/cover/氺/氺可以表述为:

【权利要求】
1.一种处理器可读介质,包括表示指令的代码,所述指令当在处理器处执行时使处理器: 基于与网络服务相关联的多个统一资源标识符而定义多个服务模板; 生成来自多个服务模板的每个服务模板的至少一个效用度量;以及 基于服务模板的至少一个效用度量而丢弃来自多个服务模板的所述服务模板。
2.权利要求1的处理器可读介质,还包括表示指令的代码,所述指令当在处理器处执行时使处理器: 获取数据存储装置处的多个统一资源标识符。
3.权利要求1的处理器可读介质,还包括表示指令的代码,所述指令当在处理器处执行时使处理器: 向网络服务提供多个请求;以及 基于来自网络服务的多个响应而定义多个统一资源标识符。
4.权利要求1的处理器可读介质,其中所述至少一个效用度量包括覆盖度量、特异性度量、度度量或其组合中的至少一个。
5.权利要求1的处理器可读介质,还包括表示指令的代码,所述指令当在处理器处执行时使处理器: 识别来自多个统一资源标识符的每个统一资源标识符内的网络服务的主机标识符和多个片段; 针对来自多个统一资源标识符的每个统一资源标识符,通过用至少一个占位标识符取代来自该统一资源标识符内的多个片段的一个或多个片段来生成服务模板组, 通过来自针对来自多个统一资源标识符的每个统一资源标识符的服务模板组的唯一服务模板而定义多个服务模板。
6.权利要求1的处理器可读介质,还包括表示指令的代码,所述指令当在处理器处执行时使处理器: 确定服务模板的至少一个效用度量不满足针对至少一个效用度量的预定阈值。
7.一种服务接口分析系统,包括: 解析模块,其识别来自多个统一资源标识符的每个统一资源标识符内的多个片段; 服务模板生成器模块,其用至少一个占位标识符取代来自每个统一资源标识符内的多个片段的一个或多个片段以定义针对该统一资源标识符的至少一个服务模板;以及 测量模块,其向针对每个统一资源标识符的至少一个服务模板分配至少一个效用度量。
8.权利要求7的系统,还包括: 过滤模块,其基于分配到针对来自多个统一资源标识符的统一资源标识符的至少一个服务模板的至少一个效用度量而丢弃针对来自多个统一资源标识符的所述统一资源标识符的来自至少一个服务模板的服务模板。
9.权利要求7的系统,其中分配到针对每个统一资源标识符的至少一个服务模板的至少一个效用度量包括覆盖度量、特异性度量、度度量或其组合中的至少一个。
10.权利要求7的系统,其中分配到针对每个统一资源标识符的至少一个服务模板的至少一个效用度量包括覆盖度量、特异性度量、度度量或其组合中的至少两个。
11.权利要求7的系统,还包括: 捕获模块,其基于与网络服务的通信而识别多个统一资源标识符。
12.权利要求7的系统,还包括: 分析模块,其向网络服务提供多个请求,所述请求基于针对来自多个统一资源标识符的统一资源标识符的来自至少一个服务模板的多个服务模板,每个请求包括攻击数据集。
13.一种服务接口分析方法,包括: 获取存储器处的多个统一资源标识符; 针对来自多个统一资源标识符的每个统一资源标识符, 识别该统一资源标识符内的多个片段,以及 用至少一个占位标识符取代来自该统一资源标识符内的多个片段的一个或多个片段以定义针对该统一资源标识符的服务模板组; 聚合针对每个统一资源标识符的服务模板组以定义多个服务模板;以及 向来自多个服务模板的每个服务模板分配效用度量。
14.权利要求13的方法,其中分配到每个服务模板的效用度量包括覆盖度量、特异性度量、度度量或其组合中的至少一个。
15.权利要求13的方法,还包括: 基于分配到服务模板的效用度量而丢弃来自多个服务模板的所述服务模板。
【文档编号】H04L29/06GK104137506SQ201280070943
【公开日】2014年11月5日 申请日期:2012年2月29日 优先权日:2012年2月29日
【发明者】Z.梅泽, K.门德列夫, O.舍扎夫 申请人:惠普发展公司,有限责任合伙企业

最新回复(0)