有针对性的安全测试的制作方法

文档序号:6497864阅读:114来源:国知局
有针对性的安全测试的制作方法
【专利摘要】对包括脚本代码的多个网页的源代码进行静态分析。基于静态分析来识别包括潜在脆弱性的页面。基于静态分析来识别不包括潜在脆弱性的页面。使用一组测试有效载荷来对包括潜在脆弱性的网页进行动态分析。使用该组有效载荷的子组对不包括潜在脆弱性的页面进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
【专利说明】有针对性的安全测试
【背景技术】
[0001]客户端脚本语言允许例如通过在客户计算设备上运行的网络浏览器来创建并实现可通过网络接收并在客户计算设备上运行的计算机程序。在某些情况下,客户端脚本允许动态的网络内容(web content),其中网页(webpage)可根据用户输入、环境条件或其它变量而具有变化的内容。
[0002]网络应用可利用客户端脚本来提供能够在客户计算设备上的网络浏览器应用中运行的应用。网络应用可使应用的功能和操作能够被移至客户计算设备,而非严格驻留于服务器计算设备。由于网络应用可经常在网络浏览器中运行,所以网络应用可跨很多操作系统平台兼容。这可避免应用开发人员针对不同客户类型创建应用的不同版本的需要。

【发明内容】

[0003]根据一实施方式,一种方法可包括在计算设备上对包括脚本代码的多个网页的源代码进行静态分析。可以基于所述静态分析将网页识别为包括潜在脆弱性。可基于所述静态分析识别不包括潜在脆弱性的网页。可使用一组测试有效载荷来对包括潜在脆弱性的网页进行动态分析。可使用该组测试有效载荷的子组对不包括潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
[0004]可包括有下面各特征中的一个或多个特征。所述多个网页可从网络服务器接收。所述多个网页可与网络应用相关联。
[0005]对所述多个网页的源代码进行静态分析可包括通过所述多个网页的源代码构建表示数据流的模型。所述潜在脆弱性可包括基于一组安全规则的数据流违规。对所述多个网页的源代码进行静态分析可包括静态污点分析。动态分析可包括在脚本引擎上运行所述脚本代码。
[0006]根据另一实施方式,一种计算机程序产品,包括计算机可读介质,所述计算机可读介质具有在其上存储的多条指令。当所述多条指令由处理器运行时,所述多条指令可使所述处理器执行操作,所述操作包括:对包括脚本代码的多个网页的源代码进行静态分析。可基于所述静态分析来识别包括潜在脆弱性的网页。可基于所述静态分析来识别不包括潜在脆弱性的网页。可通过使用一组测试有效载荷来对包括所述潜在脆弱性的网页进行动态分析。可通过使用该组测试有效载荷的子组来对不包括所述潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
[0007]可包括有下面各特征中的一个或多个特征。可包括用于从网络服务器接收所述多个网页的指令。所述多个网页可与网络应用相关联。
[0008]用于对所述多个网页的源代码进行静态分析的指令可包括用于通过所述多个网页的源代码来构建表示数据流的模型。所述潜在脆弱性可包括基于一组安全规则的数据流违规。
[0009]用于对所述多个网页的源代码进行静态分析的指令可包括用于静态污点分析的指令。用于动态分析的指令可包括用于在脚本引擎上运行所述脚本代码的指令。[0010]根据再一实施方式,一种系统可包括处理器以及与所述处理器耦接的存储器。第一软件模块可部署在所述存储器中并且在所述处理器上运行。所述第一软件模块可配置为对包括脚本代码的多个网页的源代码进行静态分析。第二软件模块可部署在所述存储器中并且在所述处理上运行。所述第二软件模块可配置为基于所述静态分析识别包括潜在脆弱性的网页。第三软件模块可部署在所述存储器中并且在所述处理器上运行。所述第三软件模块可配置为基于所述静态分析识别不包括潜在脆弱性的网页。第四软件模块可部署在所述存储器中并且在所述处理器上运行。所述第四软件模块可配置为使用一组测试有效载荷对包括所述潜在脆弱性的网页进行动态分析。第五软件模块可部署在所述存储器中并且在所述处理器上运行。所述第五软件模块可配置为使用该组测试有效载荷的子组来对不包括所述潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
[0011]可包括有下面各特征中的一个或多个特征。第六软件模块可配置为从网络服务器接收所述多个网页。所述多个网页可与网络应用相关联。
[0012]被配置为对所述多个网页的源代码进行静态分析的所述第一软件模块可配置为通过所述多个网页的源代码来构建表示数据流的模型。所述潜在脆弱性可包括基于一组安全规则的数据流违规。
[0013]被配置为对所述多个网页的源代码进行静态分析的所述第一软件模块可配置为进行静态污点分析。被配置为进行动态分析的所述第四软件模块可配置为在脚本引擎上运行所述脚本代码。
[0014]下文的附图和描述阐述了一个或多个实施方式的细节。其它特征将通过该描述、附图以及权利要求变得明显。
【专利附图】

【附图说明】
[0015]图1图解地示出了与分布式计算网络耦接的分析处理。
[0016]图2是由图1的分析处理所执行的处理的流程图。
[0017]图3图解地示出了图1的分析处理进行的指示会议受邀者的预计到达时间的分析。
【具体实施方式】
[0018]所属【技术领域】的技术人员知道,本发明可以实现为方法、系统或计算机程序产品。因此,本发明可以采用以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,本发明还可以采用这样的形式:即,计算机可用存储介质上的计算机程序产品,所述计算机可用存储介质具有在该介质中所包含的计算机可用程序代码。
[0019]可以采用任何适当的计算机可用或计算机可读介质。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可用或计算机可读存储介质(包括与计算设备或客户电子设备相关联的存储设备)可以是例如但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或者上述的任何适当的组合。计算机可读介质的更具体的示例(非穷举的列表)包括:具有一条或多条导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPR0M或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储设备。在本篇文献的上下文中,计算机可用或计算机可读存储介质可以是包含或存储程序的任何有形介质,该程序用于由指令执行系统、装置或者设备使用或者与其结合使用。
[0020]计算机可读的信号介质可以包括在基带中或者作为载波一部分的传播数据信号,其中在该传播数据信号中包含有经编码的计算机可读程序。这种传播数据信号可以采用多种形式中的任意一种,包括但不限于电磁信号、光信号或上述信号任意适当的组合。计算机可读信号介质可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以通讯、传播或者传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
[0021]计算机可读介质上包含的程序代码可以用任何适当的介质来传输,所述适当的介质包括但不限于无线、有线、光纤电缆、RF等等,或者上述的任何合适的组合。
[0022]可以以诸如Java、Smalltalk、C++等这样面向对象的编程语言来编写用于实现本发明的操作的计算机程序代码。然而,用于实现本发明的操作的计算机程序代码还可由诸如“C”编程语言或类似的编程语言之类的常规过程式编程语言来编写。程序代码可以完全地在用户计算机上运行、部分地在用户计算机上运行、作为一个独立运行(stand-alone)的软件包运行、部分在用户计算机上且部分在远程计算机上运行、或者完全在远程计算机或服务器上运行。在完全在远程计算机或服务器上运行的情形中,远程计算机可以通过局域网(LAN)或广域网(WAN)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0023]下面将参照根据本发明实施方式的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器运行时,产生用以实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0024]也可以把这些计算机程序指令存储在计算机可读存储器中,这些指令能够引导计算机或其它可编程数据处理装置以特定方式工作,从而,存储在计算机可读存储器中的指令产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的一件制造产品(manufacture)。
[0025]计算机程序指令还可加载在计算机或其它可编程数据处理装置上,从而使得能够在计算机或其它可编程装置上执行一系列操作步骤,以产生计算机所实现的处理,以便在计算机或其它可编程装置上运行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作的步骤。
[0026]参照图1,示出了分析处理10,所述分析处理10可驻留在客户计算机12上并且可由客户计算机12执行,所述客户计算机12可与网络14(例如,因特网或局域网)连接。客户计算机12的示例可包括但不限于:个人计算机、便携式计算机、移动计算设备、服务器计算机、或一系列服务器计算机。例如,客户计算机12可运行操作系统,例如但不限于:Microsoft? Windows?; Mac? X?;或 Red Hat:? Linux?。(Microsoft 和 Windows 是微软公司在美国和/或其它国家的注册商标;Mac和OS X是苹果公司在美国和/或其它国家的注册商标;Red Hat是Red Hat公司在美国和/或其它国家的注册商标;Linux是LinusTorvalds在美国和/或其它国家的注册商标。)
[0027]如下文将更详细讨论的,分析处理10可静态地分析包括脚本代码的多个网页的源代码。脚本代码可包括以脚本语言编写的代码,所述脚本语言例如但不限于JavaScript?和Flash? (JavaScript是Oracle公司在美国和/或其它国家的商标;Flash是Adobe Systems有限公司在美国和/或其它国家的商标)。至少部分地基于对源的静态分析,分析处理10可识别包括潜在脆弱性的网页以及不包括潜在脆弱性的网页。分析处理10可使用一组测试有效载荷(test payload)对包括潜在脆弱性的网页进行动态分析。并且,分析处理10可使用该组测试有效载荷的子组来对不包括潜在脆弱性的网页进行动态分析,其中该子组测试有效载荷包括比该组测试有效载荷更少的测试有效载荷。
[0028]与前述相一致,分析处理10可一般地对包括脚本代码的多个网页进行静态分析,以便基于静态分析识别作为潜在安全脆弱性的包括脚本代码的页面,以及识别不是潜在安全脆弱性的页面。也可被动态分析网页以识别潜在安全脆弱性。可使用测试有效载荷的子组,例如可被用于识别更常见的安全脆弱性的测试有效载荷的子组,来对未被静态分析识别为潜在安全脆弱性的网页进行动态分析。可使用比对未被静态分析识别为潜在安全脆弱性的网页进行动态分析所采用的测试有效载荷的组更广泛(在一些实施方式中广泛地多)的一组测试有效载荷,来对被静态分析识别为潜在安全脆弱性的网页进行动态分析。
[0029]分析处理10的指令集和子例程可由合并在客户计算机12中的一个或多个处理器(未示出)和一个或多个存储器模块(未示出)来运行,其中指令集和子例程可包括一个或多个软件模块并且可被存储在与客户计算机12耦接的存储设备16上。存储设备16可包括但不限于:硬盘驱动器;固态驱动器;磁带驱动器;光驱动器;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。
[0030]在存储设备16上可存储一组或多组的测试有效载荷18,例如所述测试有效载荷18可与动态分析多个网页结合使用。脚本引擎20还可由客户计算机12运行。脚本引擎20可包括被配置用以运行多个网页中(例如,在网页22中)所包括的脚本代码的引擎。脚本引擎20可包括在网页浏览器(例如,该网页浏览器可以能够渲染和/或处理网络内容并运行脚本代码)的模块中所包含的和/或作为网页浏览器的模块的脚本引擎,和/或脚本引擎20可包括独自(stand-alone)的脚本引擎,该脚本引擎可被配置用以运行网页22中所包括的脚本代码。脚本引擎20的指令集和子例程可由包含在客户计算机12中的一个或多个处理器(未示出)和一个或多个存储器模块(未示出)来运行,其中所述指令集和子例程可包括一个或多个软件模块并且可存储在与客户计算机12耦接的存储设备16上。在一些实施方式中,脚本引擎20可包括独立的应用和/或可包括分析处理10的组件。
[0031]网页22可存储在与服务器计算机26耦接的存储设备24上。一个或多个网页22可包括脚本代码,所述脚本代码可在客户计算机12上运行(例如,由脚本引擎20运行)。存储设备24可包括但不限于:硬盘驱动器;固态驱动器;磁带驱动器;光驱动器;RAID阵列;随机存取存储器(RAM);以及只读存储器(ROM)。服务器计算机26的示例可包括但不限于:个人计算机、服务器计算机、一系列服务器计算机、迷你计算机、以及大型计算机。例如,月艮务器计算机26可以是运行网络操作系统的网络服务器(或一系列服务器),所述网络操作系统的不例可包括但不限于:Microsoft? Windows?,服务器;Novell? NetWare?;或Red Hat? Linux?。(Microsoft和Windows是微软公司在美国和/或其它国家的注册商标;Novell和NetW是Novell公司在美国或和/或其它国家的注册商标;Red Hat是RedHat公司在美国和/或其它国家的注册商标;并且Linux是Linus Torvalds在美国和/或其它国家的注册商标。)
[0032]服务器计算机12可运行网络服务器应用28,所述网络服务器应用28的示例可包括但不限于!Microsoft IIS、Novell Webserver? 或A_pachel( Webserver,所述网络服
务器应用28允许通过网络14对服务器计算机26进行HTTP(即超文本传输协议)访问(Webserver是Novell公司在美国和/或其它国家的商标;并且Apache是Apache SoftwareFoundation在美国和/或其它国家的注册商标)。网络服务器应用的指令集和子例程可由包含在服务器计算机26中的一个或多个处理器(未示出)以及一个或多个存储器模块(未示出)来运行,其中所述指令集和子例程可存储在存储设备24上。此外/作为选择,网路服务器应用可存储在客户计算机12上并且由客户计算机12运行。
[0033]客户计算机12可直接或间接地与网络14耦接。例如,客户计算机12被示出为通过硬接线网路连接(hardwired network connection)直接与网络14 f禹接。在各种附加/替代实施方式中,客户计算机12(和/或服务器计算机26)可通过在客户计算机12(和/或服务器计算机26)之间建立的无线通信信道与网络24耦接。无线通信信道的示例可以包括IEEE802.1la,802.1lb,802.llg、Wi_F1、和/或蓝牙无线通信信道。如本领域中已知的,所有IEEE802.1lx规范可使用以太网协议和具有冲突避免的载波侦听多路访问(即CSMA/CA)用于路径共享。各种802.1lx规范可使用例如相移键控(即PSK)调制或互补码键控(即CCK)调制。如本领域中已知的,蓝牙是一种电信行业规范,其使例如移动电话、计算机和个人数字助理能够使用短距无线连接而互联。
[0034]另外参照图2,分析处理10可一般地对包括脚本代码的多个网页的源代码进行静态分析100。分析处理10可基于静态分析100识别102 —个或一个以上包括潜在脆弱性的网页。分析处理10还可基于静态分析识别104 —个或一个以上不包括潜在脆弱性的网页。此外,分析处理10可使用一组测试有效载荷对包括潜在脆弱性的一个或一个以上网页进行动态分析106。可使用该组有效载荷的子组对不包括潜在脆弱性的一个或一个以上网页进行动态分析108,其中该子组包括比该组有效载荷更少的有效载荷。
[0035]例如,还参照图3,分析处理10可从服务器计算机26接收110多个网页22。从服务器计算机26所接收110的多个网页22可包括一个或多个包括脚本代码的网页,所述脚本代码例如JavaScript、Flash或其它脚本代码。在一些示例中,多个网页22可包括与网络应用相关联的网页。
[0036]在一些实施方式中,对包括脚本代码的多个网页的源代码进行静态分析100(例如,由静态分析器150进行,所述静态分析器150可表示分析处理10的功能和/或分析处理10的模块、特征或组件)可包括通过网页22的源代码和/或网页22中所包括的脚本代码来构建112表示信息和数据流的脚本代码的模型152。
[0037]利用代码模型152,静态分析器150可识别102 —个或一个以上包括潜在脆弱性的网页(例如,网页PV)。例如,识别102—个或一个以上包括潜在脆弱性的网页可包括在代码模型152中识别数据流违规(data-flow violation)。在一些实施方式中,数据流违规可基于一组安全规则,所述安全规则可识别与潜在脆弱性相关联的一个或多个行为。在一些实施方式中,对网页22的源代码进行静态分析100可包括静态污点分析(static taintanalysis)。
[0038]由于在一些实施方式中,对网页22的源代码进行静态分析100可检查代码模型152,所以对网页22的源代码进行静态分析100可以是相对快速的处理。例如,分析处理10(例如,通过静态分析器150)可模拟不同的有效载荷类型并且识别102脆弱性或开发(exploit)的理论示例存在于脚本代码中。由此,分析处理10可确定一般类型的有效载荷可能潜在地构成脆弱性。然而,静态分析可表示使用通用有效载荷的抽象,而不包括特定的参数和/或特征。由此,在一些实施例中,分析处理10基于对脚本的源代码进行静态分析100可能不能确定会造成潜在脆弱性的确切有效载荷,而是可能在识别102包括潜在脆弱性的网页中倾向于会误报(false positive)。
[0039]以相似的方式,对网页22的源代码进行静态分析100可识别104 —个或一个以上不包括潜在脆弱性的网页。一个或一个以上不包括潜在脆弱性的网页可包括未被识别102为包括潜在脆弱性的所有网页。在一些实施方式中,分析处理10可将网页22中的每个网页标记为要么包括潜在脆弱性要么不包括潜在脆弱性。
[0040]分析处理10可对已被静态分析100的网页22进行动态分析106、108。例如,分析处理10基于静态分析100可对已被识别102为包括潜在脆弱性的一个或一个以上网页(例如,网页PV)进行动态分析106,并且可对已被识别104为不包括潜在脆弱性的一个或一个以上网页(例如,网页PN)进行动态分析108。在一些实施方式中,网页22可由动态分析器154进行动态分析106、108,动态分析器154可表示例如分析处理10的功能和/或分析处理10的模块、特征或组件。
[0041]在一些实施方式中,对网页22进行动态分析106、108可包括运行114脚本代码引擎20上的脚本代码。如上所述,脚本代码引擎20可包括独自的脚本代码引擎,可包括可与分析处理10交互的网页浏览器的功能、或模块、组件等,和/或可包括分析处理10的功能、或模块、组件等。一般地,对网页22进行动态分析106、108可包括:通过各种不同的测试有效载荷(例如,测试有效载荷18)来请求网页22并运行网页22。由此,分析处理10可通过不同的测试有效载荷运行网页22中所包括的脚本。并且,分析处理10可观察网页22 (和/或网页22中所包括的脚本)的行为,其中某些行为可表示与给定的网页(和/或网页中所包括的脚本)相关联的脆弱性。
[0042]对包括潜在脆弱性的一个或多个网页PV进行动态分析106可包括使用一组测试有效载荷TP对一个或多个网页PV进行分析106。在一些实施方式中,该组测试有效载荷TP可包括数十个或数百个(例如,在一些实施方式中每个所检查的参数大约100-200个测试有效载荷)测试有效载荷。分析处理10可观察一个或多个网页PV(和/或网页PV中所包括的脚本)的行为以寻找表示脆弱性的行为。尽管,通常,使用相对大量的测试有效载荷对网页进行动态分析106可能是相对耗时的过程,但是在一些实施方式中,相对少的网页PV可被识别为包括潜在脆弱性,因而与对包括潜在脆弱性的网页PV进行动态分析106相关联的时间可以是可以接受的。
[0043]对一个或多个不包括潜在脆弱性的网页PN进行动态分析108可包括使用该组测试有效载荷TP的子组TPl对一个或多个网页PN进行动态分析108。该子组测试有效载荷TPl可包括比该组测试有效载荷TP更少的测试有效载荷。例如,在一些实施方式中,一个或多个网页PN可被动态地测试108为脆弱性的普遍来源。在一些这种实施方式中,测试有效载荷的子组TPl可包括每个被测试的参数I个至10个测试有效载荷(例如,在一些实施方式中,每个被测试的参数4个测试有效载荷)。
[0044]在一些实施方式中,可采用静态分析来通知动态分析。也就是说,在一些实施方式中,相对少量的被测试的网页可被静态分析识别为包括潜在脆弱性。可通过使用相对大量的测试有效载荷对被识别为包括潜在脆弱性的所述相对少量的网页进行彻底的测试。可通过使用相对少量的测试有效载荷对未被识别为包括潜在脆弱性的网页进行动态分析。因此,尽管使用大量测试有效载荷的动态分析可能是相对耗时的,但是由于仅详尽地动态分析相对少量的网页(即,被识别为包括潜在脆弱性的那些网页),所以,可使用相对更少的测试有效载荷对未被识别为包括潜在脆弱性的那些网页进行动态分析。因此,在一些实施方式中,动态分析和/或动态分析的程度可以是有针对性的(例如,针对那些被识别为包括潜在脆弱性的网页)。并且,在一些实施方式中,对被识别为包括潜在脆弱性(例如,通过静态分析识别)的网页进行详尽的动态分析可验证脆弱性是否事实存在(例如,不是误报和/或理论上的脆弱性)以及如何复制该脆弱性(例如,基于动态分析)。并且,在其中脆弱性可被验证的一些实施方式中,可基于静态分析来识别脚本的源代码的方面。
[0045]附图中的流程图和框图示出了根据本发明的多个实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,连续示出的两个方框实际上可以基本并行地执行,或者它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0046]这里所使用的术语仅出于描述特定实施方式的目的,而非意在对本发明进行限制。除非上下文另外明确指出,否则如本文中所使用的单数形式的“一”、“一个”和“该”也意在包括复数形式。还应该理解的是,当在本说明书中所使用时,术语“包括”和/或“包含”具体说明所述特征、整体、步骤、操作、元素、和/或组件的存在,但是不排除存在或添加一个或多个其它特征、整体、步骤、操作、元素、组件、和/或它们的组合。
[0047]在下文权利要求中的所有方法或步骤及功能元素的相应的结构、材料、动作及等价物意在包括如具体要求权利保护的用于执行与其它要求保护的元素相结合的功能的任何结构、材料、或动作。为了图示和说明的目的已经呈现了本发明的说明,但是本发明的说明并不意在穷尽或限于所公开的形式中的发明。在不背离本发明的范围和精神的情况下,很多修改和变化对于本领域技术人员而言将是显而易见的。实施方式被选择并描述,以便对本发明和实际应用的原理进行最佳解释,并且使本领域其他普通技术人员能够对适于所预期的特定使用的具有各种修改的各种实施方式的本发明进行理解。
[0048]如此,已经详细地参照其实施方式描述了本申请的发明,很显然,在不背离所附权利要求中定义的本发明的范围的情况下,修改和改变是可能的。
【权利要求】
1.一种计算机实现的方法,包括: 在计算设备上对包括脚本代码的多个网页的源代码进行静态分析; 在所述计算设备上基于所述静态分析识别包括潜在脆弱性的网页; 在所述计算设备上基于所述静态分析识别不包括潜在脆弱性的网页; 在所述计算设备上使用一组测试有效载荷对包括所述潜在脆弱性的网页进行动态分析;以及 在所述计算设备上使用该组测试有效载荷的子组对不包括所述潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
2.根据权利要求1所述的计算机实现的方法,还包括从网络服务器接收所述多个网页。
3.根据权利要求1所述的计算机实现的方法,其中所述多个网页与网络应用相关联。
4.根据权利要 求1所述的计算机实现的方法,其中对所述多个网页的源代码进行静态分析包括通过所述多个网页的源代码来构建表示数据流的模型。
5.根据权利要求1所述的计算机实现的方法,其中所述潜在脆弱性包括基于一组安全规则的数据流违规。
6.根据权利要求1所述的计算机实现的方法,其中对所述多个网页的源代码进行静态分析包括静态污点分析。
7.根据权利要求1所述的计算机实现的方法,其中动态分析包括在脚本引擎上运行所述脚本代码。
8.一种计算机程序产品,包括计算机可读介质,所述计算机可读介质具有在其上存储的多条指令,当所述多条指令由处理器运行时,所述多条指令使所述处理器执行操作,所述操作包括: 对包括脚本代码的多个网页的源代码进行静态分析; 基于所述静态分析识别包括潜在脆弱性的网页; 基于所述静态分析识别不包括有潜在脆弱性的网页; 使用一组测试有效载荷对包括所述潜在脆弱性的网页进行动态分析;以及使用该组测试有效载荷的子组对不包括所述潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
9.根据权利要求8所述的计算机程序产品,还包括用于从网络服务器接收所述多个网页的指令。
10.根据权利要求8所述的计算机程序产品,其中所述多个网页与网络应用相关联。
11.根据权利要求8所述的计算机程序产品,其中用于对所述多个网页的源代码进行静态分析的指令包括用于通过所述多个网页的源代码来构建表示数据流的模型的指令。
12.根据权利要求8所述的计算机程序产品,其中所述潜在脆弱性包括基于一组安全规则的数据流违规。
13.根据权利要求8所述的计算机程序产品,其中用于对所述多个网页的源代码进行静态分析的指令包括用于静态污点分析的指令。
14.根据权利要求8所述的计算机程序产品,其中用于动态分析的指令包括用于在脚本引擎上运行所述脚本代码的指令。
15.—种系统,包括: 处理器以及与所述处理器耦接的存储器; 第一软件模块,所述第一软件模块部署在所述存储器中并且在所述处理器上运行,所述第一软件模块配置为对包括脚本代码的多个网页的源代码进行静态分析; 第二软件模块,所述第二软件模块部署在所述存储器中并且在所述处理上运行,所述第二软件模块配置为基于所述静态分析识别包括潜在脆弱性的网页; 第三软件模块,所述第三软件模块部署在所述存储器中并且在所述处理器上运行,所述第三软件模块配置为基于所述静态分析识别不包括有潜在脆弱性的网页; 第四软件模块,所述第四软件模块部署在所述存储器中并且在所述处理器上运行,所述第四软件模块配置为使用一组测试有效载荷对包括所述潜在脆弱性的网页进行动态分析;以及 第五软件模块,所述第五软件模块部署在所述存储器中并且在所述处理器上运行,所述第五软件模块配置为使用该组测试有效载荷的子组对不包括所述潜在脆弱性的网页进行动态分析,该子组包括比该组测试有效载荷更少的测试有效载荷。
16.根据权利要求15所述的系统,还包括第六软件模块,所述第六软件模块被配置为从网络服务器接收所述多个网页。
17.根据权利要求15所述的系统,其中所述多个网页与网络应用相关联。
18.根据权利要求15所述的系统,其中被配置为对所述多个网页的源代码进行静态分析的所述第一软件模块被配置为通过所述多个网页的源代码来构建表示数据流的模型。
19.根据权利要求15所述的系统,其中所述潜在脆弱性包括基于一组安全规则的数据流违规。
20.根据权利要求15所述的系统,其中被配置为对所述多个网页的源代码进行静态分析的所述第一软件模块被配置为进行静态污点分析。
21.根据权利要求15所述的系统,其中被配置为进行动态分析的所述第四软件模块被配置为在脚本引擎上运行所述脚本代码。
【文档编号】G06F21/57GK104025109SQ201280065512
【公开日】2014年9月3日 申请日期:2012年12月3日 优先权日:2011年12月30日
【发明者】Y.阿米特, L.盖伊, D.卡尔曼, O.西格尔, O.韦斯曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1