首页 / 专利库 / 人工智能 / 图灵测试 / 应用程序安全测试

应用程序安全测试

阅读:476发布:2020-05-18

专利汇可以提供应用程序安全测试专利检索,专利查询,专利分析的服务。并且本文公开的示例 实施例 涉及主动地 修改 待测应用程序(AUT)在运行时的执行。利用实时修改器执行该AUT。对该AUT实施安全测试。在决策点处修改该AUT的执行。,下面是应用程序安全测试专利的具体信息内容。

1.一种计算系统,包括:
服务器,主管在实时修改器中执行的待测应用程序;以及
计算设备,通信地联接至所述待测应用程序,所述计算设备被引起对所述待测应用程序执行安全测试,
其中所述实时修改器响应于所述安全测试主动地修改所述待测应用程序在运行时的执行,以不管所述待测应用程序在决策点处是否要采用一路径都使所述待测应用程序采用该路径,所述决策点是所述安全测试的一部分。
2.根据权利要求1所述的计算系统,其中所述实时修改器改变由所述待测应用程序使用的函数的结果,以设定在所述决策点处做出的决策。
3.根据权利要求2所述的计算系统,其中所述函数涉及安全验证测试,并且所做出的决策涉及通过所述安全验证测试。
4.根据权利要求3所述的计算系统,其中所述安全验证测试包括全自动区分计算机和人类的图灵测试CAPTCHA、信用卡号验证和标识号验证中的至少一个。
5.根据权利要求1所述的计算系统,其中所述实时修改器被实现为Java虚拟机和.NET框架中至少一种的一部分。
6.根据权利要求1所述的计算系统,其中所述实时修改器使用对应用程序接口API进行监视的设备,并且其中如果调用所述API的一部分,则执行与所述实时修改器关联的代码以帮助所述路径的选择。
7.一种用于测试应用程序的方法,包括:
使用实时修改器主管待测应用程序;
接收来自计算设备的通信,所述计算设备通信地联接至所述待测应用程序以对所述待测应用程序执行安全测试,所述安全测试包括决策点;以及
基于所述安全测试和期望路径实时地修改所述待测应用程序的执行,以不管所述待测应用程序在决策点处是否要采用所述期望路径都使所述待测应用程序采用所述期望路径。
8.根据权利要求7所述的方法,进一步包括:
修改由所述待测应用程序使用的函数的结果,以到达所述期望路径。
9.根据权利要求8所述的方法,其中所述函数涉及安全验证测试,并且所述期望路径涉及通过所述安全验证测试。
10.根据权利要求9所述的方法,所述安全验证测试包括全自动区分计算机和人类的图灵测试CAPTCHA、信用卡号验证以及标识号验证中的至少一个。
11.一种用于测试应用程序的方法,包括:
在服务器上使用实时修改器主管待测应用程序;
在所述服务器处与计算设备通信,以对所述待测应用程序执行安全测试,所述安全测试包括决策点;以及
利用所述实时修改器,通过修改由所述待测应用程序使用的代码来修改所述待测应用程序的执行,以不管所述待测应用程序在决策点处是否要采用一执行路径都使所述待测应用程序采用该执行路径。
12.根据权利要求11所述的方法,进一步包括:
对所述安全测试提供全自动区分计算机和人类图灵测试CAPTCHA安全测试;
接收对所述CAPTCHA安全测试的不正确响应;以及
利用所述实时修改器,采用与对CAPTCHA安全的正确响应关联的所述执行路径。
13.根据权利要求12所述的方法,其中修改代码包括修改函数的结果,并且其中所述函数被希望返回所述CAPTCHA安全测试成功。
14.根据权利要求11所述的方法,其中所述安全测试是渗透测试和单元测试中至少一种。

说明书全文

应用程序安全测试

背景技术

[0001] 软件安全测试用于识别应用程序(如网页应用程序)中的漏洞。对基于网页的软件的传统黑盒安全测试通过使用通常称为扫描器的安全测试应用程序进行工作,扫描器以攻击者的身份出现。在黑盒方法中,扫描器通过进行HTTP请求并且评价HTTP响应或响应缺失以找出待测应用程序(AUT)接受输入的所有URL,对AUT进行评估。AUT接受输入的URL可以被称作AUT的攻击面。然后,根据该攻击面及可能的漏洞类别,扫描器生成攻击。扫描器施加这些攻击,以通过评价程序的HTTP响应来诊断漏洞的存在或不存在。在黑盒方法中,扫描器不具有对AUT内部工作的任何了解。附图说明
[0002] 下面的详细描述参照附图,其中:
[0003] 图1是根据一个示例的、能够响应于安全测试而修改待测应用程序的执行的系统的框图
[0004] 图2是根据一个示例的、示出能够修改待测应用程序的执行的测试系统配置的框图;
[0005] 图3是根据一个示例的、示出被修改的待测应用程序的判定的示例的框图;
[0006] 图4是根据一种示例的、用于通过修改由待测应用程序使用的代码来修改待测应用程序的执行以采用执行路径的方法的流程图;以及
[0007] 图5是根据一个示例的、能够响应于安全测试动作而修改待测应用程序的计算设备的框图。

具体实施方式

[0008] 本文描述的实施例提供用于执行应用程序(如网页应用程序)的测试的技术。当公司想知道该公司生产中的或即将付诸生产的网页应用程序有多安全时,该公司通常使用安全测试方案,如渗透测试方案(例如,使用扫描器)、模糊测试、漏洞测试、软件安全测试、网站安全测试及其结合等等。该公司可能希望使用生产中的应用程序的副本作为待测应用程序(AUT)。使用生产中的应用程序或即将付诸生产的应用程序去作测试的原因是:该公司可能想以不允许修改AUT的方式测试同样的代码。在质量保证阶段使用即将成为生产中的应用程序的AUT,确保在生产中使用的应用程序已被测试。
[0009] 然而,应用程序本身中的特征会阻止安全测试方案执行对AUT的深入分析。例如,全自动区分计算机和人类的图灵测试(CAPTCHA)、身份验证、信用卡验证、用户名和密码鉴权、登录鉴权或其它机制会阻止AUT的部分被自动工具访问。在此场景中,该应用程序能够拒绝尝试向之前观察的超文本传输协议(HTTP)请求中引入恶意净荷,这在自动网页应用程序安全测试期间是标准做法。
[0010] 在安全测试领域,可以存在在攻击AUT时发现的更实际漏洞。因此,本文公开的各实施例涉及响应于安全测试而实时修改AUT。可以引入实时修改器,该实时修改器不会改变所编译的代码,但会改变程序在执行期间的行为。AUT可以是在生产系统中运行的或用于开发测试的代码的准确副本。实时修改器能够改变进行中的行为,以克服阻止像漏洞扫描器这样的自动工具对AUT进行深入分析的困难。一个示例是确保不管提供给CAPTCHA解决器的数据是什么,CAPTCHA解决器总是返回‘真’或‘已通过’。
[0011] 在特定示例中,实时修改器能够改变要进入AUT中的函数或来自AUT中的函数的数据,以克服特定困难。例如,自动化测试方案难以访问的页面可以被修改为容易访问。这使得对AUT的更深入分析成为可能。此外,公司可以测试生产中的应用程序,而不用改变该应用程序。此外,公司可以容易采用自动化过程。
[0012] 图1是根据一个示例的、能够响应于安全测试而修改待测应用程序的执行的系统的框图。该系统通常用附图标记100指示。本领域技术人员应理解,图1中示出的功能模和设备可以包括含电路硬件组件、含在非瞬态机器可读介质上存储的计算机代码的软件组件或硬件组件和软件组件二者的结合。此外,该配置不局限于图1中所示出的那种,因为任意多个功能模块和设备可以在本发明的实施例中使用。本领域技术人员基于对特定电子设备的设计考虑,将能够容易限定特定功能模块。
[0013] 如图1中说明的,系统100可以包括计算设备102,计算设备102可以包括通过总线106与像显示器108这样的呈现设备、键盘110以及诸如鼠标触摸屏或键盘之类的一个或多个输入设备112连接的处理器104。在实施例中,计算设备102是通用计算设备,例如台式机、便携式计算机、服务器等等。计算设备102还可以具有一种或多种非瞬态计算机可读介质,如可以在各种操作程序(包括本发明的实施例中使用的操作程序)执行期间使用的存储器
114。存储器114可以包括只读存储器(ROM)、随机存取存储器(RAM)等等。计算设备102还可以包括其它非瞬态计算机可读介质,如长期存储操作程序和数据(包括在本发明的实施例中使用的操作程序和数据)的储存器系统116。
[0014] 在实施例中,计算设备102包括网络接口控制器(NIC)118,网络接口控制器(NIC)118用于将计算设备102连接至服务器120。计算设备102可以通过诸如互联网、局域网(LAN)、广域网(WAN)或其它网络构造之类的网络而与服务器120通信地联接。服务器120可以具有用于存储数据、缓冲通信以及存储服务器120的操作程序的非瞬态计算机可读介质,如存储设备。可以利用像超文本传输协议(HTTP)在内的请求-响应协议或另一应用程序接口(API)进行计算设备102与服务器120之间的通信。
[0015] 服务器120可以是主管AUT 124的应用程序服务器。服务器120还包括实时修改器126,实时修改器126能够监视和/或修改AUT 124的执行。在特定示例中,实时修改器126担当用于执行AUT 124的环境。可以利用诸如.NET框架、Java虚拟机或其它类似引擎之类的软件框架实现实时修改器126。在其它示例中,可以使用面向方面编程或其它软件。在一些示例中,服务器可以被实现为计算设备,如计算设备500、便携式计算机、台式计算机、工作站或其它计算设备。
[0016] 在一个示例中,使用Java虚拟机规范(instrumentation)。API调用仪器可以用于监视和/或管理被调用的API。这里,当调用特定API或特定一组API时,该仪器可以将代码、变量等替换为AUT 124的执行和/或以其它方式修改AUT 124的执行。例如,如果调用API的一部分,则可以执行与实时修改器关联的代码以帮助选择期望路径。类似方法可以用于其它软件框架,如‘.NET’。这里,在存储器中可以执行改变。因此,不需要直接修改AUT 124。
[0017] 在另一示例中,可以使用面向方面的编程特征。可以指定要监视的API。在运行时,可以基于编程设置在进行时实现改变。
[0018] 计算设备102可以包括对AUT 124执行安全测试的安全测试模块128,如扫描器,模糊测试、漏洞测试器等等。在一个示例中,漏洞测试器寻找AUT 124中的已知漏洞并报告潜在的暴露。在另一示例中,渗透测试器或扫描器是对利用与AUT 124关联的正常商业途径的方式进行寻找的测试。在又一示例中,模糊测试可以是涉及对AUT的输入提供无效数据、意外数据或随机数据的技术。然后,可以监视AUT 124以发现问题。
[0019] 安全测试模块128可以通过网络向AUT 124发送HTTP请求,其中HTTP请求被配置为尝试暴露AUT 124的漏洞。HTTP请求可以包括HTTPS请求,HTTPS请求将超文本传输协议与安全套接字层(SSL)和TSL(传输层安全)协议结合在一起,以提供加密的通信以及网络网页服务器的安全识别。
[0020] 在AUT 124处理HTTP请求期间,观察器(未示出)可以监视由AUT 124执行的内部过程。例如,观察器可以识别由AUT 124执行的多行代码,被访问的文件,被执行的数据库查询,等等。观察器和AUT 124均可以被配置为通过同样的HTTP通道与安全测试模块128通信。
[0021] 如进一步参照图2描述的,从安全测试模块128向服务器120发送的一些请求可以以AUT 124为目标,以根据AUT 124的程序编制从AUT 124引出响应。从安全测试模块128向服务器120发送的其它请求可以以观察器为目标,以获得与特定请求对由AUT 124执行的操作的影响有关的附加信息,或与AUT 124、观察器或主管AUT 124的服务器120相关的其它信息。由安全测试模块128响应于应用程序请求及服务请求而接收到的数据可以由安全测试模块128用于生成漏洞报告。漏洞报告可以通过由安全测试模块128提供的用户界面向用户显示。
[0022] 如上面提到的,在特定场景中,由于安全测试模块128可能因为其未能通过AUT124和/或服务器120的另一安全测试或验证机制而不能得到一个或多个漏洞,所以可能未发现漏洞。因此,实时修改器126可以修改AUT在运行时的执行,以响应于来自安全测试模块128的通信而决策点处采用一路径。不管AUT 124在决策测试处所做的决策如何,都可以进行AUT 124执行的修改以采用该路径。
[0023] 在一个示例中,实时修改器改变由AUT使用的函数的结果,以设定(pin)在决策点处作出的决策。例如,调用的函数可以是CAPTCHA测试、标识号(如社会安全号或驾驶员证件号)验证、信用卡号验证、其它验证、其它测试等等。验证可以考虑信用卡号背面的安全代码或其它算法
[0024] 所做的决策可以涉及通过安全验证测试。例如,函数结果和/或决策点可以涉及测试通过还是测试失败。通常,如果通过测试,则由安全测试模块128运行的测试可以继续查找其它漏洞,但是如果未通过测试,则安全测试模块128不能继续。因此,实时修改器126可以动态地控制AUT 124的一个或多个决策点。
[0025] 在一个示例中,可以实时修改函数(例如,关于CAPTCHA测试或验证的函数),以返回特定值(例如,通过)。在另一示例中,可以控制在决策点处使用的变量。例如,如果在决策点处执行代码读取一变量来作出其决策,则可以控制该变量,而不管用于确定该变量的函数和/或从安全测试模块128接收到的信息如何。
[0026] 图2是根据一个示例的、示出能够修改待测应用程序的执行的测试系统构造的框图。系统200可以包括扫描器202、实时修改器204、AUT 206以及观察器208。
[0027] AUT 206可以以任意合适的基于网页的计算机语言(如JAVA或.NET等)编码。AUT 206可以操作于合适的软件框架中,如Struts、Struts 2、ASP.NET MVC、甲骨文(Oracle)的WebLogic以及Spring MVC等等。该软件框架包括提供通用功能的一组公共代码模块,该通用功能可以被用于提供特定功能的用户代码选择性地覆写或特殊化。AUT 206可以配置为执行Java虚拟机(JVM)、通用语言运行时(CLR)和/或用于处理来自扫描器202的请求的其它运行时环境的一个或多个实例。由软件框架或运行时环境的公共代码模块提供的编程指令可以称为容器代码。专用于AUT 206的定制编程指令可以称为用户代码。在测试期间,扫描器202可以通过作出HTTP请求并评价HTTP响应或HTTP响应缺失以找出AUT接受输入的所有URL,来对AUT 206进行评估。响应缺失可以提供有用信息,例如,用于确定被测试的应用程序发生故障和/或主管该应用程序的服务器发生故障的信息。尽管本文讨论的示例针对扫描器202,但是预想到能够使用其它安全测试引擎、模块和/或技术。
[0028] AUT 206包括网络接口(未示出),该网络接口用于使能通过网络进行扫描器202和AUT 206之间的通信。网络接口暴露AUT 206的攻击面,并且是在AUT 206可用于常规使用时将最终被用于提供对AUT 206的访问的同一接口。扫描器202和AUT206之间通过网络接口的通信可以通过从扫描器202向AUT 206发出的应用程序(例如,经由HTTP)请求以及从AUT 206向扫描器202发出的HTTP响应来进行。以AUT206为目标的请求可以称为应用程序请求,并且从AUT 206接收的响应可以称为应用程序响应。由扫描器202生成的应用程序请求可以被配置,以暴露AUT 206的潜在漏洞、对由AUT 206做出的测试进行响应等等。
[0029] 实时修改器204和/或观察器208可以在AUT 206的执行环境中运行,且有权访问由AUT 206执行的内部操作。例如,实时修改器204可以通过在各个程序点注入其它代码(如JAVA类)来修改AUT 206的字节码。所注入的代码用作观察AUT 206的监视器。所注入的监视器代码可以位于AUT 206的关键程序点,例如执行特定操作(如执行安全验证测试,如CAPTCHA、信用卡号验证、标识号验证等等)的应用程序接口(API)调用。
[0030] 可以通过定制请求和响应头的使用来实现扫描器202和观察器208之间的通信。定制头可以由扫描器202添加至应用程序请求,并且定制头可以由观察器208添加至应用程序响应。以这样的方式,扫描器202和观察器208之间的通信中至少一些可以被背负在与AUT 206的正常通信上。使用单个通信信道消除了与开启第二专用信道相关的任何问题,并且增加HTTP头通常不干扰AUT 206的正常操作。
[0031] 在一个示例中,扫描器202对AUT 206执行测试。可以向AUT 206发送应用程序请求,并且可以接收应用程序响应。在测试期间,AUT 206可以调用验证测试,如CAPTCHA、信用卡验证、标识号验证、用户名和密码鉴权等等。扫描器202可以向AUT 206发送消息,以回答验证。在没有修改器的情况下,错误的回答会阻止扫描器202在测试中进一步行动。因此,实时修改器204可以响应于扫描器的回答消息而修改AUT 206的执行以采用一路径,不管该回答消息是否会通过由AUT 206提供的验证测试。
[0032] 如果AUT 206向扫描器202提供CAPTCHA镜像以提供回答且扫描器正确响应,则采用该路径。此外,如果扫描器202不正确响应,则仍采用该路径。各种方法可以用于引起AUT 206采用该路径。在一个示例中,第一函数可以控制验证测试,并且返回关于是否通过测试的结果。第二函数可以决定采用哪个路径。在此示例中,实时修改器204可以修改第一函数返回什么,以引起采用所预期的路径。在另一示例中,验证测试可以修改变量(例如,全局变量),并且该变量可以用于控制该路径。实时修改器204可以实时地修改该变量,在其它时间改变该变量以引起采用该路径,阻止该变量变化,或以上的结合。由于采用要继续的路径,所以扫描器202可以执行更多测试且能够找出其它漏洞。在特定示例中,可以利用一个或多个实时修改来运行由扫描器202进行的多个测试。因此,第一次运行可能在第一验证测试(例如,CAPTCHA)处失败,因为没有进行修改,而第二次运行可以继续至第二验证测试(例如,信用卡验证),但不通过该测试。第三次运行可以引起第一验证测试和第二验证测试都被修改。因此,扫描器202可以测试多级安全。
[0033] 观察器208可以用于向扫描器202提供信息,以帮助AUT 206的测试。扫描器202可以通过利用服务请求和响应来与观察器208通信。该服务请求和响应可以使用例如定制头来实现。
[0034] 在一些示例中,实时修改器204还可以用于修改AUT 206在执行期间的其它方面。例如,如果动态地编译一个或多个函数或程序段,则可以向AUT 206的执行添加用于调试的代码。因此,进行中的编译器能够利用调试信息来编译代码。通过此方法,观察器208能够访问与所执行的代码相关的详细信息。可以向扫描器202提供该详细信息。扫描器202能够在其对AUT 206的测试中使用该调试信息。
[0035] 图3是根据一个示例的、示出修改待测应用程序的决策的示例的框图。实时修改器300可以执行待测应用程序302。可以通过像扫描器这样的安全测试引擎来测试该应用程序。AUT 302可以向安全测试引擎发送消息并从安全测试引擎接收消息以进行通信。此外,AUT 302可以通过这样的通信提供测试,如验证测试。该测试可以通过API向安全测试引擎提供。
[0036] 在测试期间或之后,可能到达决策点304。在此示例中,决策点304是具有真路径306和假路径308的二元量。然而,可预想到在决策点304处可以选择其它路径。实时修改器
300可以将决策点304设定至特定路径,如路径306。如上面提到的,不管测试通过还是测试失败,这都可以发生。此外,各种方法可以用于引起路径306被采用。在一个示例中,实时修改器300可以修改决策点304查看的变量,以驱动到路径306的决策。在另一示例中,可以修改决策点304处的代码,以驱动到路径306的决策。此外,实时修改器300可以引起将来自于由决策点304查看的测试函数的返回值修改为引起采用路径306的值。在其它场景中,可以引起采用另一路径,如路径308。如上面提到的,由AUT 302提供的测试可以是验证测试,如CAPTCHA、信用卡验证、用户鉴权等等。
[0037] 所采用的路径可以是提供AUT 302的其它使用的路径。因此,安全测试引擎可以执行AUT 302的更深入测试或扫描。此外,所采用的路径可以响应于从安全测试引擎或测试设备的其它模块接收的信息。可以通过由AUT 302提供的测试引起所接收的信息。此外,在特定场景中,以不管接收什么信息都采用该路径的方式修改AUT 302的执行。每次到达决策点304时或每当在决策点304处可以做出的决策未指向所期望的路径306时,此修改可以发生。
在此情况下,实时修改器300可以查看在决策点304处做出的决策,并且在需要时修改执行以采用路径306。
[0038] 图4是根据一个示例的、用于通过修改由待测应用程序使用的代码来修改待测应用程序的执行以采用执行路径的方法的流程图。尽管下面参考计算系统100描述方法400的执行,但是可以使用用于执行方法400的其它合适组件(例如,计算设备500)。此外,用于执行方法400的组件可以散布在多个设备中。方法400可以以在机器可读存储介质(如存储介质520)上存储的可执行指令的形式和/或以电路的形式实现。
[0039] 在402处,服务器120可以使用实时修改器126主管AUT 124。服务器120可以例如经由网络与其它设备和/或程序通信。在一个示例中,安全测试模块128可以用于与AUT 124通信。
[0040] 因此,在404处,服务器120可以与计算设备102通信,计算设备102被配置用于对AUT 124执行安全测试。如所提到的,安全测试可以包括单元测试、渗透测试、模糊测试、漏洞测试、软件安全测试、网址安全测试、以上的结合等等。
[0041] 在测试期间,AUT 124可以执行各种任务。此外,AUT 124可以包括可阻止或以其它方式妨碍安全测试的安全程序、验证测试等等。安全程序的示例包括验证测试、CAPTCHA、其它鉴权等等。AUT 124可以要求来自安全测试模块128的响应,并且能够接收响应。在406处,实时修改器126可以通过修改由AUT 124使用的代码,修改AUT 124的执行,以在决策点处采用执行路径。代码的修改可以以使AUT 124的已编译代码可以稳定的方式而在存储器中发生。
[0042] 在一个示例中,向安全测试模块128提供的安全程序是CAPTCHA安全测试。接收到的响应可以是正确的和/或不正确的响应。在接收到不正确响应的情况下,可以使用实施修改器使AUT 124采用与正确响应关联的执行路径。如上面提到的,各种方法可以用于修改要采用的路径。在一个示例中,修改代码可以包括修改函数结果。此外,该函数可以意在返回CAPTCHA安全测试成功。该函数结果或返回值可以用于进行决策。
[0043] 如上面提到的,安全测试模块128可以运行多个测试。这些测试可以反映不同程度的修改。这可以提供AUT 124的可能漏洞的更深入确定。例如,安全测试模块128可以确定:如果攻击者通过CAPTCHA安全机制、验证、其它安全机制等,则另一安全等级是否能够把握好另一形式的攻击。
[0044] 图5是根据一个示例的、能够响应于安全测试动作而修改待测应用程序的计算设备的框图。计算设备500包括:例如处理器510以及包括指令522、524、526的机器可读存储介质520,指令522、524、526用于根据在另一设备处发起的安全测试而修改待测应用程序的执行以在决策点处采用一路径。计算设备500可以是例如笔记本计算机、台式计算机、服务器、工作站或任何其它计算设备。在特定示例中,计算设备500可以用于实现服务器120的一个或多个特征。
[0045] 处理器510可以是至少一个中央处理单元(CPU)、至少一个基于半导体微处理器、至少一个图形处理单元(GPU)、适用于获取并执行在机器可读存储介质520中存储的指令的其它硬件设备、或以上的结合。例如,处理器510可以包括芯片上的多个核,包括多个芯片上的多个核、多个设备上的多个核(例如,如果计算设备510包括多个节点设备)或以上的结合。处理器510可以获取、解码并执行指令522、524、526,以像在方法400中那样实现AUT的实时修改。作为获取并执行指令的替代或者除获取并执行指令之外,处理器510可以包括至少一个集成电路(IC)、其它控制逻辑、其它电路或以上的结合,至少一个集成电路(IC)、其它控制逻辑、其它电路或以上的结合包括用于执行指令522、524、526的功能的多个电子组件。
[0046] 机器可读存储介质520可以是包含或存储可执行指令的任意电的、磁的、光的或其它物理存储设备。因此,机器可读存储介质可以是例如随机存取存储器(RAM)、电可擦写可编程只读存储器(EEPROM)、存储驱动器、光盘只读存储器(CD-ROM),等等。因此,机器可读存储介质可以是非瞬态的。如本文详细描述的,机器可读存储介质520可以编码有用于在安全测试期间响应于接收到的信息而修改AUT的一系列可执行指令。
[0047] AUT指令524可以由处理器510执行以主管AUT。AUT可以在可包括实时修改器的运行时环境中执行。AUT 524可以经由通信设备和在处理器510上执行的通信指令526与另一个计算设备通信。其它计算设备可以执行对AUT的安全测试。
[0048] 在安全测试期间,AUT可能实施会妨碍对AUT中的漏洞的测试的各种安全、鉴权或其它程序。这样的程序的示例包括安全验证测试,如CAPTCHA、信用卡号验证、标识号(如社会安全号)验证等等。为了缓解障碍,可以执行修改指令522来实时修改AUT的执行,以采用基于安全测试和所期望的路径在决策点处采用一路径。例如,CAPTCHA测试、信用卡验证等的期望路径可以继续,仿佛该测试通过一样。决策点可以基于安全测试,因为安全测试可以提供处理安全验证测试所基于的输入。因此,可以响应于安全测试而做出决策。
[0049] 此外,在一些示例中,AUT的修改可以包括修改AUT函数的结果,例如由该函数返回的信息。该修改可以用于导致AUT达到期望的路径或采用期望的路径。在一个示例中,该函数涉及安全验证测试(例如,CAPTCHA、信用卡验证,等等)。在另一示例中,期望的路径可以涉及通过安全验证测试。例如,不管该函数返回什么和/或由于该函数返回什么已被修改,所以修改指令522可以引起采用期望路径。
[0050] 利用上述方法,有效修改行为可以用于帮助测试应用程序。例如,修改使渗透测试工具更容易找到特定类型的漏洞,而不需要解决漏洞前方的每个问题。此外,此过程可以是自动的,使得不需要代码的人工干预。因此,不需要改变AUT。此外,应用程序逻辑的相关部分的修正可以在普通用户看来保持待测应用程序的逻辑完整。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈