龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

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

时间:2013-03-06 14:58来源:未知 作者:admin 点击:
分享到:
每一种新的Web技术都不可避免的遭遇安全问题,Ajax也不例外。Ajax即时数据反馈的特点实现了良好的用户交互,使得IT建筑师们通过基于Web的应用程序来改变用户访问和交互公共数据的方

每一种新的Web技术都不可避免的遭遇安全问题,Ajax也不例外。Ajax即时数据反馈的特点实现了良好的用户交互,使得IT建筑师们通过基于Web的应用程序来改变用户访问和交互公共数据的方式。
但是Ajax技术同时也对IT企业带来了新的安全威胁,Ajax技术就如同对企业数据建立了一个直接通道。这使得开发者在不经意间会暴露比以前更多的数据和服务器逻辑。
Ajax的逻辑可以对客户端的安全扫描技术隐藏起来,允许黑客从远端服务器上建立新的攻击。还有Ajax也难以避免一些已知的安全弱点,诸如跨站点脚步攻击、SQL注入攻击和基于credentials的安全漏洞等。
为了发现Ajax应用所带来的安全威胁,并给出解决办法,我们可以分析Web应用程序开发生命周期的不同阶段和不同方面,进而选择特定的安全工具来帮助我们提高基于Ajax的应用的安全性。通过使用这些产品,开发者可以显著的减少Ajax安全缺陷,并使得任何安全漏洞尽在我们掌握之中。
来自CENZIC的HAILSTORM
发现Ajax安全缺陷的一个方法是借助于安全测试应用软件。这一方面,Cenzic的Hailstorm可以针对基于Ajax的Web应用程序进行精确动作分析。Hailstorm可以自动模拟某些最复杂的基于流的攻击,让开发者看到真实世界的黑客是如何攻入他们的Web应用程序并窃取安全数据的。
Hailstorm使开发者可以实时检查所有安全缺陷,以了解某些注入攻击代码如何被执行以及被攻击的目标Web应用如何响应。Hailstorm还从不同的技术角度来提供建议来修正代码。不过由于Web应用技术如此不同,Hailstorm只是给出了通用的修补建议,而不提供具体的修正代码。
根据Cenzic,当Ajax应用程序发出服务器请求时出现的两个主要安全弱点是:输入确认(诸如SQL和脚本注入)和授权。对开发者的关键挑战是要防止来自注入攻击的反馈信息。 
例如,当发出HTTP请求后,提交的参数被连接符号&分开,这使得黑客可以根据参数来查看服务器的响应。黑客可以创建定制的HTTP头,通过插入调用函数,服务器端就会运行恶意脚本。通过Hailstorm,开发者能够识别存在于HTTP头内的注入代码的安全缺陷。
Hailstorm还可以检查任何基于提交数据的注入攻击。对于有安全弱点的HTTP头,Hailstorm可以产生跨站点脚步攻击和SQL注入攻击来测试服务器请求和脚本执行。Hailstorm可以在HTTP头中插入空函数来看页面结构是否能被恶意函数改变。为了得到XML节点的信息和被调用的函数,黑客们通常喜欢使用空函数来接收来自服务器的信息。 由于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的数据,这样不同的开发人员可以分享分析结果。

精彩图集

赞助商链接