跨站脚本攻击监控系统及方法
【专利摘要】本申请涉及一种跨站脚本攻击监控系统,包括应用服务模块、监控模块及分析模块。应用服务模块包括业务模块及重定义模块;所述业务模块接收并响应用户端的服务请求,所述重定义模块对跨站脚本攻击中采用的脚本内置函数进行重定义,并将脚本内置函数的重定义信息返回至用户端;监控模块,监控用户端对所述重定义的脚本内置函数的调用信息;分析模块,对所述调用信息进行安全性分析。所述跨站脚本攻击监控系统能实现对跨站脚本攻击来源、攻击时间、泄露数据,攻击的漏洞点等进行精确的定位。另外,本申请还提供了一种跨站脚本攻击监控方法。
【专利说明】跨站脚本攻击监控系统及方法【技术领域】
[0001]本申请涉及网络安全【技术领域】,尤其涉及一种跨站脚本攻击监控系统及方法。
【背景技术】
[0002]近年来,软件安全领域的关注焦点已经逐渐由服务器端攻击转变为客户端攻击,而跨站脚本(XSS,英文全称是Cross Site Script)攻击已被人们视为网络应用程序面临的最主要的安全威胁。跨站脚本常常利用应用程序的安全缺陷,与其他漏洞一起造成破坏性的后果,有时跨站脚本攻击也可能转变成某种病毒或能够自我繁殖的蠕虫,带来更严重的破坏。2005年,Myspace受到了基于跨站脚本蠕虫的攻击,使大量用户收到百万级别的请求,而不得不被迫关闭它的应用程序。2009年,Twitter受到了两个跨站脚本蠕虫的攻击,大量用户被动发送宣传螺虫的推文。2010年,Apache Foundation被攻击者利用其问题追踪应用程序中的漏洞,通过反射型跨站脚本攻击攻破。2011年6月28日,新浪微博出现了一次比较大的跨站脚本攻击事件,造成帐号安全严重崩溃。
[0003]自从跨站脚本攻击被发现以来,人们开始了跨站脚本攻击检测和防御方面的研究。目前跨站脚本攻击检测工具主要包括集中检测型工具和用户端检查型工具。
[0004]所述集中检测型工具一般是通过对网络站点发送构造的攻击字符串攻击访问链接,将攻击字符串插入应用程序的传递参数中,然后监控相应的响应,判别网络站点是否存在跨站脚本安全隐患。如果攻击子符串原样出现在响应中,则可确定应用程序存在跨站脚本漏洞。但是这种检测方式所构造的攻击字符串是有限的,并不能穷尽所有攻击情形,因此,这种方式覆盖面比较低,只能用来初级检查,防护效率低。
[0005]所述用户端检查型工具是通过用户自行安装在客户端的检测工具,检查用户操作系统接口,是否执行操作系统的危险函数,通过对操作系统函数的调用进行分析来判别客户端是否受到攻击。在对操作系统·级的函数调用和分析需要取得相关的权限,同时需要在客户端安装该检测工具,实现成本高,而且倾向于客户端的保护,对网络站点的防护不够明显。此外,这种检测方式也不能自动通知漏洞服务的提供者来帮助其完善该漏洞服务。
[0006]此外,现有的跨站脚本攻击检测工具无法监控用户端的行为,因此,难以有效获取攻击来源,且不能实现在攻击发生时的预警和通知功能,更不能在攻击发生时自动防范攻击。
【发明内容】
[0007]有鉴于此,有必要提供一种低成本实现、防护效率高的跨站脚本攻击监控系统及方法。
[0008]本申请提供一种跨站脚本攻击监控系统,跨站脚本攻击监控系统包括:
[0009]应用服务模块,其包括业务模块及重定义模块;所述业务模块接收并响应用户端的服务请求,所述重定义模块对跨站脚本攻击中采用的脚本内置函数进行重定义,并将脚本内置函数的重定义信息返回至用户端;[0010]监控模块,监控用户端对所述重定义的脚本内置函数的调用信息;及
[0011]分析模块,对所述调用信息进行安全性分析。
[0012]本申请还提供一种跨站脚本攻击监控方法,其包括:
[0013]接收并响应用户端的服务请求;
[0014]对在跨站脚本攻击中采用的脚本内置函数进行重定义,并将重定义的脚本内置函数返回用户端;
[0015]监控用户端对所述重定义的脚本内置函数的调用信息;及
[0016]对所述重定义的脚本内置函数的调用信息进行安全性分析。
[0017]本申请实施例的跨站脚本攻击监控系统及方法中,通过监控用户端对跨站脚本攻击中采用的脚本函数的调用来达到检测目的,能有效地检测各种类型的跨站脚本攻击,覆盖面高,监测效果好,应用匹配度高。
[0018]其次,本申请实施例可以通过实时地记录脚本异常时的用户端行为、用户的账号、IP、脚本执行的上下文环境、异常调用的函数等信息,能实现对跨站脚本攻击来源、攻击时间、泄露数据,攻击的漏洞点等进行精确的定位。
[0019]再次,本申请实施例所述的跨站脚本攻击监控系统跨平台,跨终端部署,不受终端和用户操作系统影响,不用在终端上另外安装软件,能够对使用服务的用户都提供保护。
[0020]上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举实施例,并配合附图,详细说明如下。
【专利附图】
【附图说明】
[0021]以下结合附图描述本申请的实施例,其中:
[0022]图1是本申请实施例提供的一种跨站脚本攻击监控系统的功能模块图;
[0023]图2是本申请另一实施例提供的一种跨站脚本攻击监控系统的功能模块图;
[0024]图3本申请实施例提供的一种跨站脚本攻击监控方法的流程图;及
[0025]图4本申请另一实施例提供的一种跨站脚本攻击监控方法的流程图。
【具体实施方式】
[0026]以下基于附图对本申请的具体实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅作为实施例,并不用于限定本申请的保护范围。
[0027]请参阅图1,为本申请实施例提供的跨站脚本攻击监控系统100。
[0028]跨站脚本攻击监控系统100包括应用服务模块10、监控模块20及分析模块30。
[0029]应用服务模块10包括业务模块11及重定义模块12。所述业务模块11接收用户端60的服务请求并响应该服务请求。所述重定义模块12确定跨站脚本攻击常用的脚本内置函数,并对其进行重定义。
[0030]所述脚本内置函数为脚本语言的内置函数,包括用于创建页面元素的函数(例如 document.createElement)、执行外链代码的函数(例如 document, write、window,location)及用于页面呈现的函数(例如 window, alert、window, confirm、window,prompt)。所述脚本语言为JavaScript。由于随着黑客技术的不断发展,可能会有更多的脚本语言内置函数会被用于进行跨站脚本攻击,可以理解,所述跨站脚本攻击中常采用的脚本语言内置函数并不限定为某个具体时间点时跨站脚本攻击中常采用的函数,而应该理解为是一个可以随着技术发展不断更新的函数库。
[0031]本申请实施例在对脚本内置函数的重定义包括在根据服务请求返回给用户端的数据中增加对该脚本内置函数的调用进行监控的代码。具体的,可以在返回给用户端的数据中添加用于实现记录所述脚本内置函数被调用时的调用信息和发送该调用信息至监控模块20的代码。本申请具体实施例中,重定义的函数可以在业务模块11响应用户浏览器端的服务请求时包含于响应页面的页面头中,并发送回用户浏览器端。由于页面头在用户浏览器端不易被改变,因此增加了重定义的函数的安全性。所述服务请求为http请求。
[0032]监控模块20监控用户端对由应用服务模块返回的重定义的脚本内置函数的调用信息。具体的,监控模块20监测用户端是否调用了重定义的脚本内置函数,若有重定义的所述脚本内置函数,则记录该重定义的脚本内置函数的调用信息,并将该调用信息发送给所述分析模块30,否则不进行处理。所述调用信息可包括该重定义的脚本内置函数调用时脚本执行的上下文环境、该重定义的脚本内置函数调用的时间、该重定义的脚本内置函数的调用次数中的一个或多个。进一步的,所述调用信息还可以包括调用该重定义的脚本内置函数的用户行为、该用户的账号及IP地址等中的一个或多个。本申请实施例的用户端通常包括终端上安装的浏览器。
[0033]具体地,对所述重定义的脚本内置函数的调用进行监控的代码可以通过监控模块嵌入到应用服务页面中。该应用服务页面可以是由第三方提供,本申请对所述重定义的脚本内置函数的调用进行监控可以是通过监控模块向第三方的页面嵌入监控代码实现。
[0034]所述分析模块30用于对监控模块20发送的调用信息进行安全性分析,并判断是否为跨站脚本攻击。所述分析模块30可根据行为特征等判断该重定义的脚本内置函数调用是否为跨站脚本攻击。所述行为特征具体可包括该重定义的脚本内置函数所调用的应用、该脚本内置函数被调用的次数、访问的敏感数据(例如用户Cookie、用户账号、用户密码等)、传输的敏感数据等。
[0035]在本申请另外一个实施例中,如图2所示,跨站脚本攻击监控系统200包括应用服务模块10、监控模块20及分析模块30。跨站脚本攻击监控系统200还进一步包括存储模块40、报警模块50及拦截模块60。
[0036]存储模块40用于在分析模块30判断用户端对重定义的脚本内置函数的调用为跨站脚本攻击时,存储该脚本内置函数的调用信息。
[0037]报警模块50用于当分析模块30判断对重定义的脚本内置函数的调用为跨站脚本攻击时,发出安全警告。具体地,报警模块50可将所述安全警告通过电子邮件发给被攻击网站的安全负责人员。这样安全负责人员接到警告邮件后,即可迅速采取防御措施,保证业务安全,同时修复安全漏洞。通过发出安全警告,可以在跨站脚本攻击发生时提供的预警和通知功能,可以实时发现和监控跨站脚本攻击的发生。
[0038]所述拦截模块60用于当所述分析模块30判断存在跨站脚本攻击时,所述拦截模块拦截所述重定义脚本内置函数的后续执行,终止页面的继续渲染,使用安全页面替换当前被攻击页面。通过拦截该重定义的脚本内置函数的调用可以在跨站脚本攻击发生时自动防范攻击。[0039]请参阅图3,本申请实施例的一种跨站脚本攻击监控方法包括步骤S101-S104。
[0040]步骤SlOl,接收并响应用户端的服务请求。
[0041]当用户端请求某个应用的服务时,用户端将服务请求发给网络应用服务器。网络应用服务器接收用户端的服务请求,并对用户端的服务请求进行响应。
[0042]步骤S102,对在跨站脚本攻击中采用的脚本内置函数进行重定义,并将脚本内置函数的重定义信息返回用户端。
[0043]网络应用服务器对跨站脚本攻击中常用的脚本内置函数进行重定义,在保证脚本内置函数正常功能的情况下,增加获取所述脚本内置函数的调用信息和发送调用信息的功能。即,所述脚本内置函数的重定义包括在响应所述服务请求的返回数据中添加用于获取所述脚本内置函数的调用信息和发送调用信息的代码。对脚本内置函数的重定义的信息包含于网络服务器根据所述服务请求返回的响应页面的页面头中。
[0044]所述脚本内置函数为脚本语言内置函数,包括用于创建页面元素的函数(例如 document.createElement)、执行外链代码的函数(例如 document, write、window,location)及用于页面呈现的函数(例如 window, alert、window, confirm、window,prompt)。所述脚本语言为JavaScript。由于随着黑客技术的不断发展,可能会有更多的脚本语言内置函数会被用于进行跨站脚本攻击,可以理解,所述跨站脚本攻击中常采用的脚本语言内置函数并不限定为某个具体时间点时跨站脚本攻击中常采用的函数,而应该理解为是一个可以随着技术发展不断更新的函数库。
[0045]步骤S103,监控用户端对所述重定义的脚本内置函数的调用信息。
[0046]用户端在根据网络服务器返回的数据进行页面渲染时,使用重定义的脚本内置函数覆盖用户端的脚本解释器对脚本内置函数的定义。如此,对于具有跨站脚本攻击风险的服务请求,在进行页面渲染时,会触发所述脚本内置函数的调用,用户端则调用重定义的脚本内置函数对页面数据进行渲染。在重定义的脚本内置函数被调用时,对该重定义的脚本内置函数的调用信息进行监控。
[0047]具体地,对所述重定义的脚本内置函数的调用进行监控的代码可以通过监控模块嵌入到应用服务页面中。该应用服务页面可以是由第三方提供,本申请的跨站脚本攻击监控方法可以是通过监控模块向第三方的页面嵌入监控代码实现。
[0048]所述调用信息可包括该重定义的脚本内置函数调用时脚本执行的上下文环境、该重定义的脚本内置函数调用的时间、该重定义的脚本内置函数的调用次数中的一个或多个。进一步的,所述调用信息还可以包括调用该重定义的脚本内置函数的用户行为、该用户的账号及IP地址等中的一个或多个。
[0049]步骤S104,对所述重定义的脚本内置函数的调用信息进行安全性分析。
[0050]具体地,可根据对所述调用信息来判断执行所述重定义脚本内置函数的调用行为是否为跨站脚本攻击。所述行为特征具体可包括脚本内置函数调用位置,脚本内置函数调用应用、脚本内置函数调用次数、访问敏感数据、传输敏感数据等。
[0051]本申请实施例通过对脚本内置函数的调用的监控来实现跨站脚本攻击的预警分析,不受用户端操作系统影响,不用在用户端安装额外的软件,能够对使用服务的用户都提供保护。
[0052]在本申请另外一个实施例中,如图4所示,一种跨站脚本攻击监控方法还包括步骤 S105、S106 及 S107。
[0053]步骤S105,存储所述重定义的脚本内置函数的调用信息。
[0054]步骤S106,当根据所述安全性分析判断对重定义的脚本内置函数的调用为跨站脚本攻击时,发出安全警告。具体地,可将所述安全警告通过电子邮件发给被攻击网站的安全负责人员。这样安全负责人员接到警告邮件后,即可迅速采取防御措施,保证业务安全,同时修复安全漏洞。通过发出安全警告,可以在跨站脚本攻击发生时提供的预警和通知功能,可以实时发现和监控跨站脚本攻击的发生。
[0055]步骤S107,拦截所述重定义脚本内置函数调用。通过拦截所述重定义脚本内置函数调用可以在跨站脚本攻击发生时自动防范攻击。
[0056]与现有技术相比,本申请实施例所述的跨站脚本攻击监控系统及方法中,通过监控用户端浏览器异常的脚本执行来达到检测目的,能有效地检测各种类型的跨站脚本攻击,覆盖面高,监测效果好,应用匹配度高。其次,通过实时地记录脚本异常时的用户端行为、用户的账号、IP、脚本执行的上下文环境、异常调用的函数等信息,能实现对跨站脚本攻击来源、攻击时间、泄露数据,攻击的漏洞点等进行精确的定位。再次,本申请实施例所述的跨站脚本攻击监控系统跨平台,跨终端部署,不受终端和用户操作系统影响,不用在用户端另外安装软件,能够对使用服务的用户都提供保护。
[0057]以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本申请的保护范围之内。
【权利要求】
1.一种跨站脚本攻击监控系统,其特征在于,包括: 应用服务模块,其包括业务模块及重定义模块;所述业务模块接收并响应用户端的服务请求,所述重定义模块对跨站脚本攻击中采用的脚本内置函数进行重定义,并将脚本内置函数的重定义信息返回至用户端; 监控模块,监控用户端对所述重定义的脚本内置函数的调用信息;及 分析模块,对所述调用信息进行安全性分析。
2.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述对脚本内置函数的重定义包括增加对该脚本内置函数的调用进行监控的代码。
3.如权利要求1所述的跨站脚本攻击监控系统,其特征在于对脚本内置函数的重定义信息包含于网络服务器根据所述服务请求返回的响应页面的页面头中。
4.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述重定义的脚本内置函数为脚本语言的内置函数包括用于创建页面元素的函数、执行外链代码的函数及用于页面呈现的函数。
5.如权利要求4所述的跨站脚本攻击监控系统,其特征在于,所述脚本语言为Javascript。
6.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述重定义的脚本内置函数包括 document.createElement、document, write、window, location、window, alert、window, confirm 及 window, prompt 中的一种或多种。
7.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述重定义的脚本内置函数的调用信息包括重定义的脚本内置函数 被调用时该脚本内置函数执行的上下文环境、该重定义的脚本内置函数调用的时间、该重定义的脚本内置函数的调用次数、调用该重定义的脚本内置函数的用户行为、该用户的账号及IP地址中的一个或多个。
8.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,分析模块根据行为特征等判断该重定义的脚本内置函数调用是否为跨站脚本攻击,所述行为特征包括该重定义的脚本内置函数所调用的应用、该脚本内置函数被调用的次数、访问的敏感数据及传输的敏感数据。
9.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述跨站脚本攻击监控系统还包括一个报警模块,当所述分析模块判断对重定义的脚本内置函数的调用为跨站脚本攻击时,发出安全警告。
10.如权利要求1所述的跨站脚本攻击监控系统,其特征在于,所述跨站脚本攻击监控系统还包括一个拦截模块,当所述分析模块判断对重定义的脚本内置函数的调用为跨站脚本攻击时,所述拦截模块拦截所述重定义脚本内置函数的后续执行,终止网页的继续渲染,使用安全页面替换当前被攻击页面。
11.一种跨站脚本攻击监控方法,其包括: 接收并响应用户端的服务请求; 对在跨站脚本攻击中采用的脚本内置函数进行重定义,并将重定义的脚本内置函数返回用户端; 监控用户端对所述重定义的脚本内置函数的调用信息;及 对所述重定义的脚本内置函数的调用信息进行安全性分析。
12.如权利要求10所述的跨站脚本攻击监控方法,其特征在于,所述对脚本内置函数的重定义包括增加对该脚本内置函数的调用进行监控的代码。
13.如权利要求10所述的跨站脚本攻击监控方法,其特征在于对脚本内置函数的重定义信息包含于网络服务器根据所述服务请求返回的响应页面的页面头中。
14.如权利要求10所述的跨站脚本攻击监控方法,其特征在于,所述重定义的脚本内置函数为脚本语言的内置函数包括用于创建页面元素的函数、执行外链代码的函数及用于页面呈现的函数。
15.如权利要求14所述的跨站脚本攻击监控方法,其特征在于,所述脚本语言为JavaScript ο
16.如权利要求10所述的跨站脚本攻击监控方法,其特征在于,所述重定义的脚本内置函数包括 document.createElement>document.write>window.location>window.alert、window, confirm 及 window, prompt 中的一种或多种。
17.如权利要求10所述的跨站脚本攻击监控方法,其特征在于,所述重定义的脚本内置函数的调用信息包括重定义的脚本内置函数被调用时该脚本内置函数执行的上下文环境、该重定义的脚本内置函数调用的时间、该重定义的脚本内置函数的调用次数、调用该重定义的脚本内置函数的用户行为、该用户的账号及IP地址中的一个或多个。
18.如权利要求10所述的跨站脚本攻击监控方法,其特征在于,分析模块根据行为特征等判断该重定义的脚本内置函数调用是否为跨站脚本攻击;所述行为特征包括该重定义的脚本内置函数所调用的应用、该脚本内置函数被调用的次数、访问的敏感数据及传输的敏感数据。
19.如权利要求10所述的跨站脚本攻击监控方法,其特征在所述的跨站脚本攻击监控方法还包括当判断对重定义的·脚本内置函数的调用为跨站脚本攻击时,发出安全警告。
20.如权利要求10所述的跨站脚本攻击监控方法,其特征在所述的跨站脚本攻击监控方法还包括,当所述分析模块判断对重定义的脚本内置函数的调用为跨站脚本攻击时,拦截所述重定义的脚本内置函数的后续执行,终止页面的继续渲染,使用安全页面替换当前被攻击页面。
【文档编号】H04L29/06GK103856471SQ201210521400
【公开日】2014年6月11日 申请日期:2012年12月6日 优先权日:2012年12月6日
【发明者】朱荣, 李晓拴, 易子仪, 徐天河 申请人:阿里巴巴集团控股有限公司