用于自动化检测输入和输出验证和资源管理漏洞的系统和方法技术方案

技术编号:15397030 阅读:37 留言:0更新日期:2017-05-19 11:32
在示例实施例中,系统分析计算机例程的集合。系统可以执行分析,包括确定针对集合中的一个或多个计算机例程的意外行为的漏洞的可能性。基于分析,系统可以标识集合中具有漏洞的可能性的一个或多个计算机例程。系统可以通过测试技术来异步并且动态地操纵一个或多个计算机例程中的至少一个。系统可以确定一个或多个计算机例程中的至少一个的意外行为。

System and method for automated detection of input and output validation and resource management vulnerabilities

In the example embodiment, the system analyzes a collection of computer routines. A system can perform an analysis, including the possibility of determining the vulnerability of an unexpected behavior to one or more computer routines in a collection. Based on analysis, a system can identify one or more computer routines with the possibility of a vulnerability in a collection. The system can asynchronously and dynamically manipulate at least one or more computer routines by test techniques. The system can determine at least one of the unexpected behavior of one or more computer routines.

【技术实现步骤摘要】
【国外来华专利技术】用于自动化检测输入和输出验证和资源管理漏洞的系统和方法相关申请本申请要求于2014年6月24日提交的美国临时申请No.61/998,318的权益。上述申请的全部教导通过引用并且入本文。
技术介绍
测试甚至简单的商业计算机应用可能是非常复杂的,因为要测试的独立代码路径的数目可能非常大。这些代码路径中的每个又由非常大量的单独函数组成,函数可以由使得测试进一步复杂的非相邻指令的一个或多个块组成。在计算机行业中需要一种以有效的方式执行这样的复杂测试的方法。
技术实现思路
本公开涉及自动化检测输入/输出验证(例如,测试)和输出资源管理漏洞的系统和方法。系统和方法可以分析计算机例程的集合。分析可以包括确定针对集合中的一个或多个计算机例程的意外行为的漏洞的可能性。基于分析,系统和方法可以标识集合中具有漏洞的可能性的一个或多个计算机例程。系统和方法可以通过测试技术来异步并且动态地操纵一个或多个计算机例程中的至少一个。系统和方法可以确定一个或多个计算机例程中的至少一个的意外行为。在一些实施例中,一种系统和方法可以部署一个或多个补丁以校正一个或多个计算机例程中的至少一个的意外行为。在一些实施例中,系统和方法可以分析计算机例程的集合和集合中的计算机例程的至少一个对应序列。在系统和方法的一些实施例中,分析还可以包括以下中的至少一项:提取包括与集合中的至少一个计算机例程相关联的使用频率的直方图,确定与一个或多个计算机例程相关联的一个或多个缓冲器(例如,存储器分段)读取或写入计算机操作的大小,确定与一个或多个计算机例程相关联的一个或多个对应堆栈的大小,基于检查对应循环大小来确定一个或多个存储器读取或写入操作的大小,以及执行集合中的至少一个计算机例程的污染分析。直方图可以包括但不限于以下中的至少一项:日志文件、图表、表格、其他用户显示和其他类型的显示。一些实施例可以包括一个或多个计算机线程。一些实施例可以包括两个或更多个计算机线程(例如,多线程)。在一些实施例中,计算机线程(例如,计算机执行线程)可以表示可以由调度器独立管理的编程指令的最小序列(例如,资源被分配以完成工作的方法),调度器可以是计算机操作系统的一部分。在一些实施例中,计算机线程可以包括计算机例程的序列,计算机例程可以包括函数调用和系统调用中的至少一个(例如,一个或多个)。根据一些实施例,直方图可以描绘计算机应用的计算机线程的给定函数或系统调用被执行多少次。在系统和方法的一些实施例中,一个或多个计算机例程可以包括以下中的至少一项(或多项):函数和系统调用。系统和方法的一些实施例可以通过以下中的至少一项来操纵一个或多个计算机例程中的至少一个:修改与一个或多个计算机例程相关联的数据,数据超过对应缓冲器(例如,存储器分段)大小,以及修改在与一个或多个计算机例程相关联的(例如,由一个或多个计算机例程访问的)存储器区域中声明的值。系统和方法的一些实施例可以确定一个或多个计算机例程中的至少一个的意外行为,包括确定与一个或多个计算机例程相关联的线程的控制流作为操纵的结果而已经改变,确定导致线程改变其控制流的失败状况,以及显示失败状况。在系统和方法的一些实施例中,对于一个或多个计算机例程的至少一个函数,计算机测试技术可以向至少一个函数的输入、至少一个函数内的逻辑和至少一个函数的输出中的至少一项提供无效、意外和随机数据中的至少一项。在系统和方法的一些实施例中,对于一个或多个计算机例程的至少一个系统调用,计算机测试技术可以向与至少一个系统调用相关联的系统调用参数提供无效、意外和随机数据中的至少一项。在系统和方法的一些实施例中,系统调用参数可以与以下中的至少一项相关联:线程同步、进程同步、线程调度、进程调度、存储器、存储器分配、存储器解除分配、存储器写入、存储器读取、网络套接字、网络套接字的创建、网络套接字输入、网络套接字输出、管道创建、系统输入、系统输出、共享存储器先入先出(fifo)创建、终端输入、终端输出、文件处理、文件创建、文件写入、文件读取、磁盘输入和磁盘输出。在一些实施例中,一种系统可以包括分析引擎。系统还可以包括可以被通信地耦合至分析引擎的验证引擎(例如,正被检查的线程和过程)。系统还可以包括可以被通信地耦合至分析引擎和验证引擎中的至少一项的仪器化引擎。在一些实施例中,分析引擎和验证引擎可以包括包含一个或多个处理器的处理器结构。在一些实施例中,分析引擎、验证引擎和仪器化引擎可以包括包含一个或多个处理器的处理器结构。附图说明根据如附图中所示的本公开的示例实施例的以下更具体的描述,前述内容将很清楚,在附图中,相同的附图标记在不同的视图中指代相同的部分。附图不一定是按比例的,重点在于示出本公开的实施例。图1A示出了在本公开的实施例中的可以包括功能并且还可以包括错误处理能力的给定函数。图1B示出了根据本公开的实施例的给定函数的状态。图2示出了在本公开的实施例中的创建一个或多个线程的计算机应用的执行,一个或多个线程又可以执行一个或多个函数。图3示出了在本公开的实施例中的用于自动化检测输入/输出验证和输出资源管理漏洞的示例方法(和系统)的流程图。图4A示出了计算机应用中的一个或多个特征可以如何包括一个或多个独立代码路径,这些代码路径又可以在本公开的实施例中执行一个或多个不同的函数集合。图4B示出了根据本公开的实施例的计算机应用的示例操作环境(例如,应用环境)。图4C示出了根据本公开的实施例的不同类型的系统资源。图5A示出了根据本公开的实施例的直方图。图5B示出了根据本公开的实施例的可以在其上执行压力测试的系统资源列表和攻击向量列表。图6示出了根据本公开的实施例的仪表板上的压力测试的结果。图7A示出了在本公开的实施例中的客户端和分析引擎的示例框图。图7B示出了用于在图7A的客户端与分析引擎之间传输数据的示例协议数据单元(PDU)。图8示出了其中可以实现本公开的实施例的计算机网络或类似的数字处理环境。图9示出了图8的计算机系统中的计算机(例如,客户端处理器/设备或服务器计算机)的示例性内部结构的图。具体实施方式以下是本公开的示例实施例的描述。本文中引用的所有专利、公开的申请和参考文献的教导通过引用整体被合并。一些实施例可以帮助不仅提高软件(例如,计算机应用)的基本功能的鲁棒性而且提高软件错误处理功能的鲁棒性,并且还可以试验当执行被设计以试验和测试应用的功能的测试套件时难以到达的那些代码路径。在一些实施例中,这样的软件测试可以以用户友好的方式被自动化。在一些实施例中,可以向开发被测软件的公司的测试者、开发者和管理显示软件测试的状态。多态压力和计算机应用执行:图1A是根据本公开的实施例的包括给定函数106的实施例100的图示,给定函数106可以包括功能102并且还可以包括错误处理能力104。单独的函数106可以包括用于基本功能102的计算机代码(也称为“代码”)以及用于错误处理场景104的代码。计算机应用可以使用多个内部但独立的代码路径来构建,这些代码路径可以联合实现由给定计算机应用提供的功能。函数可以包括实现基本功能102的代码、或实现错误处理104能力的代码、或两种类型的代码的组合。一些计算机代码可以意图用于基本功能102(例如,被称为“光明面(sunnyside)”代码或基本功能代码)本文档来自技高网...
用于自动化检测输入和输出验证和资源管理漏洞的系统和方法

【技术保护点】
一种由在系统内包括处理器的物理计算机执行的方法,所述方法包括,由所述处理器:分析计算机例程的集合,所述分析包括确定针对所述集合中的一个或多个计算机例程的意外行为的漏洞的可能性;基于所述分析,标识所述集合中具有所述漏洞的可能性的所述一个或多个计算机例程;通过测试技术来异步并且动态地操纵所述一个或多个计算机例程中的至少一个计算机例程;以及确定所述一个或多个计算机例程中的至少一个计算机例程的意外行为。

【技术特征摘要】
【国外来华专利技术】2014.06.24 US 61/998,3181.一种由在系统内包括处理器的物理计算机执行的方法,所述方法包括,由所述处理器:分析计算机例程的集合,所述分析包括确定针对所述集合中的一个或多个计算机例程的意外行为的漏洞的可能性;基于所述分析,标识所述集合中具有所述漏洞的可能性的所述一个或多个计算机例程;通过测试技术来异步并且动态地操纵所述一个或多个计算机例程中的至少一个计算机例程;以及确定所述一个或多个计算机例程中的至少一个计算机例程的意外行为。2.根据权利要求1所述的方法,还包括部署一个或多个补丁以校正所述一个或多个计算机例程中的至少一个计算机例程的所述意外行为。3.根据权利要求1所述的方法,还包括分析所述计算机例程的集合以及所述集合中的计算机例程的至少一个对应序列。4.根据权利要求1所述的方法,其中分析还包括以下中的至少一项:提取包括与所述集合中的至少一个计算机例程相关联的使用频率的直方图;确定与所述一个或多个计算机例程相关联的一个或多个缓冲器读取或写入计算机操作的大小;确定与所述一个或多个计算机例程相关联的一个或多个对应堆栈的大小;基于检查对应循环大小中的至少一个对应循环大小来确定一个或多个存储器读取或写入操作的大小;以及污染分析所述集合中的至少一个计算机例程。5.根据权利要求1所述的方法,其中所述一个或多个计算机例程包括以下中的至少一项:函数和系统调用。6.根据权利要求1所述的方法,还包括通过以下中的至少一项来操纵所述一个或多个计算机例程中的所述至少一个计算机例程:修改与所述一个或多个计算机例程相关联的数据,所述数据超过对应缓冲器大小;以及修改在与所述一个或多个计算机例程相关联的存储器区域中声明的值。7.根据权利要求1所述的方法,其中确定所述一个或多个计算机例程中的至少一个计算机例程的意外行为包括确定与所述一个或多个计算机例程相关联的线程的控制流作为所述操纵的结果而已经改变,确定导致所述线程改变其控制流的失败状况,并且显示所述失败状况。8.根据权利要求1所述的方法,其中对于所述一个或多个计算机例程的至少一个函数,所述计算机测试技术向所述至少一个函数的输入、所述至少一个函数内的逻辑和所述至少一个函数的输出中的至少一项提供无效、意外和随机数据中的至少一项。9.根据权利要求1所述的方法,其中对于所述一个或多个计算机例程的至少一个系统调用,所述计算机测试技术向与所述至少一个系统调用相关联的系统调用参数提供无效、意外和随机数据中的至少一项。10.根据权利要求9所述的方法,其中所述系统调用参数与以下中的至少一项相关联:线程同步、进程同步、线程调度、进程调度、存储器、存储器分配、存储器解除分配、存储器写入、存储器读取、网络套接字、网络套接字的创建、网络套接字输入、网络套接字输出、管道创建、系统输入、系统输出、共享存储器先入先出创建、终端输入、终端输出、文件处理、文件创建、文件写入、文件读取、磁盘输入、和磁盘输出。11.一种系统,包括:分析引擎,其被配置为:分析计算机例程的集合,所述分析包括确定针对所述集合中的一个或多个计算机例程的意外行为的漏洞的可能性;以及基于所述分析,标识所述集合中具有所述漏洞的可能性的所述一个或多个计算机例程;以及验证引擎,其被通信地耦合至所述分析引擎,所...

【专利技术属性】
技术研发人员:S·V·古普塔
申请(专利权)人:弗塞克系统公司
类型:发明
国别省市:美国,US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1