应用程序安全测试制造技术

技术编号:10866432 阅读:70 留言:0更新日期:2015-01-07 07:45
本文公开的示例实施例涉及主动地修改待测应用程序(AUT)在运行时的执行。利用实时修改器执行该AUT。对该AUT实施安全测试。在决策点处修改该AUT的执行。

【技术实现步骤摘要】
【国外来华专利技术】应用程序安全测试
技术介绍
软件安全测试用于识别应用程序(如网页应用程序)中的漏洞。对基于网页的软件的传统黑盒安全测试通过使用通常称为扫描器的安全测试应用程序进行工作,扫描器以攻击者的身份出现。在黑盒方法中,扫描器通过进行HTTP请求并且评价HTTP响应或响应缺失以找出待测应用程序(AUT)接受输入的所有URL,对AUT进行评估。AUT接受输入的URL可以被称作AUT的攻击面。然后,根据该攻击面及可能的漏洞类别,扫描器生成攻击。扫描器施加这些攻击,以通过评价程序的HTTP响应来诊断漏洞的存在或不存在。在黑盒方法中,扫描器不具有对AUT内部工作的任何了解。 【附图说明】 下面的详细描述参照附图,其中: 图1是根据一个示例的、能够响应于安全测试而修改待测应用程序的执行的系统的框图; 图2是根据一个示例的、示出能够修改待测应用程序的执行的测试系统配置的框图; 图3是根据一个示例的、示出被修改的待测应用程序的判定的示例的框图; 图4是根据一种示例的、用于通过修改由待测应用程序使用的代码来修改待测应用程序的执行以采用执行路径的方法的流程图;以及 图5是根据一个示例的、能够响应于安全测试动作而修改待测应用程序的计算设备的框图。 【具体实施方式】 本文描述的实施例提供用于执行应用程序(如网页应用程序)的测试的技术。当公司想知道该公司生产中的或即将付诸生产的网页应用程序有多安全时,该公司通常使用安全测试方案,如渗透测试方案(例如,使用扫描器)、模糊测试、漏洞测试、软件安全测试、网站安全测试及其结合等等。该公司可能希望使用生产中的应用程序的副本作为待测应用程序(AUT)。使用生产中的应用程序或即将付诸生产的应用程序去作测试的原因是:该公司可能想以不允许修改AUT的方式测试同样的代码。在质量保证阶段使用即将成为生产中的应用程序的AUT,确保在生产中使用的应用程序已被测试。 然而,应用程序本身中的特征会阻止安全测试方案执行对AUT的深入分析。例如,全自动区分计算机和人类的图灵测试(CAPTCHA)、身份验证、信用卡验证、用户名和密码鉴权、登录鉴权或其它机制会阻止AUT的部分被自动工具访问。在此场景中,该应用程序能够拒绝尝试向之前观察的超文本传输协议(HTTP)请求中引入恶意净荷,这在自动网页应用程序安全测试期间是标准做法。 在安全测试领域,可以存在在攻击AUT时发现的更实际漏洞。因此,本文公开的各实施例涉及响应于安全测试而实时修改AUT。可以引入实时修改器,该实时修改器不会改变所编译的代码,但会改变程序在执行期间的行为。AUT可以是在生产系统中运行的或用于开发测试的代码的准确副本。实时修改器能够改变进行中的行为,以克服阻止像漏洞扫描器这样的自动工具对AUT进行深入分析的困难。一个示例是确保不管提供给CAPTCHA解决器的数据是什么,CAPTCHA解决器总是返回‘真’或‘已通过’。 在特定示例中,实时修改器能够改变要进入AUT中的函数或来自AUT中的函数的数据,以克服特定困难。例如,自动化测试方案难以访问的页面可以被修改为容易访问。这使得对AUT的更深入分析成为可能。此外,公司可以测试生产中的应用程序,而不用改变该应用程序。此外,公司可以容易采用自动化过程。 图1是根据一个示例的、能够响应于安全测试而修改待测应用程序的执行的系统的框图。该系统通常用附图标记100指示。本领域技术人员应理解,图1中示出的功能模块和设备可以包括含电路的硬件组件、含在非瞬态机器可读介质上存储的计算机代码的软件组件或硬件组件和软件组件二者的结合。此外,该配置不局限于图1中所示出的那种,因为任意多个功能模块和设备可以在本专利技术的实施例中使用。本领域技术人员基于对特定电子设备的设计考虑,将能够容易限定特定功能模块。 如图1中说明的,系统100可以包括计算设备102,计算设备102可以包括通过总线106与像显示器108这样的呈现设备、键盘110以及诸如鼠标、触摸屏或键盘之类的一个或多个输入设备112连接的处理器104。在实施例中,计算设备102是通用计算设备,例如台式机、便携式计算机、服务器等等。计算设备102还可以具有一种或多种非瞬态计算机可读介质,如可以在各种操作程序(包括本专利技术的实施例中使用的操作程序)执行期间使用的存储器114。存储器114可以包括只读存储器(ROM)、随机存取存储器(RAM)等等。计算设备102还可以包括其它非瞬态计算机可读介质,如长期存储操作程序和数据(包括在本专利技术的实施例中使用的操作程序和数据)的储存器系统116。 在实施例中,计算设备102包括网络接口控制器(NIC) 118,网络接口控制器(NIC) 118用于将计算设备102连接至服务器120。计算设备102可以通过诸如互联网、局域网(LAN)、广域网(WAN)或其它网络构造之类的网络而与服务器120通信地联接。服务器120可以具有用于存储数据、缓冲通信以及存储服务器120的操作程序的非瞬态计算机可读介质,如存储设备。可以利用像超文本传输协议(HTTP)在内的请求-响应协议或另一应用程序接口(API)进行计算设备102与服务器120之间的通信。 服务器120可以是主管AUT 124的应用程序服务器。服务器120还包括实时修改器126,实时修改器126能够监视和/或修改AUT 124的执行。在特定示例中,实时修改器126担当用于执行AUT 124的环境。可以利用诸如.NET框架、Java虚拟机或其它类似引擎之类的软件框架实现实时修改器126。在其它示例中,可以使用面向方面编程或其它软件。在一些示例中,服务器可以被实现为计算设备,如计算设备500、便携式计算机、台式计算机、工作站或其它计算设备。 在一个示例中,使用Java虚拟机规范(instrumentat1n)。API调用仪器可以用于监视和/或管理被调用的API。这里,当调用特定API或特定一组API时,该仪器可以将代码、变量等替换为AUT 124的执行和/或以其它方式修改AUT 124的执行。例如,如果调用API的一部分,则可以执行与实时修改器关联的代码以帮助选择期望路径。类似方法可以用于其它软件框架,如‘.NET’。这里,在存储器中可以执行改变。因此,不需要直接修改AUT 124。 在另一示例中,可以使用面向方面的编程特征。可以指定要监视的API。在运行时,可以基于编程设置在进行时实现改变。 计算设备102可以包括对AUT 124执行安全测试的安全测试模块128,如扫描器,模糊测试、漏洞测试器等等。在一个示例中,漏洞测试器寻找AUT 124中的已知漏洞并报告潜在的暴露。在另一示例中,渗透测试器或扫描器是对利用与AUT 124关联的正常商业途径的方式进行寻找的测试。在又一示例中,模糊测试可以是涉及对AUT的输入提供无效数据、意外数据或随机数据的技术。然后,可以监视AUT 124以发现问题。 安全测试模块128可以通过网络向AUT 124发送HTTP请求,其中HTTP请求被配置为尝试暴露AUT 124的漏洞。HTTP请求可以包括HTTPS请求,HTTPS请求将超文本传输协议与安全套接字层(SSL)和TSL(传输层安全)协议结合在一起,以提供加密的通信以及网络网页本文档来自技高网...

【技术保护点】
一种计算系统,包括:服务器,主管在实时修改器中执行的待测应用程序;以及计算设备,通信地联接至所述待测应用程序,所述计算设备被引起对所述待测应用程序执行安全测试,其中所述实时修改器响应于所述安全测试主动地修改所述待测应用程序在运行时的执行,以在决策点处采用一路径。

【技术特征摘要】
【国外来华专利技术】1.一种计算系统,包括: 服务器,主管在实时修改器中执行的待测应用程序;以及 计算设备,通信地联接至所述待测应用程序,所述计算设备被引起对所述待测应用程序执行安全测试, 其中所述实时修改器响应于所述安全测试主动地修改所述待测应用程序在运行时的执行,以在决策点处采用一路径。2.根据权利要求1所述的计算系统,其中不管所述待测应用程序在所述决策点处做出的决策如何,都采用所述路径。3.根据权利要求1所述的计算系统,其中所述实时修改器改变由所述待测应用程序使用的函数的结果,以设定在所述决策点处做出的决策。4.根据权利要求3所述的计算系统,其中所述函数涉及安全验证测试,并且所做出的决策涉及通过所述安全验证测试。5.根据权利要求4所述的计算系统,其中所述安全验证测试包括全自动区分计算机和人类的图灵测试(CAPTCHA)、信用卡号验证和标识号验证中的至少一个。6.根据权利要求1所述的计算系统,其中所述实时修改器被实现为Java虚拟机和.NET框架中至少一种的一部分。7.根据权利要求1所述的计算系统,其中所述实时修改器使用对应用程序接口(API)进行监视的设备,并且其中如果调用所述API的一部分,则执行与所述实时修改器关联的代码以帮助所述路径的选择。8.一种存储指令的非瞬态机器可读存储介质,该指令如果由一设备的至少一个处理器执行则引起所述设备: 使用实时修改器主管待测应用程序; 接收来自计算设备的通信,所述计算设备通信地联接至所述待测应用程序以对所述待测应用程序执行安...

【专利技术属性】
技术研发人员:马蒂亚斯·马杜基里尔·缅杰列维萨姆·恩·明·瑟姆
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

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

1