1、单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第八章,Web,站点的安全,1,本章内容,Web,网络安全的概念、机制和特点,Web,站点的安全隐患,网络安全的一些安全漏洞及测试,有利于,Web,站点安全的技术实现,防火墙在,Web,站点安全中的应用,2,学习目标,了解,Web,网络安全的概念、机制和特点,认识,Web,站点的安全隐患,掌握网络安全的一些安全漏洞及测试,描述有利于,Web,站点安全的技术实现,了解防火墙在,Web,站点安全中的应用,3,8.1,Web,
2、基本概念,国际互联网络,Internet,2.,文件传送服务,FTP,FTP,服务由,TCP/IP,的文件传输协议支持。只要加入,Internet,网的两台计算机都支持,TCP/IP,协议,无论它们相距多远,用户都能将一台计算机上的文件传输到另一台计算机上。,6,8.1,Web,基本概念,国际互联网络,Internet,FTP,在本地和远程文件系统之间传输文件的过程如图所示:,7,8.1,Web,基本概念,国际互联网络,Internet,3.,电子邮政服务,电子邮政简称为,E-mail,,是一种通过计算机网络与其他用户进行通信的现代化手段。用户必须向提供电子邮政服务的机构提出申请,该机构在其与
3、Internet,联网的计算机上为用户建立一个电子邮箱,分配一个,E-mail,地址。,8,8.1,Web,基本概念,国际互联网络,Internet,4.,名址服务,名址服务器可以向用户提供对用户名址,计算机名址和,E-mail,地址的查询服务。,5.,文档查询服务,Internet,中有一种被称为文档查询服务器(,Archie server,)的计算机,用户只要向这种服务器提供希望查找的文件的文件名或文件描述说明中包含的字符串,文档查询服务器就能查找到存放着所需文件的,FTP,服务器。,9,8.1,Web,基本概念,国际互联网络,Internet,6.,网络新闻服务,网络新闻(,Netwo
4、rk News,)是由一些,Internet,用户为了讨论共同感兴趣的问题而组成的一种逻辑上的用户交流网络。用户可以通过,Internet,随时阅读服务器提供的消息,并能把自己的观点提供给服务器,作为消息在组内发布。,7.Gopher,服务,Gopher,是基于菜单驱动的,Internet,信息查询工具,它能将用户的请求自动转换为,FTP,或,Telnet,命令。,10,8.1,Web,基本概念,国际互联网络,Internet,8.WAIS,服务,广域信息服务(,Wide Area Information Service,)基于文件内容(关键字)的自动搜索服务,通常被图书管理员、医学研究员等一
5、些专业人士使用。,9.www,服务,11,8.1,Web,基本概念,World Wide Web,简介,1.Web,的产生和发展,World Wide Web,简写为,WWW,或,Web,是,Tim Berners-Lee,在,CERN,发明的。,Web,实际上是世界范围内相互联系的文件的大集合。,12,8.1,Web,基本概念,World Wide Web,简介,2.Web,的工作原理,1,)客户机,/,服务器模式,所有的,C/S,系统都可以分为,3,部分:客户机、中间件和服务器。,客户机涉及软件的用户前端部分,常常使用图形用户界面。中间件位于客户机与服务器中间,通常对用户是透明的。服务器通
6、常是作为核心的程序或机器,提供对客户机的服务。,13,8.1,Web,基本概念,World Wide Web,简介,2,)超文本模式,Web,在,Internet,上基于超文本置标语言,(HTML),、超,文本传输协议(,HTTP,)和统一资源定位器(,URL),。,超文本可以简单定义为收集、存储和浏览离散信息,,以及建立和表示信息之间关系的技术。,超文本赋予了,Web,一种强有力的功能,使得用户以同一种方式来访问所有的,Internet,资源。,14,8.1,Web,基本概念,World Wide Web,简介,3,),HTML,语言,Web,信息服务系统使用的超文本是用,HTML,语言编写
7、的。当用户使用,Web,服务客户浏览程序通过,Internet,阅读这些超文本时,客户浏览程序负责解释文本中嵌入的,HTML,,并按照,HTML,命令将文本中的信息显示给用户。,15,8.1,Web,基本概念,World Wide Web,简介,4,)超文本传输通信协议,HTTP,HTTP,协议是一种很简单的通信协议,其实现基础是通过网络查询的文件包含着可以实现进一步查询的链接。,HTTP,定义浏览器和服务器如何通信并传递信息。,16,8.1,Web,基本概念,World Wide Web,简介,5,),SQL,语言,SQL,是高级的非过程化编程语言,允许用户在高层数据结构上工作。具有不同底层
8、结构的不同数据库系统可以使用相同的,SQL,语言作为数据输入与管理的接口。,SQL,语言包含,4,个部分:数据定义语言、数据操作语言、数据查询语言、数据控制语言。,17,8.1,Web,基本概念,World Wide Web,简介,6,)统一资源定位器,URL,URL,是一种统一格式的,Internet,信息资源地址表达方法,它将,Internet,提供的各类服务统,编址,以便用户通过,Web,客户程序进行查询。,18,8.1,Web,基本概念,World Wide Web,简介,7,),Web,浏览器,Web,浏览器是一种功能强大的用于在,Web,上阅读文件的工具,常见的功能如表所示:,19
9、8.1,Web,基本概念,Web,的特点,1,),Web,是图形化的和易于导航的,Web,具有将图形、音频、视频信息集合于一体的特性。同时,,Web,是非常易于导航的,只需要从一个链接跳到另一个链接,就可以在各页各站点之间进行浏览了。,2,),Web,与平台无关,浏览,WWW,对用户系统平台没有什么限制。,20,8.1,Web,基本概念,Web,的特点,3,),Web,是分布式的,Web,能使物理上并不一定在一个站点的信息在逻辑上一体化。,4,),Web,是动态的,信息的提供者可以经常对站上的信息进行更新。,5,),Web,是交互的,Web,的交互性表现在它的超连接上;此外,用户可通过填写,
10、FORM,向服务器提交请求,服务器根据用户的请求返回相应信息。,21,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,1.Cookie,毒害,网站常常将一些包括用户,ID,、口令、账号等的,Cookie,存储到用户系统上。通过改变这些值,恶意的用户就可以访问不属于他们的账号。,2.,强行浏览,黑客通过改变程序流程,能够强行访问一些正常情况下无法获得的信息和程序,例如日志文件、管理工具以及,Web,应用程序的源代码。,22,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,3,跨站脚本执行,跨站脚本执行漏洞的成因是因为,CGI,程序没有对用户提交的变量中的,HTML,代
11、码进行过滤或转换。,导致的威胁包括获取其他用户,Cookie,中的敏感数据、屏蔽页面特定信息、伪造页面信息、拒绝服务攻击、突破外网内网不同安全设置、与其它漏洞结合、修改系统设置、查看系统文件和执行系统命令等。,23,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,4.,参数篡改,参数篡改包括操纵,URL,字符串来检索用户用正常方式得不到的信息。导致该漏洞的主要原因是,Web,应用程序没有对客户端提交的参数进行严格的检验。,5.,输入信息控制,输入信息控制包括通过控制由,CGI,脚本处理的,HTML,格式中的输入信息来运行系统命令。能将服务器的口令文件邮寄给恶意的用户或者删除系统上
12、的所有文件。,24,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,6.,缓冲区溢出,缓冲区溢出是指当计算机程序向缓冲区内填充的数据位数超过了缓冲区本身的容量,溢出的数据覆盖在合法数据上。,如果相关数据里包含了恶意代码,那么溢出的恶意代码就会改写应用程序返回的指令,使其指向包含恶意代码的地址,使其被,CPU,编译而执行。,25,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,7.,调试选项及后门,程序开发人员常常建立一些后门,并依靠调试选项来排除应用程序的故障,这些安全漏洞经常被留在一些放在,Internet,上的最终应用中。,一些常见的后门使攻击者不用口令就可以登
13、录或者访问允许直接进行应用配置的特殊,URL,。,26,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,8.,不安全的配置,许多操作系统和应用程序的缺省配置是非常不安全的。这些缺省配置有:开放了大量不必要的服务、安装某些不安全的第三方软件、使用缺省口令、缺省例子程序、不正确的文件访问许可设置等。,为了避免被攻击者利用,在程序启用之前应该被重新配置。,27,8.2,Web,面临的安全威胁,常见的,Web,应用程序攻击,9.,管理缺失,许多操作系统和第三方应用软件都存在一些已知漏洞,如果管理员不及时对,Web,站点进行维护,安装已经发布了的软件补丁,这些漏洞就很可能被黑客利用。,28
14、8.3,针对,Web,应用程序漏洞的攻击,漏洞扫描器的基本原理如图,:,Web,应用程序的安全漏洞包括由,Web,站点中的编程错误引起的用户详细信息被暴露、恶意用户执行任意的数据库查询、通过远程命令行访问服务器等非安全行为。漏洞扫描器的基本原理如图所示:,29,8.3,针对,Web,应用程序漏洞的攻击,常见的基于网络扫描,Web,应用程序漏洞的过程大致分为四步,:,1,)确定检测目标,确定,Web,服务器的,IP,地址或域名地址。,2,)从,Web,应用程序漏洞库列表中提取检测漏洞,或者从插件组中选取检测插件。,3,)发送检测请求,根据响应信息判断是否存在漏洞。,4,)返回,Web,应用程序
15、存在的漏洞类别。,30,8.3,针对,Web,应用程序漏洞的攻击,确定目标后,检测过程如图,:,31,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,1.,物理路径泄露漏洞,提供,Web,、,Ftp,等公共服务的服务器都可能出现物理路径泄露的问题。,Web,服务器路径泄露漏洞通常是由,Web,服务器处理用户请求出错导致的,返回结果时将网站本身所在的物理路径暴露出来,从而被攻击者利用。,32,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,2.,源代码泄露漏洞,源代码泄露漏洞的产生是由输入验证错误引起的。,3.,目录遍历漏洞,目录遍历攻击指的是恶意
16、用户找到受限文件的位置并且浏览或者执行它们。主要通过猜测文件是否存在的方法进行。,33,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,4.,执行任意命令,攻击的思想是运行自己输入的命令,而不是按照开发人员预期的那样,执行某个指定的程序。攻击这种漏洞的目标是发送到服务器上的操作系统命令或者可执行程序的户输入。,34,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,5.,缓冲区溢出漏洞,缓冲区溢出是针对,Web,应用最严重的一种攻击。恶意的输入会侵占其他程序堆栈的内存空间,使得内存中原有的其他数据被覆盖。,35,8.3,针对,Web,应用程序漏洞的
17、攻击,常见的,Web,应用程序漏洞,6,拒绝服务攻击,拒绝服务攻击的思想是代码执行总是需要时间的,每次由,Web,服务器、应用程序或数据库调用的函数,其执行过程总要耗费一定的处理器周期。,如果将大量的请求快速提交到,Web,服务器上,并且都是很多耗时的服务,就可以阻止其他用户正常访问,Web,站点。,36,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,7.CGI,漏洞攻击,CGI,程序是交互性的,当攻击者提交了一些非正常的数据,那么服务器在解释这些数据时可能会绕过,IIS,对文件名所作的安全检查。,37,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程
18、序漏洞,8.,跨站脚本攻击,利用页面进行,XSS,攻击的方法主要有两种:,1,)将脚本直接输入到被攻击的站点的表格域中。,2,)将脚本嵌入到,URL,的地址的,CGI,参数中。,38,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,跨站点脚本攻击过程如图所示:,39,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,9.SQL,注入攻击,很多,Web,站点都会利用用户输入的参数动态的生成,SQL,查询要求,攻击者通过在,URL,、表格域或其他的输入域中输入自己的,SQL,命令,以此改变查询属性骗过应用程序,从而对数据库进行不受限的访问。,40,8.
19、3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,SQL,注入攻击流程如图所示:,41,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,10.,未验证的输入,Web,应用程序一般是根据,HTTP,请求中用户的输入决定如何响应,黑客能够利用,HTTP,请求中的任何一部分,包括,URL,、请求字符串、,Cookie,头部、表单项或隐含参数传递代码来发动攻击。使用编码技术可以绕过,Web,应用程序的验证与过滤机制。,42,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,11.,被破坏的认证和会话管理,在网络中,通常的用户授权包括,Us
20、erID,和密码的使用。大多数的账户和会话管理漏洞可能破坏用户或系统管理员账号。,网络应用程序必须建立会话来跟踪每个用户的请求数据流,如果会话标记没有能够妥善保存,攻击者就可能截获一个处在激活态的会话并且假扮成这个用户的身份标识。,43,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,12.,不当异常处理,不当的异常处理可能给网站带来各种各样的安全问题。最常见的问题是向用户显示内部出错信息,如果这些出错信息不加选择地展现到用户面前,就可能公开了本不应该公开的细节。,44,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,13.,不安全的存储,Web
21、应用程序通常使用加密技术来保护敏感信息。在加密技术和应用程序的结合时,容易出现一些错误,从而给系统带来严重的安全隐患。,经常出错的几个地方包括,:,1,)未对关键数据进行加密;,2,)密钥、证书和密码的不安全存放;,3,)在内存中不恰当地保存关键信息;,45,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,4,)不当的随机资源;,5,)不当的算法选择;,6,)一种新开发的加密算法;,7,)当密钥更改或者其它必备的维护过程发生时,无,法提供最新的技术支持。,这些薄弱环节会给系统带来严重的安全隐患,受保护,的资源也可能因为这些薄弱环节遭受到严重破坏。,46,8.3,针对,
22、Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,14.,不安全的配置管理,Web,应用程序服务器的配置对于,Web,应用程序的安全起到了关键作用。许多服务器的配置问题影响了安全性:,1,)服务器软件漏洞或者错误的配置允许列出目录和进行目录遍历。,2,)没必要的缺省、备份或者例子文件。,3,)服务器软件未打补丁的漏洞。,47,8.3,针对,Web,应用程序漏洞的攻击,常见的,Web,应用程序漏洞,4,)不当的文件和目录访问权限。,5,)没有必要的服务,包括内容管理和远程管理。,6,)使用缺省密码和账号。,7,)被激活的、可以被访问的管理或者调试功能。,8,)使用缺省证书。,9,)通过外
23、部系统的不正确授权。,10,)错误配置的,SSL,证书和加密设置。,48,8.4,Web,应用程序的安全漏洞检测,认证机制漏洞检测,根据,Web,应用程序要求的不同,可以使用基于,HTTP,的认证、基于表单的认证以及,Microsoft Passport,。无论是哪种验证方式,应用程序都会要求用户输入用户名和密码。攻击者,可以用自动化的攻击方式如猜测,密码,、破坏,Cookie,或旁路认证的方式来绕开认证机制。,1,)密码猜测攻击,2,)窃取,Cookie,3,)结合,SQL,注入绕过登陆表单,49,8.4,Web,应用程序的安全漏洞检测,授权机制漏洞检测,程序开发人员在编写,Web,应用程序
24、的时候经常犯的一个错误就是使用了不正当的授权。普通用户在登录系统之后,应该被禁止访问其他用户的信息,而不正当的授权会使普通用户通过各种手段来提升自身的权限,如查看其他用户的信息,甚至得到更高级的管理权限。修改查询字符串和修改,URL,是两种常见的攻击授权的注入方式。,50,8.4,Web,应用程序的安全漏洞检测,输入验证漏洞检测,攻击者通过提交应用程序没有意料到的数据进行攻击,这些漏洞的成因是应用程序中没有正确的验证机制。,1,)应用程序缓冲区溢出漏洞,2,)用圆点(,./.,)遍历应用程序的目录,3,)跨站脚本攻击,4,)边界检查漏洞,5,)搜索字段的百分号漏洞,51,8.5,IIS,和,A
25、SP,技术构造,Web,站点,IIS,自身的安全防护,IIS,检验登录用户是否合法的过程包含五个步骤:,1.IP,地址限制,IIS,能够授予或拒绝特定,IP,地址对其访问,在,IIS4.0,中这种授予或拒绝可以细化为对,Web,站点、虚拟目录、目录和文件的访问控制。,52,8.5,IIS,和,ASP,技术构造,Web,站点,IIS,自身的安全防护,2.,用户许可检查,IIS,支持,4,种,Web,身份验证模型:匿名、基本、,Windows NT,请求,/,应答、客户凭证映射。,利用,IIS,的用户许可检查,将某些资源的访问权限限定为必须是特定的,Windows NT,的合法用户,禁止匿名访问,
26、以此来保护,Web,应用程序的重要部分。,53,8.5,IIS,和,ASP,技术构造,Web,站点,IIS,自身的安全防护,3.IIS,许可检查,一旦用户被授予访问权,服务器就检查,URL,和请求类型,并检查许可和,SSL,客户身份验证凭证。,IIS,还支持对文件操作的许可控制。,54,8.5,IIS,和,ASP,技术构造,Web,站点,IIS,自身的安全防护,4.,自定义的身份验证,自定义的身份验证意味着必须创建自己的身份验证机制。在系统中最常用的方法是执行一个用户名称和口令的数据库查询。,55,8.5,IIS,和,ASP,技术构造,Web,站点,IIS,自身的安全防护,5.NTFS,文件系
27、统许可,通过使用验证身份方式的用户安全性背景,,IIS,可以获得对特定资源(基于,URL,)的访问权。,IIS,的安全登录检查在很大程度上依赖于,NTFS,文件系统,所以最好将虚拟目录都建立在,NTFS,驱动器上。,只有当上述五个步骤的检查全部通过时,该登录用户才会被允许访问所请求的资源。,56,8.5,IIS,和,ASP,技术构造,Web,站点,ASP,的安全编程,ASP,编程中可以使用必要的安全措施以提高站点的安全性,主要包括:,1.,密码的保护,密码是系统中极敏感、关键的信息。密码的提交最好不要采用明文形式,以防被截取。,57,8.5,IIS,和,ASP,技术构造,Web,站点,ASP,
28、的安全编程,2.,对,Session,对象的利用,利用,Session,对象,当用户通过安全登录的检查后,把,Session ID,属性作为一个,Session,变量存储起来。每当用户试图导航到要求有效连接的页面时,就可以比较当前的,Session ID,与存储在,Session,对象中的,ID,。如果它们不匹配,就可以采取适当的行动拒绝访问。,58,8.5,IIS,和,ASP,技术构造,Web,站点,ASP,的安全编程,3.,控制页面缓存,对于合法的用户,页面缓存功能可以加快浏览,Web,页面的速度,对于不合法的用户则提供了一个越权浏览机会。因此,对于应用系统中重要的,Web,页面,要禁止页
29、面缓存。,59,8.6,防火墙技术应用于,Web,站点的安全,防火墙的功能,60,8.6,防火墙技术应用于,Web,站点的安全,代理服务器,代理服务器(有时被称为应用级网关)是一个应用程序,用于协调被保护的网络与,Internet,之间的数据交换,有的代理服务器本身就是一个防火墙软件。代理服务器通常用于替代基于路由器的数据交换控制器,防止数据直接在网络间交换。,61,8.6,防火墙技术应用于,Web,站点的安全,Internet,和防火墙的关系,防火墙作为被保护网络与,Internet,之间的通道,其与,Internet,的关系有以下几点:,1.,使,Web/HTTP,通过防火墙,通常有以下三
30、种方法:,1,)使用屏蔽路由器,可以运行通过路由器建立向外的连接。,2,)使用支持,SOCKS,的,Web,客户程序,并在防火墙上运行,SOCKS,。,3,)在防火墙上运行某种支持代理的,Web,服务器。,62,8.6,防火墙技术应用于,Web,站点的安全,Internet,和防火墙的关系,2.,使,FTP,通过防火墙,使用如防火墙工具箱中的代理服务器,或者通过允许连接到内部具有一定限制的端口区域。,3.,使,Telnet,通过防火墙,通过使用如防火墙工具箱中,tn-gw,那样的代理服务器,或者简单地配置路由器,使路由器允许通过建立的屏蔽规则方法建立外出的连接。,63,8.6,防火墙技术应用于,Web,站点的安全,Internet,和防火墙的关系,4.,使,Finger,通过防火墙,许多防火墙仅允许来自信任主机的,finger,请求,控制访问服务并将它们限制到特定的主机上。,5.X Windows,通过防火墙的问题,很多防火墙禁止所有的,X,数据交换,有的允许通过一定的应用代理来交换,X,数据。,64,思考题,Web,面临哪些安全威胁,请简要说明。,Web,应用程序的漏洞检测包括哪些?它们是如何进行工作的?,什么是,SQL,注入?它有哪些危害?,请简要阐述防火墙对,Web,站点安全的重要作用。,65,






