基于规则呈现用户界面元素的制作方法

文档序号:9240065阅读:333来源:国知局
基于规则呈现用户界面元素的制作方法
【专利说明】
【背景技术】
[0001]软件安全测试用于识别在应用(例如Web应用)中的漏洞。基于Web的软件的传统黑盒安全测试通过使用常常被称为扫描器的安全测试应用来工作,该安全测试应用伪装成攻击者。扫描器通过做出HTTP请求并评估HTTP响应或HTTP响应的缺乏,来探索被测试应用(AUT),以便找到AUT在此接受输入的所有URL。AUT在此接受输入的URL可以指AUT的攻击面。扫描器然后基于攻击面和漏洞的可能类别来创建攻击。扫描器应用攻击,以通过评估程序的HTTP响应来诊断漏洞的存在或缺乏。
【附图说明】
[0002]下面的详细描述参考附图,其中:
[0003]图1A和图1B是根据各示例的、能够基于规则呈现用户界面元素的系统的框图;
[0004]图2是根据一个示例的、用于分析web应用的结构以产生供呈现的可行令牌的计算系统的框图;
[0005]图3A和图3B是根据各示例的规则和令牌的框图;
[0006]图4A是根据一个示例的、用于呈现与所发现的可行令牌相关联的加亮用户界面元素的用户界面的框图;
[0007]图4B是根据一个示例的、用于呈现与所发现的可行令牌相关联的修改的加亮用户界面元素的用户界面的框图;
[0008]图4C是根据一个示例的、用于呈现与所发现的可行令牌相关联并基于修改的用户界面元素的加亮用户界面元素的用户界面的框图;
[0009]图5是根据一个示例的、用于促使呈现web应用的一部分的流程图,该部分具有基于可行令牌被加亮的用户界面元素;以及
[0010]图6是根据一个实施例的、能够促使呈现与可行令牌相关联的加亮用户界面元素的计算系统的框图。
[0011]具体实现方式
[0012]本文描述的实施例提供用于执行应用(例如web应用)测试的技术。当公司希望知道公司在生产中或将要投入生产的web应用的安全程度时,公司常常使用安全测试解决方案,例如渗透测试解决方案(例如使用扫描器)、模糊测试、脆弱性测试、软件安全测试、网站安全测试、其组合等。公司可能希望使用生产中的应用的复本作为被测试应用(AUT)。
[0013]自动动态web应用安全扫描器在攻击AUT之前探索AUT。这个过程可被称为“爬行”。AUT的爬行可通过web应用的超文本标记语言(HTML)的分析以及在web浏览器布局引擎(例如嵌入在web应用扫描器内的web浏览器布局引擎)的受控环境内执行AUT的代码来完成。
[0014]随着Web 2.0应用的使用增加,它们的复杂结构阻止了 HTML页面分析并使浏览器级处理复杂化。很多Web 2.0应用具有最低限度地自展的HTML代码,其下载主代码(例如JavaScript (JS)代码),其中该主代码直接对浏览器的文档对象模型(DOM)和JS结构、异步JS和XML(AJAX)调用、动态创建的链接、DOM事件等进行操作。有时当JS代码运行时,在应用的寿命期间不获取其它HTML文档。
[0015]简化应用的结构以根据一组预定义的规则(其以不同方式处理以特定的方式编写的应用)列出(例如用图表或树状结构表示)可行元素,这可用于有利于有效的爬行。使用这种方法,可为额外的框架(例如jQuery、D0j0等)提供支持,以实现应用的较高质量扫描并发现以前隐藏的应用状态内的漏洞。
[0016]为了发现应用攻击面,web应用扫描器模拟在web应用的UI元素上的用户行为。DOM分析器使用如在图3A中进一步详述的规则,来遍历应用的结构并将复杂DOM转换成如在图3B中进一步详述的简明列表可行令牌。在某些示例中,令牌代表DOM元素,其为鼠标或键盘事件或可以用任何其它方式被调用、评估或修改的JS实体的有效目标。因此,发现技术可实际上用于在受控浏览器环境内执行web应用,以研宄由浏览器引擎构建的DOM元素。基于UI的爬虫器然后使用规则来识别可行元素并模拟在元素上的用户行动。
[0017]然而,该方法可能是有挑战性的。在浏览器内的事件冒泡和传播可阻止对适当的事件目标的检测,这可对爬虫器隐藏一些可行元素。此外,更复杂的操作(例如拖放操作,其使用鼠标按下、鼠标移动、鼠标提升事件序列)所需的用户事件的多步骤序列可能难以检测到观察应用的DOM的静态结构。而且,可能期望一些可行DOM元素在扫描期间被跳过,以避免干扰应用的状态(例如,如果扫描器在扫描、改变密码区段等期间击中注销按钮)。此外,一些DOM元素可导致“失控扫描” 一一例如日程表用户界面的扫描、在目录站点中的不同物品等。因此,盲目地遵循一般规则以检测可行元素可导致可能太冗长、干扰应用的状态、遗漏重要部分的次最佳的扫描。
[0018]因此,提出提供交互式方式以视觉化由扫描器选择的爬行策略的各实施例。此外,该方法允许在完全扫描之前修改这些决策。该方法的一种实现方式可包括消耗爬行定义规则的外部库的浏览器外接附件。这些规则可用于加亮应用的DOM内的被爬虫器识别为可行的那些元素。因为爬虫器由规则指导,因此该加亮与基于爬虫的完全扫描将有的一样准确。
[0019]在一个示例中,用户可通过选择被规则遗漏的元素、请求创建用于补充正被使用的规则的现有库的高度特定的规则,来与外接附件交互。此外,用户可引入用户界面排斥,用户界面排斥用于创建阻止爬虫器访问用户想要在扫描期间忽略的元素的规则。
[0020]规则被创建的方式可取决于用户选定的选择模型。例如,选择模型可与使用DOM元素的标签、id或类属性一样简单。在另一示例中,它可与使用复杂的TruClient式定位符一样复杂,TruClient式定位符在寻找元素,例如元素的特性、由元素包裹的文本节点的内容(如果有的话)、元素的邻居等的同时,考虑很多不同的因素。通过提供贯穿扫描器视图,可通过提供更好的用户体验来明显提高第一扫描的质量。
[0021]在某些示例中,每个规则可包括规则关联谓词或由规则关联谓词组成,规则关联谓词用于检查规则是否应在web应用的特定框架上被激活。在一些示例中,规则可以是JS框架特定的,包括正被使用的JS的版本。在一个示例中,如果规则是活动的,则规则的所有选择器被调用。然后在遍历web应用的DOM和JS结构时使用每个选择器,以返回令牌的列表。在另一示例中,如果规则是活动的,则可基于(例如来自web应用的高速缓存存储器的)web应用的进一步分析来确定选择器。在本文详述进一步的分析。
[0022]在一些示例中,选择器是用于识别DOM内感兴趣的元素的技术或机制。在一些示例中,选择器可被构建为用于描述应用的语言,例如级联样式单(CSS)具有内置选择器。在CSS的示例中,”可用于选择类,而“#”可用于选择id。使用这种方法,“.role”可用于选择DOM中具有“role.”类的每个元素。在其它示例中,选择器可由规则产生。例如,规则可以写JavaScript或其它脚本/代码,以返回一组选定元素作为令牌。
[0023]在某些示例中,令牌代表DOM元素,其为鼠标或键盘事件或可以用任何其它方式被调用、评估或修改的JS实体的有效目标。令牌包括可用于获取元素和对DOM或JS实体允许的一列操作的定位符(例如定位符可以是简单的XPath、TruClient特定的定位符等)。
[0024]可识别关联规则,且然后可启用相关联选择器。可接着使用选择器来分析Web应用的D0M,以产生令牌。这扩展了应用的爬行覆盖范围并发现应用内的更短的商业过程路径。令牌可被发送到扫描器以扫描web应用。在扫描期间,令牌可由web应用扫描器使用,来找出相关联DOM对象/JS实体的位置并激活它们。这可用于确定漏洞和关于web应用的其它信息。
[0025]图1A和图1B是根据各示例的能够基于规则来呈现Π元素的系统的框图。系统100a、10b包括可用于呈现并提供与利用可行令牌找到的UI元素的交互的部件。相应的系统100a、100b可以是笔记本计算机、桌上型计算机、平台计算系统、无线设备、服务器、工作站或能够引起用户界面元素的呈现的任何其它计算设备或计算设备组。
[0026]浏览器布局引擎110可加载web应用。浏览器布局引擎可以是例如web浏览器或被配置成作为扫描器计算系统的部分而工作的修改的浏览器。Web应用的示例包括日程表应用、电子邮件界面、新闻页面、例如流视频、生产率应用等的其它内容资源。
[0027]扫描器112可模拟在web应用的用户界面元素上的用户行动。在这个过程期间,文档分析器114可基于规则遍历web应用的结构,并将web应用的复杂DOM转换成一组可行令牌。在图2的描述中进一步详述这个过程。在遍历期间,规则可被更新,如也在图2中进一步详述的。例如,当找到对web应用进行操作的一个框架时,一个或多个规则和/或选择器可被启用/实现。
[0028]在一个示例中,一旦为web应用确定了一组令牌和/或规则,就可将信息提供到视觉化模块116。在一个示例中,视觉化模块116可以是扫描器112的部分。视觉化模块116可引起web应用的一部分呈现,其中该部分的一个或多个用户界面元素基于这组可行令牌和/或规则而被加亮。
[0029]在一个示例中,可使用一个或多个页面来表示web应用的一部分。此外,在一些示例中,视觉化模块116可被实现为考虑规则和/或令牌的web浏览器插件或修改的web浏览器。视觉化模块116可使用规则/令牌来加亮应用页面的DOM内的被爬虫器识别为可行的那些元素。可经由输入/输出模块134在呈现设备上引起到输出设备142例如投影仪、显示器等的呈现。在一个示例中,插件执行由爬虫器识别为开启以确定要加亮哪些元素的规则。
[0030]输入模块可接收选择输入,以选择呈现在网页上的用户界面元素。在一个示例中,用户界面元素未被加亮。规则模块118可产生或修改规则,以能够选择用
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1