技术开发 频道

四款工具帮你解决AJAX安全难题


    由于Ajax请求通常是基于XMLHTTP协议的,开发者可以动态的改变提交数据的架构,以提供从Web应用到客户端浏览器的即时Ajax数据结果。但是这个功能也可以被利用。例如假如黑客可以改变任何函数的话,他们可以在页面上放一个类似弹出窗口类的垃圾信息。

    观察攻击Ajax请求的非常好的时间也是非常重要的,因为不是所有的Ajax方法调用都是有用的。在页面加载的时候,对页面所做的Ajax改变需要按照服务器端模块或内部终端用户的响应来进行,因为Ajax请求是一个中间请求。

    内部终端用户的例子是那些需要计算来自银行或其他金融机构的表格的人们。为了测定那些Ajax请求会导致什么情况,Hailstorm在服务器端利用一个浏览器来跟踪内部用户的基于事件的响应,并跟踪那些请求一直到客户浏览器的页面加载。

    举例来说,对表格数据执行了Ajax注入后,Hailstorm用户可以分析响应数据大小。假若内部用户点击了一个来自基于Ajax的SQL注入产生的JavaScript弹出窗口后,从Web应用中得来的数据会产生一个安全漏洞,使得黑客可以查看财政数据的表格。Hailstorm输出可以在页面加载的时候测定特定的产生这个漏洞的实例,方法是给每一个交易打上一个水印标识。这个功能可以模仿黑客实际所采取的做法,从而提供一个状态评估来维护Web应用的状态。

    来自Web应用安全公司SPI DYNAMICS的检测软件

    SPI DYNAMICS也提供一个非常复杂的应用程序安全测试解决方案。SPI DYNAMICS套件针对软件开发生命周期的每一个阶段提供工具,包含黑盒评测,代码检查、测试和所有结果的统一视图。

    对于黑盒测试,WebInspect工具提供高度交互的用户界面,来完成扫描和测试结果功能。WebInspect可以显示安全弱点结果,并在一个面板上显示跟踪扫描过程。用户可以编辑安全弱点session来得到单独扫描的结果,并产生定制的报告。

    策略管理器工具让终端用户在一个任务上设置多个扫描引擎,并设定哪一个扫描测试可以被执行。用户还可以生成定制的代理来跟踪测试代码。

    根据SPI Dynamics表示,只要开发者不能识别跨站点脚本和Web服务安全缺陷的话,这个Ajax应用就是有漏洞的。对于跨站点脚本攻击,WebInspect可以识别所有的假造的参数。

     因此,WebInspect的引擎可以在基于Ajax的JavaScript代码中产生多种字符组合,以识别哪一个应用程序可以被通过。从这些结果中,WebInspect描绘出如何实施一个跨站点脚步攻击。该工具还在产生该漏洞的页面上显示信息。

    另一个工具DevInspect使开发者通过特定代码关联在页面上发现的安全缺陷。DevInspect支持在VS 2005的IDE中执行源代码分析和黑盒测试,年底将增加对Eclipse的支持。这种混合的分析功能是SPI Dynamics所独有的。

    DevInspect也可以从注入结果中显示原先的HTTP请求。SPI Dynamics同样提供一个HTTP编辑器,他可以发送请求到Web服务器,来帮助开发者跟踪在服务器端发生了什么。这两款工具都还可以让开发者再次测试修补过的安全漏洞。开发者可以从攻击中取回结果,然后再次发送到Web服务器上。

    甚至对于强大的数据过滤和服务器端验证代码,DevInspect可以产生绕过这些程序的响应以实现代码渗透。DevInspect可以通过应用SQL注入攻击技术和识别输入验证威胁来检查Web服务安全缺陷。该工具还可以自动为开发者修补安全漏洞。

    到2007年第一季度,SPI Dynamics计划把WebInspect和DevInspect集成到他的评测管理平台(AMP)中,以覆盖整个应用开发生命周期。理想的话,AMP将能够关联和分析来自WebInspect和DevInspect的数据,这样不同的开发人员可以分享分析结果。
0
相关文章