APP下载

Web安全威胁与防御技术研究

2017-03-24王瑜李卓姚微娜

关键词:脚本攻击者应用程序

王瑜,李卓,姚微娜

(1.长春理工大学 文学院,长春 130022;2. 长春理工大学 计算机科学技术学院,长春 130022)

Web安全威胁与防御技术研究

王瑜1,李卓2,姚微娜2

(1.长春理工大学 文学院,长春 130022;2. 长春理工大学 计算机科学技术学院,长春 130022)

Web应用广泛普及的同时,也带来了大量的安全威胁。本文分析了常见Web攻击:跨站脚本攻击、Flash攻击、跨站伪造请求攻击、APT攻击、DDoS攻击,从安全威胁的产生原因、常见攻击手段出发,总结了攻击者经常利用的Web安全漏洞,并提出了相应的防御措施和方法,对提高Web安全具有重要的参考价值。

Web安全;跨站脚本攻击;跨站伪造请求攻击;APT;DDoS

随着信息技术的快速发展,互联网已成为连接社会、服务社会的主要方式。互联网不仅方便了人们的生活,其自身的安全问题也层出不穷,并且受到了广大学者和安全机构的广泛关注。Web应用已经成为互联网上的第一大应用,针对Web的网络攻击层出不穷,本文从常见的Web攻击形式入手,分析了跨站脚本攻击、FLASH安全攻击、跨站伪造请求攻击、APT攻击、DDoS攻击产生的原因和防御方法,以期提高Web应用的网络安全防护能力。

1 跨站脚本攻击与防御措施

Web应用程序使用客户端和服务器端脚本为网页提供动态行为。跨站脚本(XSS)攻击使用恶意脚本和注入到受信任网页的链接窃取受害者的敏感数据[1]。跨站脚本已成为对许多网站发动攻击的主要攻击媒介之一。开放式Web应用程序安全项目(OWASP)2013年在公布的前10名最关键的Web应用程序安全攻击中将XSS列为第三名。上网不小心,使用过时的浏览和防病毒软件工具,增加垃圾邮件发送者的活动,通过社交网络和互联网论坛转发链接和图像,在网络应用的开发期间缺乏预防性安全措施有助于这种攻击的广泛传播。一旦攻击者能够找到与Web应用程序相关联的漏洞,将能够使用此漏洞的Web应用程序攻击其Web用户。像JavaScripts这样的客户端脚本最常用于实现XSS攻击。

在跨站脚本攻击中,攻击者利用Web应用动态展示用户输入数据的机会,在HTML页面里嵌入恶意代码[1],这些恶意代码一般是通过“输入信息”时被嵌入的,其方法是在页面输入用户自己编写的内容时输入恶意代码,如果Web应用没有对输入数据进行安全过滤就直接在页面上展示。当其他用户浏览这个页面时,后台就会执行恶意脚本和注入到受信任网页的链接,攻击者便实现了攻击目的。这些恶意代码在执行的过程中被当成了JS/VBS脚本,或“恶意用户输入数据”时嵌入页面的HTML代码控制页面元素后发动攻击[2]。

这种攻击成功的基本事实是,大多数Web用户不知道超链接的实际代码或者URL和在网页后面运行的脚本。因此,网络攻击者使用脚本或URL更加成功地实现这种攻击。当攻击者对特定网站感兴趣时,他们开始检查服务器发送的响应,以查找与其相关联的缺陷。收集足够的信息后,他们设计攻击向量。跨站脚本(XSS)是一种Web应用程序攻击,使攻击者/恶意用户能够在易受攻击的Web应用程序中注入恶意代码或链接,这将在其他Web用户查看该网页时执行。

(1)反射型跨站脚本攻击

攻击者通过一种社会工程学手段,给用户发送一个URL链接,页面被打开时,浏览器会立刻执行页面中已经事先嵌入的恶意脚本。如果攻击者能够发现与Web应用程序相关联的漏洞(例如缺少编码方案和用户输入验证方法),他可以利用恶意脚本代码制作特殊链接和URL,并通过社交网站和电子邮件将其散布向互联网用户。如果用户点击此链接,他将获得嵌入了恶意脚本的响应网页,并且可能是攻击的受害者。而且每次用户点击该超链接时都会受到攻击。

2009年12月,Google及其他20家大型企业遭到了极光攻击(Operation Aurora):攻击者通过Facebook首先入侵并控制了一个网络好友的电脑,然后向受害者发送一个部署了针对IE的0Day攻击代码的“照片服务器”的链接,该“照片服务器”的URL实际指向攻击IE的web页面。一旦受害者打开访问“照片服务器”,攻击者通过内网渗透便可获得Gmail系统中很多敏感用户的访问权限,进而窃取敏感信息。

(2)存储型跨站脚本攻击

Web应用程序中的录入或修改数据功能为攻击者提供了攻击用户的通道,攻击者将恶意脚本嵌入到服务器中,当用户访问服务器时,就会执行恶意脚本,进而浏览者就会受到攻击。这里,攻击者给出的恶意输入存储在服务器中,并且稍后当其他用户查看网页时执行。这是最强大的XSS攻击,因为攻击可以同时传播给数百万用户。例子之一包括将攻击者给出的恶意输入存储为网站中的注释或小齿轮。当其他用户查看包含此恶意的网页脚本,他们的浏览器执行脚本,可能是攻击的受害者。

2009年,美国能源部遭到夜龙攻击(NightDrag⁃on):攻击者利用能源部门的web服务器存在的SQL注入漏洞,攻击并控制这些web服务器;然后在一些工作人员内部访问的页面上部署了针对IE浏览器和办公系统的0Day漏洞的挂马攻击代码;进而控制一些工作人员的个人终端,窃取大量有价值的信息。

(3)DOM跨站攻击

应用程序使用客户端脚本动态生成HTML内容。在基于DOM的攻击中,原始客户端脚本代码由于受害者浏览器中DOM环境的更改而恶意运行。在修改网页之前,不需要与服务器进行任何通信与上述的反射型跨站脚本攻击和存储型跨站脚本攻击的不同之处在于,DOM跨站的输出是纯页面脚本的,要想有效的防御DOM跨站攻击必须要规范使用JavaScript。

针对页面显示而进行的攻击可以通过使用机器学习算法基于从URL和Java脚本代码提取的功能的正常和恶意网页的分类。因为JavaScript和URL主要用于实现和传播XSS攻击,所以它们被用于识别用于准备数据集的特征。因此,第一步是收集受XSS攻击影响的正常网页和网页。第二步是从这些网页中提取URL和JavaScript代码。第三步是识别要素,并使用收集的URL和JavaScript代码创建数据集。

基于URL的要素有:

(1)字符数:它表示提取的URL的字符数。属于XSS类别的URL通常包含JavaScript代码。因此其长度将大于正常URL。在与URL相关的大多数攻击中被采用。

(2)重复字符:它对应于URL中存在重复字符,如<<和>>。重复的字符用作用户输入的一部分,以消除某些防XSS过滤器。

(3)特殊字符:它对应于用作脚本输入的前缀的字符组合,以使脚本代码可执行。这些特殊字符包括“,”>,“>,”/>等。

(4)脚本标签:用于实现攻击的URL通常包含用于重定向,cookie访问等JavaScript代码。在这种情况下,它们嵌入在开始和结束脚本标签中。因此,在URL中存在脚本打开和关闭标记可以被视为一个有用的功能。

(5)请求cookie:它对应于document.cookie函数的检查。如果在URL中有任何cookie的请求,URL包含XSS攻击的概率就更大。

(6)重定向:检查URL是否存在函数window. location,window.history.back,window.navigate等。攻击者使用重定向函数将受害者重定向到恶意网页。

(7)关键字数:这些是通常出现在URL中作为分配用户输入值或网络钓鱼攻击传播的变量名称的词。其中一些包括登录,注册,联系,搜索,查询,重定向等。

基于JavaScript的要素有:

(1)字符数:由于正常的JavaScript包含多行代码用于操作用户输入,其长度将大于XSS URL的长度,它仅包含重定向或cookie访问的直接脚本代码。

(2)脚本函数的数量:它对应于脚本代码中使用的JavaScript函数的数量。Naïve代码通常使用多个JavaScript函数操纵用户输入。所以JavaScript函数的数量将更多在朴素的脚本代码。

(3)参考JavaScript文件:正常脚本代码更频繁地引用外部脚本文件,而XSS脚本代码直接使用脚本功能来实现攻击。

(4)存在用户定义的函数:为了方便和可重用性,用户定义的函数在正常的脚本代码中使用。它的存在可以作为区分正常和攻击代码的特征。

(5)请求cookie:用于访问和发送cookie信息到其他网站的脚本代码可以作为信息窃取和XSS攻击的指示。

2 FLASH攻击与防御措施

在安全配置、文件编码上,Flash服务端和客户端产生的漏洞问题可导致攻击者使用客户端Flash发起不同的请求或者是攻击客户端的界面[3]。因为无正确的配置域策略文件,可导致客户端Flash文件绕过相同来源的策略限制域获取数据或访问HT⁃ML页面的DOM数据或者发起跨域请求。

2011年,RSA SecurityID双重数字认证产品的令牌种子被攻击而遭到窃取,攻击者以工作人员的身份向RSA财务部发送了一封带有excel附件的邮件,并且在excel附件中嵌入了一个Flash的0Day漏洞利用代码。财务部打开附件后,攻击者就成功的控制了财务部的主机,进而通过逐步渗透,窃取了SecureID令牌种子,并传回攻击的控制者;为弥补SecureID令牌种子被窃取造成的损失,RSA耗费了6600万美元。

针对flash而进行的攻击可以通过规范Flash配置和开发两方面进行有效防御:

(1)规范Flash配置

安全配置(Crossdomain.xml):判断有无flash应用,若无则可以去掉crossdomian.xml的文件,若有则需要配置crossdomain.xml的策略文件,并且置成只允许特定域的请求。

(2)嵌入flash文件的客户端安全配置:首先禁止Flash的allowscriptaccess,然后设置为N;其次设置allowNetworking选项为N;最后设置allow⁃fullscreen选项为F。

(3)删除用户敏感的信息:包括用户名、密码、SQL查询或者其他认证信息等可能被反编译泄露用户的私人信息。

(4)验证:必须在客户端和服务端都做验证,因为客户端的验证能够通过反编译软件轻易的去除后重新编译,因此服务端的验证必不可少。

(5)删除调试信息:类似于“trace”的调试语句。

(6)参数传入:假如有加载外部的数据要求,不需要在html中用参数标签或者是查询字符串,利用这种形式来传递数据到SWF文件,通过服务器端的HTTP协议请求向SWF文件传递参数。

(7)allowDomain()方法:假如flash文件和其他SWF文件有通信的要求,则要在swf文件中配置指定的文件资源,不允许任意来源的通信连接。

(8)未初始化的全局变量ActionScript2.0:AS2.0中获得用户通过Flash变量和查询字符串中传入的数据然后放到全局变量中,假如数据利用不当,就会引发变量未完成初始化出现漏洞从而绕过部分的认证。

(9)加载调用的外部信息文件:在Flash调用外部文件的期间需要过滤文件里面的恶意信息,主要是metadata的数据和flash mp3 player里的Mp3 ID3 Data,从而引发XSS漏洞(攻击者可执行任意JS)。

(10)禁止调用ExternalInterface.call配置文件接收外部参数:它可以直接调用,执行Client端的JS文件,假设用户提交有执行脚本的eval的JS内置函数和恶意代码,那么这些恶意代码就会被执行。

3 跨站伪造请求攻击与防御措施

用户在浏览网页的时候,攻击者可以利用页面元素的属性(例如IMG的SRC属性),强迫用户的浏览器发起一个新的请求[4],会导致用户信息被修改、以受害者名义发送邮件和消息、盗取用户账号以及个人隐私等安全问题。跨站点请求伪造(CSRF)是一种攻击,迫使最终用户在其当前通过身份验证的Web应用程序上执行不需要的操作[5]。CSRF攻击专门针对状态改变请求,而不是窃取数据,因为攻击者无法看到对伪造请求的响应。借助社交工程(例如通过电子邮件或聊天发送链接)的一点帮助,攻击者可能会欺骗Web应用程序的用户执行攻击者选择的操作。如果受害者是正常用户,则成功的CS⁃RF攻击可以迫使用户执行状态改变请求,诸如转移资金,改变他们的电子邮件地址等。如果受害者是管理帐户,CSRF可能会危及整个Web应用程序。

要防御CSRF攻击,有以下几点:

(1)在用户登录同时设置一个种植在用户的cookie中并在用户浏览器关闭或用户再次登录、退出时能清除的随机token。

(2)在表单中生成一个值为cookie中随机token的隐藏域。

(3)于攻击者无法得知并伪造用户登录时随机生成的token值,所以在表单提交后可通过能接收用户请求的web应用来判断是否为跨站伪造请求攻击,并记录攻击日志。

4 APT攻击与防御措施

高级可持续性攻击[6](APT)是一种利用先进的攻击手段对目标进行长期定向持续性的网络攻击方式:A指代Advanced,攻击者会采用高级的、高隐蔽的网络入侵技术;P指代Persistent,攻击者会针对目标进行多次、持续性的各种攻击;T指代Threat,攻击者通常是组织严密,攻击性和破坏性强的团队。2010年,伊朗核电站遭受震网攻击(Stuxnet)。攻击者通过收集核电站的工作人员和他的家庭成员信息首先针对这些家庭成员的主机发起了攻击,然后利用4个windows的0Day漏洞,感染了所有的接入USB移动介质,最后利用3个西门子SCADA的0Day漏洞,控制了离心机的控制系统。

APT攻击有四大特征:阶段性、长期性、针对性和间接性。APT攻击的流程可归纳为六个阶段:情报收集、定向入侵、远程控制、横向渗透、资料发掘和资料窃取。

针对APT攻击的防御检测技术主要有:

(1)沙箱检测技术:虚拟沙箱技术是识别未知攻击与异常行为的有效解决方案。

(2)异常检测技术:异常检测技术通过对流量建模识别异常行为。

(3)基于深层协议解析的全流量审计技术:对全流量进行协议解析和应用还原,进而检测异常行为。

(4)攻击回溯和智能化关联分析技术:对已提取出来的网络对象回溯到一个时间段内可疑的网络信息,通过智能化关联分析可以将传统的实时检测转变为基于历史时间窗的检测。

5 DDoS攻击与防御措施

分布式拒绝服务(DDoS)攻击指代利用大量合理的服务请求来占用过多的服务资源,从而使得合法用户无法得到服务的响应[8]。黑客通过大量控制的计算机攻击目标,耗尽服务器的CPU、网络带宽、内存等,实现影响用户正常使用的目的。2015年12月英国科研学术网络Janet遭遇4天的DDoS攻击,导致jannet网络时常处于缓慢或者不能访问的状态。2016年11月初,俄罗斯十大银行中有五家遭到DDoS攻击,黑客尝试盗取50亿俄罗斯卢布左右的账户资金,最终盗取了20亿俄罗斯卢布的账户资金。

DDoS攻击方式分为以下四种[7]:

(1)通过增加网络负载使其达到过载的程度来妨碍正常的网络通讯。

(2)通过增大服务器的请求量,使服务器达到超负荷的状态。

(3)阻断某个用户正在访问的服务器,使其不能为用户提供正常服务。

(4)阻断某服务与某个特定的系统或个人用户之间的通讯联络。

从DDoS攻击的方式来看,land攻击、SYN flood攻击、Teardrop攻击等主要针对操作系统、TCP/IP网络协议、应用程序等的缺陷,构造特殊的数据包,使系统停止对正常用户的访问请求或操作系统。Smurf攻击、UDP淹没攻击采用比攻击受害者更大的带宽生成大量发向攻击受害者的数据包,以耗尽攻击受害者的有效带宽,造成网络拥塞为目的。

攻击的流程:搜集资料、占领、实际攻击。

总体来说,对DDoS的防御主要从下面几个方面考虑:

(1)通过加载最新的系统补丁以及进行合规性配置来减少系统漏洞,规避风险。

(2)利用安全域划分,防火墙配置,入侵检测等技术减缓攻击。

(3)通过采用分布式组网,负载均衡,增加系统容量等有效措施提高系统服务能力的同时降低风险。

可参考措施[7]如下:

(1)采用高性能的网络设备,如知名厂商的路由器、交换机、硬件防火墙等。

(2)尽量避免使用NAT(网络地址转换),提高网路通信能力,降低CPU的浪费时间。

(3)保证充足的网络带宽,可以保证网络对攻击的抵抗能力。

(4)升级主机服务器硬件,提高硬件性能,才能软硬件结合增强对攻击抵抗力。

(5)把网站做成静态页面,减少攻击者可用的攻击面。

6 结语

随着Web应用的不断普及和广泛应用,Web安全将和每个人都息息相关,Web的开放性又给安全带来了更多的不确定性。本文从攻击者的角度出发,总结了常见的Web安全漏洞,并给出了防御方法,对提高Web的安全具有重要的参考作用。

[1]Fonseca J,Seixas N,Vieira M,et al.Analysis of field data on web security vulnerabilities[J].Dependable and Secure Computing,IEEE Transactions on,2014,11(2):89-100.

[2]Fonseca J,Vieira M,Madeira H.Evaluation of Web se⁃curity mechanisms using vulnerability&attack injection[J].Dependable and Secure Computing,IEEE Transac⁃tions on,2014,11(5):440-453.

[3]Sullivan B,Liu V.Web application security:a beginner′s guide[M].McGraw-Hill,2012.

[4]Tripp O,Weisman O,Guy L.Finding your way in the testing jungle:a learning approach to web security testing[C]//Proceedings of the 2013 International Symposium on Software Testing and Analysis.ACM,2013:347-357.

[5]Lee L H,Juan Y C,Lee K C,et al.Context-aware web security threat prevention[C]//Proceedings of the 2012 ACM conference on Computer and communica⁃tions security,ACM,2012:992-994.

[6]许佳,周丹平,顾海东.APT攻击及其检测技术综述[J].保密科学技术,2014(1):34-40.

[7]池水明,周苏杭.DDoS攻击防御技术研究[J].信息网络安全,2012(5):27-31.

[8]蒋勇.DDoS攻击的IP追踪技术分析与比较研究[J].计算机安全,2010(12):59-62.

Research on Web Security Threat and Defense

WANG Yu1,LI Zhuo2,YAO Weina2
(1.Faculty and Arts,Changchun University of Science and Techhnology,Changchun 130022 2.School of Computer Science and Technology,Changchun University of Science and Technology,Changchun 130022)

With the wide spread of Web application,a great number of security threats appear.In this paper,we first analyze common web attacks:XSS,Flash,CSRF,APT,DDoS attack.And then summarize the Web security vulnerabilities used of⁃ten from the point of security season and attack measure,as well propose corresponding defense action,which generates impor⁃tant reference for improving Web security.

Web security;XSS;CSRF;APT;DDoS

TP393

A

1672-9870(2017)02-0135-05

2017-01-16

王瑜(1980-),女,硕士,实验师,E-mail:88428712@qq.com

猜你喜欢

脚本攻击者应用程序
酒驾
机动能力受限的目标-攻击-防御定性微分对策
安奇奇与小cool 龙(第二回)
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
正面迎接批判
快乐假期
小编的新年愿望
有限次重复博弈下的网络攻击行为研究
三星电子将开设应用程序下载商店