毕业设计(论文)-防火墙在web安全中的应用

毕业设计(论文)-防火墙在web安全中的应用

ID:6327243

大小:220.50 KB

页数:33页

时间:2018-01-10

上传者:U-1863
毕业设计(论文)-防火墙在web安全中的应用_第1页
毕业设计(论文)-防火墙在web安全中的应用_第2页
毕业设计(论文)-防火墙在web安全中的应用_第3页
毕业设计(论文)-防火墙在web安全中的应用_第4页
毕业设计(论文)-防火墙在web安全中的应用_第5页
资源描述:

《毕业设计(论文)-防火墙在web安全中的应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

防火墙在Web安全中的应用郑州轻院轻工职业学院专防火墙在Web中的应用题目防火墙在Web安全中的应用学生姓名专业班级08信息安全(2)班学号系别计算机系指导教师(职称)完成时间2010年月日33 防火墙在Web安全中的应用防火墙在WEB安全中的应用摘要在Web技术飞速演变,电子商务蓬勃发展的今天,企业开发的很多新应用程序,而且Web服务也被越来越频繁地永固集成Web应用程序或与其交互,这些趋势带来的问题就是:Web应用程序的服务的增长已超越了程序开发人员所接受的安全培训和安全意识的范围。Web应用系统的安全按达到了前所未有的高度。目前很多业务都依赖于互联网,例如说网上银行、网络购物、网游等,很多恶意攻击者出于不良的目的对Web服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。正是因为这样,Web业务平台最容易遭受攻击。同时,对Web服务器的攻击也可以说是形形色色、种类繁多,常见的有挂马、SQL注入、缓冲区溢出、嗅探、利用IIS等针对Webserver漏洞进行攻击。 一方面,由于TCP/IP的设计是没有考虑安全问题的,这使得在网络上传输的数据是没有任何安全防护的。攻击者可以利用系统漏洞造成系统进程缓冲区溢出,攻击者可能获得或者提升自己在有漏洞的系统上的用户权限来运行任意程序,甚至安装和运行恶意代码,窃取机密数据。而应用层面的软件在开发过程中也没有过多考虑到安全的问题,这使得程序本身存在很多漏洞,诸如缓冲区溢出、SQL注入等等流行的应用层攻击,这些均属于在软件研发过程中疏忽了对安全的考虑所致。 另一方面,用户对某些隐秘的东西带有强烈的好奇心,一些利用木马或病毒程序进行攻击的攻击者,往往就利用了用户的这种好奇心理,将木马或病毒程序捆绑在一些艳丽的图片、音视频及免费软件等文件中,然后把这些文件置于某些网站当中,再引诱用户去单击或下载运行,利用用户的好奇心理引诱用户打开或运行这些文件。为了应对这一系列的Web安全问题,我们启用了防火墙。那么,面对这么多的Web安全问题,我们又该如何合理的运用防火墙呢?关键词:互联网/Web安全/防火墙33 防火墙在Web安全中的应用防火墙在WEB安全中的应用ABSTRACTIntherapidevolutionofWebtechnology,e-commerceboomingtoday,alotofcompaniestodevelopnewapplicationsandWebserviceshavebeenintegratedmoreandmorefrequentexistenceorinteractwithWebapplications,theproblemiscausedbythesetrends:Webthegrowthofapplicationserviceprogramdevelopershavegonebeyondtheacceptablesafetyrangeoftrainingandsafetyawareness.Webapplicationsecurityatanunprecedentedheight.Atpresent,manybusinessesrelyontheInternet,forexample,onlinebanking,onlineshopping,onlinegames,etc.,manyoftheattackerformaliciouspurposesundesirableWebserverattacks,tryingtogetpeoplethroughvariousmeanstobenefitthepersonalaccountinformation.Itisbecauseofthis,Webservicesplatformisvulnerabletoattack.Meanwhile,attacksonWebserverscanalsobesaidtobediverse,variety,commontohanghorse,SQLinjection,bufferoverflow,sniffing,usingIISWebservervulnerabilityforsuchattacks.Ontheonehand,theTCP/IPisdesignedwithoutconsideringsecurityissues,whichmakesdatatransmittedoverthenetworkwithoutanysecurityprotection.Anattackercouldexploitloopholesinthesystemcausethesystemtoprocessabufferoverflowcouldallowanattackertoobtainorupgradetheirsystemsinavulnerableuserrightstorunanyprogram,oreveninstallandrunmaliciouscodetostealconfidentialdata.Theapplication-levelsoftwaredevelopmentprocessdoesnotgivemuchthoughttosafetyissues,whichtherearemanyloopholesintheprogramitself,suchasbufferoverflows,SQLinjection,andsopopularapplication-layerattacks,whichbelonginthesoftwaredevelopmentprocessneglectduetosecurityconsiderations.Ontheotherhand,usersofsomeofthehiddenthingswithastrongcuriosity,someprogramsuseTrojanhorseorvirusattacktheattacker,oftenontheuseoftheuserofthiscuriosity,theTrojanhorseorvirusprogramsbundledinanumberofbrightpictures,audioandvideofilesandfreesoftware,andthenputsomeofthesiteswhichthesefiles,andthenenticeuserstoclickordownloadandrun,usingtheuser'scuriositytolureuserstoopenorrunthesefiles.ToaddressthisseriesofWebsecurityissues,weenablethefirewall.Then,thefaceofsomanyWebsecurityissues,howshouldweuseafirewallitreasonable?KEYWORDSInternet/WebSecurity/Firewall33 防火墙在Web安全中的应用目录一、什么是Web安全7二、Web安全威胁日趋严重的原因7三、常见的WEB安全攻击种类8四、防火墙定义8五、防火墙的基本特性95.1内部网络和外部网络之间的所有网络数据流都必须经过防火墙95.2只有符合安全策略的数据流才能通过防火墙95.3防火墙自身应具有非常强的抗攻击免疫力105.4代理服务105.5防火墙的优点10六、防火墙功能116.1网络安全的屏障116.2强化网络安全策略116.3对网络存取和访问进行监控审计116.4防止内部信息的外泄12七、防火墙工作原理127.1 服务器TCP/UDP端口过滤147.2 客户机也有TCP/UDP端口147.3双向过滤1633 防火墙在Web安全中的应用7.4检查ACK位167.5FTP带来的困难177.6UDP端口过滤187.7注意事项18八、防火墙分类:208.1网络层防火墙208.2.应用层防火墙208.3链路层防火墙228.4WEB应用防火墙22九、web应用防火墙简介22十、防火墙在WEB安全中的应用2310.1深度数据包处理2410.2TCP/IP终止2410.3SSL终止2410.4URL过滤2410.5请求分析2410.6用户会话跟踪2510.7响应模式匹配2510.8行为建模25十一、Web应用防火墙的特点2611.1异常检测协议2611.2增强的输入验证2633 防火墙在Web安全中的应用11.3消极的安全模型VS积极的安全模型2611.4自动开发策略可以解决以上问题:2711.5及时补丁2811.6基于规则的保护和基于异常的保护2811.7状态管理2911.8其他防护技术29十二、防火墙与IDS联动工作共保Web安全3012.1 IDS简介3012.2防火墙与IDS联动工作原理30致谢32参考文献3333 防火墙在Web安全中的应用防火墙在WEB安全中的应用一、什么是Web安全  随着Web2.0、社交网络、微博等等一系列新型的互联网产品的诞生,基于Web环境的互联网应用越来越广泛,企业信息化的过程中各种应用都架设在Web平台上,Web业务的迅速发展也引起黑客们的强烈关注,接踵而至的就是Web安全威胁的凸显,黑客利用网站操作系统的漏洞和Web服务程序的SQL注入漏洞等得到Web服务器的控制权限,轻则篡改网页内容,重则窃取重要内部数据,更为严重的则是在网页中植入恶意代码,使得网站访问者受到侵害。这也使得越来越多的用户关注应用层的安全问题,对Web应用安全的关注度也逐渐升温。二、Web安全威胁日趋严重的原因 目前很多业务都依赖于互联网,例如说网上银行、网络购物、网游等,很多恶意攻击者出于不良的目的对Web服务器进行攻击,想方设法通过各种手段获取他人的个人账户信息谋取利益。正是因为这样,Web业务平台最容易遭受攻击。同时,对Web服务器的攻击也可以说是形形色色、种类繁多,常见的有挂马、SQL注入、缓冲区溢出、嗅探、利用IIS等针对Webserver漏洞进行攻击。 一方面,由于TCP/IP的设计是没有考虑安全问题的,这使得在网络上传输的数据是没有任何安全防护的。攻击者可以利用系统漏洞造成系统进程缓冲区溢出,攻击者可能获得或者提升自己在有漏洞的系统上的用户权限来运行任意程序,甚至安装和运行恶意代码,窃取机密数据。而应用层面的软件在开发过程中也没有过多考虑到安全的问题,这使得程序本身存在很多漏洞,诸如缓冲区溢出、SQL注入等等流行的应用层攻击,这些均属于在软件研发过程中疏忽了对安全的考虑所致。 另一方面,用户对某些隐秘的东西带有强烈的好奇心,一些利用木马或病毒程序进行攻击的攻击者,往往就利用了用户的这种好奇心理,将木马或病毒程序捆绑在一些艳丽的图片、音视频及免费软件等文件中,然后把这些文件置于某些网站当中,再引诱用户去单击或下载运行。或者通过电子邮件附件和QQ、MSN等即时聊天软件,将这些捆绑了木马或病毒的文件发送给用户,利用用户的好奇心理引诱用户打开或运行这些文件。三、常见的WEB安全攻击种类 33 防火墙在Web安全中的应用1、SQL注入:即通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。 2、跨站脚本攻击(也称为XSS):指利用网站漏洞从用户那里恶意盗取信息。用户在浏览网站、使用即时通讯软件、甚至在阅读电子邮件时,通常会点击其中的链接。攻击者通过在链接中插入恶意代码,就能够盗取用户信息。 3、网页挂马:把一个木马程序上传到一个网站里面然后用木马生成器生一个网马,再上到空间里面,再加代码使得木马在打开网页里运行。四、防火墙定义 所谓防火墙指的是一个由软件和硬件设备组合而成、在内部网和外部网之间、专用网与公共网之间的界面上构造的保护屏障.是一种获取安全性方法的形象说法,它是一种计算机硬件和软件的结合,使Internet与Intranet之间建立起一个安全网关(SecurityGateway),从而保护内部网免受非法用户的侵入,防火墙主要由服务访问规则、验证工具、包过滤和应用网关4个部分组成, 防火墙就是一个位于计算机和它所连接的网络之间的软件或硬件(其中硬件防火墙用的较少,例如国防部以及大型机房等地才用,因为它价格昂贵)。该计算机流入流出的所有网络通信均要经过此防火墙。 防火墙英语为firewall《英汉证券投资词典》的解释为:金融机构内部将银行业务与证券业务严格区分开来的法律屏障,旨在防止可能出现的内幕消息共享等不公平交易出现。使用防火墙比喻不要引火烧身。 当然,既然打算由浅入深的来了解,就要先看看防火墙的概念了。防火墙是汽车中一个部件的名称。在汽车中,利用防火墙把乘客和引擎隔开,以便汽车引擎一旦著火,防火墙不但能保护乘客安全,而同时还能让司机继续控制引擎。在电脑术语中,当然就不是这个意思了,我们可以类比来理解,在网络中,所谓“防火墙”,是指一种将内部网和公众访问网(如Internet)分开的方法,它实际上是一种隔离技术。防火墙是在两个网络通讯时执行的一种访问控制尺度,它能允许你“同意”的人和数据进入你的网络,同时将你“不同意”的人和数据拒之门外,最大限度地阻止网络中的黑客来访问你的网络。换句话说,如果不通过防火墙,公司内部的人就无法访问Internet,Internet上的人也无法和公司内部的人进行通信。  防火墙具有很好的保护作用。入侵者必须首先穿越防火墙的安全防线,才能接触目标计算机。你可以将防火墙配置成许多不同保护级别。高级别的保护可能会禁止一些服务,如视频流等,但至少这是你自己的保护选择。33 防火墙在Web安全中的应用五、防火墙的基本特性  5.1内部网络和外部网络之间的所有网络数据流都必须经过防火墙  这是防火墙所处网络位置特性,同时也是一个前提。因为只有当防火墙是内、外部网络之间通信的唯一通道,才可以全面、有效地保护企业网部网络不受侵害。  根据美国国家安全局制定的《信息保障技术框架》,防火墙适用于用户网络系统的边界,属于用户网络边界的安全保护设备。所谓网络边界即是采用不同安全策略的两个网络连接处,比如用户网络和互联网之间连接、和其它业务往来单位的网络连接、用户内部网络不同部门之间的连接等。防火墙的目的就是在网络连接之间建立一个安全控制点,通过允许、拒绝或重新定向经过防火墙的数据流,实现对进、出内部网络的服务和访问的审计和控制。  典型的防火墙体系网络结构如下图所示。从图中可以看出,防火墙的一端连接企事业单位内部的局域网,而另一端则连接着互联网。所有的内、外部网络之间的通信都要经过防火墙。  5.2只有符合安全策略的数据流才能通过防火墙  防火墙最基本的功能是确保网络流量的合法性,并在此前提下将网络的流量快速的从一条链路转发到另外的链路上去。从最早的防火墙模型开始谈起,原始的防火墙是一台“双穴主机”,即具备两个网络接口,同时拥有两个网络层地址。防火墙将网络上的流量通过相应的网络接口接收上来,按照OSI协议栈的七层结构顺序上传,在适当的协议层进行访问规则和安全审查,然后将符合通过条件的报文从相应的网络接口送出,而对于那些不符合通过条件的报文则予以阻断。因此,从这个角度上来说,防火墙是一个类似于桥接或路由器的、多端口的(网络接口>=2)转发设备,它跨接于多个分离的物理网段之间,并在报文转发过程之中完成对报文的审查工作。  5.3防火墙自身应具有非常强的抗攻击免疫力  这是防火墙之所以能担当企业内部网络安全防护重任的先决条件。防火墙处于网络边缘,它就像一个边界卫士一样,每时每刻都要面对黑客的入侵,这样就要求防火墙自身要具有非常强的抗击入侵本领。它之所以具有这么强的本领防火墙操作系统本身是关键,只有自身具有完整信任关系的操作系统才可以谈论系统的安全性。其次就是防火墙自身具有非常低的服务功能,除了专门的防火墙嵌入系统外,再没有其它应用程序在防火墙上运行。当然这些安全性也只能说是相对的。33 防火墙在Web安全中的应用  目前国内的防火墙几乎被国外的品牌占据了一半的市场,国外品牌的优势主要是在技术和知名度上比国内产品高。而国内防火墙厂商对国内用户了解更加透彻,价格上也更具有优势。防火墙产品中,国外主流厂商为思科(Cisco)、CheckPoint、NetScreen等,国内主流厂商为东软、天融信、网御神州、联想、方正等,它们都提供不同级别的防火墙产品。5.4代理服务  代理服务设备(可能是一台专属的硬件,或只是普通机器上的一套软件)也能像应用程序一样回应输入封包(例如连接要求),同时封锁其他的封包,达到类似于防火墙的效果。  代理由外在网络使窜改一个内部系统更加困难,并且一个内部系统误用不一定会导致一个安全漏洞可开采从防火墙外面(只要应用代理剩下的原封和适当地被配置)。相反地,入侵者也许劫持一个公开可及的系统和使用它作为代理人为他们自己的目的;代理人然后伪装作为那个系统对其它内部机器。当对内部地址空间的用途加强安全,破坏狂也许仍然使用方法譬如IP欺骗试图通过小包对目标网络。  防火墙经常有网络地址转换(NAT)的功能,并且主机被保护在防火墙之后共同地使用所谓的“私人地址空间”,依照被定义在[RFC1918]。管理员经常设置了这样情节在努力(无定论的有效率)假装内部地址或网络。  防火墙的适当的配置要求技巧和智能。它要求管理员对网络协议和电脑安全有深入的了解。因小差错可使防火墙不能作为安全工具。5.5防火墙的优点  (1)防火墙能强化安全策略。  (2)防火墙能有效地记录Internet上的活动。  (3)防火墙限制暴露用户点。防火墙能够用来隔开网络中一个网段与另一个网段。这样,能够防止影响一个网段的问题通过整个网络传播。  (4)防火墙是一个安全策略的检查站。所有进出的信息都必须通过防火墙,防火墙便成为安全问题的检查点,使可疑的访问被拒绝于门外。六、防火墙功能  防火墙最基本的功能就是控制在计算机网络中,不同信任程度区域间传送的数据流。例如互联网是不可信任的区域,而内部网络是高度信任的区域。以避免安全策略中禁止的一些通信,与建筑中的防火墙功能相似。它有控制信息基本的任务在不同信任的区域。典型信任的区域包括互联网(一个没有信任的区域)和一个内部网络(一个高信任的区域)。最终目标是提供受控连通性在不同水平的信任区域通过安全政策的运行和连通性模型之间根据最少特权原则。  例如:TCP/IPPort135~139是Microsoft33 防火墙在Web安全中的应用Windows的【网上邻居】所使用的。如果计算机有使用【网上邻居】的【共享文件夹】,又没使用任何防火墙相关的防护措施的话,就等于把自己的【共享文件夹】公开到Internet,供不特定的任何人有机会浏览目录内的文件。且早期版本的Windows有【网上邻居】系统溢出的无密码保护的漏洞(这里是指【共享文件夹】有设密码,但可经由此系统漏洞,达到无须密码便能浏览文件夹的需求)。  防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端口。而且它还能禁止特定端口的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。6.1网络安全的屏障  一个防火墙(作为阻塞点、控制点)能极大地提高一个内部网络的安全性,并通过过滤不安全的服务而降低风险。由于只有经过精心选择的应用协议才能通过防火墙,所以网络环境变得更安全。如防火墙可以禁止诸如众所周知的不安全的NFS协议进出受保护网络,这样外部的攻击者就不可能利用这些脆弱的协议来攻击内部网络。防火墙同时可以保护网络免受基于路由的攻击,如IP选项中的源路由攻击和ICMP重定向中的重定向路径。防火墙应该可以拒绝所有以上类型攻击的报文并通知防火墙管理员。6.2强化网络安全策略  通过以防火墙为中心的安全方案配置,能将所有安全软件(如口令、加密、身份认证、审计等)配置在防火墙上。与将网络安全问题分散到各个主机上相比,防火墙的集中安全管理更经济。例如在网络访问时,一次一密口令系统和其它的身份认证系统完可以不必分散在各个主机上,而集中在防火墙一身上。6.3对网络存取和访问进行监控审计  如果所有的访问都经过防火墙,那么,防火墙就能记录下这些访问并作出日志记录,同时也能提供网络使用情况的统计数据。当发生可疑动作时,防火墙能进行适当的报警,并提供网络是否受到监测和攻击的详细信息。另外,收集一个网络的使用和误用情况也是非常重要的。首先的理由是可以清楚防火墙是否能够抵挡攻击者的探测和攻击,并且清楚防火墙的控制是否充足。而网络使用统计对网络需求分析和威胁分析等而言也是非常重要的。6.4防止内部信息的外泄 33 防火墙在Web安全中的应用 通过利用防火墙对内部网络的划分,可实现内部网重点网段的隔离,从而限制了局部重点或敏感网络安全问题对全局网络造成的影响。再者,隐私是内部网络非常关心的问题,一个内部网络中不引人注意的细节可能包含了有关安全的线索而引起外部攻击者的兴趣,甚至因此而暴漏了内部网络的某些安全漏洞。使用防火墙就可以隐蔽那些透漏内部细节如Finger,DNS等服务。Finger显示了主机的所有用户的注册名、真名,最后登录时间和使用shell类型等。但是Finger显示的信息非常容易被攻击者所获悉。攻击者可以知道一个系统使用的频繁程度,这个系统是否有用户正在连线上网,这个系统是否在被攻击时引起注意等等。防火墙可以同样阻塞有关内部网络中的DNS信息,这样一台主机的域名和IP地址就不会被外界所了解。七、防火墙工作原理  防火墙就是一种过滤塞(目前你这么理解不算错),你可以让你喜欢的东西通过这个塞子,别的玩意都统统过滤掉。在网络的世界里,要由防火墙过滤的就是承载通信数据的通信包。  天下的防火墙至少都会说两个词:Yes或者No。直接说就是接受或者拒绝。最简单的防火墙是以太网桥。但几乎没有人会认为这种原始防火墙能管多大用。大多数防火墙采用的技术和标准可谓五花八门。这些防火墙的形式多种多样:有的取代系统上已经装备的TCP/IP协议栈;有的在已有的协议栈上建立自己的软件模块;有的干脆就是独立的一套操作系统。还有一些应用型的防火墙只对特定类型的网络连接提供保护(比如SMTP或者HTTP协议等)。还有一些基于硬件的防火墙产品其实应该归入安全路由器一类。以上的产品都可以叫做防火墙,因为他们的工作方式都是一样的:分析出入防火墙的数据包,决定放行还是把他们扔到一边。  所有的防火墙都具有IP地址过滤功能。这项任务要检查IP包头,根据其IP源地址和目标地址作出放行/丢弃决定。看看下面这张图,两个网段之间隔了一个防火墙,防火墙的一端有台UNIX计算机,另一边的网段则摆了台PC客户机。  当PC客户机向UNIX计算机发起telnet请求时,PC的telnet客户程序就产生一个TCP包并33 防火墙在Web安全中的应用把它传给本地的协议栈准备发送。接下来,协议栈将这个TCP包“塞”到一个IP包里,然后通过PC机的TCP/IP栈所定义的路径将它发送给UNIX计算机。在这个例子里,这个IP包必须经过横在PC和UNIX计算机中的防火墙才能到达UNIX计算机。  现在我们“命令”(用专业术语来说就是配制)防火墙把所有发给UNIX计算机的数据包都给拒了,完成这项工作以后,“心肠”比较好的防火墙还会通知客户程序一声呢!既然发向目标的IP数据没法转发,那么只有和UNIX计算机同在一个网段的用户才能访问UNIX计算机了。  还有一种情况,你可以命令防火墙专给那台可怜的PC机找茬,别人的数据包都让过就它不行。这正是防火墙最基本的功能:根据IP地址做转发判断。但要上了大场面这种小伎俩就玩不转了,由于黑客们可以采用IP地址欺骗技术,伪装成合法地址的计算机就可以穿越信任这个地址的防火墙了。不过根33 防火墙在Web安全中的应用据地址的转发决策机制还是最基本和必需的。另外要注意的一点是,不要用DNS主机名建立过滤表,对DNS的伪造比IP地址欺骗要容易多了。 7.1 服务器TCP/UDP端口过滤  仅仅依靠地址进行数据过滤在实际运用中是不可行的,还有个原因就是目标主机上往往运行着多种通信服务,比方说,我们不想让用户采用telnet的方式连到系统,但这绝不等于我们非得同时禁止他们使用SMTP/POP邮件服务器吧?所以说,在地址之外我们还要对服务器的TCP/UDP端口进行过滤。  比如,默认的telnet服务连接端口号是23。假如我们不许PC客户机建立对UNIX计算机(在这时我们当它是服务器)的telnet连接,那么我们只需命令防火墙检查发送目标是UNIX服务器的数据包,把其中具有23目标端口号的包过滤就行了。这样,我们把IP地址和目标服务器TCP/UDP端口结合起来不就可以作为过滤标准来实现相当可靠的防火墙了吗?不,没这么简单。 7.2 客户机也有TCP/UDP端口  TCP/IP是一种端对端协议,每个网络节点都具有唯一的地址。网络节点的应用层也是这样,处于应用层的每个应用程序和服务都具有自己的对应“地址”,也就是端口号。地址和端口都具备了才能建立客户机和服务器的各种应用之间的有效通信联系。比如,telnet服务器在端口23侦听入站连接。同时telnet客户机也有一个端口号,否则客户机33 防火墙在Web安全中的应用的IP栈怎么知道某个数据包是属于哪个应用程序的呢?  由于历史的原因,几乎所有的TCP/IP客户程序都使用大于1023的随机分配端口号。只有UNIX计算机上的root用户才可以访问1024以下的端口,而这些端口还保留为服务器上的服务所用。所以,除非我们让所有具有大于1023端口号的数据包进入网络,否则各种网络连接都没法正常工作。  这对防火墙而言可就麻烦了,如果阻塞入站的全部端口,那么所有的客户机都没法使用网络资源。因为服务器发出响应外部连接请求的入站(就是进入防火墙的意思)数据包都没法经过防火墙的入站过滤。反过来,打开所有高于1023的端口就可行了吗?也不尽然。由于很多服务使用的端口都大于1023,比如Xclient、基于RPC的NFS服务以及为数众多的非UNIXIP产品等(NetWare/IP)就是这样的。那么让达到1023端口标准的数据包都进入网络的话网络还能说是安全的吗?连这些客户程序都不敢说自己是足够安全的。  33 防火墙在Web安全中的应用7.3双向过滤  OK,咱们换个思路。我们给防火墙这样下命令:已知服务的数据包可以进来,其他的全部挡在防火墙之外。比如,如果你知道用户要访问Web服务器,那就只让具有源端口号80的数据包进入网络:  不过新问题又出现了。首先,你怎么知道你要访问的服务器具有哪些正在运行的端口号呢?象HTTP这样的服务器本来就是可以任意配置的,所采用的端口也可以随意配置。如果你这样设置防火墙,你就没法访问哪些没采用标准端口号的的网络站点了!反过来,你也没法保证进入网络的数据包中具有端口号80的就一定来自Web服务器。有些黑客就是利用这一点制作自己的入侵工具,并让其运行在本机的80端口!  7.4检查ACK位  源地址我们不相信,源端口也信不得了,这个不得不与黑客共舞的疯狂世界上还有什么值得我33 防火墙在Web安全中的应用们信任呢?还好,事情还没到走投无路的地步。对策还是有的,不过这个办法只能用于TCP协议。  TCP是一种可靠的通信协议,“可靠”这个词意味着协议具有包括纠错机制在内的一些特殊性质。为了实现其可靠性,每个TCP连接都要先经过一个“握手”过程来交换连接参数。还有,每个发送出去的包在后续的其他包被发送出去之前必须获得一个确认响应。但并不是对每个TCP包都非要采用专门的ACK包来响应,实际上仅仅在TCP包头上设置一个专门的位就可以完成这个功能了。所以,只要产生了响应包就要设置ACK位。连接会话的第一个包不用于确认,所以它就没有设置ACK位,后续会话交换的TCP包就要设置ACK位了。  举个例子,PC向远端的Web服务器发起一个连接,它生成一个没有设置ACK位的连接请求包。当服务器响应该请求时,服务器就发回一个设置了ACK位的数据包,同时在包里标记从客户机所收到的字节数。然后客户机就用自己的响应包再响应该数据包,这个数据包也设置了ACK位并标记了从服务器收到的字节数。通过监视ACK位,我们就可以将进入网络的数据限制在响应包的范围之内。于是,远程系统根本无法发起TCP连接但却能响应收到的数据包了。  这套机制还不能算是无懈可击,简单地举个例子,假设我们有台内部Web服务器,那么端口80就不得不被打开以便外部请求可以进入网络。还有,对UDP包而言就没法监视ACK位了,因为UDP包压根就没有ACK位。还有一些TCP应用程序,比如FTP,连接就必须由这些服务器程序自己发起。7.5FTP带来的困难  一般的Internet服务对所有的通信都只使用一对端口号,FTP程序在连接期间则使用两对端口号。第一对端口号用于FTP的“命令通道”提供登录和执行命令的通信链路,而另一对端口号则用于FTP的“数据通道”提供客户机和服务器之间的文件传送。  在通常的FTP会话过程中,客户机首先向服务器的端口21(命令通道)发送一个TCP连接请求,然后执行LOGIN、DIR等各种命令。一旦用户请求服务器发送数据,FTP服务器就用其20端口33 防火墙在Web安全中的应用(数据通道)向客户的数据端口发起连接。问题来了,如果服务器向客户机发起传送数据的连接,那么它就会发送没有设置ACK位的数据包,防火墙则按照刚才的规则拒绝该数据包同时也就意味着数据传送没戏了。通常只有高级的、也就是够聪明的防火墙才能看出客户机刚才告诉服务器的端口,然后才许可对该端口的入站连接。7.6UDP端口过滤  好了,现在我们回过头来看看怎么解决UDP问题。刚才说了,UDP包没有ACK位所以不能进行ACK位过滤。UDP是发出去不管的“不可靠”通信,这种类型的服务通常用于广播、路由、多媒体等广播形式的通信任务。NFS、DNS、WINS、NetBIOS-over-TCP/IP和NetWare/IP都使用UDP。  看来最简单的可行办法就是不允许建立入站UDP连接。防火墙设置为只许转发来自内部接口的UDP包,来自外部接口的UDP包则不转发。现在的问题是,比方说,DNS名称解析请求就使用UDP,如果你提供DNS服务,至少得允许一些内部请求穿越防火墙。还有IRC这样的客户程序也使用UDP,如果要让你的用户使用它,就同样要让他们的UDP包进入网络。我们能做的就是对那些从本地到可信任站点之间的连接进行限制。但是,什么叫可信任!如果黑客采取地址欺骗的方法不又回到老路上去了吗?  有些新型路由器可以通过“记忆”出站UDP包来解决这个问题:如果入站UDP包匹配最近出站UDP包的目标地址和端口号就让它进来。如果在内存中找不到匹配的UDP包就只好拒绝它了!但是,我们如何确信产生数据包的外部主机就是内部客户机希望通信的服务器呢?如果黑客诈称DNS服务器的地址,那么他在理论上当然可以从附着DNS的UDP端口发起攻击。只要你允许DNS查询和反馈包进入网络这个问题就必然存在。办法是采用代理服务器。  所谓代理服务器,顾名思义就是代表你的网络和外界打交道的服务器。代理服务器不允许存在任何网络内外的直接连接。它本身就提供公共和专用的DNS、邮件服务器等多种功能。代理服务器重写数据包而不是简单地将其转发了事。给人的感觉就是网络内部的主机都站在了网络的边缘,但实际上他们都躲在代理的后面,露面的不过是代理这个假面具。7.7注意事项  1.防火墙实现了你的安全政策  防火墙加强了一些安全策略。如果你没有在放置防火墙之前制定安全策略的话,那么现在就是制定的时候了。它可以不被写成书面形式,但是同样可以作为安全策略。如果你还没有明确关于安全策略应当做什么的话,安装防火墙就是你能做的最好的保护你的站点的事情,并且要随时维护它也是很不容易的事情。要想有一个好的防火墙,你需要好的安全策略---写成书面的并且被大家所接受。  2.一个防火墙在许多时候并不是一个单一的设备33 防火墙在Web安全中的应用  除非在特别简单的案例中,防火墙很少是单一的设备,而是一组设备。就算你购买的是一个商用的“all-in-one”防火墙应用程序,你同样得配置其他机器(例如你的网络服务器)来与之一同运行。这些其他的机器被认为是防火墙的一部分,这包含了对这些机器的配置和管理方式,他们所信任的是什么,什么又将他们作为可信的等等。你不能简单的选择一个叫做“防火墙”的设备却期望其担负所有安全责任。  3.防火墙并不是现成的随时获得的产品  选择防火墙更像买房子而不是选择去哪里度假。防火墙和房子很相似,你必须每天和它待在一起,你使用它的期限也不止一两个星期那么多。都需要维护否则都会崩溃掉。建设防火墙需要仔细的选择和配置一个解决方案来满足你的需求,然后不断的去维护它。需要做很多的决定,对一个站点是正确的解决方案往往对另外站点来说是错误的。  4.防火墙并不会解决你所有的问题  并不要指望防火墙靠自身就能够给予你安全。防火墙保护你免受一类攻击的威胁,人们尝试从外部直接攻击内部。但是却不能防止从LAN内部的攻击,它甚至不能保护你免受所有那些它能检测到的攻击。  5.使用默认的策略  正常情况下你的手段是拒绝除了你知道必要和安全的服务以外的任何服务。但是新的漏洞每天都出现,关闭不安全的服务意味着一场持续的战争。  6.有条件的妥协,而不是轻易的  人们都喜欢做不安全的事情。如果你允许所有的请求的话,你的网络就会很不安全。如果你拒绝所有的请求的话,你的网络同样是不安全的,你不会知道不安全的东西隐藏在哪里。那些不能和你一同工作的人将会对你不利。你需要找到满足用户需求的方式,虽然这些方式会带来一定量的风险。  7.使用分层手段  并在一个地点以来单一的设备。使用多个安全层来避免某个失误造成对你关心的问题的侵害。  8.只安装你所需要的  防火墙机器不能像普通计算机那样安装厂商提供的全部软件分发。作为防火墙一部分的机器必须保持最小的安装。即使你认为有些东西是安全的也不要在你不需要的时候安装它。  9.使用可以获得的所有资源  不要建立基于单一来源的信息的防火墙,特别是该资源不是来自厂商。有许多可以利用的资源:例如厂商信息,我们所编写的书,邮件组,和网站。  10.只相信你能确定的  不要相信图形界面的手工和对话框或是厂商关于某些东西如何运行的声明,检测来确定应当拒绝的连接都拒绝了。检测来确定应当允许的连接都允许了。  11.不断的重新评价决定  你五年前买的房子今天可能已经不适合你了。同样的,你一年以前所安装的防火墙对于你现在的情况已经不是最好的解决方案了。对于防火墙你应当经常性的评估你的决定并确认你仍然有合理的解决方案。更改你的防火墙,就像搬新家一样,需要明显的努力和仔细的计划。  12.要对失败有心理准备  做好最坏的心理准备。防火墙不是万能的,对一些新出现的病毒和木马可能没有反映,要时常的更新.机器可能会停止运行,动机良好的用户可能会做错事情,有恶意动机的用户可能做坏的事情并成功的打败你。但是一定要明白当这些事情发生的时候这并不是一个完全的灾难。33 防火墙在Web安全中的应用八、防火墙分类: 8.1网络层防火墙  网络层防火墙可视为一种IP封包过滤器,运作在底层的TCP/IP协议堆栈上。我们可以以枚举的方式,只允许符合特定规则的封包通过,其余的一概禁止穿越防火墙。这些规则通常可以经由管理员定义或修改,不过某些防火墙设备可能只能套用内置的规则。  我们也能以另一种较宽松的角度来制定防火墙规则,只要封包不符合任何一项“否定规则”就予以放行。现在的操作系统及网络设备大多已内置防火墙功能。  较新的防火墙能利用封包的多样属性来进行过滤,例如:来源IP地址、来源端口号、目的IP地址或端口号、服务类型(如WWW或是FTP)。也能经由通信协议、TTL值、来源的网域名称或网段...等属性来进行过滤。应用层防火墙8.2.应用层防火墙   应用层防火墙是在TCP/IP堆栈的“应用层”上运作,您使用浏览器时所产生的数据流或是使用FTP时的数据流都是属于这一层。应用层防火墙可以拦截进出某应用程序的所有封包,并且封锁其他的封包(通常是直接将封包丢弃)。理论上,这一类的防火墙可以完全阻绝外部的数据流进到受保护的机器里,它通常是运行代理服务器(proxy-server),有时也称为应用网关软件的主机。由于有这种软件,专业人员经常把这种主机称为代理服务器。代理服务器的名字是来源于单词proxy,它的意义是给别人代劳。对网络用户来说,代理服务器与网络外的服务器进行通信,即代理服务可以控制网络间的传输。在某些情况下, 代理服务器可以管理网络上某些具有一种或多种服务的用户的所有通信。例如,在网络上,通过代理服务器访问Internet用户实际上是把Internet上其他的计算机当作代理服务器(换句话说,计算机显示了代理服务器的TCP地址)。在一个网络中,代理服务器即使没有客户文本传输的口令,也能访问安全应用程序(如一个机密的数据库)。当您使用应用层防火墙时,本地网并没有接到Internet上,相反,网络上的传输决不会与另一个网络上的传输互相影响。因为两个网络的电缆并没有接触。代理服务器把一个网络的每个准许数据包的唯一拷贝转发到别的网络,但这与数据包是否包含进或出的数据无关。应用防火墙有效地屏蔽初始连接的开端部分,并保护您的网络不受Internet上试图编译您私有网络信息的用户的攻击。33 防火墙在Web安全中的应用 因为代理服务器识别网络协议,您可以通过配置代理服务器来控制在您网络中所需的服务,并给路由器进行编程。例如,您可以指导代理服务器来让客户执行FTP文件下载,但不能使 FTP文件上载。代理服务器提供许多服务,如HTTP、Telnet、FTP和Gopher访问。但是您必须为您需要的每种服务另设置一台不同的proxy服务器。在基于Unix和LINUX网络中的两种流行的代理服务器分别是TIS Internet防火墙工具包和 SOCKS(代理服务器)。如需要获取 TIS Internet防火墙工具包的代理服务器的话,可访问网址:http://www.tis.com/docs/profucts/fwtk/index.html,如果想获取SOCKS代理服务器的有关信息,可访问网址:http://www.socks.nec.com/ 。  应用层防火墙的工作方式和过滤数据报的防火墙、以路由器为基础的防火墙的工作方式稍有不同。防火墙是基于软件的,当某远程用户想和一个运行应用网关的网络建立联系时,此应用网关会阻塞这个远程联接,然后对联接请求的各个域进行检查。如果此联接请求符合预定的规则,网关便会在远程主机和内部主机之间建立一个“桥”。“桥”是指两种协议之间的转换器。例如,一个典型的网关一般不将IP数据报转发给内部网络,而是自己作为转换器和解释器进行转换的过程。这种方式有时被称之为man-in-the-middle configuration。这种应用网关代理模型的长处是:不进行IP报文转发,更为重要的是,可以在“桥”上设置更多的控制,而且这种工具还能提供非常成熟的功能。然而,所有的这些优点都是通过牺牲速度换取的,因为每次联接请求和所有发往内部网的报文在网关上经历接受、分析、转换和再转发等几个过程,完成这些过程所需时间显然比完成以路由器为基础的数据报过滤的时间长得多。IP转发(IP forwarding)是指收到一个外部请求的服务器将此请求信息以IP报文的格式转发给内部网。让IP转交功能有效是一个严重的错误:如果您允许IP转发,那么入侵者便能从外部进人您的内部网络并访问其上的工作站。应用网关另一个不足之处是,必须为每个网络服务创建一个应用代理http://www.telstra.com.au/puh/docs/security/800-1-/node52.html应用网关式防火墙软件包的典型代表是Trusted Information Systems (TIS) Firewall Tools Kit (简称为FWTK)。此软件包的早期版本是免费的,包含了许多独立的组件。大部分的组件是代理应用程序,包括以下几种服务程序:Telnet、FTP、RLOGIN、sendmail、HTTP。如果您使用基于 Windows NT的服务器,那么微软的 Internet信息服务器和Netcape商业服务器都支持代理服务器。 您运行应用层的代理服务器时,您的网络用户必须使用支持代理(Proxy)操作的客户端程序。设计者创建了许多TCP/IP协议,其中包括HTTP,FTP及其他支持代理(proxy)的协议。在许多网络浏览器中,用户只要用浏览器软件的优先权,便可容易地设置浏览器指向Proxy服务器。但糟糕的是,一些别的Internet协议并不支持Proxy服务。在这种情况下,您的Internet应用程序选择必须以他们是否与普通的Proxy协议兼容为根据。例如,您所有的网络访问都基于socks,那么支持socks Proxy协议的应用程序是一种比较好的解决办法。当您建立应用级防火墙时,也必须要评价您的用户是否使用支持Proxy服务的客户软件。33 防火墙在Web安全中的应用 应用层防火墙给您提供一种简便的方法,去审计所有访问站点的信息的类型和数量。由于应用层防火墙在物理上把您的本地网和Internet分开,这对于需要高安全性的单位是一种很好的选择。然而,因为存在一个实际的程序必须分析数据包并作出访问控制的决定,所以应用层防火墙有降低网络性能的趋势。换句话说,应用层防火墙明显比网络层防火墙更慢。如果您打算使用应用层防火墙,则必须使用最高速的计算机来作为主Proxy服务器。   8.3链路层防火墙链路层防火墙在作为Proxy服务器方面与应用层防火墙类似。然而,不同的是,链路层防火墙并不要求您使用专门Proxy客户应用程序。对于诸如FTP,HTTP等网络支持的每种服务,应用层防火墙要求有专门的Proxy软件。 相反,链路层防火墙在客户机和服务器之间建立链路,但不要求每个应用程序都了解服务。换句话说,客户机和服务器之间是通过链路层防火墙通信,而不是与链路层防火墙通信。链路层防火墙保护事务的开始,但并不干涉事务的进行。链路层防火墙的优点是,它给服务提供广泛的协议。我们已知道,应用层防火墙对通过防火墙的每种服务要求单独的应用层Proxy。而如果您使用链路层防火墙服务于HTTP,FTP或Telnet,那么您不必改变您现有的应用程序或为每种服务增加新的应用层Proxy。链路层防火墙允许您的用户持续运行他们现有的软件。另外,链路层防火墙只使用单一的Proxy服务器。单一的Proxy服务器比多Proxy服务器更易于维护8.4WEB应用防火墙  Web应用安全问题本质上源于软件质量问题。但Web应用相较传统的软件,具有其独特性。Web应用往往是某个机构所独有的应用,对其存在的漏洞,已知的通用漏洞签名缺乏有效性;需要频繁地变更以满足业务目标,从而使得很难维持有序的开发周期;需要全面考虑客户端与服务端的复杂交互场景,而往往很多开发者没有很好地理解业务流程;人们通常认为Web开发比较简单,缺乏经验的开发者也可以胜任。  Web应用安全,理想情况下应该在软件开发生命周期遵循安全编码原则,并在各阶段采取相应的安全措施。然而,多数网站的实际情况是:大量早期开发的Web应用,由于历史原因,都存在不同程度的安全问题。对于这些已上线、正提供生产的Web应用,由于其定制化特点决定了没有通用补丁可用,而整改代码因代价过大变得较难施行或者需要较长的整改周期。  这种现状,专业的Web安全防护工具是一种合理的选择。WEB应用防火墙(以下简称WAF)正是这类专业工具,提供了一种安全运维控制手段:基于对HTTP/HTTPS流量的双向分析,为Web应用提供实时的防护。九、web应用防火墙简介有趣的是,还没有人能真正知道web应用防火墙究竟是什么,或者确切的说,还没有一个大家认可的精确定义。从广义上来说,Web应用防火墙就是一些增强33 防火墙在Web安全中的应用Web应用安全性的工具。然而,如果我们要深究它精确的定义,就可能会得到更多的疑问。因为一些Web应用防火墙是硬件设备,一些则是应用软件;一些是基于网络的,另一些则是嵌入WEB服务器的。国外市场上具有WEB应用防火墙功能的产品名称就有不同的几十种,更不用说是产品的形式和描述了。它难以界定的原因是这个名称包含的东西太多了。较低的网络层(Web应用防火墙被安置在第七层)被许多设备所覆盖,每一种设备都有它们独特的功能,比如路由器,交换机,防火墙,入侵检测系统,入侵防御系统等等。然而,在HTTP的世界里,所有这些功能都被融入在一个设备里:Web应用防火墙。总体来说,Web应用防火墙的具有以下四个方面的功能:1.审计设备:用来截获所有HTTP数据或者仅仅满足某些规则的会话2.访问控制设备:用来控制对Web应用的访问,既包括主动安全模式也包括被动安全模式3.架构/网络设计工具:当运行在反向代理模式,他们被用来分配职能,集中控制,虚拟基础结构等。4.WEB应用加固工具:这些功能增强被保护Web应用的安全性,它不仅能够屏蔽WEB应用固有弱点,而且能够保护WEB应用编程错误导致的安全隐患。但是,需要指出的是,并非每种被称为Web应用防火墙的设备都同时具有以上四种功能。由于WEB应用防火墙的多面性,拥有不同知识背景的人往往会关注它不同方面的特点。比如具有网络入侵检测背景的人更倾向于把它看作是运行在HTTP层上的IDS设备;具有防火墙自身背景的人更趋向与把它看作一种防火墙的功能模块。还有一种理解来自于“深度检测防火墙”这个术语。他们认为深度检测防火墙是一种和Web应用防火墙功能相当的设备。然而,尽管两种设备有些相似之处,但是差异还是很大的。深度检测防火墙通常工作在的网络的第三层以及更高的层次,而Web应用防火墙则在第七层处理HTTP服务并且很好地支持它。直接更改WEB代码解决安全问题是否更好?这是毋庸置疑的,但也没那么容易实现。因为,通过更改WEB应用代码是否一定就能增强系统安全性能,这本身就存在争论。而且现实也更加复杂:*不可能确保100%的安全。人的能力有限,会不可避免地犯错误。*绝大多数情况下,很少有人力求100%的安全。如今的现实生活中那些引领应用发展的人更多注重功能而不是安全。这种观念正在改变,只是有点缓慢。*一个复杂的系统通常包含第三方产品(组件,函数库),它们的安全性能是不为人知的。如果这个产品的源代码是保密的,那么你必须依赖商品的厂商提供补丁。即使有些情况下源代码是公开的,你也不可能有精力去修正它们。*我们不得不使用存在安全隐患的业务系统,尽管这些旧系统根本无法改进。因此,为了获得最好的效果,我们需要双管齐下:一方面,必须提高管理者和开发者的安全意识;另一方面,尽可能提高应用系统的安全性。33 防火墙在Web安全中的应用十、防火墙在WEB安全中的应用就目前的网络安全状况,防火墙在WEB安全中发现及封阻应用攻击所采用的八项技术如下:10.1深度数据包处理深度数据包处理有时被称为深度数据包检测或者语义检测,它就是把多个数据包关联到一个数据流当中,在寻找攻击异常行为的同时,保持整个数据流的状态。深度数据包处理要求以极高的速度分析、检测及重新组装应用流量,以避免给应用带来时延。下面每一种技术代表深度数据包处理的不同级别。10.2TCP/IP终止应用层攻击涉及多种数据包,并且常常涉及多种请求,即不同的数据流。流量分析系统要发挥功效,就必须在用户与应用保持互动的整个会话期间,能够检测数据包和请求,以寻找攻击行为。至少,这需要能够终止传输层协议,并且在整个数据流而不是仅仅在单个数据包中寻找恶意模式。10.3SSL终止如今,几乎所有的安全应用都使用HTTPS确保通信的保密性。然而,SSL数据流采用了端到端加密,因而对被动探测器如入侵检测系统(IDS)产品来说是不透明的。为了阻止恶意流量,应用防火墙必须终止SSL,对数据流进行解码,以便检查明文格式的流量。这是保护应用流量的最起码要求。如果你的安全策略不允许敏感信息在未加密的前提下通过网络传输,你就需要在流量发送到Web服务器之前重新进行加密的解决方案。10.4URL过滤一旦应用流量呈明文格式,就必须检测HTTP请求的URL部分,寻找恶意攻击的迹象,譬如可疑的统一代码编码(unicodeencoding)。对URL过滤采用基于特征的方案,仅仅寻找匹配定期更新的特征、过滤掉与已知攻击如红色代码和尼姆达有关的URL,这是远远不够的。这就需要一种方案不仅能检查RUL,还能检查请求的其余部分。其实,如果把应用响应考虑进来,可以大大提高检测攻击的准确性。虽然URL过滤是一项重要的操作,可以阻止通常的脚本少年类型的攻击,但无力抵御大部分的应用层漏洞。33 防火墙在Web安全中的应用10.5请求分析全面的请求分析技术比单单采用URL过滤来得有效,可以防止Web服务器层的跨站脚本执行(cross-sitescripting)漏洞和其它漏洞。全面的请求分析使URL过滤更进了一步:可以确保请求符合要求、遵守标准的HTTP规范,同时确保单个的请求部分在合理的大小限制范围之内。这项技术对防止缓冲器溢出攻击非常有效。然而,请求分析仍是一项无状态技术。它只能检测当前请求。正如我们所知道的那样,记住以前的行为能够获得极有意义的分析,同时获得更深层的保护。10.6用户会话跟踪更先进的下一个技术就是用户会话跟踪。这是应用流量状态检测技术的最基本部分:跟踪用户会话,把单个用户的行为关联起来。这项功能通常借助于通过URL重写(URLrewriting)来使用会话信息块加以实现。只要跟踪单个用户的请求,就能够对信息块实行极其严格的检查。这样就能有效防御会话劫持(session-hijacking)及信息块中毒(cookie-poisoning)类型的漏洞。有效的会话跟踪不仅能够跟踪应用防火墙创建的信息块,还能对应用生成的信息块进行数字签名,以保护这些信息块不被人篡改。这需要能够跟踪每个请求的响应,并从中提取信息块信息。10.7响应模式匹配响应模式匹配为应用提供了更全面的保护:它不仅检查提交至Web服务器的请求,还检查Web服务器生成的响应。它能极其有效地防止网站受毁损,或者更确切地说,防止已毁损网站被浏览。对响应里面的模式进行匹配相当于在请求端对URL进行过滤。响应模式匹配分三个级别。防毁损工作由应用防火墙来进行,它对站点上的静态内容进行数字签名。如果发现内容离开Web服务器后出现了改动,防火墙就会用原始内容取代已毁损页面。至于对付敏感信息泄露方面,应用防火墙会监控响应,寻找可能表明服务器有问题的模式,譬如一长串Jxdya异常符。如果发现这类模式,防火墙就会把它们从响应当中剔除,或者干脆封阻响应。采用“停走”字(‘stopandgo’word)的方案会寻找必须出现或不得出现在应用生成的响应里面的预定义通用模式。譬如说,可以要求应用提供的每个页面都要有版权声明。10.8行为建模行为建模有时称为积极的安全模型或“白名单”(white33 防火墙在Web安全中的应用list)安全,它是唯一能够防御最棘手的应用漏洞——零时间漏洞的保护机制。零时间漏洞是指未写入文档或“还不知道”的攻击。对付这类攻击的唯一机制就是只允许已知是良好行为的行为,其它行为一律禁止。这项技术要求对应用行为进行建模,这反过来就要求全面分析提交至应用的每个请求的每次响应,目的在于识别页面上的行为元素,譬如表单域、按钮和超文本链接。这种级别的分析可以发现恶意表单域及隐藏表单域操纵类型的漏洞,同时对允许用户访问的URL实行极其严格的监控。行为建模是唯一能够有效对付全部16种应用漏洞的技术。行为建模是一种很好的概念,但其功效往往受到自身严格性的限制。某些情况譬如大量使用JxdyaScript或者应用故意偏离行为模型都会导致行为建模犯错,从而引发误报,拒绝合理用户访问应用。行为建模要发挥作用,就需要一定程度的人为干预,以提高安全模型的准确性。行为自动预测又叫规则自动生成或应用学习,严格说来不是流量检测技术,而是一种元检测(meta-inspection)技术,它能够分析流量、建立行为模型,并且借助于各种关联技术生成应用于行为模型的一套规则,以提高精确度。行为建模的优点在于短时间学习应用之后能够自动配置。保护端口80是安全人员面临的最重大也是最重要的挑战之一。所幸的是,如今已出现了解决这一问题的创新方案,而且在不断完善。如果在分层安全基础设施里面集成了能够封阻16类应用漏洞的应用防火墙,你就可以解决应用安全这一难题。十一、Web应用防火墙的特点Web应用防火墙的一些常见特点如下:11.1异常检测协议如果阅读过各种RFC,就会发现一个被反复强调的主题。大多数RFC建议应用自己使用协议时要保守,而对于接受其他发送者的协议时可以自由些。Web服务器就是这样做的,但这样的行为也给所有的攻击者打开了大门。几乎所有的WAF对HTTP的请求执行某种异常检测,拒绝不符合Http标准的请求。并且,它也可以只允许HTTP协议的部分选项通过,从而减少攻击的影响范围。甚至,一些WAF还可以严格限定HTTP协议中那些过于松散或未被完全制定的选项。11.2增强的输入验证就频繁发生的Web安全问题而言,有些是源于对Web设计模型的误解,有些则来自于程序师认为浏览器是可信的。很多WEB程序员用JavaScript在浏览器上实现输入验证。而浏览器只是一个用户控制的简单工具,因此攻击者可以非常容易地绕过输入验证,直接将恶意代码输入到WEB应用服务器。33 防火墙在Web安全中的应用有一个解决上述问题的正确方法,就是在服务端进行输入验证。如果这个方法不能实现,还可以通过在客户和应用服务器之间增加代理,让代理去执行Web页面上嵌入的JavaScript,实现输入验证。11.3消极的安全模型VS积极的安全模型曾经设置过防火墙规则的人,可能会碰到这样的建议:允许已知安全的流量,拒绝其他一切访问。这就是一种很好的积极安全模型。恰恰相反,消极安全模型则是默认允许一切访问,只拒绝一些已知危险的流量模式。每种安全模型方式都存在各自的问题:消极安全模型:什么是危险的?积极安全模型:什么是安全的?消极安全模式通常使用的更多。识别出一种危险的模式并且配置自己的系统禁止它。这个操作简单而有趣,却不十分安全。它依赖于人们对于危险的认识,如果问题存在,却没有被意识到(这种情况很常见),就会为攻击者留下可趁之机。积极安全模式(又称为白名单模式)看上去是一种制定策略的更好方式,非常适于配置防火墙策略。在Web应用安全领域中,积极安全模式通常被概括成对应用中的每一个脚本的枚举。对枚举的每一个脚本,需要建立一个相应列表,表中内容如下所示:*允许的请求方式(比如,GET/POST或者只POST)*允许的Content-Type*允许的Content-Length*允许的参数*指定参数和可选参数*参数类型(比如,文本或整数)*附加参数限制上述列表仅仅是个例子,实际的积极安全模式通常包括更多的要素。它试图从外部完成程序员本应从内部完成的工作:为提交到Web应用的信息验证每一个比特。如果肯花时间的话,使用积极安全模式就是一个比较好的选择。这个模式的难点之一,在于应用模式会随着应用的发展而改变。每当应用中添加新脚本或更改旧脚本,就需要更新模式。但是,它适用于保护那些稳定的、无人维护的旧应用。33 防火墙在Web安全中的应用11.4自动开发策略可以解决以上问题:*一些WAF能够监视流量,并根据这些流量数据自动配置策略,有些产品可以实时进行这样的工作。*通过白名单,可以标识特定的IP地址是可信的,然后,依据观察的流量,配置WAF,更新安全策略。*如果通过一个全面的衰减测试,(仿真正确的行为,)来创建一个应用,并且在WAF处于监控状态时执行测试,那么WAF可以自动生成策略。可见,没有哪个模式是完全令人满意的。消极安全模式适用于处理已知问题,而积极安全模式则适用于稳定的Web应用。理想的做法是,在现实生活中,将二者结合使用,取长补短。11.5及时补丁积极安全模式理论上更好一些因为浏览器和WEB应用程序之间的通信协议通过HTML规范进行了很好的定义。现在的Web开发语言都可以处理带有多个参数的HTTP请求。因为这些参数在Web应用防火墙中都是可见的,因此WEB应用防火墙可以分析这些参数判断是否存在允许该请求。,当一个应用中的漏洞被发现时大多数情况下我们会尽可能在代码中修补它。受诸多因素的影响(如应用的规模,是否有开发人员,法律问题等等),开发补丁的过程可能需要几分钟,或者一直到无限长的是时间。这些时间正是攻击者发起攻击的好机会。如果开发人员能够在非常短的时间内在代码中修补好漏洞,那你就不用担心了。但如果修补这个漏洞需要花费几天,甚至几周来修复呢?Web应用防火墙就是处理这个问题的理想工具:只要给一个安全专家不错的WAF和足够的漏洞信息,他就能在不到一个小时的时间内屏蔽掉这个漏洞。当然,这种屏蔽掉漏洞的方式不是非常完美的,并且没有安装对应的补丁就是一种安全威胁,但我们在没有选择的情况下,任何保护措施都比没有保护措施更好。及时补丁的原理可以更好的适用于基于XML的应用中,因为这些应用的通信协议都具规范性。11.6基于规则的保护和基于异常的保护33 防火墙在Web安全中的应用现在市场上大多数的产品是基于规则的WAF。其原理是每一个会话都要经过一系列的测试,每一项测试都由一个过多个检测规则组成,如果测试没通过,请求就会被认为非法并拒绝。基于规则的WAFs很容易构建并且能有效的防范已知安全问题。当我们要制定自定义防御策略时使用它会更加便捷。但是因为它们必须要首先确认每一个威胁的特点,所以要由一个强大的规则数据库支持。WAF生产商维护这个数据库,并且他们要提供自动更新的工具。这个方法不能有效保护自己开发的WEB应用或者零日漏洞(攻击者使用的没有公开的漏洞),这些威胁使用基于异常的WAF更加有效。异常保护的基本观念是建立一个保护层,这个保护层能够根据检测合法应用数据建立统计模型,以此模型为依据判别实际通信数据是否是攻击。理论上,一但构建成功,这个基于异常的系统应该能够探测出任何的异常情况。拥有了它,我们不再需要规则数据库而且零日攻击也不再成问题了。但基于异常保护的系统很难构建,所以并不常见。因为用户不了解它的工作原理也不相信它,所以它也就不如基于规则的WAF应用广范。11.7状态管理HTTP的无状态性对Web应用安全有很多负面影响。会话只能够在应用层上实现,但对许多应用来说这个附加的功能只能满足业务的需要而考虑不到安全因素了。Web应用防火墙则将重点放在会话保护上,它的特征包括:强制登录页面。在大多数站点,你可以从任何你所知道的URL上访问站点,这通常方便了攻击者而给防御增加了困难。WAF能够判断用户是否是第一次访问并且将请求重定向到默认登录页面并且记录事件。分别检测每一个用户会话。如果能够区分不同的会话,这就带来了无限的可能。比如,我们能够监视登陆请求的发送频率和用户的页面跳转。通过检测用户的整个操作行为我们可以更容易识别攻击。对暴力攻击的识别和响应。通常的Web应用网络是没有检测暴力攻击的。有了状态管理模式,WAF能检测出异常事件(比如登陆失败),并且在达到极限值时进行处理。此时它可以增加更多的身份认证请求的时间,这个轻微的变化用户感觉不到,但对于足以对付自动攻击脚本了。如果一个认证脚本需要50毫秒完成,那它可以发出大约每秒20次的请求。如果你增加一点延时,比如说,一秒种的延迟,那会将请求降低至每秒不足一次。与此同时,发出进一步检测的警告,这将构成一个相当好的防御。实现会话超时。超出默认时间会话将失效,并且用户将被要求重新认证。用户在长时间没有请求时将会自动退出登录。会话劫持的检测和防御。许多情况下,会话劫持会改变IP地址和一些请求数据(HTTP请求的报头会不同)。状态监控工具能检测出这些异常并防止非法应用的发生。在这种情况下应该终止会话,要求用户重新认证,并且记录一个警告日志信息。33 防火墙在Web安全中的应用只允许包含在前一请求应答中的链接。一些WAF很严格,只允许用户访问前一次请求返回页面中的链接。这看上去是一个有趣的特点但很难得到实施。一个问题在于它不允许用户使用多个浏览器窗口,另一个问题是它令使用JavaScript自动建立连接的应用失效。11.8其他防护技术WAF的另外一些安全增强的功能用来解决WEB程序员过分信任输入数据带来的问题。比如:隐藏表单域保护。有时,内部应用数据通过隐藏表单变量实现,而它们并不是真的隐藏的。程序员通常用隐藏表单变量的方式来保存执行状态,给用户发送数据,以确保这些数据返回时未被修改。这是一个复杂繁琐的过程,WAF经常使用密码签名技术来处理。Cookies保护。和隐藏表单相似的是,cookies经常用来传递用户个人的应用数据,而不一样的是,一些cookies可能含有敏感数据。WAFs通常会将整个内容加密,或者是将整个cookies机制虚拟化。有了这种设置,终端用户只能够看到cookies令牌(如同会话令牌),从而保证cookies在WAF中安全地存放抗入侵规避技术。基于网络的IDS对付WEB攻击的问题就是攻击规避技术。改写HTTP输入请求数据(攻击数据)的方式太多,并且各种改写的请求能够逃避IDS探测。在这个方面如果能完全理解HTTP就是大幅度的改进。比如,WAF每次可以看到整个HTTP请求,就可以避免所有类型的HTTP请求分片的攻击。因为很好的了解HTTP协议,因此能够将动态请求和静态请求分别对待,就不用花大量时间保护不会被攻击的静态数据。这样WAF可以有足够的计算能力对付各种攻击规避技术,而这些功能由NIDSs完成是很耗时的。响应监视和信息泄露保护。信息泄露防护是我们给监视HTTP输出数据的一个名称。从原理上来说它和请求监视是一样的,目的是监视可疑的输出,并防止可疑的http输出数据到达用户。最有可能的应用模式是监视信用卡号和社会保险号。另外,这个技术的另一项应用是发现成功入侵的迹象。因为有经验攻击者总会给信息编码来防止监测,所以防止这样有决心并技术熟练的攻击者获取信息是很困难的。但是,在攻击者没有完全掌控服务器而仅仅尝试WEB应用的安全漏洞的情况下,这项技术可以起到防护效果十二、防火墙与IDS联动工作共保Web安全12.1 IDS简介 33 防火墙在Web安全中的应用 什么是IDS呢?早期的IDS仅仅是一个监听系统,在这里,你可以把监听理解成窃听的意思。基于目前局网的工作方式,IDS可以将用户对位于与IDS同一交换机/HuB的服务器的访问、操作全部记录下来以供分析使用,跟我们常用的widnows操作系统的事件查看器类似。再后来,由于IDS的记录太多了,所以新一代的IDS提供了将记录的数据进行分析,仅仅列出有危险的一部分记录,这一点上跟目前windows所用的策略审核上很象;目前新一代的IDS,更是增加了分析应用层数据的功能,使得其能力大大增加;而更新一代的IDS,就颇有“路见不平,拔刀相助”的味道了,配合上防火墙进行联动,将IDS分析出有敌意的地址阻止其访问。 就如理论与实际的区别一样,IDS虽然具有上面所说的众多特性,但在实际的使用中,目前大多数的入侵检测的接入方式都是采用pass-by方式来侦听网络上的数据流,所以这就限制了IDS本身的阻断功能,IDS只有靠发阻断数据包来阻断当前行为,并且IDS的阻断范围也很小,只能阻断建立在TCP基础之上的一些行为,如Telnet、FTP、HTTP等,而对于一些建立在UDP基础之上就无能为力了。因为防火墙的策略都是事先设置好的,无法动态设置策略,缺少针对攻击的必要的灵活性,不能更好的保护网络的安全,所以IDS与防火墙联动的目的就是更有效地阻断所发生的攻击事件,从而使网络隐患降至较低限度。12.2防火墙与IDS联动工作原理入侵检测系统在捕捉到某一攻击事件后,按策略进行检查,如果策略中对该攻击事件设置了防火墙阻断,那么入侵检测系统就会发给防火墙一个相应的动态阻断策略,防火墙根据该动态策略中的设置进行相应的阻断,阻断的时间、阻断时间间隔、源端口、目的端口、源IP和目的IP等信息,完全依照入侵检测系统发出的动态策略来执行。一般来说,很多情况下,不少用户的防火墙与IDS并不是同一家的产品,因此在联动的协议上面大都遵从opsec或者topsec协议进行通信,不过也有某些厂家自己开发相应的通信规范的。目前总得来说,联动有一定效果,但是稳定性不理想,特别是攻击者利用伪造的包信息,让IDS错误判断,进而错误指挥防火墙将合法的地址无辜屏蔽掉。 因为诸多不足,在目前而言,IDS主要起的还是监听记录的作用。用个比喻来形容:网络就好比一片黑暗,到处充满着危险,冥冥中只有一个出口;IDS就象一支手电筒,虽然手电筒不一定能照到正确的出口,但至少有总比没有要好一些。称职的网管,可以从IDS中得到一些关于网络使用者的来源和访问方式,进而依据自己的经验进行主观判断(注意,的确是主观判断。例如用户连续ping了服务器半个小时,到底是意图攻击,还是无意中的行为?这都依据网络管理员的主观判断和网络对安全性的要求来确定对应方式。)对IDS的选择,跟上面谈到的防火墙的选择类似,根据自己的实际要求和使用习惯,选择一个自己够用的,会使用的就足够了。 最后,要说的依然是那句“世界上没有一种技术能真正保证绝对地安全。”Web安全问题,是从设备到人,从服务器上的每个服务程序到防火墙、IDS等安全产品的综合问题;任何一个环节工作,只是迈向安全的步骤。33 防火墙在Web安全中的应用致谢经过半年的忙碌和工作,本次毕业设计已经接近尾声,作为一个大专生的毕业设计,由于经验的匮乏,难免有许多考虑不周全的地方,如果没有导师的督促指导,以及同学们的支持,想要完成这个设计是难以想象的。在这里首先要感谢我的导师王永老师。王永老师平日里工作繁多,但在我做毕业设计的每个阶段,从毕业设计论文大纲的制定,收集资料和调查研究,开题报告的提交,后期论文的反复修改等整个过程中都给予了我悉心的指导。我的设计较为复杂烦琐,但是王老师仍然细心地纠正论文中的错误。除了敬佩王老师的专业水平外,他的治学严谨和科学研究的精神也是我永远学习的榜样,并将积极影响我今后的学习和工作。其次还要感谢大学三年来所有的老师,为我们打下网络安全专业知识的基础;同时还要感谢所有的同学们,正是因为有了你们的支持和鼓励。此次毕业设计才会顺利完成。最后感谢我的母校—郑州轻工业学院轻功职业学院对我的大力栽培,在这里我不仅学到了扎实的理论知识,也学到了专业技能,同时还学会了如何更好的为社会贡献自己。33 防火墙在Web安全中的应用参考文献[1]《黑客大曝光:网络安全机密与解决方案(第6版)》麦克卢尔(StuartMcClure)、斯卡姆布智(JoelScambray)、库尔茨(GeorgeKurtz)、等清华大学出版社(2010-01出版)[2]《我们的防火墙:网络时代的表达与监管》李永刚主编广西师范大学出版社(2009-10出版)[3]《Web系统安全和渗透性测试基础》中国信息安全测评中心航空工业出版社(2009-06出版)[4]《计算机网络安全》,石叔华编著,人民邮电出版社,2010年2月[5]黑基网http://www.hackbase.com33

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭