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的权益。上述申请的全部教导通过引用并且入本文。
技术介绍
测试甚至简单的商业计算机应用可能是非常复杂的,因为要测试的独立代码路径的数目可能非常大。这些代码路径中的每个又由非常大量的单独函数组成,函数可以由使得测试进一步复杂的非相邻指令的一个或多个块组成。在计算机行业中需要一种以有效的方式执行这样的复杂测试的方法。
技术实现思路
本公开涉及自动化检测输入/输出验证(例如,测试)和输出资源管理漏洞的系统和方法。系统和方法可以分析计算机例程的集合。分析可以包括确定针对集合中的一个或多个计算机例程的意外行为的漏洞的可能性。基于分析,系统和方法可以标识集合中具有漏洞的可能性的一个或多个计算机例程。系统和方法可以通过测试技术来异步并且动态地操纵一个或多个计算机例程中的至少一个。系统和方法可以确定一个或多个计算机例程中的至少一个的意外行为。在一些实施例中,一种系统和方法可以部署一个或多个补丁以校正一个或多个计算机例程中的至少一个的意外行为。在一些实施例中,系统和方法可以分析计算机例程的集合和集合中的计算机例程的至少一个对应序列。在系统和方法的一些实施例中,分析还可以包括以下中的至少一项:提取包括与集合中的至少一个计算机例程相关联的使用频率的直方图,确定与一个或多个计算机例程相关联的一个或多个缓冲器(例如,存储器分段)读取或写入计算机操作的大小,确定与一个或多个计算机例程相关联的一个或多个对应堆栈的大小,基于检查对应循环大小来确定一个或多个存储器 ...
【技术保护点】
一种由在系统内包括处理器的物理计算机执行的方法,所述方法包括,由所述处理器:分析计算机例程的集合,所述分析包括确定针对所述集合中的一个或多个计算机例程的意外行为的漏洞的可能性;基于所述分析,标识所述集合中具有所述漏洞的可能性的所述一个或多个计算机例程;通过测试技术来异步并且动态地操纵所述一个或多个计算机例程中的至少一个计算机例程;以及确定所述一个或多个计算机例程中的至少一个计算机例程的意外行为。
【技术特征摘要】
【国外来华专利技术】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.一种系统,包括:分析引擎,其被配置为:分析计算机例程的集合,所述分析包括确定针对所述集合中的一个或多个计算机例程的意外行为的漏洞的可能性;以及基于所述分析,标识所述集合中具有所述漏洞的可能性的所述一个或多个计算机例程;以及验证引擎,其被通信地耦合至所述分析引擎,所...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。