论文部分内容阅读
Web应用已经在各行各业扮演了越来越重要的角色,受到了来自大量匿名用户的访问,这其中也包括恶意用户。这种广泛的应用导致 web应用程序容易受到各种攻击,如 SQL注入(C组)和跨站点脚本(XSS)。自动化黑盒漏洞测试是Web安全测试普遍采用的一种方法。Web应用漏洞扫描器是一种用来检查 Web程序的安全漏洞的自动化黑盒测试工具。 更丰富、更先进技术的出现,如 AJAX(异步 JavaScript和XML),使Web应用具有更好的灵敏性,互动性和用户友好性。这些应用程序,通常被称为富互联网应用(RIA),改进了传统的Web应用程序在两个方面:第一,他们增加更多的处理能力,即在客户端进行动态操作。第二,RIA可以启动与服务器的异步通信。然而同时这种技术也引入了新的挑战。一个重要的挑战是很难自动抓取这些现代应用,不采用爬虫技术情况下,无法搜索应用程序文本内容中的索引以及进行自动测试。 尽管 Ajax名字上与 XML关联,但通常采用JSON(JavaScript Object Notation)技术。JSON是一种轻量级的数据交换格式,不仅易于人阅读和编写,同时也易于机器解析和生成。它是基于ECMA-262标准第三版 JavaScript编程语言的一个子集。JSON是主要用于服务器和Web应用程序之间的数据传输,作为XML的替代。在检测 AJAX/ JSON代码隐藏漏洞过程中,扫描仪需要执行 Ajax代码以及处理和审查JSON参数。 WAVSs的评估表明这些工具对存储型漏洞(持久性XSS漏洞和二阶SQLI)和恶意文件上传的检测能力不足。存储型漏洞风险性非常高,攻击代码一次注入后,每次访问该网页都会执行,且很难被自动扫描仪检测。然而,最先进的WAVSs可以检测这些漏洞。 Web应用漏洞扫描器是一种用来检查Web程序的安全漏洞的自动化黑盒测试工具。市场上可以找到大量的这种测试工具,Web应用程序开发人员使用它们来验证其产品的安全性。虽然对Web漏洞扫描器的漏洞检测做了大量的研究,但是很少将技术,规范,研究成果这三者有机结合起来,构建一个全面的Web自动化黑盒安全测试。此外,漏洞评估没有考虑到正在兴起的Web开发新技术,如Ajax。 本文详细介绍了Web应用的自动化黑盒测试漏洞研究,并对5个安全扫描器在XSS、SQL注入、恶意文件上传、Ajax请求和JSON数据漏洞等方面的检测能力进行评估。 论文中实验涵盖了WAVS评价标准,黑盒测试指南,漏洞扫描仪,漏洞测试以及检测结果,扫描仪支持的输入传递方法,爬虫和漏洞检测的挑战,这些工具包含的Web应用技术,并提出了提高效率的方法途径。 测试套件放在一个真实的网上商城中运行,该应用包含了大量的安全漏洞,并且这些漏洞受到攻击的难易程度不同。漏洞攻击包括一阶和二阶的SQL注入、反映型和持久型的XSS,恶意文件上传,路径遍历,会话管理,信息泄露。套件中还包括检测Ajax请求和JSON数据中安全漏洞的测试用例。 本文实验结果表明,黑盒漏洞扫描器在反映型XSS、基本的SQL注入,恶意文件上传等方面的漏洞检测取得了满意效果。然而,扫描仪对显式配置的存储漏洞仍然探测不到。持久性漏洞检测差的主要原因是持续的攻击需要两个或两个以上的步骤完成攻击。首先,攻击必须存储在服务器上(在一个数据库,文件系统,或其他位置)。其次,攻击代码可以从服务器检索和执行。在以上步骤中WAVSs会出现问题,因此不能检测这些漏洞。 黑盒漏洞扫描器存在多个方面的缺点,包括客户端代码抓取,攻击代码的选择,服务器应答分析。尽管Ajax和JSON技术在互联网中有着广泛的应用,但是许多测试工具仍然难以对其进行安全漏洞探测。在5个测试扫描仪中,只有一个扫描仪成功执行的JAX和JSON编码。然而,它只检测到一个简单的一阶 SQL注入实例,但没有完成需要大量Ajax请求的操作。所有的扫描仪没有正确解析自定义会话Cookie,因此没有侦测到需要认证的漏洞。针对以往只使用web扫描器中部分功能进行实验评估存在的问题,本论文提出了综合扫描器所有测试功能来进行安全扫描的新方法。