收藏 分享(赏)

Web应用安全防护技术研究与实现.pdf

上传人:精品资料 文档编号:11101523 上传时间:2020-02-07 格式:PDF 页数:59 大小:6.95MB
下载 相关 举报
Web应用安全防护技术研究与实现.pdf_第1页
第1页 / 共59页
Web应用安全防护技术研究与实现.pdf_第2页
第2页 / 共59页
Web应用安全防护技术研究与实现.pdf_第3页
第3页 / 共59页
Web应用安全防护技术研究与实现.pdf_第4页
第4页 / 共59页
Web应用安全防护技术研究与实现.pdf_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、中南大学硕士学位论文Web应用安全防护技术研究与实现姓名:李昌申请学位级别:硕士专业:计算机科学与技术指导教师:王伟平20100501摘要随着互联网的广泛普及,Web应用平台已经逐渐成为互联网信息交互的中心,随之而来的是Web应用面临的越来越严重的安全威胁,如何保障Web应用安全已经成为一个重要的研究课题。针对Web应用的攻击与传统网络攻击相比具有许多新特征,如采用正常的H1印协议携带恶意数据,使得传统的网络层防火墙和入侵检测系统无法识别,必须从应用层的角度出发进行安全防护。本文首先研究了Web应用安全产生的根源以及其面临的重要安全威胁,并针对Web应用平台提出了一个安全解决方案。之后深入研究

2、了SQL注入攻击和网页篡改攻击这两种影响最为严重的Web应用攻击及其防护技术,并在理论研究的基础上对相应的安全防护机制进行了设计与实现。针对SQL注入攻击,本文深入研究了其攻击行为及语法特征,采用正则表达式对攻击特征进行了完备描述;在研究SQL注入防护技术的基础上,本文基于服务端过滤技术设计实现了一个Web服务端SQL注入攻击过滤器。该过滤器在HTlrP请求未提交Web服务器系统模块处理前分析请求数据,实时拦截攻击行为并告警;通过采用基于攻击特征的正则表达式描述过滤规则,降低了过滤机制的误报率和漏报率;同时结合了IP访问限制功能,可以预防攻击者发起穷举式SQL注入攻击。针对网页篡改攻击,本文深

3、入研究了各种防御技术,分析比较了各种技术的优缺点,最后结合Linux文件操作系统和可加载内核模块开发技术,设计实现了一个基于事件触发技术的网页防篡改内核模块,在网页文件被修改时对修改文件的进程和用户进行权限核查,从而实时阻断恶意修改行为。测试结果表明,本文设计实现的攻击防御机制可以有效防御SQL注入和网页篡改攻击,同时对服务器响应延迟和负载影响较小。关键词Web应用安全,防护技术,SQL注入,网页防篡改AB STRACTWith the widely spread of the Internet,web application platform hasbecome the communicat

4、ion center of the InternetBut at the salTle time,the threats to the web application are very seriousHow to protect webapplicationssecurity is very importantThe attacks to the webapplication,comparing with traditional network attacks,have many newfeatures,such as using HT曙protocol to carry malicious

5、data,which Cannot be detected by the firewall and intrusion detection systemSo wemust defense the attacks from the application layerIn this paper we study the origin and common threms of webapplication security firstlyThen we research and implement a protectmodule to protect web sites from SQL inj e

6、ction and tampering web pageTo defend SQL injection,we analyze the characteristic of SQLinjection and construct the regular expression for these attacksThen wedesign a SQL injection attack filter module inside web server,which isbased on the filter rules using regular expressionThis module can defen

7、dcommon SQL Inj ections,which detectes the attacks before the HTTPrequests handled by the system modulesWith the IP limit mechanism,this module can protect web server from exhaustive attacks launched byhackersTo defend web page from tempering,we compare the commontechnologies of web page tamper-resi

8、stant,and implement a protectmodule using the event-triggering mechanism which is based on theLinux file system and loadable kernel module developing technologyThis module Can detect attacks when the files are being modified,whichcan break attacks immediatelyThe test results show that the modules ca

9、n prevent SQL injectionand page tempering attacks effectively,with very little influence to theweb application platformKEY WORDS web application security,defense technology,S QLinj ection,web page tamper-resistantIl硕士学位论文 第一章绪论11课题背景介绍第一章 绪论弟一早 瑁下匕随着信息化建设的不断推广,企事业单位无论是构建内部的业务应用系统,还是建设对外信息的发布平台,都离不开W

10、eb应用技术。Web应用技术不仅给用户提供一个简单方便的交互平台,也给信息服务商提供了一种构建信息系统的标准技术。然而随着Web应用平台普及越来越广泛,针对Web应用程序的攻击也越来越多,W曲应用安全【1J正面临日益严峻的威胁和挑战。美国互联网安全厂商CENZIC的分析报告显示,2008年网络攻击事件有80都是针对Web应用平台发起的,到2009年这一攻击比例升至了82f21。另据CNCERTCC调查显示,2006年到2007年中国大陆网站恶意挂马事件增长了26倍,被篡改网站数量增长了15倍,2009年国内被篡改网站数量达到42万个【3。51。这些攻击事件极大地影响了Web应用平台的正常运行。

11、目前针对Web应用层的攻击已经多达上千种【2J,最为常见的攻击包括:以SQL注入攻击为代表的各种注入攻击、非法篡改网站页面、网页恶意挂马、跨站点脚本攻击等等。各种W曲攻击利用的漏洞与攻击手段不尽相同,甚至同一种攻击都可以运用灵活多变的手法来达到攻击者最终的目的。以SQL注入攻击【6。8J为例,如果W曲应用开发者编写的代码没有判断用户输入数据的合法性,攻击者便可以构造恶意数据库查询代码从而获得某些重要的数据甚至获得服务器高级执行权限。同时,8QL注入攻击可以利用HTTP协议中的GET方法、POST方法以及Cookie数据【90 3】等多种途径发起,攻击者可以不断调整攻击参数以达到最终目的。毫皇翼

12、 Intemet 网络(浏览器) 防火墙WebH:l务 戍用逻辑器 服务器数据库服务器图1-1当前典型的Web应用平台架构图11显示了当前典型的一种Web应用平台架构,客户端(通常为Web浏览器)向Web服务器发送请求,Web服务器将请求转发至应用逻辑服务器或者Web应用程序处理,其中可能会涉及到与数据库服务器的交互。Web应用程序完硕士学位论文 第一章绪论成逻辑数据后,将响应内容返回给客户端。为了保障Web应用平台的安全,许多公司都在网络边界上部署了防火墙或者入侵检测系统。然而防火墙和入侵检测系统只能拦截针对网络层的攻击,当攻击者利用Web应用程序漏洞发起针对性攻击时,防火墙和入侵检测系统就

13、无能为力了【14以7l。网络防火墙能够针对端口实现访问控制功能,但是防火墙必须允许HTTP和HTTPS协议数据通行以保证可以对外正常提供Web服务。如果攻击代码被植入到HTTP通信数据中,那么防火墙便无法识别这些通信数据的合法性,从而无法防御此类攻击。例如SQL注入攻击便是借助合法的HTTP通信数据,通过在HTTP请求实体中嵌入恶意SQL查询代码,从而安全地穿过网络防火墙,达到攻击内网数据库的目的。入侵检测系统也工作在网络层上,并根据特征规则检测攻击行为,但是入侵检测系统对应用层数据的解析能力同样有限。由此可见,传统网络层的安全防护系统无法有效处理应用层协议数据,更无法结合具体的Web应用程序

14、深入分析请求内容,因而无法防御针对Web应用程序的攻击。从本质上讲,基于应用层的攻击基本都是由Web应用程序漏洞造成的,由于Web应用程序开发人员技术上或者经验上的原因,没有正确处理各种Web应用安全隐患,最终造成了Web应用层漏洞。然而实际情况下让所有程序员在编写Web应用程序时都注意防范这些漏洞是不太现实的,而且Web应用攻击方式的不断更新也使得只依靠应用程序本身无法及时防范各种新型攻击。因此,必须研究专门的Web安全防护策略来保障Web应用平台的安全。12 Web应用安全研究的现状及意义目前防护利用HTTP协议发起的Web应用攻击,主要采用的技术是对Web服务器的功能做扩展,通过在Web

15、服务器软件中添加安全防护模块,可以在HTTP请求数据尚未被Web服务器系统模块处理之前进行安全检查,区分正常用户访问和攻击者的恶意数据,这种技术称为“Web服务器扩展技术”或者“Web服务器模块开发技术”,它能够实时防御诸如SQL注入攻击等利用正常H1vrP通信数据的攻击。然而单纯采用Web服务器扩展技术并不能防御所有类型的攻击,各种攻击原理及模式的不同决定了相应的防护技术也必然会有所区别。例如,防御SQL注入攻击的关键是能识别出Hr曙请求中的注入字符串。针对SQL注入攻击的防护技术主要有静态检查、服务端过滤、SQL参数化查询等。另外华中科技大学周敬利提出了SQL语法预分析技术【l引,它是一种

16、较新的SQL注入防护技术,它通过对用户提交的表单数据和上下文环境组装出一条SQL语句,并对该SQL语句的结构加以分析来识别攻击行为。这种技术在原有的字符串过滤技术的基础上加以改进,为SQL注入防护技术提供了一种新的思维。2硕士学位论文 第一章绪论与SQL注入攻击不同,篡改网页文件f19】的攻击不一定是通过HTrP通信数据发起,当攻击者通过各种攻击手段获取系统控制权限后都可以实现对网页内容的篡改,而针对篡改网页行为的防护技术的发展也经历了外挂轮询技术、核心内嵌技术、事件触发技术三个阶段。由于Web应用安全的威胁日益严峻,越来越多的国内外公司和科研机构开始参与到Web应用安全防护技术的研究中来,使

17、得Web应用安全防护技术不断进步,各种研究成果不断涌现。国内外关于Web应用安全的代表产品主要有:国内中创软件商用中间件股份有限公司以国家863技术成果为基础研发的InfoGuard网页防篡改中间件以及上海天存信息技术有限公司采用Web服务器扩展技术研发的iWall应用层防火墙【191;国外IBM公司开发的应用层安全漏洞扫描系统的Rational w曲application security solutions20-21】等。然而由于商业原因,这些公司的技术并不对外公开,只能够从基本防御策略上有所了解;同时针对Web应用的攻击方式和手段也在不断改进和演化,促使我们需要不断研究新的防护技术与策略

18、。综上所述,由于动态解析模式的Web应用程序的出现,Web应用平台面临着由Web应用程序漏洞所引发的安全威胁。如何妥善解决这一类安全问题,从应用层的角度出发防御Web应用平台的安全,已经成为一项重要的研究课题。研究Web应用安全防护技术,对于保障Web应用平台的安全运行,以及保障Web应用访问客户的隐私和安全都有着重要意义。13论文研究目的及章节安排l、本文研究目的在研究了大量的Web应用安全方面的产品和资料以后,我们选择了SQL注入攻击和网页篡改攻击两项影响最为严重的Web应用安全威胁作为研究对象,对其攻击原理以及相关防护技术进行了深入的学习和研究。在理论研究的基础上,设计实现针对两类攻击的

19、防御机制,并通过测试验证防御机制的实用性。总的来说,本文主要的研究目的为:(1)研究Web应用安全产生的根源,了解常见的Web服务攻击技术及相关防护策略,寻找并研究Web平台安全的整体解决方案。(2)深入研究SQL注入攻击,对其攻击特征进行详细分析和归纳总结以便制定灵活完备的防御策略;结合当前常见的SQL注入防御技术设计实现Web服务端SQL注入过滤器,并研究如何定义过滤规则以实现对攻击特征的完备描述,从而提高攻击过滤的识别率和准确率。(3)深入研究网页篡改攻击行为及其防御技术,分析比较各种防御技术的3硕士学位论文 第一章绪论实现原理,并结合Web服务器平台的实际需要设计实现网页防篡改机制,

20、同时尽量确保对服务器平台系统的影响较小。2、本文的结构安排本论文共分为六章,其中第一章为论文绪论,第二章至第五章为论文主体,第六章为论文结束语。第一章介绍了Web应用安全的研究背景、研究现状和研究意义;第二章主要讨论了Web应用安全的起源以及常见威胁,并针对Web服务器总体安全提出了一个解决方案;第三章主要研究了SQL注入攻击的行为、语法特征以及防御技术,通过使用正则表达式对攻击特征进行了完备性描述,并结合服务端过滤技术设计实现了一个Web服务端SQL注入过滤器;第四章分析了目前主流的网页防篡改技术,并结合Linux操作系统可加载内核模块开发技术,设计了一个基于事件触发技术的操作系统内核级网页

21、防篡改机制,用来实时防御网页篡改事件;第五章介绍了防御机制的部署,并对防御模块的功能和性能进行了测试,对测试结果进行了讨论;第六章对本文研究工作进行了总结,指出了工作中存在的一些问题,并展望了进一步的工作计划。4硕士学位论文 第二章Web应用安全威胁及解决方案研究第二章Web应用安全威胁及解决方案研究本章主要介绍Web应用程序安全相关的技术研究,首先对Web应用安全产生的根源进行了深入分析,之后介绍了W曲应用安全的常见威胁,最后介绍了基于应用层的Web安全防御技术,并结合服务器平台安全,提出了一种综合性的Web安全解决方案。21 Web应用安全产生的根源早期的万维网(World Wide We

22、b)仅仅提供静态HTML【22,231页面浏览服务,多数站点不需要验证用户的合法性,不同的用户从Web站点上获取到的信息也是完全相同的。在这种情况下,Web站点受到的安全威胁仅仅与Web服务器软件及操作系统的漏洞有关。如今万维网提供的服务与早期服务相比要复杂得多,许多Web服务站点上运行的是动态解析的应用程序(被称为Web应用程序)。这些应用程序提供了用户注册、登录、搜索、金融交易等与用户身份密切相关的服务,而这些用户专属的服务需要在客户端和服务器之间进行双向数据交互才能完成,交互的数据中不乏个人隐私数据和高度机密的信息。与其它应用程序一样,由于开发人员的疏漏或者技术能力方面的原因,Web应用

23、程序也会存在各种安全方面的漏洞【241,而Web站点上运行应用程序的多样性,使得这些漏洞也不尽相同、各具特点;同时,由于访问方式的便捷性,使得Web应用普及范围非常广,人们的日常工作和生活对各种WEB应用的依赖程度越来越高,一旦发生安全问题将产生巨大影响。综合上述原因,当前的Web应用安全问题已变得至关重要。Web应用安全的核心问题在于运行于服务器端的Web应用程序无法干预客户端浏览器用户的操作。用户可以向Web应用程序任意提交各种各样的输入数据,如果用户所提供的输入数据中含有恶意代码,便会使应用程序出现设计者无法预料的错误或者异常状况。这种安全隐患具体表现在以下几个方面2s-27:(1)攻击

24、者可以篡改客户端与服务器间交互的任何数据,包括请求参数、Cookie和H1rP信息头,甚至可以巧妙避开客户端的安全控件【25】。(2)攻击者通过构造恶意参数,导致用户输入与应用程序开发人员的最初假设完全不同,从而引发应用程序错误或者异常【25l。(3)攻击者可用的攻击工具趋向多样化和智能化,这些工具或者整合在浏览器当中,或者独立于浏览器运行,而且它们往往能够实现浏览器无法达到的效硕士学位论文 第二章Web应用安全威胁及解决方案研究果,可以在瞬间迅速生成大量的请求,更易于查找并利用Web应用程序漏洞达到自身目的【2627】。为了保证Web应用的安全,Web应用程序必须假设所有的输入信息都是恶意的

25、,并采取必要的措施确保攻击者无法使用专门设计的输入破坏应用程序,干扰应用程序正常的逻辑行为,或者非法访问重要数据【2引。但是下面的这些因素使得仅仅依靠Web应用程序无法很好的解决上述安全问题:(1)缺乏安全意识:与网络和操作系统这些发展时间更长的领域相比,人们对Web应用程序安全问题的意识还远远不够成熟,很多Web应用程序的开发人员对Web应用安全领域相关的核心概念并不了解,甚至存在误解,因此缺乏应对这些安全问题的知识与经验。(2)设计缺陷多样:大多数Web应用程序都由企业自己的员工或者与外包给其它中小型公司开发完成,加之滥用第三方程序模块,导致每个应用程序都存在着独特的设计缺陷。这与使用业界

26、一流产品并按照行业标准部署的典型基础架构(如操作系统、数据库系统等)形成了鲜明的对比。(3)安全威胁更新快:新型的Web应用安全威胁出现得非常迅速,虽然在项目开发初期处理了应用程序面临的安全威胁,但是很可能在应用程序开发完成后会发现面临许多新的威胁。(4)缺乏高质量的安全测试:受到开发资源与时间限制等的影响,很多开发团队只通过快速渗透测试发现明显的安全漏洞,而无暇考虑不是很明显的安全问题,从而造成安全隐患。22 Web应用安全面临的威胁Open Web Application Security Vroject(OWASP)这一全球性开源组织长期致力于发现并解决Web应用安全问题,它们最重要的项

27、目之一是“Web应用的十大安全隐患”【29】,其中总结了目前Web应用最常受到的十种攻击,并且按照攻击发生的概率进行了排序。该项目主要是为了发掘业界最重要的Web应用安全隐患,并且加强企业对Web应用安全的意识。该项目最新版本的报告是2010 RCl版【30】,虽然只是候选版本,但仍具有很高的参考价值。表21结合2004t3、2007t321两年的数据与2010 RCI版本中“十大安全隐患”进行了比较,并按照威胁程度高低由上至下加以排列。从中我们可以发现,在2004年的报告中,诸如缓冲区溢出、拒绝服务攻击等与系统漏洞相关的攻击仍占很大比例,随着时间的推移,后期的攻击报告显示Web应用程序本身漏

28、洞造成的安全隐患正在占有越来越高的比率,其中SQL注入攻击、跨站脚本等威胁最为严重,在CENZIC公司2009年下半期的Web应用安全趋势报告6硕士学位论文 第二章Web应用安全威胁及解决方案研究中,这两种攻击的数量分别占到了16和19的比例。表2-1 Web安全十大隐患发展趋势下面本节对几类OWASP提到的Web应用安全威胁进行简要介绍:(1)注入攻击124,30J:该类漏洞往往是应用程序缺少对输入数据的合法性检查引起的,攻击者把包含恶意指令的数据发送给应用程序解释器,解释器便会把收到的数据直接转换成指令执行。常见的注入包括SQL注入,OS Shell,LDAP,Xpath,Hibemate

29、等等,攻击所造成的后果往往比较严重。其中SQL注入尤为常见,危害也最为严重,通过SQL注入攻击可以窃取或者篡改整个数据库的信息,甚至能够获得管理员级别的访问权限。命令注入利用了Web应用脚本可与操作系统交互的特点,通过注入操作系统级API获得服务器控制权限。(2)跨站点脚本攻击(Cross Site Scripting)24,30-32】:由于Wreb应用程序生成HTTP响应的过程存在缺陷,攻击者可以利用该程序向返回给客户的Web页面中插入恶意脚本代码。当客户端浏览该页面时,嵌入其中的脚本代码会被执行,从而达到恶意用户的特殊目的。XSS根据攻击手段分为反射型、保存型和基于DOM的XSS攻击,相

30、应的防御技术也有所不同。(3)请求伪划24,32l:也称为会话叠置,它是一种会话劫持攻击,分为本站点请求伪造和跨站点请求伪造两种。本站点请求伪造常常与保存型XSS漏洞结合使用;跨站点请求伪造通过强迫受害者的浏览器向一个存在漏洞的Web应用程序发送请求来达到攻击者的预期目的。(4)攻击验证机制和会话管理【24,30-321:验证机制通过检查用户身份来达到防御未授权用户访问的目的,然而Web应用程序存在的设计缺陷使得攻击者可以突破这一防御机制成功获得访问授权。会话管理用来帮助Web应用程序从大量不同的HTTP请求当中确认特定的用户。攻击者通过窃听用户访问Web应用程序时的用户名和密码,或者会话(S

31、ession)数据,可以得到会话标识(session7硕士学位论文 第二章Web应用安全威胁及解决方案研究ID),进而冒充合法用户发起HTTP访问。(5)重定向和转发攻击【30l:在Web应用中重定向极为普遍,如果重定向URL中带有用户输入参数并且应用程序未对这些参数加以验证,那么攻击者就可以利用该漏洞引导用户访问某些恶意站点。转发普遍存在于对本地新页面的发送请求实现中,同样如果未对参数加以验证,那么就可以被攻击者用来绕过认证或是授权检查机制。重定向攻击会导致用户访问钓鱼网站或是恶意网站,而攻击者利用转发攻击来达到绕过认证或是授权机制的目的。针对上述安全威胁,最有效的防御技术是在Web应用程序

32、中实现对输入数据的合法性检测,对于非法的输入数据直接丢弃或者返回错误警告。基于Web服务器核心内嵌技术的防御机制,往往采用数据过滤的方式对恶意输入数据进行识别和拦截。除去上述OWASP和CENZIC公布的Web应用攻击之外,国家互联网应急中心(CNCEI刑CC)对两类Web应用攻击事件极为关注,它们是网页篡改事件和恶意网页挂马pJ。网页篡改是指攻击者利用网站漏洞恶意修改Web站点页面内容的攻击事件;恶意网页挂马是指攻击者向正常页面中植入恶意代码,当客户端浏览这些页面时,恶意代码便会通过多次跳转后从攻击者服务器下载木马程序并执行,从而窃取客户信息或者对客户端主机造成破坏。由于互联网产业的迅速发展

33、以及互联网用户的广泛普及,使得这些攻击事件的影响非常深远。与上述应用程序漏洞相比,这两种攻击的防御技术各有不同。网页防篡改技术经历了从及时恢复到实时拦截的发展阶段;网页挂马可以通过服务端静态扫描技术发现恶意挂马,也可以在客户端拦截跳转次数过多的HTTP访问数据。23 ffeb安全解决方案研究231基于应用层的安全防护技术在Web应用程序出现之前,企业主要在网络边界上抵御来自外部网络的攻击,采取的主要措施是修补系统漏洞、强化对开放服务的安全管理,并在网络边界上部署防火墙和入侵检测系统等安全设备。但是这些传统的防御方式并不能有效拦截针对Web应用程序的攻击行为。由于用户访问Web应用程序需要通过H

34、TTP(S)协议,因此部署在网络边界上的防火墙必须允许这些协议通行。Web应用程序为了实现某些重要功能,必须同内网中的数据库系统等进行交互。如果Web应用程序存在漏洞,那么公网上的攻击者只需利用专门设计的数据便可攻破网络边界上的防火墙系统,从而窃取甚8硕士学位论文 第二章Web应用安全威胁及解决方案研究至破坏内网系统中的数据。而所有这些攻击数据在边界安全设备看来完全是正常的Wreb应用数据通讯流。Web应用程序接收外网用户输入方式的多样性以及与内网重要系统数据交互方式的多样性决定了必须在应用层更有针对性地对Web应用攻击行为实施防御,以确保Web应用程序的正常运行以及内网数据安全。为了保证We

35、b应用安全,从应用层出发设计的防御策略需要考虑以下几个核心因素【24,33-35】:(1)检测用户访问Web应用的权限,防止用户获得未授权的访问。(2)检测用户对Web应用的输入数据,防止恶意输入以及不良行为。(3)识别并拦截攻击行为,确保Web应用程序在受到攻击时能够正常运转,同时采取适当的防御措施挫败攻击者的企图。(4)协助管理员监控Web应用平台的异常行为,并及时发出警告。232综合性的Web安全解决方案除了Web应用程序面临的安全威胁之外,Web服务器主机平台也面临着大量的安全威胁,如DDoS攻击、端口扫描攻击等,因此一个完善的Web服务器安全防御系统在设计时不仅要考虑Web应用的安全

36、,也要考虑服务器平台的安全。综合Web服务器系统平台以及Web应用程序的安全解决方案需要考虑以下几个方面,以达到对Web应用平台的全面防护:(1)结合实际的Web服务器平台和Web应用程序,可以防御常见的Web应用攻击,如SQL注入、网页篡改、恶意挂马等攻击。通过部署在服务端,保障Web服务器平台的安全,防御攻击者破坏平台或者窃取重要数据;同时保障平台对外提供服务的正常运行,不影响访问客户的正常浏览。(2)可以获取服务器运行状态系统信息,以便于管理员了解系统当前运行状态。可以获取的系统信息包括:系统软硬件基本信息、实时性能(如CPU利用率、内存利用率和网络吞吐量等)、进程实时运行状态、TCP和

37、UDP网络连接状态、Windows系统服务等。这些信息对于管理员定位安全问题的来源也可以起到一定的辅助作用。(3)可以实时监测系统运行的性能,当系统性能运行指标异常时,系统可以告警并记录日志。同时,当受到如TCP Flood等形式的DDoS攻击时,系统性能一般都会发生异常,可以结合历史系统性能、实时告警指标以及系统性能突变程度等多种指标判别是否存在DDoS攻击。(4)可以实时监测系统运行的进程,根据规则库智能识别恶意的木马或者病毒进程,保证系统的安全平稳运行。9硕士学位论文 第二章Web应用安全威胁及解决方案研究(5)Web服务器在部署完成之后,由于管理上的疏忽或者技术水平限制,服务器往往存在

38、着一些不安全的配置或者开启了一些不必要的服务,攻击者可能会利用这些缺陷发起攻击。Web安全防护系统可以提供安全检测功能,对操作系统以及Web服务器软件中存在的安全隐患进行扫描,并生成扫描报告。通过指导管理员对发现的安全漏洞进行修补,可在一定程度上降低系统遭受攻击的概率。(6)当网站数量比较多时,可以考虑实现网站的集中统一式管理。将网站信息和攻击数据提交统一的数据服务器保存,同时可以考虑实现管理员对网站上安装的Web安全防护系统的远程管理。基于上述解决方案,我们设计实现了一个Web服务器安全监测系统,由于篇幅原因,本文将重点阐述针对两种威胁最为严重的攻击SQL注入攻击和网页篡改攻击相关的研究成果

39、,并在理论研究的基础上介绍相关防御技术的实现。24本章小结本章主要针对Web应用安全相关的关键技术进行了研究,首先介绍了Web安全的起因,之后介绍了Web应用安全所面临的常见威胁,最后结合Web应用防御策略和系统平台防御策略,提出了一个Web服务器平台安全解决方案。10硕士学位论文 第三章SOL注入攻击防护技术研究与实现第三章SQL注入攻击防护技术研究与实现本文第二章介绍了Web应用安全产生的根源及面临的主要威胁,由于Web应用攻击的种类繁多,不可能一一研究,因此本文选择了最具影响力的两种安全威胁作为研究对象。本章将介绍SQL注入攻击特征以及防御技术,并基于服务端过滤技术设计实现了一个Web服

40、务端SQL注入过滤器。31 SOL注入攻击及防护技术解释型语言(interpreted language)在运行时由解释器解释执行,开发w曲应用程序使用的许多核心语言都是解释型语言,由开发人员预设的语句和用户输入拼接而成,如SQL、Perl和PHP等。注入攻击便是基于解释型语言执行方式中存在的漏洞而产生,其中影响最大、危害最严重的是SQL注入攻击。SQL(Structured Query Language,结构化查询语言)【36,371是专为数据库设计的解释型语言,可用于读取、更新、增加或者删除数据库中保存的信息。在Web应用程序中,SQL语言解释器处理的数据实际上是由程序员编写的代码和用户提

41、交的数据共同组成的,攻击者可以提交专门设计的输入向应用程序发起攻击,这些输入通常是在应用程序看来具有特殊意义的SQL语言句法。如果Web应用程序中存在漏洞,即开发人员编写的代码没有对数据库操作相关的用户输入做合法性检查,那么应用程序便会按照攻击者的意图执行。因此,攻击者可以利用这一漏洞完全攻破目标Web应用程序的数据库组件,通过注入恶意SQL语句窃取数据库中的重要信息甚至获取对数据库服务器的完全控制。由于SQL注入攻击采用合法的HrrP请求传输数据,传统的防火墙和入侵检测系统无法识别,必须在应用层加以防范。常见的SQL注入检测及防御技术主要有以下几种【20-2t,3s-4s:(1)静态页面检查

42、【20捌,删:通过黑盒测试或者静态语法解析等技术查找Web应用代码中可能会引发SQL注入攻击的环节,在Web应用发布之前对代码质量进行安全性检查。如IBM公司的Rational Web application security solutions产品就是采用这种技术对服务器安全进行综合测评。(2)服务端过滤技术【46。481:将过滤模块嵌入到Web服务端软件中,根据过滤规则对HTTP输入数据进行分析,找出恶意代码并阻止攻击。该技术的优势在于可以实时防御SQL注入攻击,但也会对服务器响应延迟带来一定影响。(3)参数化查询【2542】:一些高级编程语言提供了数据库操作API以取代传硕士学位论文 第

43、三章SQL注入攻击防护技术研究与实现统的直接使用SQL语句操作数据库的方法,应用程序通过指定查询结构并为输入数据预留占位符,使得输入数据无法破坏原有的查询结构,从而避免了SQL注入攻击的可能。由于该技术对编程语言有特殊要求,在应用上具有一定的局限性;而且对于现存的大量应用而言,这种技术无能为力。由于大多数的Web应用程序开发者不会经常通过静态页面检查的方式去发掘系统漏洞,并且缺乏实时性,而参数化查询技术并不能很好地解决已有系统以及所有类型开发语言的问题,因此本文将重点研究服务端过滤技术。图3-1服务端过滤技术如图31所示,服务端过滤技术需要在Web服务器中添加安全过滤模块,在所有的HTTP请求

44、被提交系统模块处理之前将其拦截并进行安全检测。基于服务端过滤的SQL注入防御技术需要结合SQL注入攻击特征制定过滤规则,并根据过滤规则实现对攻击行为的识别和拦截。本章将首先分析SQL注入攻击特征,并介绍如何使用正则表达式技术实现对攻击特征的完备描述,最后设计了Web服务器过滤模块实现对常见SQL注入攻击的防御。32 SOL注入攻击特征分析SQL注入攻击【24,38-42】可以通过URL参数(GET请求)、表单输入(POST请求)以及Cookie数据等多种途径发起攻击,隐蔽性极强,并且注入手法相当灵活,有经验的攻击者可以通过不断调整攻击参数成功获取想要的数据。因此研究SQL注入攻击的特征对于制定

45、针对性的防范策略极为重要,本节将分别对SQL注入攻击的行为特征和语法特征展开分析。321 SOL注入攻击行为特征1、渗透测试渗透测试是指攻击者通过提交可能引发数据库错误的SQL无效语法作为输入数据,从错误警告中获得数据库相关的信息,并从中判断应用程序是否存在SQL注入漏洞。12硕士学位论文 第三章SQL注入攻击防护技术研究与实现最常见的是通过在URL参数末尾添加“”、“;”等非法字符发起的试探性攻击。如当攻击者输入下列字符串作为URL时,如果Web应用程序没有检查输入数据的正确性,会导致页面中直接返回数据库错误信息【24,411。http:wwwtestcomprofiledo?id=1 23

46、错误信息中可能包含如下内容:“Microsoft OLE DB provider for SQL ServerError。该错误信息为攻击者提供了两个有用的信息,一是该站点采用SQL Server数据库,二是未屏蔽数据库错误信息,表示该站点存在SQL注入漏洞。攻击者可以根据这些信息采取更有针对性的攻击。图32显示了一个典型的由于存在SQL注入漏洞而引发的错误页面,从暴露的堆栈信息中可以知道该应用程序采用的Java语言实现以及相关函数,更为严重的是其中暴露了Web应用程序源代码中存在的整条SQL查询语句:selectcount(木)from corncsusiseVOArticleinfo wh

47、ere articletypearticletypeid in(1,2,3)and ispassed=1 and articletitle like句构造有针对性的攻击数据。,攻击者完全可以利用这一语图3-2 SQL注入漏洞引起的错误页面渗透测试可以应用于多种针对解释型语言的注入攻击,并可能影响Web应用平台架构当中的每个组件,如何检测程序中存在的注入缺陷取决于具体的解释型语言以及应用程序开发人员所使用的编程技术。但是其中仍然存在着一些通用的渗透测试步骤【24,431,主要包括:(1)提交可能引发解释型语言错误或者异常的无效语法。(2)在应用程序的响应中分析是否存在由代码注入漏洞引发的反常现象

48、。(3)分析收到错误消息,判断是否与代码注入漏洞有关。硕士学位论文 第三章SQL注入攻击防护技术研究与实现(4)系统地修改初始输入,通过多次尝试确定最初的漏洞诊断是否准确。(5)利用目标语言或者组件所提供的功能对诊断出的漏洞加以利用,测试是否可以达到攻击目标。2、猜测数据库相关信息攻击者根据已知的数据库漏洞,使用数据库特定的命令并结合“and”或“;”等SQL关键字,可以猜测数据库表名、用户名等信息。利用URL参数发起的典型注入SQL攻击如下【3841】:http:wwwtestcornprofiledo?id=1 23 and(select user(幸)from accounts)=0如果

49、页面返回结果与参数中只包含id=123的情况下相同,说明存在表accounts,如果返回出错信息说明该表不存在,攻击者会使用同样的方法继续猜测数据库表。3、获取系统访问授权利用“OR 1=1”构造出永远为真的语句,并利用关键字“-,注释掉Web应用程序中部分SQL查询条件,攻击者可以构造出巧妙的SQL语句,从而获取系统访问授权【38。421。以一段常见的系统登录代码为例:queryStr=“SELECT牛FROM accounts WHERE user=“+requestgetParameter(“user)+“AND pass=“+requestgetParameter(passwd”)+“”;该段代码用来读取登录表单中的输入数据并构成SQL查询字符串。如果已知用户名为admin,可将user设为admin一屏蔽掉密码验证条件,从而以admin身份登录系统。SELECT宰FROM accounts WHERE user=admin一AND pass=”4、获取或者破坏数据库中存储的数据在上节的登录代码当中,如果攻击者无法获得用户名可将user设为OR 1=1一得到数据库中所有

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报