基于动态污点的安全性扫描的制作方法

文档序号:9278201阅读:304来源:国知局
基于动态污点的安全性扫描的制作方法
【专利说明】基于动态污点的安全性扫描
【背景技术】
[0001] 软件安全性测试用来标识应用(诸如网络应用)中的弱点。针对基于网络软件的传 统黑盒安全性测试通过使用安全性测试应用来工作,安全性测试应用通常被称为扫描器, 其装作是攻击者。在黑盒方法中,扫描器通过作出超文本传输协议(HTTP)请求并且评估 HTTP响应或者其不足来探索被测试应用(AUT)以便发现其中该AUT接受输入的所有URL。 其中AUT接受输入的URL可以被称为AUT的攻击面(attacksurface)。扫描器随后基于攻 击面和可能的弱点类别来创建攻击。扫描器通过评估程序的HTTP响应来应用攻击以诊断 弱点的存在或者不存在。在黑盒方法中,扫描器无法洞悉AUT的内部工作。
【附图说明】
[0002] 以下的具体描述参考各图,其中: 图1是按照一个示例的能够基于来自动态污点模块的弱点列表来执行安全性攻击的 系统的方框图; 图2A和2B是按照各种示例的能够基于由动态污点模块生成的弱点列表来攻击应用的 应用安全性扫描器的方框图; 图3是按照一个示例的被测试应用的网络应用接口的图; 图4是按照一个示例的用于基于扫描策略来攻击应用的方法的流程图,其中扫描策略 是基于由动态污点模块生成的弱点列表的;以及 图5是按照一个示例的能够基于弱点列表来生成对网络应用的攻击的计算设备的方 框图。
【具体实施方式】
[0003] 本文描述的实施例提供用于执行对应用(诸如网络应用)进行测试的技术。当一个 公司希望知道该公司正投入生产的或者将要投入生产的网络应用有多么安全时,该公司通 常使用安全性测试解决方案,诸如穿透测试解决方案(例如,扫描器的使用)。公司可能希望 将投入生产的应用的副本用作是被测试的应用(AUT)。在质量保证阶段使用将投入生产的 应用的AUT确保了生产中使用的应用已经被测试过。
[0004] 网络应用安全性扫描器是用于找到应用(诸如网络应用)中的安全性弱点的方法。 在一些场景下,爬行器(crawler)首先人工地或者自动地确定攻击面。对一些应用而言,攻 击面可以是大的。
[0005]随后,扫描器仔细检查攻击面列表,并且对于在攻击面列表中的每个入口 (entry),可以执行扩展的大量攻击来确定是否会有弱点发生。从攻击面中确定弱点是有挑 战性的,因为扫描器可能对在应用中执行的代码具有有限的能见度(visibility)。由于有 限的能见度,所以对每个攻击面入口执行一组攻击。进一步地,在某些场景中,被执行的少 数攻击发现了弱点。照此,执行了许多攻击而只有少数攻击是成功的。这导致扫描器测试 是耗费时间的。对于大型网站,扫描可能会花费数小时或者甚至数天来完成。用户和顾客 可能希望较快速的扫描时间。
[0006] 关于应用的附加洞察力信息可以帮助扫描器作出更加智能的决策,其关于应该执 行什么攻击以及哪些攻击是不值得考虑的。降低攻击的数量直接改进了扫描时间。
[0007] 相应地,提供方法来通过使用动态污点分析以向扫描器报告可能的弱点类别从而 加速扫描过程。随后,扫描器可以基于由动态污点分析所确定的弱点类别来选择性地扫描 应用。因此,可以通过将攻击面上的扫描限制为基于动态污点分析所确定的特定弱点来降 低将被实行的测试数量。照此,总体的扫描可以比不使用来自动态污点分析的信息要更快。
[0008]图1是按照一个示例的能够基于来自动态污点模块的弱点列表来执行安全性攻 击的系统的方框图。系统100可以包括应用安全性扫描器102和被测试应用(AUT)104。AUT 104可以在一个或者多个计算设备上实施,诸如服务器(例如,Java2平台、企业版本(J2EE) 应用服务器、互联网信息服务器等等)。进一步地,AUT104可以包括动态污点模块110。
[0009]AUT104可以以任何适当的基于网络的计算机语言(除了别的之外,诸如JAVA或 者.NET)来编码。AUT104可以在适当的软件框架内操作,除了别的以外,诸如Struts、 Struts2、ASP.NETMVC、甲骨文应用服务器(OracleWebLogic)和SpringMVC。软件框架包 括提供泛化的功能性的一组共用代码模块,其可以选择性地被用户代码覆盖(override)或 者专门化以提供具体的功能性。AUT104可以被配置用来执行Java虚拟机(JVM)、共用语 言运行时间(CLR)和/或用于处理来自扫描器102的请求的其它运行时间中的一个或者多 个实例。由软件框架或者运行时间的共用代码模块提供的编程指令可以被称为容器代码。 特定于AUT104的定制的编程指令可以被称为用户代码。
[0010] 扫描器102可以被认为是可由计算设备执行的程序,该计算设备通过诸如网络接 口那样的前端与AUT104进行通信以便例如通过执行黑盒测试来标识AUT104的潜在安全 性弱点和架构劣势。
[0011]AUT104包括用于使能通过网络在扫描器102和AUT104之间进行通信的网络接 口(未示出)。当AUT104是可得到的以用于一般使用时,网络接口暴露了AUT104的攻击 面并且是将最终被用来提供对AUT104的访问的相同接口。通过网络接口在扫描器102和 AUT104之间的通信可以通过从扫描器102发布给AUT104的应用(例如,经由HTTP)请求 和从AUT104发布给扫描器102的HTTP响应来实行。针对AUT104的请求可以被称为应 用请求,而从AUT104接收的响应可以被称为应用响应。由扫描器102所生成的应用请求 可以被配置成暴露AUT104的潜在弱点、响应于由AUT104所引起的测试等等。
[0012] 网络可以包括例如公共数据网络,诸如互联网、局域网(LAN)、广域网(WAN)、城域 网(MAN)、电缆网络、光纤网络、其组合等等。在某些示例中,无线网络可以包括蜂窝网络、卫 星通信、无线LAN等等。
[0013] 在一种用于对AUT104实行安全性测试的方法中,扫描器102可以在安全性测试 的爬行阶段期间从动态污点模块110接收信息。在一个示例中,动态污点模块110是特殊 的运行时间模块,用来在AUT104的程序执行期间监测安全性弱点。动态污点模块110类 似于程序调试器一样工作,其在预定义的程序点(例如,与调试器中的断点相似)处截获程 序的执行并且执行安全性检查。动态污点分析发现安全性弱点,其通过以下完成:首先将不 受信任的用户输入标记为可能的污点源并且随后跟踪用户输入来确定来自用户输入的任 何数据是否可能被用在任何危险的功能调用中。危险的功能调用的示例包括直接数据库查 询(例如,直接结构化查询语言(SQL)查询、文件打开、文件删除、向超文本标记语言响应流 的写入功能、壳(shell)命令执行、直接可扩展标记语言(XML)查询、用来向日志文件写入 错误消息的功能、直接用户目录查询等等。可以通过用特殊库编译AUT104来将动态污点 模块110添加到应用或者通
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1