5.1 界面操作劫持概述

界面操作劫持攻击是一种基于视觉欺骗的Web会话劫持攻击,它通过在网页的可见输入控件上覆盖一个不可见的框(iframe),使得用户误以为在操作可见控件,而实际上用户的操作行为被其不可见的框所劫持,执行不可见框中的恶意劫持代码,从而完成在用户不知情的情况下窃取敏感信息、篡改数据等攻击。界面操作劫持攻击是2008年之后出现的一种新的Web攻击模式,从其技术发展阶段上分析,可以分为以下三种。

我们先来看看这三种劫持技术的概念。

5.1.1 点击劫持(Clickjacking)

点击劫持是2008年由SecTheory公司的Robert Hansen和白帽安全公司的Jeremiah Grossman两名研究人员提出的。其首先劫持的是用户的鼠标点击操作,因此,被命名为点击劫持。它主要的劫持目标是有重要会话交互的页面,比如,用户的后台管理页面、银行交易页面或劫持用户的麦克风和摄像头等。Twitter和Facebook等著名站点的用户都遭受过点击劫持的攻击。

5.1.2 拖放劫持(Drag&Dropjacking)

在Black Hat Europe 2010大会上,Paul Stone提出了点击劫持的技术演进版本:拖放劫持。在现在的Web应用中,有一些需要用户采用鼠标拖放完成的操作(例如,一些小游戏等),而且用户也常常在浏览器中使用鼠标拖放操作来代替复制和粘贴操作。因此,拖放操作劫持大大扩展了点击劫持的攻击范围,而且也将劫持模式从单纯的鼠标点击扩展到了鼠标拖放行为。不仅如此,在浏览器中,拖放操作是不受“同源策略”限制的,用户可以把一个域的内容拖放到另一个不同的域。因此,突破同源策略限制的拖放劫持可以演化出更广泛的攻击形式,突破很多种防御。

例如,可以通过劫持某个页面的拖放操作实现对其他页面链接的窃取,这些链接中可能会有session key、token、password等敏感信息;或者可以把其他浏览器中的页面内容拖放到富文本编辑模式中,这样就能够看到页面源代码,而这些HTML源代码中可能会存在敏感信息。

2011年出现的Cookiejacking攻击就是拖放劫持攻击的代表,此攻击的成因是由于本地Cookie可以用<iframe>标签嵌入,进而就可以利用拖放劫持来盗取用户的Cookie。

5.1.3 触屏劫持(Tapjacking)

随着智能终端设备和3G网络的快速发展,人们依赖这些设备的时间越来越多,交换的数据也越来越重要,比如,网络聊天、收发邮件、炒股、网银交易等。所以,这些智能移动设备已经成为黑客们攻击的新目标。移动智能终端设备由于体积的限制,一般都没有鼠标、键盘这些输入设备,用户更多的操作是依靠手指在触摸屏上的点击或做滑动等动作完成的。

2010年,伯斯坦和斯坦福大学的研究人员们公布了他们的最新研究成果:在苹果移动设备上,类似点击劫持的攻击模式,实现了对用户触摸屏操作的劫持攻击,即界面操作劫持攻击模型的最新阶段:触屏劫持。