CN103678113B - 计算机软件应用的自测试、及其方法和系统 - Google Patents

计算机软件应用的自测试、及其方法和系统 Download PDF

Info

Publication number
CN103678113B
CN103678113B CN201310397293.7A CN201310397293A CN103678113B CN 103678113 B CN103678113 B CN 103678113B CN 201310397293 A CN201310397293 A CN 201310397293A CN 103678113 B CN103678113 B CN 103678113B
Authority
CN
China
Prior art keywords
test
software application
computer software
input data
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310397293.7A
Other languages
English (en)
Other versions
CN103678113A (zh
Inventor
R.萨尔茨曼
O.西格尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Finn Limited by Share Ltd
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN103678113A publication Critical patent/CN103678113A/zh
Application granted granted Critical
Publication of CN103678113B publication Critical patent/CN103678113B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • G06F11/3612Software analysis for verifying properties of programs by runtime analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/368Test management for test version control, e.g. updating test cases to a new software version
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种用于测试计算机软件应用的方法和系统。所述方法通过如下步骤测试计算机软件应用:检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来;将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的修改版本;以及处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试。

Description

计算机软件应用的自测试、及其方法和系统
技术领域
本发明一般涉及计算机软件测试。
背景技术
动态分析工具通常被计算机软件开发者用于测试计算机软件应用(application),典型地,通过首先探索(explore)应用以发现其接口(包括可以向该应用提供数据的接口),然后与应用的接口交互并监视应用对这种交互的响应。在一种动态分析中,通过向应用提供具有已知的恶意特性的数据来测试应用的安全漏洞。例如,可以通过采用在一个计算机上运行的经由网络向另一计算机拥有(host)的网页(web)应用发送HTTP请求的“黑盒子测试器(black-box tester)”,使用动态分析来测试在计算机网络(诸如因特网)上访问的网页应用。该HTTP请求配置有恶意载荷,其被设计用于测试安全漏洞,诸如SQL注入、跨站点脚本、以及命令注入。不幸的是,这样的测试通常产生数十万的请求和响应,从而在黑盒子测试器与被测试的应用之间产生大量流量,这可能不利地影响总体测试性能和持续时间。
发明内容
在本发明的一个方面中,提供了一种用于测试计算机软件应用的方法,所述方法包括:检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来;将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的修改版本;以及处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试。
在本发明的另一方面中,提供了一种用于测试计算机软件应用的方法,所述方法包括:将计算机软件应用构建(instrument)为:检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来,将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的修改版本,以及处理所检测到的输入数据的所述修改版本,从而使用所述测试数据执行对所述计算机软件应用的所述预定义测试;以及响应于所述计算机软件应用使用所述测试数据执行所述预定义测试,分析所述预定义测试的结果。
在本发明的其它方面中,提供了实施本发明的系统和计算机程序产品。
附图说明
根据下面结合附图进行的详细描述,将更全面地理解和认识本发明,其中:
图1是根据本发明的实施例构造和操作的用于测试计算机软件应用的系统的简化概念图示;
图2A是对理解图1的系统有用的输入数据的简化示例;
图2B是对理解图1的系统有用的修改的输入数据的简化示例;
图3是根据本发明的实施例操作的、图1的系统的操作的示例性方法的简化流程图图示;以及
图4是根据本发明的实施例构造和操作的计算系统的示例性硬件实施方式的简化框图图示。
具体实施方式
现在,在一个或多个实施例的上下文(context)中描述本发明,但该描述意图为整体上对本发明的描述,而不被解释为将本发明限制到所示实施例。可以理解,本领域的技术人员可以进行各种修改,其虽然未在本文中具体示出,但在本发明的真实精神和范围内。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光数据存储器件、磁数据存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程处理装置、或其它设备上,以使得在所述计算机、其它可编程装置、或其它设备上执行一系列操作步骤,以产生计算机实施的处理,从而在所述计算机或其它可编程装置上执行的指令提供用于实施流程图和/或框图中的一个或多个方框中规定的功能/动作的处理。
现在参照图1,其是根据本发明的实施例构造和操作的用于测试计算机软件应用的系统的简化概念图示。在图1的系统中,计算机软件应用100(例如可以由计算机102拥有)优选被构建为包括输入检测器104和修改器(mutator)106。计算机软件应用100可以例如是包括超文本标记语言(HTML)编码的网页页面的“网页”应用,其中计算机102用作网页应用服务器。输入检测器104优选被配置为检测例如超文本传输协议(HTTP)请求形式的输入数据的到来,该输入数据被提供作为从计算机软件应用100外部的源(例如从计算机108)向计算机软件应用100的输入,计算机108被配置为经由计算机网络110(诸如因特网)与计算机102上的计算机软件应用100通信。修改器106优选被配置为将所检测到的输入数据修改为包括被配置为根据预定义测试来测试计算机软件应用100的测试数据,从而创建所检测到的输入数据的修改版本。预定义测试可以例如被设计为测试已知类型的安全漏洞,诸如SQL注入,其中测试数据包括被设计为利用安全漏洞的恶意载荷。修改器106然后提供所检测到的输入数据的修改版本以用于计算机软件应用100处理。计算机软件应用100处理所检测到的输入数据的修改版本,从而使用包含在所检测到的输入数据的修改版本中的测试数据执行预定义测试。
根据本发明的实施例,修改器106被配置为多次修改所检测到的输入数据的给定实例,以创建所检测到的输入数据的多个修改版本,其中每个版本包括不同的测试数据。例如,图2A示出了所检测到的HTTP请求形式的输入数据,从该输入数据创建所检测到的输入数据的4个修改版本,如图2B中所示,其中所检测到的输入数据的每个版本被修改为包括不同测试数据,如由TEST_PAYLOAD1、TEST_PAYLOAD2、TEST_PAYLOAD3、和TEST_PAYLOAD4所表示的。修改器106可被配置为针对给定的预定义测试创建所检测到的输入数据的给定实例的任意数目的修改版本,并且可以针对任意数目的不同预定义测试这么做。修改器106接着提供所检测到的输入数据的修改版本的每个以用于计算机软件应用100处理。
图1的系统还优选包括构建器(instrumentor)112,其被配置为将计算机软件应用100构建为包括输入检测器104和修改器106,例如在所识别的“源(source)”和“宿(sink)”之间,其中源是将“不可信”输入(诸如用户输入)引入到应用中的应用编程接口(API),宿是安全敏感操作,例如应用修改数据库的情况。
图1的系统还优选包括动态分析器114,其被配置为分析如上所述由计算机软件应用100执行的预定义测试的结果。动态分析器114可以例如是由计算机108拥有的“黑盒子”测试工具,其中动态分析器114被配置为“钻营(crawl)”计算机软件应用100以发现其应用接口,经由所发现的应用接口向计算机软件应用100发送输入数据(诸如上述所检测到的输入数据),以及分析使用如上述所检测到的输入数据的修改版本执行的预定义测试的结果。动态分析器114可以附加地或替代地是由计算机102拥有的“玻璃盒子(glass-box)”测试工具,其监视计算机软件应用100的操作,以检测何时执行预定义测试。动态分析器114优选使用传统技术报告其分析的结果。
图1中所示的任何元素优选根据传统技术由一个或多个计算机(诸如计算机102和108)以计算机硬件和/或计算机软件方式实施,计算机软件包含在非易失性计算机可读介质中。
现在参照图3,其是根据本发明的实施例操作的、图1的系统的操作的示例性方法的简化流程图图示。在图3的方法中,计算机软件应用被构建(步骤300)为检测作为从所述计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来(步骤302),并且修改所检测到的输入数据,以根据预定义测试、或者针对多个不同预定义测试的每个,创建所检测到的输入数据的一个或多个修改版本,其中每个修改版本包括不同的测试数据(步骤304)。计算机软件应用处理所检测到的输入数据的修改版本,从而使用测试数据对计算机软件应用执行预定义测试(步骤306)。分析所执行的测试的结果,并报告分析的结果(步骤308)。
现在参照图4,框图400示出了根据本发明的实施例的计算系统的示例性硬件实施方式,根据其可以实施本发明的一个或多个组件/方法(例如图1-3的上下文中描述的组件/方法)。
如所示的,可以依据经由计算机总线418或替代连接布置而耦接的处理器410、存储器412、I/O设备414和网络接口416,实施用于控制对至少一个资源的访问的技术。
应当理解,这里使用的术语“处理器”意在包括任何处理设备,例如包括CPU(中央处理单元)和/或其它处理电路的处理设备。还应当理解,术语“处理器”可以指超过一个处理设备,并且与处理设备关联的各种元件可以由其它处理设备共享。
这里使用的术语“存储器”意在包括与处理器或CPU关联的存储器,例如RAM、ROM、固定存储设备(例如,硬盘驱动器)、可移除存储设备(例如,磁盘(diskette))、闪存等。这样的存储器可以被认为是计算机可读存储介质。
此外,这里使用的词组“输入/输出设备”或“I/O设备”意在包括例如一个或多个用于向处理单元输入数据的输入设备(例如,键盘、鼠标、扫描仪等)、和/或一个或多个用于呈现与处理单元关联的结果的输出设备(例如,扬声器、显示器、打印机等)。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
将理解,上述元素中的任一个可被实施为包含在计算机可读介质中的计算机程序产品(诸如以存储在磁或光存储介质上或包含在计算机硬件内的计算机程序指令的形式),并且可以被计算机(未示出)执行或者由计算机访问。
虽然可能已经或者可能还没有参照具体计算机硬件或软件描述了这里的方法和装置,但可理解,这里描述的方法和装置容易地使用传统技术以计算机硬件或软件方式实施。
虽然已经参照一个或多个具体实施例描述了本发明,但该描述意图为整体上对本发明的描述,而不被解释为将本发明限制到所示实施例。可以理解,本领域的技术人员可以进行各种修改,其虽然未在本文中具体示出,但在本发明的真实精神和范围内。

Claims (19)

1.一种用于测试计算机软件应用的方法,所述方法包括:
检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来;
使用处理器将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的多个修改版本;以及
处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试,
其中由所述计算机软件应用执行所述检测、修改和处理。
2.如权利要求1所述的方法,还包括将所述计算机软件应用构建为执行所述检测和所述修改。
3.如权利要求1所述的方法,其中所述检测包括所述计算机软件应用是网页应用并且所检测到的输入数据是HTTP请求的情况下的检测。
4.如权利要求1所述的方法,其中所述修改包括所述预定义测试被设计为测试已知类型的安全漏洞并且所述测试数据包括被设计来利用所述安全漏洞的恶意载荷的情况下的修改。
5.如权利要求1所述的方法,还包括:
多次执行所述修改,并且在每次中使用不同的测试数据,从而创建所检测到的输入数据的多个修改版本;以及
针对所检测到的输入数据的所述修改版本的每个执行所述处理。
6.如权利要求1所述的方法,还包括响应于使用所述测试数据对所述计算机软件应用执行所述预定义测试,分析所述预定义测试的结果。
7.一种用于测试计算机软件应用的方法,所述方法包括:
使用处理器将计算机软件应用构建为:
检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来,
将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的多个修改版本,以及
处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试;以及
响应于所述计算机软件应用使用所述测试数据执行所述预定义测试,分析所述预定义测试的结果。
8.如权利要求7所述的方法,其中所述构建包括所述计算机软件应用是网页应用并且所检测到的输入数据是HTTP请求的情况下的构建。
9.如权利要求7所述的方法,其中所述构建包括将所述计算机软件应用构建为修改所检测到的输入数据,其中所述预定义测试被设计为测试已知类型的安全漏洞,并且其中所述测试数据包括被设计来利用所述安全漏洞的恶意载荷。
10.如权利要求7所述的方法,其中所述构建包括将所述计算机软件应用构建为:多次修改所检测到的输入数据,并且在每次中使用不同的测试数据,从而创建所检测到的输入数据的多个修改版本;并且处理所检测到的输入数据的所述修改版本的每个。
11.一种用于测试计算机软件应用的系统,所述系统包括:
处理器,被配置为启动可执行操作,所述可执行操作包括:
检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来,
使用处理器将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的多个修改版本,以及
处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试,
其中所述计算机软件应用被构建为具有输入检测器和修改器。
12.如权利要求11所述的系统,其中所述计算机软件应用是网页应用,并且其中所检测到的输入数据是HTTP请求。
13.如权利要求11所述的系统,其中所述预定义测试被设计为测试已知类型的安全漏洞,并且其中所述测试数据包括被设计来利用所述安全漏洞的恶意载荷。
14.如权利要求11所述的系统,其中所述处理器还被配置为启动可执行操作,其包括:
多次执行所述修改,并且在每次中使用不同的测试数据,从而创建所检测到的输入数据的多个修改版本;以及
针对所检测到的输入数据的所述修改版本的每个执行所述处理。
15.如权利要求11所述的系统,其中所述处理器还被配置为启动可执行操作,其包括:响应于所述计算机软件应用使用所述测试数据执行所述预定义测试,分析所述预定义测试的结果。
16.一种用于测试计算机软件应用的系统,所述系统包括:
处理器,被配置为启动可执行操作,所述可执行操作包括:
使用处理器将计算机软件应用构建为:
检测作为从计算机软件应用外部的源向所述计算机软件应用的输入而提供的输入数据的到来,
将所检测到的输入数据修改为包括被配置为根据预定义测试来测试所述计算机软件应用的测试数据,从而创建所检测到的输入数据的多个修改版本,以及
处理所检测到的输入数据的所述修改版本,从而使用所述测试数据对所述计算机软件应用执行所述预定义测试;以及
响应于所述计算机软件应用使用所述测试数据执行所述预定义测试,分析所述预定义测试的结果。
17.如权利要求16所述的系统,其中所述计算机软件应用是网页应用,并且其中所检测到的输入数据是HTTP请求。
18.如权利要求16所述的系统,其中所述预定义测试被设计为测试已知类型的安全漏洞,并且其中所述测试数据包括被设计来利用所述安全漏洞的恶意载荷。
19.如权利要求16所述的系统,其中所述处理器还被配置为启动可执行操作,其包括:将所述计算机软件应用构建为:多次修改所检测到的输入数据,并且在每次中使用不同的测试数据,从而创建所检测到的输入数据的多个修改版本;并且处理所检测到的输入数据的所述修改版本的每个。
CN201310397293.7A 2012-09-04 2013-09-04 计算机软件应用的自测试、及其方法和系统 Active CN103678113B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/602,559 2012-09-04
US13/602,559 US9256511B2 (en) 2012-09-04 2012-09-04 Computer software application self-testing

Publications (2)

Publication Number Publication Date
CN103678113A CN103678113A (zh) 2014-03-26
CN103678113B true CN103678113B (zh) 2017-01-18

Family

ID=50189325

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310397293.7A Active CN103678113B (zh) 2012-09-04 2013-09-04 计算机软件应用的自测试、及其方法和系统

Country Status (2)

Country Link
US (2) US9256511B2 (zh)
CN (1) CN103678113B (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9256511B2 (en) 2012-09-04 2016-02-09 International Business Machines Corporation Computer software application self-testing
EP3130123B1 (en) * 2014-04-11 2021-07-07 HDIV Security, S.L. Detection of manipulation of applications
US20170277622A1 (en) * 2014-09-03 2017-09-28 Huawei Technologies Co., Ltd. Web Page Automated Testing Method and Apparatus
CN104735092A (zh) * 2015-04-22 2015-06-24 北京瑞星信息技术有限公司 web漏洞检测的方法及装置
US11119903B2 (en) * 2015-05-01 2021-09-14 Fastly, Inc. Race condition testing via a scheduling test program
US9910756B2 (en) 2015-09-03 2018-03-06 International Business Machines Corporation Response-time baselining and performance testing capability within a software product
WO2017163141A1 (en) * 2016-03-21 2017-09-28 Checkmarx Ltd. Integrated interactive application security testing
US11262722B2 (en) * 2016-08-02 2022-03-01 Siemens Aktiengesellschaft Monitoring and controlling unit for use in an autonomous system with self-x properties
CN107948120B (zh) * 2016-10-12 2020-11-24 阿里巴巴集团控股有限公司 漏洞检测方法和装置
EP3401827A1 (en) 2017-05-10 2018-11-14 Checkmarx Ltd. Method and system of static and dynamic data flow analysis
CN107729255B (zh) * 2017-11-10 2021-04-09 北京奇虎科技有限公司 软件测试方法、装置及系统
CN109144847A (zh) * 2018-02-24 2019-01-04 上海华测导航技术股份有限公司 Gnss静态后处理软件进行系统性检测验收的方法
CN112106048A (zh) * 2018-05-04 2020-12-18 谷歌有限责任公司 检测客户端模板系统的注入漏洞
US11836258B2 (en) 2020-07-28 2023-12-05 Checkmarx Ltd. Detecting exploitable paths in application software that uses third-party libraries

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222192A (zh) * 2010-12-24 2011-10-19 卡巴斯基实验室封闭式股份公司 通过自动修正检测规则优化反恶意软件处理
CN102262555A (zh) * 2011-08-22 2011-11-30 迈普通信技术股份有限公司 加载java三方库的不同版本的方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003210900A1 (en) 2002-02-07 2003-09-02 Empirix Inc. Automated security threat testing of web pages
US7287247B2 (en) * 2002-11-12 2007-10-23 Hewlett-Packard Development Company, L.P. Instrumenting a software application that includes distributed object technology
CA2553552A1 (en) 2004-02-11 2005-08-25 Spi Dynamics, Inc. System and method for testing web applications with recursive discovery and analysis
JP2006056871A (ja) 2004-07-23 2006-03-02 Bayer Cropscience Ag スルホンアニリド類の農園芸用殺菌剤としての利用
US8281401B2 (en) 2005-01-25 2012-10-02 Whitehat Security, Inc. System for detecting vulnerabilities in web applications using client-side application interfaces
US8601585B2 (en) * 2007-05-07 2013-12-03 Spirent Communications, Inc. Modification of messages for analyzing the security of communication protocols and channels
US8250658B2 (en) * 2007-09-20 2012-08-21 Mu Dynamics, Inc. Syntax-based security analysis using dynamically generated test cases
US8141158B2 (en) 2008-12-31 2012-03-20 International Business Machines Corporation Measuring coverage of application inputs for advanced web application security testing
US8676966B2 (en) 2009-12-28 2014-03-18 International Business Machines Corporation Detecting and monitoring server side states during web application scanning
US9015668B1 (en) * 2011-08-10 2015-04-21 Interactive TKO, Inc. Instrumentation agent for manipulating component responses in a test
US9256511B2 (en) 2012-09-04 2016-02-09 International Business Machines Corporation Computer software application self-testing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102222192A (zh) * 2010-12-24 2011-10-19 卡巴斯基实验室封闭式股份公司 通过自动修正检测规则优化反恶意软件处理
CN102262555A (zh) * 2011-08-22 2011-11-30 迈普通信技术股份有限公司 加载java三方库的不同版本的方法和装置

Also Published As

Publication number Publication date
US9256511B2 (en) 2016-02-09
US9838412B2 (en) 2017-12-05
US20140068563A1 (en) 2014-03-06
US20160055073A1 (en) 2016-02-25
CN103678113A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN103678113B (zh) 计算机软件应用的自测试、及其方法和系统
US8510842B2 (en) Pinpointing security vulnerabilities in computer software applications
US8977739B2 (en) Configurable frame work for testing and analysis of client-side web browser page performance
Miranda et al. Scope-aided test prioritization, selection and minimization for software reuse
JP5852676B2 (ja) 権限昇格攻撃へのコンピュータ・ソフトウェア・アプリケーションの脆弱性を判定するための方法、コンピュータ・プログラム、およびシステム
US10061682B2 (en) Detecting race condition vulnerabilities in computer software applications
CN104115117B (zh) 对计算机程序施行安全性分析的方法、系统和存储介质
US9135153B2 (en) Optimizing test data payload selection for testing computer software applications via computer networks
US9262309B2 (en) Optimizing test data payload selection for testing computer software applications that employ data sanitizers and data validators
US9201769B2 (en) Progressive black-box testing of computer software applications
CN108595952A (zh) 一种电力移动应用软件漏洞的检测方法及系统
Waller Performance benchmarking of application monitoring frameworks
Silva et al. An analysis of automated tests for mobile android applications
CN105893237A (zh) 一种测试数据驱动的方法及设备
Rivera-Ortiz et al. Towards automated logging for forensic-ready software systems
Marinho et al. Evaluating testing strategies for resource related failures in mobile applications
CN113362173A (zh) 防重机制验证方法、验证系统、电子设备及存储介质
US20230044951A1 (en) Guided Micro-Fuzzing through Hybrid Program Analysis
Gay Detecting real faults in the Gson library through search-based unit test generation
Jin et al. A comparative study on combinatorial and random testing for highly configurable systems
US20150095891A1 (en) Eliminating redundant interactions when testing computer software applications
US20160188443A1 (en) Testing application internal modules with instrumentation
Sung et al. Testing inter-layer and inter-task interactions in rtes applications
Antunes et al. Security testing in SOAs: Techniques and tools
Marinho et al. Resource Interaction Failures in Mobile Applications: A Challenge for Software Product Line Testing Community

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20181205

Address after: American California

Patentee after: Finn Limited by Share Ltd

Address before: New York grams of Armand

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right