科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网安全频道IE8与点击绑架和CSRF的攻防战

IE8与点击绑架和CSRF的攻防战

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

 近些年来,Web安全威胁日益严重,跨站脚本攻击、跨站请求伪造攻击、点击劫持攻击等,层出不穷。我们知道,web安全与浏览器 密切相关,因为浏览器是web应用的执行环境,就像桌面应用程序跟操作系统的关系相仿。

来源:比特网 2009年6月6日

关键字: 攻击防范 CSRF CSRF攻击 IE8

  • 评论
  • 分享微博
  • 分享邮件

  近些年来,Web安全威胁日益严重,跨站脚本攻击、跨站请求伪造攻击、点击劫持攻击等,层出不穷。我们知道,web安全与浏览器 密切相关,因为浏览器是web应用的执行环境,就像桌面应用程序跟操作系统的关系相仿。

  那么,IE8能否为我们的Web安全带来一缕清风吗?

  一、Web安全形势日益严峻

  据微软称,IE8在开发过程中就考虑到了已有的和正在浮现的各种Web威胁。

  在各种Web应用程序安全性漏洞中,最阴险的漏洞之一 称为跨站请求伪造(CSRF),人们将其称为Web漏洞中“沉睡的巨人”,并且这种漏洞修补起来也颇为不易。浏览器安全模型的设 计思想是允许多个网站同时交互、站点之间可以无缝浏览,而CSRF攻击恰恰就是利用了这一点。

  随着个人数据等有价值的信息不断 从最终用户的PC向流行的Web应用程序迁移,CSRF及其他Web 应用程序漏洞将日益受到人们的关注。

  二、XDomainRequest对象应运而生

  为了抵抗CSRF攻击,IE8引入了一个XDomainRequest对象,它在允许以服务器权限跨域通信的同时还包含一些防御CSRF攻击的特殊 限制。最终用户可以通过在不使用web应用的时候退出敏感的网站以及使用InPrivate Browsing会话浏览页面来减轻CSRF攻击的影 响,因为InPrivate会话会清空Cookie,所以无法通过CSRF攻击来替换缓存的Cookie。

  然而,Web应用程序本身必须设计成能够防御CSRF攻击。设计良好的Web应用程序经常通过挑战/令牌或者类似的策略来检查非受害 者用户本意发出的恶意请求来自我保护。遗憾的是,挑战/令牌和类似的策略本身却受到某些漏洞的影响,其中第一种漏洞是跨站 点脚本攻击(XSS)。如果一个由令牌保护的Web应用程序包含一个跨站点脚本攻击安全漏洞,那么它很可能会由于安全令牌失窃而导致CSRF攻击。

  幸运的是,IE8包含一个XSS过滤器和一些其他功能,可以帮助抵御XSS攻击,从而降低令牌失窃的几率。除此之外,还可以利用点击劫持来协助实施CSRF攻击。点击劫持可以使用户在不知不觉中单击一个模糊的或者隐藏的web元素,从 而导致非本意的处理。一次成功的点击劫持攻击可以轻易化解通过使用户确认其交易的CSRF保护措施。

  举例来说,如果一个网络商 店使用Cookie来进行身份验证,并提供了一键购买服务。 IE8显示一个模拟的web购物站点,下面是其中一张膝上型计算机的图片:

  

  图1

  网络中的某个恶意网站可以构造一个页面,用以强迫一个来自合法的商店的受害者页面嵌入一个IFRAME,并利用误导性的文本和图 像叠加在框架的关键部分。

  

  图2

  上面是一个恶意的页面,其中膝上型计算机的图片被一张猫的图片所覆盖。 如果用户业已登陆商店,那么他可能在不知情的情况下受骗点击商店的页面,从而导致一个非本意的操作:

  

  图3

  上面是一个恶意的页面,显示的文本表明用户已经购买了一个膝上型计算机。 当然,这里只是一个非常简单的点击劫持攻击,但是比这复杂的点击劫持攻击也是存在的。

  为了缓解点击劫持之痛,人们提出了许多方法,但是它们必须在兼容性和用户体验目前做一些折中,或者需要对现有标准作重大修 改。目前,使用最广泛也是最简单的抵御点击劫持攻击的方案称为frame busting技术,它能防止有弱点的页面被框架化,例如防 止页面被iframe引用。遗憾的是,frame-busting机制通常需要用到脚本,但是我们知道绕过脚本不是不可能的。

  三、X-FRAME-OPTIONS如何抗击点击绑架

  点击绑架漏洞是由Jeremiah Grossman及Robert Hansen在去年9月首度揭露,该漏洞可让骇客仿造合法网页,并将伪造的透明网页 覆盖于合法网页之上,因此使用者以为是在合法网页上的鼠标点击,实际上是触发了恶意网页的指令。

  如果攻击者伪造的是网络银 行网页,那么使用者也许只是按了某一个网页链接,却可能是将钱转到陌生的帐户中,黑客也可通过此漏洞让使用者下载恶意程序 或是执行任何功能。 IE8引入了一种防止页面被框架化的机制来降低点击劫持所带来的危害。

  Web开发人员可以为返回的HTML页面添加一个名为的HTTP应 答头,以规定该页面是否可以被嵌入在iframe里面。如果X-FRAME-OPTIONS的值为DENY,那么IE8就不允许该页面包含在一个框架中 。如果其值为SAMEORIGIN,那么只有在顶级浏览内容与包含X-FRAME-OPTIONS的内容不同源时,IE才会阻止该页面。

  举例来说,如果http://shop.example.com/confirm.asp包含一个DENY伪指令,那么该页面就无法放入一个子框架中,无论父框架位于何处。相 反,如果X-FRAME-OPTIONS伪指令的值为SAMEORIGIN,那么该页面就可以放入到任何来自http://shop.example.com的页面的框架中。

  当X-FRAME-OPTIONS阻止显示某页面时,浏览器会弹出一个本地错误页面,说明有关限制,并提供一个链接,该链接将在一个新的 窗口中打开框架。当在一个新的窗口中显示,而非在子框架中显示的话,那么页面内容也就无法为点击劫持所用了。

  

  图4

  上面是一个恶意的页面,然而,这时候仅仅展示了猫图片,来自实际的webshop的订单按钮却没有显示出来。其中的错误信息指示 ,内容无法在框架中显示。

  通过使用X-FRAME-OPTIONS伪指令,Web开发人员可以立即帮助IE8用户减轻来自各种Web 应用程序攻击的威胁。当然,我们希望其 它浏览器也能实现这种X-FRAME-OPTIONS伪指令,因为作为一种防御点击劫持的手段,它相对易于部署,并且兼容性也很好。

  四、Web安全任重而道远

  虽然微软宣称修补了点击劫持漏洞,但这不是立竿见影的方法,因为它要求网站及Web开发人员的配合,而不是直接保护web用户的 安全。此外,要想让所有网站都采用微软的机制,可能还要有很长的路要走。还有,微软提供的解决方案是非跨平台的,也就是说 ,只对IE8有效。目前出炉的另一个解决方案为针对Mozilla Firefox设计的NoScript外挂程序,该程序可关闭脚本功能并阻挡利用 框架的攻击。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章