被测应用程序的未使用参数的制作方法

文档序号:9457689阅读:422来源:国知局
被测应用程序的未使用参数的制作方法
【专利说明】
【背景技术】
[0001]软件安全测试用于识别诸如网络应用程序之类的应用程序中的漏洞。传统的基于网络的软件的黑盒安全测试通过使用安全测试应用程序来工作,安全测试应用程序通常被称为扫描器,其充当攻击者。在黑盒方法中,为了找出被测应用程序(AUT)接受输入的所有URL,扫描器通过进行HTTP请求以及评估HTTP响应或其缺少来探测AUT。AUT接受输入的URL可指AUT的攻击面。扫描器随后基于攻击面及漏洞的可能的分类创建攻击。扫描器通过评估程序的HTTP响应,应用攻击来诊断漏洞的存在或不存在。在黑盒方法中,扫描器不具有对AUT的内部工作的任何了解。
【附图说明】
[0002]下面的详细描述参照附图,其中:
[0003]图1是根据一个示例的用于确定未使用参数的系统的框图;
[0004]图2是根据一个示例的能够确定未使用参数的计算系统的框图;
[0005]图3是根据一个示例的用于确定与实时代理关联的、托管的被测应用程序的未使用参数的方法的流程图;
[0006]图4是根据一个示例的用于由扫描器使用被测应用程序的网页的未使用参数的方法的流程图;
[0007]图5是根据一个示例的用于确定未使用参数是否是被测应用程序的后门的方法的流程图;
[0008]图6是根据一个示例的确定未使用参数是否是后门的扫描器的框图;以及
[0009]图7是根据一个示例的托管被测应用程序的服务器的框图。
【具体实施方式】
[0010]本文描述的实施例提供用于实施诸如网络应用程序之类的应用程序的测试的技术。在公司期望知道该公司已生产或即将投产的网络应用程序的安全程度时,该公司经常使用安全测试解决方案,诸如渗透测试解决方案(例如,扫描器的使用)、模糊测试、漏洞测试、软件安全测试、网站安全测试及其结合等。该公司还希望将生产中的应用程序的拷贝作为被测应用程序(AUT)使用。使用生产中的应用程序或即将投产的应用程序进行测试的理由在于:公司可能期望以不允许对AUT进行修改的方式测试相同的代码。在质量保证阶段使用将要成为生产中应用程序的AUT确保生产中使用的应用程序是已测试的。
[0011]动态测试工具通过在访问应用程序时模仿像人类一样的行为发现攻击面。测试工具系统地从一个链接开始,且递归地提取并遵循通过进一步的分析发现的随后的链接。此夕卜,动态测试工具通过点击每个按钮、提交每个表、以及收集用于审计循环中的未来测试的各种参数,训练暴露的应用程序接口。如今,网络应用程序不再是静态网页,而是同步以及异步两者运行的高度动态的用户驱动的应用程序。诸如单一统一资源定位符(URL)访问之类的应用程序模型是基于一个页面的;然而,AUT可基于请求内供应了什么输入参数名/值对而暴露不同的功能。可暴露的这些页面可表示AUT的漏洞。漏洞的示例可包括:如果填了参数,提供应当是安全的信息。在一个示例中,AUT可具有调试参数、管理员参数等,允许基于是否填了参数或是否用特定的值填充了该参数(例如,如果调试工具的参数是真)而对一个或多个网页、链接或其他资源的访问。在一些示例中,由网页读取的参数或参数的组合可用于在网页的执行期间作出决策。
[0012]在一个示例中,为了显示特定的管理员页面,(由扫描器模仿的)用户可向参数供应任意或特定的值。在某些示例中,参数字段可称为“隐藏管理员”、“后门”、“调试”等。程序员可能认为,这是管理员获得访问权限的容易的方式;然而,它不是安全的方法。AUT的正常执行不会执行此代码,但具有对源代码的直接了解的用户或通过意外事件偶然发现此能力的用户可能能够访问管理员页面。此管理员页面可包括应受保护的其他资源(例如,改变设置或用户账户的能力、看到个人信息的能力、看到密码的能力等)。
[0013]因此,可部署托管AUT的服务器上的实时代理以在安全测试(诸如安全扫描)期间监控应用程序的正常执行。实时代理可查看要由AUT的网页执行的代码,以检测来自测试AUT的扫描器的请求中是否存在未使用参数。在一个示例中,实时代理监控每个页面的执行,并将从请求(例如,超文本传输协议(HTTP)请求)读取的参数与供应的值进行比较。实时代理可在AUT的抓取和/或审计期间报告从扫描器提供的请求中丢失的任何参数。在供应额外的参数时,应用程序可显露之前在发现抓取阶段期间对扫描器隐藏的未发现的区域,未发现的区域可在攻击阶段期间有效地使该区域躲避审计或攻击。
[0014]在某些示例中,发现的参数可以是经由HTTP GET/POST请求或服务器头或其他类型的请求的。例如,请求可以是语言或应用程序接口(API)特有的。进一步,即使请求包括扫描器(例如,基于后面的链接)已知的测试参数,可由实时代理读取的AUT的应用程序代码可用于确定请求中代码预期的每个参数。
[0015]因此,本文描述的实施例能够利用未使用参数的分析来发现AUT的攻击面。由于应用程序的复杂性,方法可用于暴露未遇到过的功能。进一步,方法可用于暴露由具有可认为是恶意目的(例如,后门)的研发者偷偷插入的功能。而且,方法可用于暴露驻留在未链接的目录内的服务器侧生成的页面中的参数,该未链接的目录依赖于通过模糊以保持隐藏的安全性。
[0016]图1是根据一个示例的用于确定未使用参数的系统的框图。系统100可包括计算设备110以及服务器120。计算设备110可包括扫描模块112以及请求模块114。计算设备110可用于对可使用托管模块124托管的被测应用程序122执行安全测试。可提供实时代理126来分析AUT 122。
[0017]服务器120可具有非瞬态的计算机可读介质,诸如存储设备,用于存储数据、缓存通信以及存储服务器120的操作程序。可使用请求响应协议引导计算设备110和服务器120之间的通信,请求响应协议诸如超文本传输协议(HTTP)或另一个应用程序接口(API)。
[0018]服务器120可以是托管AUT 122的应用程序服务器。实时代理126能够监控AUT122。在某些示例中,实时代理126充当AUT 122的环境,用于执行。在其他示例中,实时代理126可在执行期间使用AUT 122的代码。可使用软件架构实现实时代理126,软件架构诸如.NET架构、Java虚拟机或其他类似的引擎。在其他示例中,可使用面向编程的方面或其他软件。在一些示例中,服务器120可实现为计算设备,诸如便携式电脑、台式机、工作站或其他计算设备。
[0019]在一个示例中,使用Java虚拟机工具。API调用工具可用于监控调用的API。此处,在调用特定的API或API集合时,该工具可监控代码、变量等。可在其他软件架构(诸如.NET)中使用类似的方法。此处,可在存储器中实施改变。照此,不需要直接修改AUT124。在另一个示例中,可使用面向编程特征的方面。可指定要被监控的API。
[0020]计算设备110可包括对AUT 122实施安全测试的扫描模块112。安全测试可以是扫描,且可包括例如安全抓取和审计阶段,未使用参数的验证阶段以及攻击阶段。在一个示例中,漏洞测试器寻找AUT 124中已知的漏洞,并报告潜在风险。在另一个示例中,渗透测试器或扫描器是寻找对与AUT 122关联的平常的业务活动进行开拓的方式的测试。
[0021]扫描模块112可通过网络,经由请求模块114向AUT 122发送HTTP请求,其中,HTTP请求被配置成试图暴露AUT 122的漏洞或AUT 122的攻击面。HTTP请求可包括HTTPS请求,HTTPS请求将超文本传输协议与SSL (安全套接层)和TLS (传输层安全)协议结合,以提供加密的通信以及网络Web服务器的安全识别。
[0022]在AUT 122的HTTP请求的处理期间,实时代理126可充当能够监控由AUT122实施的内部过程的观察者。例如,实时代理126可识别由AUT 122执行的代码行、访问的文件、实施的数据库查询等。实时代理126和AUT 122两者可被配置成通过相同的HTTP通道与扫描模块112通信。
[0023]如参照图2进一步描述的,从扫描模块112向服务器120发送的一些请求可将AUT122作为目标,以依照其程序从AUT 122引出响应。从扫描模块112向服务器120发送的其他请求可以以实时代理126作为目标,以获得关于效果的额外信息,或与AUT 122、实时代理126或托管AUT 122的服务器120有关的其他信息,该效果是特定的请求对由AUT 122实施的操作所具有的效果。响应于应用请求和服务请求,由扫描模块112接收的数据可由扫描模块112使用,以生成漏洞报告。可通过扫描模块112提供的用户界面向用户显示漏洞报告。
[0024]在一个示例中,可使用系统100来确定扫描模块112经由请求模块114作出的关联的请求中是否存在未使用参数。在某些示
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1