用于安全性测试的单元测试的自动合成的制作方法

文档序号:6532985阅读:168来源:国知局
用于安全性测试的单元测试的自动合成的制作方法
【专利摘要】本发明涉及对待测试计算机程序(CPUT)施行安全性分析。可以对CPUT进行分析,以便识别出与CPUT的潜在安全性弱点相关的数据。可以自动合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试。所述第一单元测试可以被配置成初始化由CPUT内的所述特定程序代码单元使用的至少一个参数,并且可以为之提供被配置成利用CPUT的至少一项潜在安全性弱点的至少第一测试有效载荷。可以动态地处理第一单元测试,以便向CPUT内的所述特定程序代码单元传送第一测试有效载荷。可以确定第一测试有效载荷是否利用了CPUT的实际安全性弱点,并且可以输出安全性分析报告。
【专利说明】用于安全性测试的单元测试的自动合成

【背景技术】
[0001] 在本说明书中公开的一个或多个实施例涉及软件的安全性测试。
[0002] 常常使用单元测试来确保软件单元与其功能规格相符。单元测试是这样一种方 法,其中对程序代码的各个单独单元进行测试,以便确定其是否正确运作并且按照原定方 式运转。通常来说,一个单元是一项应用的最小可测试部分。在程序化编程中,一个单元可 以是一整个模块,但是更加常见的情况是一个单独的函数或过程。在面向对象的编程中,一 个单元常常是一整个接口(比如类),但是也可以是一种单独的方法。单元测试通常由软件 开发人员编写和执行。其实现方式可以包括从非常人工的操作到被形式化为构造自动化的 一部分。


【发明内容】

[0003] 在本说明书中公开的一个或多个实施例涉及对待测试计算机程序(CPUT)施行安 全性测试。
[0004] 一个实施例可以包括经由处理器对CPUT进行分析,以便识别出与CPUT的潜在安 全性弱点相关的数据。所述方法还可以包括自动合成被配置成测试CPUT内的特定程序代 码单元的至少第一单元测试,所述第一单元测试被配置成初始化由CPUT内的所述特定程 序代码单元使用的至少一个参数。所述方法还可以包括向第一单元测试提供被配置成利用 CPUT的至少一项潜在安全性弱点的至少第一测试有效载荷。所述方法还可以包括动态地处 理第一单元测试以便向CPUT内的所述特定程序代码单元传送第一测试有效载荷,确定第 一测试有效载荷是否利用了 CPUT的实际安全性弱点,以及输出表明第一测试有效载荷是 否利用了 CPUT的实际安全性弱点的安全性分析报告。
[0005] 另一个实施例可以包括经由处理器对CPUT施行静态分析,以便识别出与CPUT的 潜在安全性弱点相关的数据。所述方法还可以包括自动合成被配置成测试CPUT内的特定 程序代码单元的至少第一单元测试,所述第一单元测试被配置成初始化由CPUT内的所述 特定程序代码单元使用的至少一个参数。所述方法还可以包括向第一单元测试提供被配置 成利用CPUT的至少一项潜在安全性弱点的至少第一测试有效载荷,动态地处理第一单元 测试以便经由超文本传输协议(HTTP)请求向CPUT内的所述特定程序代码单元传送第一测 试有效载荷,确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点,以及输出表明第 一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分析报告。
[0006] 另一个实施例可以包括用于对待测试计算机程序(CPUT)施行安全性分析的计算 机程序产品。所述计算机程序产品可以包括随之具体实现计算机可读程序代码的计算机可 读存储介质,所述计算机可读程序代码包括被配置成施行在本说明书内公开的各项操作和 /或功能的计算机可读程序代码。
[0007] 另一个实施例可以包括一种系统,所述系统可以包括被配置成施行在本说明内描 述的操作/可执行操作等等的处理器。

【专利附图】

【附图说明】
[0008] 图1是示出了根据在本说明书内公开的一个实施例的用于自动合成用于安全性 测试的单元测试的系统的方框图。
[0009] 图2是示出了根据在本说明书内公开的一个实施例的处理器的方框图。
[0010] 图3是示出了根据在本说明书内公开的另一个实施例的用于对CPUT施行安全性 分析的方法的流程图。

【具体实施方式】
[0011] 所属【技术领域】的技术人员知道,本发明的各个方面可以实现为系统、方法或计算 机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、 完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方 式,这里可以统称为"电路"、"模块"或"系统"。此外,在一些实施例中,本发明的各个方面 还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介 质中包含计算机可读的程序代码,例如存储的代码等等。
[0012] 可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算 机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是一但不限 于一电、磁、光、电磁、红外线、或半导体的系统、装置或设备,或者任意以上的组合。计算 机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、 便携式计算机盘、硬盘、固态盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程 只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、数字化视频光盘 (DVD)、光存储设备、磁存储设备、或者上述的任意合适的组合。在本文件中,计算机可读存 储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者设 备使用或者与其结合使用。
[0013] 计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号, 其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括一但 不限于一电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是 计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者 传输用于由指令执行系统、装置或者设备使用或者与其结合使用的程序。
[0014] 计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括一但不限 于--无线、有线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设 计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括 面向对象的程序设计语目一诸如Java?、Smalltalk、C++等,还包括常规的过程式程序设计 语言一诸如"C"语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、 部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远 程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远 程计算机可以通过任意种类的网络--包括局域网(LAN)或广域网(WAN) -连接到用户计 算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
[0015] 下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图 和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图 中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计 算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计 算机程序指令在通过计算机、其它可编程数据处理装置的处理器、或者其它设备执行时,产 生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
[0016] 也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、 其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的 指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令 的制造品(article of manufacture) 〇
[0017] 计算机程序指令还可以被加载到计算机、其他可编程数据处理装置或者其他设备 上,从而使得在所述计算机、其他可编程装置或其他设备上施行一系列操作以产生计算机 实施的处理,从而使得在计算机或其他可编程装置上执行的指令提供用于实施在流程图和 /或方框图的一个或多个方框中规定的功能/动作的处理。
[0018] 这里所描述的设置涉及对于例如基于web的应用之类的待测试计算机程序 (CPUT)的安全性分析和测试。更具体来说,可以提取并且处理与CPUT相关的数据,以便动 态地创建被特别配置成测试可能存在于CPUT中的安全性弱点的单元测试。可以基于针对 CPUT的程序代码所取回的数据自动合成单元测试。因此,自动创建的单元测试可以是特定 于CPUT的,并且可以锻炼CPUT确定安全性弱点。具体来说,可以识别出CPUT的进入点,并 且对于每一个进入点可以确定对应于该进入点的超文本传输协议(HTTP)参数。可以利用 一项或多项单元测试锻炼这些进入点,以便将测试数据(例如包含恶意程序代码、数值等 等的有效载荷)注入到由CPUT的进入点使用的一个或多个参数。相应地,可以使用单元测 试对CPUT进行测试,以便确定CPUT对于恶意数据是否脆弱,所述恶意数据潜在地可以由末 端用户在CPUT活跃时(即被布置并且正按照其原定方式操作)注入。
[0019] 这里所使用的单元测试是对CPUT的特定程序代码单元(即CPUT的最小可测试部 分)施行测试的计算机可读程序代码,其初始化由所述特定单元使用的至少一个参数。程 序代码的实例包括但不限于源代码、字节码(即可移植代码或P代码)、二进制码等等。可 以将例如程序代码(例如脚本)、数值等一项或多项有效载荷提供到单元测试,以便注入到 CPUT中以用于安全性测试。这里所使用的CPUT的单元是一个函数、模块或者由施行特定操 作的一行或更多行CPUT程序代码构成的任何其他组。后面在说明书和/或所附权利要求 书内,CPUT的单元可以被称作"程序代码单元"。
[0020] 图1是示出了根据在本说明书内公开的一个实施例的用于自动合成用于安全性 测试的单元测试112的系统100的方框图。所述系统可以包括安全性分析应用110和CPUT 120,其中由安全性分析应用110测试CPUT 120的安全性弱点。
[0021] 在一个实施例中,安全性分析应用110和CPUT 120可以在同一处理系统上执行。 相应地可以消除用于安全性分析应用110与CPUT120的通信带宽成本。在图示中,通信等 待时间可以被最小化,并且支持不同系统之间的通信所需的开销处理可以被取消。
[0022] 在操作中,安全性分析应用110可以对CPUT 120进行分析以便识别出与CPUT 120 的潜在安全性弱点相关的数据。举例来说,安全性分析应用110可以取回对应于CPUT 120 的程序代码并且对所述程序代码施行静态分析,以便识别并且提取出与CPUT 120的接收 用户输入的单元以及操纵这样的用户输入的方式有关的未经处理的数据。举例来说,安全 性分析应用110可以识别出对应于CPUT中的将用户输入读取到CPUT 120中的语句的程序 代码,以及对应于CPUT的与处理在所述进入点处接收自用户的数据有关的单元的程序代 码。
[0023] 在其中CPUT 120是web应用的设置中,安全性分析应用110可以分析并取回对应 于CPUT的与接收HTTP请求有关的每一个单元(即程序代码单元)的程序代码,以及对应 于CPUT的与处理这样的HTTP请求有关的每一个单元的程序代码。换句话说,除了分析与 提供用于与CPUT 120进行用户交互的接口有关的程序代码之外,安全性分析应用110可以 对于与由CPUT 120施行的后端处理有关的程序代码施行静态分析。相应地,由安全性分析 应用110施行的静态分析可以非常全面,并且识别出在仅使用动态分析的情况下可能会错 过的潜在安全性弱点。此外,本发明的实施例可以通过在服务器侧合成单元测试而取消对 于非常昂贵的HTTP通信的使用。
[0024] 基于这样的识别,安全性分析应用110可以动态地合成尝试利用可能潜在地存在 于CPUT 120的一个或多个单元中的安全性弱点的单元测试112。更具体来说,每一项单元 测试112可以被配置成初始化由CPUT 120的特定单元使用的一个或多个参数。
[0025] 在其中单元测试112生成人为HTTP请求130的一个实施例中,安全性分析应用 110可以实施一个模拟框架,其为安全性分析应用110提供支持以便合成生成人为HTTP请 求130的单元测试112。这样的模拟框架在本领域内是已知的。在图示中,取代使用末端用 户借以与CPUT 120进行交互的由CPUT 120提供的传统用户接口,所述模拟框架可以包括 实施模拟对象的模拟类,所述模拟对象适当地构造由(多项)单元测试112生成的HTTP请 求以供CPUT 120使用。在这方面,所述模拟框架可以模仿传统用户接口接收来自用户的参 数并且生成传统HTTP请求的方式。模仿传统用户接口的操作的处理在本领域内常常被称 作"模拟"。
[0026] 此外,可以向每一项单元测试112提供一项或多项测试有效载荷,单元测试112可 以将其传送到(例如注入到)CPUT,并且所述测试有效载荷可以在由CPUT 120接收和处理 时使得CPUT 120的目标单元按照不合期望的方式执行。安全性分析应用110可以通过任 何适当的方式创建测试有效载荷。举例来说,安全性分析应用110可以访问一个测试有效 载荷数值库,其可以对应于在静态分析期间识别出的由CPUT 120使用的各种参数。因此, 所述有效载荷可以被预先定义,但是本发明在这方面并不受限制。举例来说,用户可以选择 将要运行哪些有效载荷,或者可以基于对CPUT程序代码的分析动态地适配有效载荷。
[0027] 作为举例,假设CPUT 120的一个单元被配置成使用由末端用户提供的参数"名称 (name)",这例如是利用CPUT 120的程序代码中的"获得名称(get name)"指令实现的。由 于参数"名称"例如由末端用户利用HTTP请求提供,因此其可以被视为不受信任的参数;某 些不道德的末端用户可能会尝试利用该参数将恶意有效载荷注入到CPUT 120中。安全性 分析应用110可以基于静态分析识别出这样的不受信任的参数由CPUT 120的一个单元使 用,并且合成单元测试112来定义参数"名称"并且初始化该参数。此外,安全性分析应用 110可以向单元测试112提供测试有效载荷,以便作为"名称"参数被传送到CPUT 120。有 效载荷的一个实例例如可以是脚本标签(例如"〈script type = 'text/javascript' name ='name'〉'alert'〈/script〉")。因此,测试有效载荷可以被配置成由CPUT 120使用, 以便对被测试的CPUT 120的单元中的"获得名称"指令施行特定测试。但是本发明不限于 这一具体实例。举例来说,测试有效载荷可以包含被配置成测试CPUT的安全性弱点的任何 其他程序代码、(多个)数值等等。
[0028] 安全性分析应用110可以对(多项)单元测试112进行处理,以便向CPUT 120传 送(多项)测试有效载荷。举例来说,在一个实施例中,可以对单元测试112进行处理以便 生成一项或多项人为HTTP请求130,并且将所述人为HTTP请求130传送到CPUT 120。每 一项人为HTTP请求130可以包括一项或多项测试有效载荷。这里所使用的人为HTTP请求 是出于测试CPUT的目的自动生成的HTTP请求,而不是由用户直接生成。
[0029] 响应于接收到人为HTTP请求130以及包含在人为HTTP请求130中或者与之相关 联的任何测试有效载荷,CPUT 120可以生成HTTP响应140。安全性分析应用110可以对 HTTP响应140进行分析,以便确定CPUT 120是否以不合期望的方式对人为HTTP请求130 做出响应。此外,安全性分析应用110还可以监测由CPUT 120执行的其他处理,以便确定 CPUT 120是否以不合期望的方式做出响应。举例来说,安全性分析应用110可以实施验证 逻辑以便监测由CPUT 120施行的数据输入/输出活动,例如发送附加的人为HTTP请求、生 成数据、存储数据、取回数据等等。
[0030] 在一种设置中,安全性分析应用110可以对HTTP响应140进行处理,以便识别出 与CPUT的潜在安全性弱点相关的附加数据,比如CPUT中的附加安全性弱点,或者已被识别 出的特定弱点的附加方面。基于这样的识别,安全性分析应用110可以动态地合成利用可 能潜在地存在于CPUT 120中的安全性弱点的一项或多项后续单元测试112。在图示中,安 全性分析应用110可以合成包括被配置成测试CPUT的潜在安全性弱点的其他(多项)测试 有效载荷的一项或多项其他单元测试112,并且动态地执行所述其他(多项)单元测试112 以便经由一项或多项其他人为HTTP请求将其他(多项)测试有效载荷传送到CPUT 120, 正如前面所描述的那样。安全性分析应用110可以如前所述地接收后续HTTP响应和/或 监测CPUT 120,以便确定CPUT 120是否以不合期望的方式对后续的(多项)单元测试112 做出响应。
[0031] 安全性分析应用110可以对HTTP响应140、接收自CPUT 120的任何其他响应以 及/或者由CPUT 120施行的数据输入/输出活动进行分析,以便识别出CPUT 120中的安 全性弱点。基于这样的分析,安全性分析应用110可以生成表明与CPUT 120有关的安全性 弱点的安全性分析报告150。在图示中,安全性分析应用110可以向用户接口 160、计算机 可读存储介质等等输出安全性分析报告150。用户接口 160可以由安全性分析应用110在 其上执行的处理系统呈现,但是并不需要是这种情况。
[0032] 图2是示出了根据在本说明书内公开的一个实施例的处理系统200的方框图。处 理系统200可以包括至少一个处理器205,其通过系统总线215或其他适当电路耦合到存储 器元件210。因此,处理系统200可以将计算机可读程序代码存储在存储器元件210内。处 理器105可以执行经由系统总线215从存储器元件210访问的计算机可读程序代码。在一 个方面中,处理系统200例如可以被实施为适合于存储和/或执行程序代码的计算机。但 是应当认识到,处理系统200可以通过能够施行在本说明书内描述的各项功能和/或操作 的包括处理器和存储器的任何系统的形式来实施。
[0033] 存储器元件210可以包括一个或多个物理存储器设备,比如本地存储器220以及 一个或多个大容量存储设备225。本地存储器220指的是通常在程序代码的实际执行期间 使用的随机存取存储器或其他(多个)非永久性存储器设备。所述(多个)大容量存储设 备225可以被实施为硬盘驱动器(HDD)、固态驱动器(SSD)或者其他永久性数据存储设备。 处理系统200还可以包括一个或多个高速缓冲存储器(未示出),其提供对于至少一些程序 代码的临时存储,以便减少在执行期间必须从大容量存储设备225取回程序代码的次数。
[0034] 例如键盘230、显示器235和指示设备240之类的输入/输出(I/O)设备可选地可 以耦合到处理系统200。所述I/O设备可以直接耦合到或者通过中间的I/O控制器耦合到 处理系统200。一个或多个网络适配器245也可以耦合到处理系统200,以便使得处理系统 200能够通过中间的私有或公共网络变为耦合到其他系统、计算机系统、远程打印机和/或 远程存储设备。调制解调器、有线电视调制解调器、以太网卡、无线网络适配器和个人区域 网络设备是可以与处理系统200 -同使用的不同类型的网络适配器245的实例。
[0035] 如图2中所示,存储器元件210可以存储安全性分析应用110和CPUT 120。通过 可执行程序代码的形式实施的安全性分析应用110可以由处理系统200执行,因此可以被 视为处理系统200的一部分。
[0036] 安全性分析应用110可以由处理器205执行,以便施行这里所描述的方法和处理。 举例来说,安全性分析应用110可以被执行来分析CPUT 120以便识别出与CPUT的潜在安 全性弱点相关的数据,自动/动态地合成至少一项单元测试112,以及动态地处理(多项) 单元测试112以便向CPUT 120传送一项或多项测试有效载荷,从而测试存在于CPUT 120 中的潜在安全性弱点。
[0037] 安全性分析应用110可以将这样的测试的结果输出到存储器元件210并且将所述 结果存储在存储器元件210内。这里所使用的"输出"可以是指存储在存储器元件210中 (例如写入到存储在存储器元件210中的一个或多个文件)、写入到显示器235或另一外围 输出设备、播放可听通知、发送或传送到另一系统、导出等等。在一个实施例中,安全性分 析应用 110 可以被实施为 IBM? Rational? AppScan? Source Edition(IBM、 Rational和AppScan是美国、其他国家或者同时在美国和其他国家中的国际商业机器公司 (International Business Machines Corporation)的商标)。
[0038] 图3是示出了根据在本说明书内公开的另一个实施例的用于对CPUT施行安全性 分析的方法300的流程图。方法300可以由图2的处理系统实施。
[0039] 在步骤302处,可以经由处理器对CPUT进行分析,以便识别出与CPUT的潜在安全 性弱点相关的数据。举例来说,安全性分析应用可以施行对于CPUT的静态分析。更具体来 说,安全性分析应用可以分析CPUT的与接收HTTP请求有关的程序代码,并且分析CPUT的 与处理HTTP请求有关的程序代码。
[0040] 在步骤304处,安全性分析应用可以自动合成一项或多项单元测试,其中每一项 单元测试被配置成初始化由CPUT的特定程序代码单元使用的一个或多个参数。举例来说, 安全性分析应用可以处理与CPUT的潜在安全性弱点相关的数据以便合成(多项)单元测 试。安全性分析应用还可以向每一项单元测试提供一项或多项测试有效载荷,其被配置成 测试CPUT的一项或多项潜在安全性弱点。正如所提到的那样,测试有效载荷可以包括一个 或多个数值、程序代码(例如脚本)等等,其意图复制不道德的末端用户可能在所布置的 CPUT的惯常操作期间注入到CPUT中的恶意有效载荷。
[0041] 在步骤306处,可以动态地处理所述(多项)单元测试,以便向CPUT传送(多项) 第一有效载荷。举例来说,可以动态地处理(多项)单元测试以便生成一项或多项人为HTTP 请求(其中的每一项人为HTTP请求包括一项或多项测试有效载荷),并且将包括测试有效 载荷的人为HTTP请求传送到CPUT。响应于接收到(多项)测试有效载荷,CPUT可以生成 一项或多项HTTP响应,并且将HTTP响应传送到安全性分析应用。
[0042] 在步骤308处,安全性分析应用可以从CPUT接收针对人为HTTP请求的HTTP响应。 在步骤310处,安全性分析应用可以确定(多项)测试有效载荷是否利用了 CPUT的实际安 全性弱点。举例来说,安全性分析应用可以在处理测试有效载荷的同时分析CPUT,并且/或 者分析由CPUT生成的(多项)HTTP响应,正如前面所描述的那样。在图示中,如果在处理 一项或多项测试有效载荷的同时CPUT以不合期望的方式施行操作,或者如果CPUT生成不 合期望的HTTP响应,则可以识别出CPUT的此类行为。
[0043] 在步骤312处,安全性分析应用可以分析所述(多项)HTTP响应,以便确定是否存 在CPUT的附加的潜在安全性弱点。在图示中,HTTP响应可以包括表明在步骤302中可能 没有识别出的与CPUT的潜在安全性弱点相关的附加数据的内容。参照判定方框314,如果 通过分析(多项)HTTP响应识别出附加的潜在安全性弱点,则在步骤316处可以识别出附 加的数据。在步骤318处,安全性分析应用可以合成一项或多项附加的单元测试。可以向 每一项附加的单元测试提供被配置成针对CPUT的至少一项潜在安全性弱点对CPUT进行测 试的至少一项其他的测试有效载荷。所述处理随后可以继续到步骤306,并且按照所描述的 那样继续。
[0044] 再次参照判定方框314,当没有识别出附加的潜在安全性弱点时,所述处理可以继 续到步骤320,并且可以例如基于在步骤310处做出的确定输出安全性分析报告。包含在安 全性分析报告中的安全性分析的结果可以表明(多项)测试有效载荷是否利用了 CPUT的 实际安全性弱点。正如所提到的那样,所述结果可以被输出到显示器、打印机、存储到存储 器等等。
[0045] 整个说明书中相同的数字用于指定相同的项。附图中的流程图和框图显示了根据 本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。 在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模 块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应 当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的 顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺 序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框 图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统 来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0046] 这里所使用的术语仅仅是用于描述特定实施例的目的,而不意图限制本发明。除 非上下文明确地另有所指,否则这里所使用的单数形式"一个"、"一项"和"所述"同样意图 包括复数形式。还应当理解的是,在本说明书中使用的术语"包括"表明所述特征、证书、步 骤、操作、元件和/或组件的存在,而不排除存在或添加一个或多个其他特征、证书、步骤、 操作、元件、组件和/或其组合。
[0047] 所附权利要求书中的所有装置或步骤加上功能元件的相应结构、材料、动作和等 效方案意图包括用于与明确要求保护的其他要求保护的元件相组合来施行所述功能的任 何结构、材料或动作。前面对于本发明的描述是出于说明和描述的目的而给出的,其并不意 图进行穷举或者把本发明限制到所公开的形式。在不背离本发明的范围和精神的情况下, 本领域技术人员将认识到许多修改和变型。前面对于实施例的选择和描述是为了最佳地解 释本发明的原理和实际应用,并且使得本领域技术人员能够理解本发明的具有适合于所设 想的特定用途的各种修改的各个实施例。
【权利要求】
1. 一种对待测试计算机程序CPUT施行安全性分析的方法,所述方法包括: 经由处理器对CPUT进行分析,以便识别出与CPUT的潜在安全性弱点相关的数据; 自动地合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试,所述第 一单元测试被配置成初始化由CPUT内的所述特定程序代码单元使用的至少一个参数; 向第一单元测试提供被配置成利用CPUT的至少一项潜在安全性弱点的至少第一测试 有效载荷; 动态地处理第一单元测试,以便向CPUT内的所述特定程序代码单元传送第一测试有 效载荷; 确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点;以及 输出表明第一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分析报告。
2. 权利要求1的方法,其中,确定第一测试有效载荷是否利用了 CPUT的实际安全性弱 点包括: 在CPUT处理第一测试有效载荷的同时分析由CPUT执行的处理。
3. 权利要求1的方法,其中,动态地处理第一单元测试以便向CPUT传送第一测试有效 载荷包括: 向CPUT传送包括第一测试有效载荷的人为超文本传输协议HTTP请求。
4. 权利要求3的方法,其还包括: 从CPUT接收针对人为HTTP请求的HTTP响应; 其中,确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点包括分析所述HTTP 响应。
5. 权利要求3的方法,其还包括: 从CPUT接收针对人为HTTP请求的HTTP响应; 对所述HTTP响应进行分析,以便识别出与CPUT的潜在安全性弱点相关的附加数据; 自动地合成至少第二单元测试,所述第二单元测试包括被配置成针对CPUT的至少一 项潜在安全性弱点来测试CPUT的至少第二测试有效载荷;以及 动态地处理第二单元测试,以便将第二测试有效载荷传送到CPUT。
6. 权利要求3的方法,其中,向CPUT传送人为HTTP请求包括: 第一单元测试自动地生成包括第一测试有效载荷的人为HTTP请求;以及 第一单元测试自动地向CPUT传送人为HTTP请求。
7. 权利要求1的方法,其中,自动地合成至少第一单元测试包括: 对与CPUT的潜在安全性弱点相关的数据进行处理,以便合成第一单元测试。
8. 权利要求1的方法,其中,对CPUT进行分析以便识别出与CPUT的潜在安全性弱点相 关的数据包括: 对CPUT施行静态分析。
9. 权利要求8的方法,其中,对CPUT施行静态分析包括: 对CPUT的与接收超文本传输协议HTTP请求有关的程序代码进行分析;以及 对CPUT的与处理HTTP请求有关的程序代码进行分析。
10. -种对待测试计算机程序CPUT施行安全性分析的方法,所述方法包括: 经由处理器对CPUT施行静态分析,以便识别出与CPUT的潜在安全性弱点相关的数 据; 自动地合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试,所述第 一单元测试被配置成初始化由CPUT内的所述特定程序代码单元使用的至少一个参数; 向第一单元测试提供被配置成利用CPUT的至少一项潜在安全性弱点的至少第一测试 有效载荷; 动态地处理第一单元测试,以便经由超文本传输协议HTTP请求向CPUT内的所述特定 程序代码单元传送第一测试有效载荷; 确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点;以及 输出表明第一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分析报告。
11. 一种用于对待测试计算机程序(CPUT)施行安全性分析的计算机程序产品,所述计 算机程序产品包括: 具有随之具体实现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程 序代码包括: 被配置成对CPUT进行分析以便识别出与CPUT的潜在安全性弱点相关的数据的计算机 可读程序代码; 被配置成自动地合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试 的计算机可读程序代码,所述第一单元测试被配置成初始化由CPUT内的所述特定程序代 码单元使用的至少一个参数; 被配置成向第一单元测试提供被配置成利用CPUT的至少一项潜在安全性弱点的至少 第一测试有效载荷的计算机可读程序代码; 被配置成动态地处理第一单元测试以便向CPUT内的所述特定程序代码单元传送第一 测试有效载荷的计算机可读程序代码; 被配置成确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点的计算机可读程 序代码;以及 被配置成输出表明第一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分 析报告的计算机可读程序代码。
12. 权利要求11的计算机程序产品,其中,被配置成确定第一测试有效载荷是否利用 了 CPUT的实际安全性弱点的计算机可读程序代码包括: 被配置成在CPUT处理第一测试有效载荷的同时分析由CPUT执行的处理的计算机可读 程序代码。
13. 权利要求11的计算机程序产品,其中,被配置成动态地处理第一单元测试以便向 CPUT传送第一测试有效载荷的计算机可读程序代码包括: 被配置成向CPUT传送包括第一测试有效载荷的人为超文本传输协议HTTP请求的计算 机可读程序代码。
14. 权利要求13的计算机程序产品,所述计算机可读程序代码还包括: 被配置成从CPUT接收针对人为HTTP请求的HTTP响应的计算机可读程序代码; 其中,被配置成确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点的计算机 可读程序代码包括被配置成分析所述HTTP响应的计算机可读程序代码。
15. 权利要求13的计算机程序产品,所述计算机可读程序代码还包括: 被配置成从CPUT接收针对人为HTTP请求的HTTP响应的计算机可读程序代码; 被配置成对所述HTTP响应进行分析以便识别出与CPUT的潜在安全性弱点相关的附加 数据的计算机可读程序代码; 被配置成自动地合成至少第二单元测试的计算机可读程序代码,所述第二单元测试包 括被配置成针对CPUT的至少一项潜在安全性弱点来测试CPUT的至少第二测试有效载荷; 以及 被配置成动态地处理第二单元测试以便将第二测试有效载荷传送到CPUT的计算机可 读程序代码。
16. 权利要求13的计算机程序产品,其中,向CPUT传送人为HTTP请求包括: 第一单元测试自动地生成包括第一测试有效载荷的人为HTTP请求;以及 第一单元测试自动地向CPUT传送人为HTTP请求。
17. 权利要求11的计算机程序产品,其中,被配置成自动地合成至少第一单元测试的 计算机可读程序代码包括: 被配置成对与CPUT的潜在安全性弱点相关的数据进行处理以便合成第一单元测试的 计算机可读程序代码。
18. 权利要求11的计算机程序产品,其中,被配置成对CPUT进行分析以便识别出与 CPUT的潜在安全性弱点相关的数据的计算机可读程序代码包括: 被配置成对CPUT施行静态分析的计算机可读程序代码。
19. 权利要求18的计算机程序产品,其中,被配置成对CPUT施行静态分析的计算机可 读程序代码包括: 被配置成对CPUT的与接收超文本传输协议HTTP请求有关的程序代码进行分析的计算 机可读程序代码;以及 被配置成对CPUT的与处理HTTP请求有关的程序代码进行分析的计算机可读程序代 码。
20. -种对待测试计算机程序CPUT施行安全性分析的计算机程序产品,所述计算机程 序广品包括: 具有随之具体实现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程 序代码包括: 被配置成对CPUT施行静态分析以便识别出与CPUT的潜在安全性弱点相关的数据的计 算机可读程序代码; 被配置成自动地合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试 的计算机可读程序代码,所述第一单元测试被配置成初始化由CPUT内的所述特定程序代 码单元使用的至少一个参数; 被配置成向第一单元测试提供被配置成利用CPUT的至少一项潜在安全性弱点的至少 第一测试有效载荷的计算机可读程序代码; 被配置成动态地处理第一单元测试以便经由超文本传输协议HTTP请求向CPUT内的所 述特定程序代码单元传送第一测试有效载荷的计算机可读程序代码; 被配置成确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点的计算机可读程 序代码;以及 被配置成输出表明第一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分 析报告的计算机可读程序代码。
21. -种系统,其包括: 被配置成发起包括以下可执行操作的处理器: 对CPUT进行分析,以便识别出与CPUT的潜在安全性弱点相关的数据; 自动地合成被配置成测试CPUT内的特定程序代码单元的至少第一单元测试,所述第 一单元测试被配置成初始化由CPUT内的所述特定程序代码单元使用的至少一个参数; 向第一单元测试提供被配置成利用CPUT的至少一项潜在安全性弱点的至少第一测试 有效载荷; 动态地处理第一单元测试,以便向CPUT内的所述特定程序代码单元传送第一测试有 效载荷; 确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点;以及 输出表明第一测试有效载荷是否利用了 CPUT的实际安全性弱点的安全性分析报告。
22. 权利要求21的系统,其中,确定第一测试有效载荷是否利用了 CPUT的实际安全性 弱点包括: 在CPUT处理第一测试有效载荷的同时分析由CPUT执行的处理。
23. 权利要求21的系统,其中,动态地处理第一单元测试以便向CPUT传送第一测试有 效载荷包括: 向CPUT传送包括第一测试有效载荷的人为超文本传输协议HTTP请求。
24. 权利要求23的系统,所述处理器还被配置成发起包括以下各项的可执行操作: 从CPUT接收针对人为HTTP请求的HTTP响应; 其中,确定第一测试有效载荷是否利用了 CPUT的实际安全性弱点包括分析所述HTTP 响应。
25. 权利要求23的系统,所述处理器还被配置成发起包括以下各项的可执行操作: 从CPUT接收针对人为HTTP请求的HTTP响应; 对所述HTTP响应进行分析,以便识别出与CPUT的潜在安全性弱点相关的附加数据; 自动地合成至少第二单元测试,所述第二单元测试包括被配置成针对CPUT的至少一 项潜在安全性弱点来测试CPUT的至少第二测试有效载荷;以及 动态地处理第二单元测试,以便将第二测试有效载荷传送到CPUT。
【文档编号】G06F9/44GK104115117SQ201380008347
【公开日】2014年10月22日 申请日期:2013年1月17日 优先权日:2012年2月7日
【发明者】O·特立普, O·塞伽尔, O·威斯曼, D·卡尔曼 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1