机房360首页
当前位置:首页 » 应用安全 » 深入解析Web2.0应用安全

深入解析Web2.0应用安全

来源:互联网 作者:Lily编辑 更新时间:2011-3-14 12:57:41

摘要:这几年Web2.0的应用让开发人员、最终用户和企业都取得了很多了不起的成果,从Google、Salesforce、MySpace、Flickr、YouTube、Linkedin到今天十分火爆的Facebook,这些具有Web2.0特征的公司,创造了很多奇迹。

  然而,Web2.0应用程序、移动设备所带来的富媒体功能,将会使隐蔽强迫下载及混合攻击增加。例如,社交网站上的嵌入视频及其链接成为了黑客频繁植入恶意软件的目标。随着更多的员工使用富媒体和Web2.0应用程序,企业便会不知不觉暴露在更大的攻击威胁之下。
  
  Ajax带来的典型风险
  
  在Web1.0时代中,客户端浏览器和服务器之间的通信是同步的,也就是说,当用户在Web页面上填写表单(例如使用搜索功能),请求就会发送到服务器上,经过处理后,服务器将完整的结果页面发送回来。这种做法的反复执行,极大浪费了网络带宽,也浪费了使用者很多等待多余信息的宝贵时间。
  
  Ajax可以和服务器只传输更新过的内容,它借助于客户端的JavaScript处理来自服务器的响应。同时,还有很多任务是由客户端本身来完成。因此,在网络上的数据交换更少、Web服务器的处理时间更短,用户感觉到的是更快的请求响应速度。
  
  说到Ajax的好处,我们不得不提到浏览器的“同源安全模型”。同源模型是客户端脚本运行的重要安全度量标准,它指的是来自于同一个源的脚本可以互相访问其方法和属性,而拒绝非同源的访问。该模型的精髓是:它认为从任何站点装载的内容是不安全的,当被浏览器不太信任的脚本运行时,它们应该只被允许访问来自同一站点的资源,而不是那些来自其它站点可能怀有恶意的资源。
  
  为什么要有同源的限制呢?这是浏览器提供的最为基础的安全保障之一。如果放开同源限制,黑客就可以通过引诱用户访问嵌入在恶意站点上的正常应用,当用户访问该应用时,攻击脚本就可以在不同源之间互访,窃取用户登录信息,或者跟踪用户的各种操作。
  
  虽然Ajax技术极大地推动了Web2.0的发展,但是由于Ajax的诸多特征(动态、异步、突破同源限制),也给应用安全带来了隐患。
  
  Ajax和XSS(跨站脚本攻击)
  
  XSS是目前发生频率最高的网络攻击手段之一,它通过引诱用户执行恶意的JavaScript脚本(如引诱用户点击包含恶意脚本的链接),来达到窃取用户信息或者实现其它恶意行为的目的。在Web1.0时代,XSS作为服务器端Web应用安全的隐患被广泛用户注意。正是由于Web2.0鼓励信息分享、信息交互和协作,用户就有了更多的机会去看和修改他人的信息,比如通过Wiki、Blog或SNS社区网络,也是这种应用为黑客创造了更多的XSS攻击机会。现在的浏览器允许在Web页面运行时主动插入HTML代码(比如使用innerHTML属性),如果这些代码中包含恶意的JavaScript,则会被浏览器立刻执行,造成安全隐患。
  
  Ajax和CSRF(跨站请求伪造)
  
  在CSRF中,攻击者在用户完全未察觉的情况下,代表用户发送请求。这可以通过引诱用户点击链接,或是将请求嵌入到ImageTag等HTML标记中,强迫用户发送。这里例举一个攻击场景:攻击者向用户发送一封电子邮件,邮件中包含一个银行链接请求,请求的内容是从用户的银行账户向攻击者账户进行转账,用户使用该链接进入银行网站并进行了登录操作,该请求就会携同用户Cookie信息自动发送给银行。如果银行网站仅把Cookie值当做验明用户身份的唯一手段,那么Web应用就认为该请求是合法的,转账操作立刻被执行。
  
  在Ajax应用中,客户端和服务器的交互是通过HTTP协议实现的,如果站点安全保护措施不够强健,一旦CSRF成功,将会带来一系列灾难,如利用WebMail服务发送邮件、代表用户在Blog上写注释、在SNS中修改用户信息等。
  
  Ajax和DoS(拒绝服务攻击)
  
  DoS是通过某种手段让服务器资源耗尽,阻断正常用户访问的攻击方法。比如向服务器提交大量请求,使服务器负荷过重。用户浏览器如果可以执行第三方JavaScript,就会带来DoS的可能性,因为第三方JavaScript逻辑中,很可能包含大量导致服务器资源耗尽的循环程序,所以在允许使用大量JavaScript的Ajax应用中,被DoS攻击概率大大提高。
  
  其它安全隐患
  
  Mushup应用通常是将任意第三方的Mushup组件组合在一起,如果攻击者向Mushup应用提供了恶意的Mushup组件,同时该应用没有提供足够的安全保护的话,用户和整个Mushup应用就面临着巨大的安全隐患。因为一个恶意的Mashup组件可以向整个Mushup应用中注入恶意代码,从而触发多种攻击行为,包括XSS、CSRF、DoS。如果该Mushup应用还提供服务器端的Ajax代理服务,恶意的客户端Mushup组件就可以将用户的隐私发送到外部站点,因为Ajax代理突破了同源限制。
  
  不容忽视的Flash
  
  互联网从1996年引入了Flash技术后,通过动画和交互,改变了Web页面的用户体验。
  
  2004年3月,Macromedia公司基于其专有的MacromediaFlash平台,发布了Flex。它涵盖了支持RIA(RichInternetApplications)开发和部署的一系列技术。在Web2.0时代,越来越多的开发者使用Flex技术开发Flash应用,由此带来的安全隐患也不容忽视。
  
  由于Flash支持全局变量,因此带来了很多安全隐患。只要攻击者控制了全局变量,那么他就可以实施多种攻击行为。
  
  Cross-SiteFlashing(跨站Flash攻击)
  
  这种攻击原理和XSS相似,不过CSF是通过向网站注入恶意的Flash程序来实施攻击。由于Web2.0时代的应用复杂性(如Mushup应用),注入的恶意Flash不但可以攻击同源内的应用,还可能在非同源的各个组件中传播。
  
  Cross-SiteScriptingthroughFlash(通过Flash进行跨站脚本攻击)
  
  该方法使用易受感染的Flash文件进行典型的XSS攻击,和XSF很相似,攻击的发生同样来源于对全局变量的引用,如将全局变量作为装入函数的参数。
  
  攻击者使用恶意脚本,可能执行如下操作:1.将用户的Cookie值发送给攻击者;2.将用户的共享Flash对象发送给攻击者;3.将可通过DOM(如URL、表单字段等)访问的信息发送给攻击者。
  
  Web2.0新安全隐患应对策略
  
  WebScan5.0提供了对Flash安全隐患的完整分析和测试,其中包括:1.将Web应用中的Flash代码解析为文本数据,从中收集链接,进行安全隐患分析;2.播放应用中的Flash文件,动态搜索仅通过解析发现不了的链接;3.测试由AdobeFlex应用程序发送的后台AMF协议消息。
  
  WebScan5.0提供多种专门针对Flash的测试用例,如允许Flash文件与任何HTML页面通信、允许访问任何域的Flash文件、允许Flash文件调用所有网络API、Flash文件源代码泄露等。
  
  责任编辑:Lily

本文地址:http://www.jifang360.com/news/2011314/n267417398.html 网友评论: 阅读次数:
版权声明:凡本站原创文章,未经授权,禁止转载,否则追究法律责任。
相关评论
正在加载评论列表...
评论表单加载中...
  • 我要分享
更多
推荐图片