用于确定应用程序漏洞的系统及方法技术方案

技术编号:10938554 阅读:111 留言:0更新日期:2015-01-21 18:58
本文公开的是确定被测应用程序中的漏洞的技术。确定应用程序的第一数据库指令是否将信息录入到数据库中,以及应用程序的第二数据库指令是否从所述数据库获得所述信息。如果所述第一数据库指令将所述信息录入到所述数据库中,并且所述第二数据库指令从所述数据库获得所述信息,则确定所述应用程序是否易受经由所述数据库的恶意代码进入的攻击。

【技术实现步骤摘要】
【国外来华专利技术】确定应用程序漏洞
技术介绍
软件安全测试可用于识别应用程序中的漏洞,例如基于网络的应用程序。传统的 黑盒安全测试可使用伪装成攻击者的安全测试应用程序。安全测试应用程序还可监测应用 程序响应于攻击所执行的指令。这些触发的指令的分析会有助于允许不择手段的用户在其 中插入恶意代码的漏洞的检测。 【附图说明】 图1是根据本公开各方面的可用于进行安全测试的示例系统的框图。 图2是根据本公开各方面的用于安全测试的示例方法的流程图。 图3是根据本公开各方面的用于安全测试的另一个示例方法的流程图。 图4是根据本公开各方面的用于检测应用程序漏洞的测试系统的工作示例。 图5是根据本公开各方面的用于检测漏洞的测试系统的另一个工作示例。 【具体实施方式】 如上面所指出的,为了检测受到安全测试的应用程序中的漏洞,安全测试应用程 序可监测受到安全测试的应用程序执行的指令。但是,被测试的应用程序可响应于安全测 试应用程序的输入而执行无数指令。分析和测试每个触发的指令可能是繁重并且耗时的。 由于需要评估的指令的数量高,安全测试的性能会受到不利影响。 鉴于上述观点,本文公开的是改进的系统、非瞬态计算机可读介质以及检测被测 应用程序(AUT)中的漏洞的方法。在一个示例中,可确定应用程序的第一数据库指令是否 将信息录入到数据库中,以及应用程序的第二数据库指令是否从该数据库获得所述信息。 如果第一数据库指令将信息录入到数据库中,并且第二数据库指令从该数据库获得该信 息,则可确定应用程序是否易受经由数据库的恶意代码进入的攻击。在另一个示例中,恶意 代码可定义为被创建用于中断计算机运行、收集敏感信息或获得对私人计算机系统的访问 的任何软件。 由于恶意代码可存储在数据库中并且从数据库执行,所以可忽略与数据库指令没 有关联的指令。因此,即使是在测试执行无数指令的大的应用程序时,安全测试也能更有效 地执行。在参照下面各示例的描述以及各附图考虑时,将理解本公开的各方面、特征和优 势。下面的描述不限制本申请,相反,本文公开的范围由所附的权利要求和等同物所限定。 图1呈现了根据本公开各方面描绘各种部件的示意性计算机装置100的示意图。 计算机装置100可包括通常与计算机结合使用的所有部件。例如,可具有键盘以及鼠标和 /或各种其他类型的输入设备,如笔输入、操纵杆、按钮、触摸屏等,以及显示器,显示器可包 括例如CRT、IXD、等离子屏幕监视器、TV、投影仪,等等。计算机装置100还可包括网络接口 (未示出),用于利用传统的协议(例如,以太网、Wi-Fi、蓝牙等)通过网络与其他设备通 ?目。 计算机装置1〇〇还可包含处理器110以及存储器112。存储器112可存储从处理 器110获取并由处理器110执行的指令。在一个示例中,存储器112可为随机存取存储器 (RAM)设备。在另一个示例中,存储器112可分成多个组织成双列直插式存储模块(DIMM) 的存储器片段。可替代地,存储器112可包括其他类型的设备,例如,设置在软盘驱动、磁带 以及硬盘驱动上的存储器或可直接或间接联接至计算机装置100的其他存储设备。存储器 还可包括前述中的一个或多个的任意组合和/或其他设备。处理器110可为任意数量的众 所周知的处理器,例如,丨ntel 1(公司的处理器。在另一个示例中,处理器可为执行操作的专 用的控制器,例如,应用专用集成电路(ASIC)。此外,计算机装置100实际上可包括串联工 作的多处理器以及串联工作的多个存储器。 驻留在存储器112中的指令可包括由处理器110直接执行(例如,机器代码)或 间接执行(例如,脚本)的任意指令集。在这点上,术语指令、脚本、应用程序以及 模块在本文中可互换使用。计算机可执行指令可以任意计算机语言或格式存储,例如,以 对象代码或源代码模块存储。此外,应理解,各指令可以硬件、软件或硬件和软件的结合的 形式实现,并且本文的各示例仅为说明性的。 安全测试器模块114可实现本文所公开的技术,并且可在任意非瞬态计算机可读 介质中实现。因此,在一个示例中,存储器112可以是由指令执行系统使用或与指令执行系 统结合使用的非瞬态计算机可读介质,指令执行系统例如计算机装置100、ASIC或能够从 非瞬态计算机可读介质取得或获得逻辑并且执行该介质中包含的指令的其他系统。非瞬 态计算机可读介质可为能够包含、存储或维护由指令执行系统使用或与指令执行系统结 合使用的程序和数据的任意介质。非瞬态计算机可读介质可包括许多物理介质中的任一 个,例如,电的、磁的、光的、电磁的或半导体介质。合适的非瞬态计算机可读介质的更多具 体示例包括但不限于:便携式磁性计算机磁盘,例如软盘或硬盘、只读存储器(ROM)、可擦 除可编程只读存储器或便携式光盘。 安全测试器模块114可包括与AUT 118交互并评估AUT 118中执行的指令的扫描 器模块115。如果AUT 118为基于网络的应用程序,例如,在尝试暴露AUT 118中的漏洞的 情况下,扫描器模块115可利用超文本传输协议(HTTP)请求模拟攻击。AUT 118处理HTTP 请求时,观察器模块116可监测AUT 118的行为。例如,当监测AUT 118时,观察器模块116 可识别并记录执行的代码行、访问的文件、实施的数据库查询,等等。为了评估扫描器模块 115发送的请求(例如,HTTP请求)所触发的AUT 118的行为,扫描器模块115还可请求观 察器模块116提供这些观察。扫描器模块115可基于从观察器模块116接收到的信息检测 AUT 118中的漏洞。可通过安全测试器模块114提供的用户界面向测试工程师显示漏洞报 告。在一个示例中,漏洞可为持久性漏洞。包含持久性漏洞的应用程序会允许恶意代码的 进入、其中的恶意代码的持久性以及之后恶意代码的激活。这样的漏洞的一个示例是持久 性跨站脚本。 应理解,可利用本文公开的技术检测客户端/服务器应用程序中的漏洞。因此,扫 描器模块115可与AUT 118交互,并且观察器模块116可因此监测AUT 118。在一个示例 中,AUT 118可为用任意合适的基于网络的计算机语言(例如,JAVA或.NET)编码的基于 网络的应用程序。AUT 118可在合适的架构中运行,例如,Struts、Strus 2、ASP. NET MVC、 Oracle WebLogic以及Spring MVC。软件架构可包括提供通用功能的一组公共模块。这样 的公共模块可被选择性地重写或定制。AUT 118可执行Java虚拟机(JVM)、公共语言运行 时(CLR)或用于处理来自扫描器模块115的请求的其它运行时环境的一个或多个实例。 尽管图1中示意性的组件示出在同样的方框中,但应理解,计算机装置100实际上 可包括附加的可存储在或不存储在同样的物理外壳或位置中的处理器以及存储器。此外, 如将在下面进一步示出的,一些或全部指令可存储在物理上远离各处理器但仍可由各处理 器访问的位置中。例如,扫描器模块115、观察器模块116以及AUT 118可在通过网络通信 的不同的计算机上执行。在此实例中,网络及其任意中间节点可包括各种配置并且使用各 种协议,包本文档来自技高网...

【技术保护点】
一种系统,包括:至少一个处理器,用于确定被测应用程序执行的指令是否包括数据库指令;如果所述指令包括数据库指令,则:确定第一数据库指令是否将信息录入到数据库中;确定第二数据库指令是否从所述数据库获得所述信息;以及如果所述第一数据库指令将所述信息录入到所述数据库中,并且所述第二数据库指令从所述数据库获得所述信息,则确定所述应用程序是否易受恶意代码经由所述第一数据库指令进入到所述数据库中以及所述恶意代码经由所述第二数据库指令而执行的攻击。

【技术特征摘要】
【国外来华专利技术】1. 一种系统,包括: 至少一个处理器,用于 确定被测应用程序执行的指令是否包括数据库指令; 如果所述指令包括数据库指令,则: 确定第一数据库指令是否将信息录入到数据库中; 确定第二数据库指令是否从所述数据库获得所述信息;以及 如果所述第一数据库指令将所述信息录入到所述数据库中,并且所述第二数据库指令 从所述数据库获得所述信息,则确定所述应用程序是否易受恶意代码经由所述第一数据库 指令进入到所述数据库中以及所述恶意代码经由所述第二数据库指令而执行的攻击。2. 根据权利要求1所述的系统,其中,所述至少一个处理器进一步用于: 检测所述应用程序中导致所述应用程序易受恶意代码经由所述第一数据库指令进入 到所述数据库中以及所述恶意代码经由所述第二数据库指令而执行的攻击的计算机代码。3. 根据权利要求1所述的系统,其中,所述至少一个处理器进一步用于,为确定所述第 一数据库指令是否将信息录入到所述数据库中以及所述第二数据库指令是否从所述数据 库获得所述信息: 将唯一可识别参数输入到所述应用程序中; 检测所述第一数据库指令是否将所述唯一可识别参数录入到所述数据库中;以及 检测所述第二数据库指令是否从所述数据库获得所述唯一可识别参数。4. 根据权利要求1所述的系统,其中,所述至少一个处理器进一步用于,当确定所述应 用程序易受恶意代码经由所述第一数据库指令进入到所述数据库中以及所述恶意代码经 由所述第二数据库指令而执行的攻击时,将所述第一数据库指令与所述第二数据库指令关 联。5. 根据权利要求1所述的系统,其中,所述被测应用程序为基于网络的应用程序。6. -种非瞬态机器可读存储介质,用于存储指令,如果所述指令被执行,则使至少一个 处理器: 监测被测应用程序执行的指令; 检测所述被测应用程序执行的所述指令中的数据库指令; 确定第一数据库指令是否将信息录入到数据库中; 确定第二数据库指令是否从所述数据库获得所述信息;以及 如果所述第一数据库指令将所述信息录入到所述数据库中,并且所述第二数据库指令 从所述数据库获得所述信息,则检测所述应用程序中使所述应用程序易受恶意代码经由所 述第一数据库指令进入到所述数据库中以及所述恶意代码经由所述第二数据库指令而执 行的攻击的计算机代码。7. 根据权利要求6所述的非瞬态机器可读介质,其中,如果所述指令被执行,则使所述 至少一个处理器进一步...

【专利技术属性】
技术研发人员:萨西·西达尔特·穆图拉扬普拉扎克塔·苏巴什·亚格达勒列昂尼德·普罗梅什良斯基·本斯曼伊夫塔克·拉加勒尔菲利普·爱德华·汗默
申请(专利权)人:惠普发展公司有限责任合伙企业
类型:发明
国别省市:美国;US

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

1