Web实时会话劫持攻击与防范研究

2014-07-23 01:37徐博文刘春晖曹维华陆小铭
网络安全技术与应用 2014年2期
关键词:脚本攻击者浏览器

徐博文 刘春晖 曹维华 陆小铭

(中国电信广州研究院 广东 510630)

0 引言

Web2.0的发展为互联网带来了丰富的Web聚合应用,给用户带来了前所未有的体验,但是由 Web2.0技术带来的安全问题也日益凸显,跨站脚本攻击(Cross-Site Scripting,简称XSS)是其中的重要安全问题之一。研究表明[1],最近几年XSS已经超过缓冲区溢出成为最流行的攻击方式。随着基于B/S的Web应用的流行,以及开放授权协议如Oauth成为互联网标准协议,以实时获取用户数据、修改用户配置和进行非授权操作为目的的Web实时会话劫持攻击又得到黑客的青睐,类似攻击事件不断出现,例如2011年网络上出现了针对Google、Yahoo、Hotmail等用户帐户的Web实时会话劫持攻击,攻击目标直指Oauth认证服务,给用户造成巨大损失[2]。

Web实时会话劫持攻击是XSS攻击的一种应用方式,业界研究 XSS攻击技术起步较早,Grossman等在文献[3]中详细介绍了XSS漏洞形成原因以及各种类型的XSS攻击和防范技术;文献[4]介绍了如何利用XSS攻击实现用户会话偷取和重放的技术,而更多的研究如文献[5-6]集中在研究如何通过客户端脚本过滤技术,以及引入安全机制限制脚本读取用户关键信息等方法防范 XSS攻击。笔者查阅了大量文献发现,专门研究 Web实时会话劫持技术的文章非常少,从整体上看,大多是简单介绍技术原理,尚未发现针对该技术应用特点和应用环境的研究,由于近来此类攻击不断被发现和提及,在一些技术论坛上又出现关于该类型攻击的讨论。本文从 XSS漏洞攻击出发,详细分析了通过脚本技术劫持用户实时会话在用户 Web浏览器环境下开展攻击的方法,依据其技术特点和技术应用环境,提出了狭义攻击生命期和广义攻击生命期的概念,通过3个攻击生命期模型的分析,指出了 Web实时会话劫持攻击在社会工程学应用和漏洞点挖掘方面独具的特征,最后有针对性地提出了综合防范措施。

1 技术分析

1.1 攻击原理

XSS攻击是最常见的一种应用层的攻击,可以使用各种客户端语言实现。当XSS攻击发生时,攻击脚本被注入到客户端浏览器的解释过程中执行,攻击者可以捕获用户的会话并在其他环境下重放[3],实现对web应用的授权访问。

由XSS漏洞触发的Web实时会话劫持攻击并不操作用户的会话信息,而是直接在客户端浏览器的环境中执行攻击脚本,通过AJAX(Asynchronous JavaScript and XML,异步JavaScript与XML)技术模拟用户操作访问用户数据,完成对用户关键数据的窃取。由于脚本被注入到用户会话环境下执行,根据cookie访问控制规则和同源策略[7],当AJAX的XMLHttpRequest请求发生时,浏览器自动添加所有缓存的身份信息或者 cookie,服务端在接收这些请求时并不能判断是由用户操作的还是由攻击脚本自动发送的。

1.2 攻击流程

图1 实时会话劫持攻击流程图

如图1所示,一个完整的攻击流程包括以下5个步骤:

步骤1.用户Web浏览器访问Web服务时触发XSS漏洞导致浏览器远程访问存放在攻击者控制的服务器上的攻击脚本。

步骤 2.攻击脚本被加载到客户端浏览器并在其环境下执行。

步骤 3.攻击脚本按照设定的请求逻辑,构造XMLHttpRequest异步向Web服务器提交请求,进行访问用户隐私数据、修改用户配置、复制扩散等操作。

步骤4.Web服务器响应请求,向客户端浏览器返回用户数据或进行攻击代码指定操作。

步骤5.攻击脚本将用户隐私数据回传到攻击者控制的服务器上或清除操作痕迹。

1.3 技术特点

1.3.1 攻击流程不可控

Web实时会话劫持攻击是在用户的Web浏览器环境下进行,攻击者只能操作攻击代码按照预定的程序逻辑执行指定动作,对于用户主动性的操作例如刷新页面、页面重定向、关闭页面等是无法控制的。同时由于攻击是以非法访问用户隐私数据、修改用户配置、进行非授权操作等为目的的,攻击代码自我复制传播、访问Web服务和回传数据都需要一定的时间保证。

1.3.2 支持增量任务模式

对于以获取用户数据为目标的此类攻击,在同一页面内,如果用户多次触发同一XSS漏洞,攻击者可以操纵攻击代码从上次攻击任务结束点,增量完成剩余攻击任务,例如攻击代码通过一个脚本变量记录已读邮件的 id,下次 XSS漏洞触发、攻击代码加载时可以将已读邮件排除,只访问未读邮件。

1.4 攻击生命期(Attacking Life-time)

根据前文分析,代码效率和代码运行时间是攻击效果的决定性因素。攻击者为了在被动状态下扩大攻击效果,必须在页面被关闭或跳转之前尽量延长攻击代码运行的时间,使攻击代码完成更多逻辑操作,获取更多数据。

定义“攻击生命期”这一概念,攻击生命期是衡量Web实时会话劫持攻击破坏程度的一个重要参数。狭义攻击生命期是指某个页面存活时间内攻击代码运行的时间,广义攻击生命期是指一个会话期内针对某项 Web服务进行的一系列攻击其攻击代码运行时间的总和。

2 攻击生命期模型分析

本节从HTML语言特性、网页结构特性和Web服务业务设计三个方面,结合上节关于攻击生命期的定义,构造Web实时会话劫持攻击的3个攻击生命期模型展开分析。

(1)时间线模型(Time-line Model)

时间线模型用于分析狭义攻击生命期。Javascript是解释型而不是编译型的语言,页面上的Javascript代码是HTML文档的一部分,脚本在被页面加载时顺序执行。

从页面生存时间线来看,页面开始加载到加载结束之间的周期为页面生存期Th,脚本代码的攻击生命期Ta是从攻击代码加载第一句开始执行,一直到最后一句执行结束之间的周期(如图2(a)),或者代码尚未执行完毕而所在页面已经被关闭退出(Close)或被重定向(Redirect)之间的周期(如图2(b))。

图2 页面生存时间线和攻击生命期

根据时间线模型,攻击生命期Ta是页面生存时间Th的子集(Th>Ta)。如果页面生存时间足够长,意味着攻击生命期可以随之延长,就能够执行更多的脚本,完成更多的攻击动作。

(2)页面结构模型(Page Structure Model)

在发生 XSS漏洞的页面上,攻击生命期与页面的结构有关。以框架结构页面为例,根页面(在浏览器中打开的页面)、父框架页面和子框架页面三者之间有一定独立性,例如子框架页面的重置并不会影响父框架或者根页面的加载过程。

图3 以框架结构为例的页面结构模型图

如图3所示,XSS漏洞发生的位置可以是A、B、C任一位置,定义页面生存期分别为 TA、TB、TC,显然根页面的 TA最长。从生成关系来讲,父元素的页面生存期决定子元素的页面生存期(TB>TC);从功能定位来讲,子框架常被用作正文信息区或者交互功能区,常见的Web服务如论坛和Web邮件系统基本都是类似结构化设计,查看帖子和阅读邮件都在子框架中进行,刷新、重定向等操作比较频繁,而父框架作为内容链接区互动操作较少,子框架的页面生存期相对父框架要短(TB>TC)。

基于以上分析,XSS漏洞所在位置也即攻击脚本代码被加载的位置非常重要,从页面生存期长短的角度,攻击发生在上层框架页面比下层框架页面的攻击生命期要长。如果固定页面板块如用户的签名栏出现XSS漏洞,由于固定页面板块会出现在每一个网页上,XSS漏洞会被重复触发,其广义攻击生命期更长,造成的损害更大。

(3)业务逻辑模型(Business Logic Model)

Web服务按照一定业务逻辑进行组织,比如论坛,需要先访问板块,进入帖子列表,再访问具体的某一个帖子,如果要看其他帖子,则还要返回到帖子列表;邮件系统也一样,必须先访问邮件列表才能访问具体某一封邮件,并且需要经常返回邮件列表界面查看新邮件。以某项Web服务为例构造其业务逻辑模型图如下:

图4 业务逻辑模型图

图4中,每一个节点代表一项具体业务,箭头代表业务流向,图中B1节点箭头比较集中,表示B1节点属于Web服务业务逻辑中相对中心位置,用户在访问其他业务节点时必须经由B1业务节点跳转,比如前文提到的论坛的帖子列表页面。如果B1节点发生XSS漏洞导致的实时会话劫持攻击,用户在访问 Web服务的过程中将多次被动触发攻击,导致多次攻击的叠加,延长了攻击生命期,造成较严重的信息泄露危险。

(4)模型分析结果在实际中的应用

①社会工程学应用

在实际应用中,攻击者为了延长页面存活时间,经常使用社会工程学方法[8],通过例如推送精彩的页面内容、引入用户互动等方式,吸引用户更久地停留在触发XSS漏洞的页面上,尽量延长攻击生命期,当用户在攻击者设计的页面上流连忘返的时候,却毫无知觉攻击者已经在后台借助AJAX技术大肆获取隐私数据。

②XSS漏洞点挖掘

XSS漏洞点的位置是攻击生命期长短的决定性因素之一。在实际应用中,XSS漏洞挖掘者更愿意将XSS漏洞上移,尽量在上层框架结构页面或者业务中心节点中挖掘XSS漏洞,以获得更长的攻击生命期,此类漏洞引发的Web实时会话劫持攻击危害等级是最高的,例如2012年Yahoo邮件系统Classic版曾经发生针对邮件列表页面的类似XSS攻击[9]。

2 防范

(1)账户信息安全分级机制

对HTTP请求加入验证机制,比如要求输入验证码,可以阻止攻击代码自动执行,但会降低用户体验。在Web服务设计中需要建立一个科学的账户信息安全分级机制,对用户普通数据和隐私数据、账户常规设置和关键设置等引入不同的验证机制。例如访问敏感数据要求一次验证码验证甚至要求重新输入密码;如果是关键隐私数据,则除了网页验证之外,还要与用户进行脱网交互,比如手机短信验证等。

(2)客户端异常行为监测机制

机器行为与人的操作不同,恶意脚本为了在攻击生命期内尽量发出更多的请求,其HTTP请求频率远远高于人的正常操作,或者对Web服务的访问规律与正常用户相异。因此,引入客户端异常行为监测机制是一个有效防范 Web实时会话劫持攻击的方法,对 Noxes进行改进是一个可行方案,Noxes[10]是一种客户端Web代理,负责过滤用户的所有HTTP通讯数据,流经 Noxes 的 HTTP 请求都需要根据预定安全策略进行拦截或放行,让用户尽可能地掌控浏览器的通信行为。在Noxes 的基础上建立针对非法访问频度和访问规律模型的双重监测,发现异常的 HTTP请求立刻引入人机交互验证机制,阻断异常HTTP请求,或者将异常情况立刻通知用户,由用户及时采取措施减少损失,如关闭页面、退出登录等。

3 结论

随着Web2.0技术的发展和Web聚合应用的普及,XSS漏洞发生的几率不断增加,由XSS漏洞导致的Web实时会话劫持攻击将给互联网带来严重的安全隐患。本文分析了Web实时会话劫持攻击生命期模型特点,得出了Web实时会话劫持技术在社会工程学应用和漏洞点挖掘方面具有典型特征的结论,并提出了建立账户信息安全分级机制和客户端异常行为监测机制两项综合防范措施。今后的研究工作包括在第三方认证协议以及跨域通信需求日益增强的环境下,针对Web实时会话劫持攻击研究更全面的安全防范措施。

[1]Berinato,Scott.Software Vulnerability Disclosure:The Chilling Effect.CSO(CXO Media).January 1,2007:(7).

[2]About 2-step verification.https://support.google.com/acc ounts/answer/180744?hl=en&rd=1[EB/OL],2011.

[3]Jeremiah Grossman,Robert Hansen,Petko D Petkov,et al.Cross site scripting attacks:XSS exploits and defense[M].Burlington:Syngress,2007.

[4]吴耀斌,王科,龙岳红.基于跨站脚本的网络漏洞攻击与防范[J].计算机系统应用,2008(01):38-44.

[5]Aayush Gupta,Youngiae Kim.Blueprint:robust prevention of crosssite scripting attacks for existing browsers[C].Security and Privacy,2009 30th IEEE Symposium,Berkely,CA,Aug 2009:331-346.

[6]Gary Wassermann,Su Zhen-dong.Static detection of cross-site scripting vulnerabilities[C].Matthew B Dwyer.Proceedings of the 30th International Conference on Software Engineering,Leipzig,Germany,2008:71-180.

[7]孙建华,刘志容,陈浩.Web聚合应用的安全跨域通信机制[J].通信学报,2012,33(6):23-33.

[8]Mosin Hasan,Nilesh Prajapati,Safvan Vohara.Case Study On Social Engineering Techniques for Persuasion[DB/LP].International Journal on Applications of Graph Theory in Wireless ad hoc Networks and Sensor Networks,June 2010:(18).

[9]Dan Goodin.Yahoo Mail reportedly loses key customer following mass hack attack[EB/OL].http://arstechnica.com/security/2013/05/yahoo-mail-reportedly-loses-key-customer-following-mass-hack-attack/,2013-06.

[10]Kirda E,Kruegel C,Vigna G,et al.Noxes:a client-side solution for mitigating cross-site scripting attacks[D].Hisham M Haddad.ACM Symposium on Applied Computing,Bourgogne University,Dijon,France,2009:330-337.

猜你喜欢
脚本攻击者浏览器
酒驾
机动能力受限的目标-攻击-防御定性微分对策
安奇奇与小cool 龙(第二回)
反浏览器指纹追踪
正面迎接批判
快乐假期
小编的新年愿望
环球浏览器
有限次重复博弈下的网络攻击行为研究
浏览器