【JSP开源代码栏目提醒】:本文主要为网学会员提供“Web应用安全防护技术研究与实现 - 其它资料”,希望对需要Web应用安全防护技术研究与实现 - 其它资料网友有所帮助,学习一下!
中南大学 硕士学位
论文Web应用安全防护技术研究与实现 别:硕士 专业:
计算机科学与技术 指导教师:王伟平 20100501 摘要 随着互联网的广泛普及,Web应用平台已经逐渐成为互联网信息交互的中心,随之而来的是Web应用面临的越来越严重的安全威胁,如何保障Web应用安全已经成为一个重要的研究课题。
针对Web应用的攻击与传统网络攻击相比具有许多新特征,如采用正常的H1〕印协议携带恶意数据,使得传统的网络层防火墙和入侵检测系统无法识别,必须从应用层的角度出发进行安全防护。
本文首先研究了Web应用安全产生的根源以及其面临的重要安全威胁,并针对Web应用平台提出了一个安全解决方案。
之后深入研究了SQL注入攻击和网页篡改攻击这两种影响最为严重的Web应用攻击及其防护技术,并在理论研究的基础上对相应的安全防护机制进行了设计与实现。
针对SQL注入攻击,本文深入研究了其攻击行为及语法特征,采用正则表达式对攻击特征进行了完备描述;在研究SQL注入防护技术的基础上,本文基于服务端过滤技术设计实现了一个Web服务端SQL注入攻击过滤器。
该过滤器在HTlrP请求未提交Web服务器系统模块处理前分析请求数据,实时拦截攻击行为并告警;通过采用基于攻击特征的正则表达式描述过滤规则,降低了过滤机制的误报率和漏报率;同时结合了IP访问限制功能,可以预防攻击者发起穷举式SQL注入攻击。
针对网页篡改攻击,本文深入研究了各种防御技术,分析比较了各种技术的优缺点,最后结合Linux文件操作系统和可加载内核模块开发技术,设计实现了一个基于事件触发技术的网页防篡改内核模块,在网页文件被修改时对修改文件的进程和用户进行权限核查,从而实时阻断恶意修改行为。
测试结果表明,本文设计实现的攻击防御机制可以有效防御SQL注入和网页篡改攻击,同时对服务器响应延迟和负载影响较小。
关键词Web应用安全,防护技术,SQL注入,网页防篡改 AB STRACT With the widely spread of the Internet,web application platform hasbecome the communication center of the Internet.But at the salTle time,the threats to the web application are very serious.How to protect webapplications’security is very important.The attacks to the webapplication,comparing with traditional network attacks,have many newfeatures,such as using HT〕曙protocol to carry malicious data,which Cannot be detected by the firewall and intrusion detection system.So wemust defense the attacks from the application layer. In this paper we study the origin and common threms of webapplication security firstly.Then we research and implement a protectmodule to protect web sites from SQL inj ection and tampering web page. To defend SQL injection,we analyze the characteristic of SQLinjection and construct the regular expression for these attacks.Then wedesign a SQL injection attack filter module inside web server,which isbased on the filter rules using regular expression.This module can defendcommon SQL Inj ections,which detectes the attacks before the HTTPrequests handled by the system modules.With the IP limit mechanism,this module can protect web server from exhaustive attacks launched byhackers. To defend web page from tempering,we compare the commontechnologies of web page tamper-resistant,and implement a protectmodule using the event-triggering mechanism which is based on theLinux file system and loadable kernel module developing technology.This module Can detect attacks when the files are being modified,whichcan break attacks immediately. The test results show that the modules can prevent SQL injectionand page tempering attacks effectively,with very little influence to theweb application platform.KEY WORDS web application security,defense technology,S QLinj ection,web page tamper-resistant Il硕士学位
论文 第一章绪论 弟一早 第一章 瑁下匕 绪论1.1课题背景介绍 随着信息化建设的不断推广,企事业单位无论是构建内部的业务应用系统,还是建设对外信息的发布平台,都离不开Web应用技术。
Web应用技术不仅给用户提供一个简单方便的交互平台,也给信息服务商提供了一种构建信息系统的标准技术。
然而随着Web应用平台普及越来越广泛,针对Web应用程序的攻击也越来越多,W曲应用安全【1J正面临日益严峻的威胁和挑战。
美国互联网安全厂商CENZIC的分析报告显示,2008年网络攻击事件有80%都是针对Web应用平台发起的,到2009年这一攻击比例升至了82%f21。
另据CNCERT/CC调查显示,2006年到2007年中国大陆网站恶意挂马事件增长了2.6倍,被篡改网站数量增长了1.5倍,2009年国内被篡改网站数量达到4.2万个【3。
51。
这些攻击事件极大地影响了Web应用平台的正常运行。
目前针对Web应用层的攻击已经多达上千种【2J,最为常见的攻击包括:以SQL注入攻击为代表的各种注入攻击、非法篡改网站页面、网页恶意挂马、跨站点脚本攻击等等。
各种W曲攻击利用的漏洞与攻击手段不尽相同,甚至同一种攻击都可以运用灵活多变的手法来达到攻击者最终的目的。
以SQL注入攻击【6。
8J为例,如果W曲应用开发者编写的
代码没有判断用户输入数据的合法性,攻击者便可以构造恶意数据库查询
代码从而获得某些重要的数据甚至获得服务器高级执行权限。
同时,8QL注入攻击可以利用HTTP协议中的GET方法、POST方法以及Cookie数据【903】等多种途径发起,攻击者可以不断调整攻击参数以达到最终目的。
戍用逻辑 毫皇翼 (浏览器) ……… Intemet 网络 WebH}:l务 器 服务器 数据库 防火墙 服务器 图1-1当前典型的Web应用平台架构 图1.1显示了当前典型的一种Web应用平台架构,客户端(通常为Web浏览器)向Web服务器发送请求,Web服务器将请求转发至应用逻辑服务器或者Web应用程序处理,其中可能会涉及到与数据库服务器的交互。
Web应用程序完硕士学位
论文 第一章绪论成逻辑数据后,将响应内容返回给客户端。
为了保障Web应用平台的安全,许多公司都在网络边界上部署了防火墙或者入侵检测系统。
然而防火墙和入侵检测系统只能拦截针对
网络层的攻击,当攻击者利用Web应用程序漏洞发起针对性攻击时,防火墙和入侵检测系统就无能为力了【14以7l。
网络防火墙能够针对端口实现访问控制功能,但是防火墙必须允许HTTP和HTTPS协议数据通行以保证可以对外正常提供Web服务。
如果攻击
代码被植入到HTTP通信数据中,那么防火墙便无法识别这些通信数据的合法性,从而无法防御此类攻击。
例如SQL注入攻击便是借助合法的HTTP
通信数据,通过在HTTP请求实体中嵌入恶意SQL
查询代码,从而安全地穿过网络防火墙,达到攻击内网数据库的目的。
入侵检测系统也工作在网络层上,并根据特征规则检测攻击行为,但是入侵检测系统对应用层数据的解析能力同样有限。
由此可见,传统网络层的安全防护系统无法有效处理应用层协议数据,更无法结合具体的Web应用程序深入分析请求内容,因而无法防御针对Web应用程序的攻击。
从本质上讲,基于应用层的攻击基本都是由Web应用程序漏洞造成的,由于Web应用程序开发人员技术上或者经验上的原因,没有正确处理各种Web应用安全隐患,最终造成了Web应用层漏洞。
然而实际情况下让所有程序员在编写Web应用程序时都注意防范这些漏洞是不太现实的,而且Web应用攻击方式的不断更新也使得只依靠应用程序本身无法及时防范各种新型攻击。
因此,必须研究专门的Web安全防护策略来保障Web应用平台的安全。
1.2 Web应用安全研究的现状及意义 目前防护利用HTTP协议发起的Web应用攻击,主要采用的技术是对Web服务器的功能做扩展,通过在Web服务器软件中添加安全防护模块,可以在HTTP请求数据尚未被Web服务器系统模块处理之前进行安全检查,区分正
常用户访问和攻击者的恶意数据,这种技术称为“Web服务器扩展技术”或者“Web服务器模块开发技术”,它能够实时防御诸如SQL注入攻击等利用正常H1vrP通信数据的攻击。
然而单纯采用Web服务器扩展技术并不能防御所有类型的攻击,各种攻击原理及模式的不同决定了相应的防护技术也必然会有所区别。
例如,防御SQL注入攻击的关键是能识别出Hr曙请求中的注入字符串。
针对SQL注入攻击的防护技术主要有静态检查、服务端过滤、SQL参数化查询等。
另外华中科技大学周敬利提出了SQL语法预分析技术【l引,它是一种较新的SQL注入防护技术,它通过对用户提交的表单数据和上下文环境组装出一条SQL语句,并对该SQL语句的结构加以分析来识别攻击行为。
这种技术在原有的字符串过滤技术的基础上加以改进,为SQL注入防护技术提供了一种新的思维。
2硕士学位
论文 第一章绪论 与SQL注入攻击不同,篡改网页文件f19】的攻击不一定是通过HTrP通信数据发起,当攻击者通过各种攻击手段获取
系统控制权限后都可以实现对网页内容的篡改,而针对篡改网页行为的防护技术的发展也经历了外挂轮询技术、核心内嵌技术、事件触发技术三个阶段。
由于Web应用安全的威胁日益严峻,越来越多的国内外公司和科研机构开始参与到Web应用安全防护技术的研究中来,使得Web应用安全防护技术不断进步,各种研究成果不断涌现。
国内外关于Web应用安全的代表产品主要有:国内中创
软件商用中间件股份有限公司以国家863技术成果为基础研发的InfoGuard网页防篡改中间件以及上海天存信息技术有限公司采用Web服务器扩展技术研发的iWall应用层防火墙【191;国外IBM公司开发的应用层安全漏洞扫描系统的Rational w曲application security solutions〔20-21】等。
然而由于商业原因,这些公司的技术并不对外公开,只能够从基本防御策略上有所了解;同时针对Web应用的攻击方式和手段也在不断改进和演化,促使我们需要不断研究新的防护技术与策略。
综上所述,由于动态解析模式的Web应用程序的出现,Web应用平台面临着由Web应用程序漏洞所引发的安全威胁。
如何妥善解决这一类安全问题,从应用层的角度出发防御Web应用平台的安全,已经成为一项重要的研究课题。
研究Web应用安全防护技术,对于保障Web应用平台的安全运行,以及保障Web应用访问客户的隐私和安全都有着重要意义。
1.3
论文研究目的及章节安排 l、本文研究目的 在研究了大量的Web应用安全方面的产品和资料以后,我们选择了SQL注入攻击和网页篡改攻击两项影响最为严重的Web应用安全威胁作为研究对象,对其攻击原理以及相关防护技术进行了深入的
学习和研究。
在理论研究的基础上,设计实现针对两类攻击的防御机制,并通过测试验证防御机制的实用性。
总的来说,本文主要的研究目的为: (1)研究Web应用安全产生的根源,了解常见的Web服务攻击技术及相关防护策略,寻找并研究Web平台安全的整体解决方案。
(2)深入研究SQL注入攻击,对其攻击特征进行详细分析和归纳总结以便制定灵活完备的防御策略;结合当前常见的SQL注入防御技术设计实现Web服务端SQL注入过滤器,并研究如何定义过滤规则以实现对攻击特征的完备描述,从而提高攻击过滤的识别率和准确率。
(3)深入研究网页篡改攻击行为及其防御技术,分析比较各种防御技术的 3硕士学位
论文 第一章绪论实现原理,并结合Web服务器平台的实际需要设计实现网页防篡改机制, 同时尽量确保对服务器平台系统的影响较小。
2、本文的结构安排 本
论文共分为六章,其中第一章为
论文绪论,第二章至第五章为
论文主体,第六章为
论文结束语。
第一章介绍了Web应用安全的研究背景、研究现状和研究意义; 第二章主要讨论了Web应用安全的起源以及常见威胁,并针对Web服务器总体安全提出了一个解决方案; 第三章主要研究了SQL注入攻击的行为、语法特征以及防御技术,通过使用正则表达式对攻击特征进行了完备性描述,并结合服务端过滤技术
设计实现了一个Web服务端SQL注入过滤器; 第四章分析了目前主流的网页防篡改技术,并结合Linux操作系统可加载内核模块开发技术,设计了一个基于事件触发技术的操作系统内核级网页防篡改机制,用来实时防御网页篡改事件; 第五章介绍了防御机制的部署,并对防御模块的功能和性能进行了测试,对测试结果进行了讨论; 第六章对本文研究工作进行了总结,指出了
工作中存在的一些问题,并展望了进一步的工作计划。
4硕士学位
论文 第二章Web应用安全威胁及解决方案研究 第二章Web应用安全威胁及解决
方案研究 本章主要介绍Web应用程序安全相关的技术研究,首先对Web应用安全产生的根源进行了深入分析,之后介绍了W曲应用安全的常见威胁,最后介绍了基于应用层的Web安全防御技术,并结合服务器平台安全,提出了一种综合性的Web安全解决方案。
2.1 Web应用安全产生的根源 早期的万维网(World Wide Web)仅仅提供静态HTML【22,231页面浏览服务,多数站点不需要验证用户的合法性,不同的用户从Web站点上获取到的信息也是完全相同的。
在这种情况下,Web站点受到的安全威胁仅仅与Web服务器软件及操作系统的漏洞有关。
如今万维网提供的服务与早期服务相比要复杂得多,许多Web服务站点上运行的是动态解析的应用程序(被称为Web应用程序)。
这些应用程序提供了用户
注册、登录、
搜索、金融交易等与用户身份密切相关的服务,而这些用户专属的服务需要在客户端和服务器之间进行双向数据交互才能完成,交互的数据中不乏个人隐私数据和高度机密的信息。
与其它应用程序一样,由于开发人员的疏漏或者技术能力方面的原因,Web应用程序也会存在各种安全方面的漏洞【241,而Web站点上运行应用程序的多样性,使得这些漏洞也不尽相同、各具特点;同时,由于访问方式的便捷性,使得Web应用普及范围非常广,人们的日常工作和生活对各种WEB应用的依赖程度越来越高,一旦发生安全问题将产生巨大影响。
综合上述原因,当前的Web应用安全问题已变得至关重要。
Web应用安全的核心问题在于运行于服务器端的Web应用程序无法干预客户端浏览器用户的操作。
用户可以向Web应用程序任意提交各种各样的输入数据,如果用户所提供的输入数据中含有恶意
代码,便会使应用程序出现设计者无法预料的错误或者异常状况。
这种安全隐患具体表现在以下几个方面〔2s-27〕: (1)攻击者可以篡改客户端与服务器间交互的任何数据,包括请求参数、Cookie和H1〕rP信息头,甚至可以巧妙避开客户端的安全控件【25】。
(2)攻击者通过构造恶意参数,导致用户输入与应用程序开发人员的最初假设完全不同,从而引发应用程序错误或者异常【25l。
(3)攻击者可用的攻击工具趋向多样化和智能化,这些工具或者整合在浏览器当中,或者独立于浏览器运行,而且它们往往能够实现浏览器无法达到的效硕士学位
论文 第二章Web应用安全威胁及解决方案研究果,可以在瞬间迅速生成大量的请求,更易于查找并利用Web应用
程序漏洞达到自身目的【26·27】。
为了保证Web应用的安全,Web应用程序必须假设所有的输入信息都是恶意的,并采取必要的措施确保攻击者无法使用专门设计的输入破坏应用程序,干扰应用程序正常的逻辑行为,或者非法访问重要数据【2引。
但是下面的这些因素使得仅仅依靠Web应用程序无法很好的解决上述安全
问题: (1)缺乏安全意识:与网络和操作系统这些发展时间更长的领域相比,人们对Web应用程序安全问题的意识还远远不够成熟,很多Web应用程序的开发人员对Web应用安全领域相关的核心概念并不了解,甚至存在误解,因此缺乏应对这些安全问题的知识与经验。
(2)设计缺陷多样:大多数Web应用程序都由企业自己的员工或者与外包给其它中小型公司开发完成,加之滥用第三方程序模块,导致每个应用程序都存在着独特的设计缺陷。
这与使用业界一流产品并按照行业标准部署的典型基础架构(如操作系统、数据库系统等)形成了鲜明的对比。
(3)安全威胁更新快:新型的Web应用安全威胁出现得非常迅速,虽然在项目开发初期处理了应用程序面临的安全威胁,但是很可能在应用程序开发完成后会发现面临许多新的威胁。
(4)缺乏高质量的安全测试:受到开发资源与时间限制等的影响,很多开发团队只通过快速渗透测试发现明显的安全漏洞,而无暇考虑不是很明显的安全问题,从而造成安全隐患。
2.2 Web应用安全面临的威胁 Open Web Application Security Vroject(OWASP)这一全球性
开源组织长期致力于发现并解决Web应用安全问题,它们最重要的项目之一是“Web应用的十大安全隐患”【29】,其中总结了目前Web应用最常受到的十种攻击,并且按照攻击发生的概率进行了排序。
该项目主要是为了发掘业界最重要的Web应用安全隐患,并且加强企业对Web应用安全的意识。
该项目最新版本的报告是2010 RCl版【30】,虽然只是候选版本,但仍具有很高的参考价值。
表2.1结合2004t3¨、2007t321两年的数据与2010 RCI版本中“十大安全隐患”进行了比较,并按照威胁程度高低由上至下加以排列。
从中我们可以发现,在2004年的
报告中,诸如缓冲区溢出、拒绝服务攻击等与系统漏洞相关的攻击仍占很大比例,随着时间的推移,后期的攻击报告显示Web应用程序本身漏洞造成的安全隐患正在占有越来越高的比率,其中SQL注入攻击、跨站脚本等威胁最为严重,在CENZIC公司2009年下半期的Web应用安全趋势报告 6硕士学位
论文 第二章Web应用安全威胁及解决方案研究中,这两种攻击的数量分别占到了16%和19%的比例。
表2-1 Web安全十大隐患发展趋势 下面本节对几类OWASP提到的Web应用安全威胁进行简要介绍: (1)注入攻击124,30J:该类漏洞往往是应用程序缺少对输入数据的合法性检查引起的,攻击者把包含恶意指令的数据发送给应用程序解释器,解释器便会把收到的数据直接转换成指令执行。
常见的注入包括SQL注入,OS Shell,LDAP,Xpath,Hibemate等等,攻击所造成的后果往往比较严重。
其中SQL注入尤为常见,危害也最为严重,通过SQL注入攻击可以窃取或者篡改整个数据库的信息,甚至能够获得管理员级别的访问权限。
命令注入利用了Web应用脚本可与操作系统交互的特点,通过注入操作系统级API获得服务器控制权限。
(2)跨站点脚本攻击(Cross Site Scripting)〔24,30-32】:由于Wreb应用程序生成HTTP响应的过程存在缺陷,攻击者可以利用该程序向返回给客户的Web页面中插入恶意脚本
代码。
当客户端浏览该页面时,嵌入其中的脚本
代码会被执行,从而达到恶意用户的特殊目的。
XSS根据攻击手段分为反射型、保存型和基于DOM的XSS攻击,相应的防御技术也有所不同。
(3)请求伪划24,3∞2l:也称为会话叠置,它是一种会话劫持攻击,分为本站点请求伪造和跨站点请求伪造两种。
本站点请求伪造常常与保存型XSS漏洞结合使用;跨站点请求伪造通过强迫受害者的浏览器向一个存在漏洞的Web应用程序发送请求来达到攻击者的预期目的。
(4)攻击验证机制和会话管理【24,30-321:验证机制通过检查用户身份来达到防御未授权用户访问的目的,然而Web应用程序存在的设计缺陷使得攻击者可以突破这一防御机制成功获得访问授权。
会话管理用来帮助Web应用程序从大量不同的HTTP请求当中确认特定的用户。
攻击者通过窃听用户访问Web应用程序时的用户名和密码,或者会话(Session)数据,可以得到会话标识(session 7硕士学位
论文 第二章Web应用安全威胁及解决方案研究ID),进而冒充合法用户发起HTTP访问。
(5)重定向和转发攻击【30l:在Web应用中重定向极为普遍,如果重定向URL中带有用户输入参数并且应用程序未对这些参数加以验证,那么攻击者就可以利用该漏洞引导用户访问某些恶意站点。
转发普遍存在于对本地新页面的发送请求实现中,同样如果未对参数加以验证,那么就可以被攻击者用来绕过认证或是授权检查机制。
重定向攻击会导致用户访问钓鱼网站或是恶意网站,而攻击者利用转发攻击来达到绕过认证或是授权机制的目的。
针对上述安全威胁,最有效的防御技术是在Web应用程序中实现对输入数据的合法性检测,对于非法的输入数据直接丢弃或者返回错误警告。
基于Web服务器核心内嵌技术的防御机制,往往采用数据过滤的方式对恶意输入数据进行识别和拦截。
除去上述OWASP和CENZIC公布的Web应用攻击之外,国家互联网应急中心(CNCEI刑CC)对两类Web应用攻击事件极为关注,它们是网页篡改事件和恶意网页挂马p《J。
网页篡改是指攻击者利用网站漏洞恶意修改Web站点页面内容的攻击事件;恶意网页挂马是指攻击者向正常页面中植入恶意
代码,当客户端浏览这些页面时,恶意
代码便会通过多次跳转后从攻击者服务器下载木马程序并执行,从而窃取客户信息或者对客户端主机造成破坏。
由于互联网产业的迅速发展以及互联网用户的广泛普及,使得这些攻击事件的影响非常深远。
与上述应用程序漏洞相比,这两种攻击的防御技术各有不同。
网页防篡改技术经历了从及时恢复到实时拦截的发展阶段;网页挂马可以通过服务端静态扫描技术发现恶意挂马,也可以在客户端拦截跳转次数过多的HTTP访问数据。
2.3 .