1、第第7 7章章 网站的安全网站的安全第1页,共40页。7.1 7.1 口口 令令 安安 全全7.2 Web7.2 Web站点的安全站点的安全7.3 DNS7.3 DNS的安全的安全第2页,共40页。7.1 7.1 口口 令令 安安 全全77.11.1 1 口令破解过程口令破解过程1口令破解的方法口令破解的方法(1)穷举法)穷举法穷举法就是对所有可能的口令组合进行穷举法就是对所有可能的口令组合进行猜测,最终找到系统的口令,因此也被称为蛮猜测,最终找到系统的口令,因此也被称为蛮力猜测。力猜测。第3页,共40页。口口 令令 长长 度度要猜测的口令数要猜测的口令数所所 需需 时时 间间13636秒秒2
2、129621分分34665612.96小时小时4167961619.44天天5604661761.9年年6217678223669年年7783641640962484年年8282110990745689456年年表表7.1 口令长度对破解的影响口令长度对破解的影响第4页,共40页。v(2)利用漏洞)利用漏洞v(3)字典法破解)字典法破解v通常可以用以下一些方法来获取用户的口令。通常可以用以下一些方法来获取用户的口令。v(1)缺省的登录界面()缺省的登录界面(Shell Scripts)攻击法)攻击法v(2)通过网络监听非法得到用户的口令)通过网络监听非法得到用户的口令v(3)直接猜测)直接猜测
3、v(4)人为的失误)人为的失误v(5)获取密码存放文件)获取密码存放文件第5页,共40页。2口令破解过程口令破解过程3几个典型的口令破译程序几个典型的口令破译程序(1)用于)用于Windows NT/2000的口令破译程序的口令破译程序下面的工具对基于下面的工具对基于Windows NT/2000的攻击都很有用。的攻击都很有用。L0phtcrack Solar Designer的的John the Ripper(2)用于)用于UNIX上的口令破译程序上的口令破译程序 Crack Crackerjack Merlin第6页,共40页。v77.11.2 2 安全口令的设置安全口令的设置v1保证足够
4、的口令长度保证足够的口令长度v2保证口令的复杂性保证口令的复杂性第7页,共40页。下述几点是设定较安全的口令时必须遵循的原则:下述几点是设定较安全的口令时必须遵循的原则:(1)口令中尽量包含字母、数字和标点符号,还可以用控制)口令中尽量包含字母、数字和标点符号,还可以用控制字符来增强口令的复杂性;字符来增强口令的复杂性;(2)口令的长度应至少有)口令的长度应至少有8个字符;个字符;(3)口令的字符不要太常见;)口令的字符不要太常见;(4)口令不要用自己的电话号码;)口令不要用自己的电话号码;第8页,共40页。(5)口令不要用自己或家里亲人的生日;)口令不要用自己或家里亲人的生日;(6)口令不要
5、用身份证号码的一部分;)口令不要用身份证号码的一部分;(7)口令不要用单个英文单词;)口令不要用单个英文单词;(8)口令不要用自己的名字)口令不要用自己的名字+数字的形式;数字的形式;(9)口令不要用英文单词)口令不要用英文单词+数字的形式。数字的形式。第9页,共40页。3定期更改口令定期更改口令(1 1)用户可以改变自己的口令)用户可以改变自己的口令(2 2)网络管理员给用户指定口令)网络管理员给用户指定口令4避免使用重复的口令避免使用重复的口令在生活中,人们为了记忆的方便可能会习惯于在生活中,人们为了记忆的方便可能会习惯于重复使用自己所熟悉或者好记忆的几个口令。为了重复使用自己所熟悉或者好
6、记忆的几个口令。为了避免这种情况,系统应该采取一定的措施拒绝重复避免这种情况,系统应该采取一定的措施拒绝重复口令的使用。口令的使用。第10页,共40页。v5遵循以下用户规则遵循以下用户规则为了安全,对用户进行口令安全方面的教育是很重为了安全,对用户进行口令安全方面的教育是很重要的。用户在了解如何设置安全口令的同时,还应要的。用户在了解如何设置安全口令的同时,还应该遵守用户规则。为了保持用户口令的安全现有以该遵守用户规则。为了保持用户口令的安全现有以下几点建议:下几点建议:v(1 1)不要将口令写下来;)不要将口令写下来;v(2 2)不要将口令存入计算机文件中;)不要将口令存入计算机文件中;v(
7、3 3)不要选取显而易见的信息作为口令;)不要选取显而易见的信息作为口令;v(4 4)不要让别人知道自己的口令;)不要让别人知道自己的口令;v(5 5)不要交替使用两个口令;)不要交替使用两个口令;v(6 6)不要在不同系统上使用同一口令;)不要在不同系统上使用同一口令;v(7 7)不要让人看见自己在输入口令。)不要让人看见自己在输入口令。第11页,共40页。减少口令危险的最有效的方法是根本不用常减少口令危险的最有效的方法是根本不用常规口令。替代的办法就是在系统中安装新的规口令。替代的办法就是在系统中安装新的软件或硬件,使用一次性口令。不幸的是,软件或硬件,使用一次性口令。不幸的是,他们或者要
8、求安装一些特定的程序,或者需他们或者要求安装一些特定的程序,或者需要购买一些硬件,因此现在使用得并不普遍要购买一些硬件,因此现在使用得并不普遍。第12页,共40页。7.2 Web7.2 Web站点的安全站点的安全Web面临的威胁有多种面临的威胁有多种:1信息泄露信息泄露2拒绝服务拒绝服务3系统崩溃系统崩溃4跳板跳板第13页,共40页。77.22.1 1 构建构建WebWeb站点的安全特性站点的安全特性1制定制定Web站点的安全策略站点的安全策略(1)安全资源的定义和重要等级划分)安全资源的定义和重要等级划分(2)风险评估)风险评估(3)安全策略的基本原则和安全管理规定)安全策略的基本原则和安全
9、管理规定(4)意外事件的处理措施)意外事件的处理措施第14页,共40页。2配置配置Web服务的安全特性服务的安全特性(1)用户与)用户与Web站点建立连接的过程站点建立连接的过程Web站点的以下几个漏洞站点的以下几个漏洞:一旦服务器伪造了域名,客户就可能永远得不到授权访一旦服务器伪造了域名,客户就可能永远得不到授权访问的信息。问的信息。如果服务器被伪造了域名,服务器就可能向另一用户发送如果服务器被伪造了域名,服务器就可能向另一用户发送信息。信息。服务器可能将入侵者误认为合法用户,并允许入侵者访问。服务器可能将入侵者误认为合法用户,并允许入侵者访问。第15页,共40页。加强服务器的安全,有以下一
10、些措施。加强服务器的安全,有以下一些措施。保证注册账户的时效性。保证注册账户的时效性。可以将可以将Web服务器当作无权的用户运行。服务器当作无权的用户运行。当在当在Windows NT系统上运行服务器,检查驱动器系统上运行服务器,检查驱动器和共享的权限时,将系统设为只读状态。和共享的权限时,将系统设为只读状态。强制用户登录时使用好的密码(也就是前面第一节强制用户登录时使用好的密码(也就是前面第一节所讲的那些安全密码)。所讲的那些安全密码)。最好将敏感信息文件放在基本系统中,再设二级系最好将敏感信息文件放在基本系统中,再设二级系统,所有的敏感数据都不向因特网开放。统,所有的敏感数据都不向因特网开
11、放。第16页,共40页。不要保留不用的服务。不要保留不用的服务。最重要的是检查最重要的是检查HTTP服务器使用的服务器使用的Applet脚本,尤其是脚本,尤其是那些与客户交互作用的那些与客户交互作用的CGI脚本。防止外部用户执行内部指脚本。防止外部用户执行内部指令。令。建议在建议在Windows 2000服务器上运行服务器上运行Web服务器。服务器。如有不用的如有不用的shell或解释程序,则将它们删除。或解释程序,则将它们删除。定期检查系统和定期检查系统和Web记录以发现可疑活动。记录以发现可疑活动。检查系统文件的权限是否设置正确。检查系统文件的权限是否设置正确。第17页,共40页。(2 2
12、)ApacheApache服务器的安全特性服务器的安全特性 以以Nobody用户运行用户运行 Server Root目录的权限目录的权限 阻止用户修改系统配置阻止用户修改系统配置 SSI(Server Side Includes)配置)配置禁用禁用Apache Server中的中的SSI的执行功能的执行功能。第18页,共40页。77.22.2 2 检测和排除安全漏洞检测和排除安全漏洞1HTTP的安全问题的安全问题 S-HTTP(Secure Hyper Text Transfer Protocol)是保护是保护Internet上所传输的敏感信息的安全协议。利用上所传输的敏感信息的安全协议。利用
13、S-HTTP,安全服务器以加密和签名信息回答请求。,安全服务器以加密和签名信息回答请求。同样,安全客户验证签名并验证身份。同样,安全客户验证签名并验证身份。SSL协议不同于协议不同于S-HTTP之处在于后者是之处在于后者是HTTP的超的超集,只限于集,只限于Web的使用;而前者则是通过的使用;而前者则是通过Socket发送信息。发送信息。适用于所有的适用于所有的TCP/IPTCP/IP应用。应用。第19页,共40页。2CGI程序的安全性程序的安全性 除了避免向外部程序传送未经检查的用户变量外,除了避免向外部程序传送未经检查的用户变量外,还必须用它们的完整的绝对路径名来调用程序,而不能还必须用它
14、们的完整的绝对路径名来调用程序,而不能依赖于依赖于PATH环境变量。环境变量。在编写在编写CGI时一定要注意对输入参数进行检查,时一定要注意对输入参数进行检查,避免漏洞的出现。避免漏洞的出现。第20页,共40页。3Java与与JavaScript 默认的浏览器中采取的默认的浏览器中采取的Applet安全措施是安全措施是Applet不能读写本地系统上的文件,并且不能读写本地系统上的文件,并且Applet不不能与除了源服务器之外的主机相连接。能与除了源服务器之外的主机相连接。JavaScript的漏洞不像的漏洞不像Java的漏洞那样能损坏用户的漏洞那样能损坏用户的机器,而只是侵犯用户的隐私。的机器
15、,而只是侵犯用户的隐私。第21页,共40页。(1 1)JavaScriptJavaScript可以欺骗用户,将用户的本地硬盘可以欺骗用户,将用户的本地硬盘或连在网络上的磁盘上的文件上载到或连在网络上的磁盘上的文件上载到InternetInternet上的上的任意主机。任意主机。(2 2)JavaScriptJavaScript能获得用户本地硬盘和任何网络上的目录能获得用户本地硬盘和任何网络上的目录列表。列表。(3 3)JavaScriptJavaScript能监视用户某段时间内访问的所有能监视用户某段时间内访问的所有网页,捕获网页,捕获URLURL并将它们传到并将它们传到InternetInt
16、ernet上某台主机中。上某台主机中。第22页,共40页。4 4ActiveXActiveX的安全性的安全性 ActiveX控件的功能主要包含控件的功能主要包含ActiveX控件、控件、ActiveX文档、文档、ActiveX服务器框架、服务器框架、ActiveX脚本和脚本和HTML扩展。扩展。ActiveX最大一个漏洞是用户通过浏览器浏览最大一个漏洞是用户通过浏览器浏览一些带有恶意的一些带有恶意的ActiveX控件,这些控件可以在用户控件,这些控件可以在用户毫不之情的情况下执行毫不之情的情况下执行Windows系统中的任何程序。系统中的任何程序。第23页,共40页。5Web欺骗欺骗 Web欺
17、骗就是攻击者建立一个使人相信的欺骗就是攻击者建立一个使人相信的Web页站点的拷贝,这个假的页站点的拷贝,这个假的Web站点拷贝就像真的一站点拷贝就像真的一样,它具有所有的页面和链接。一旦攻击者控制了样,它具有所有的页面和链接。一旦攻击者控制了这个假的这个假的Web页,被攻击对象和真的页,被攻击对象和真的Web站点之间站点之间的所有信息流都会被攻击者控制。的所有信息流都会被攻击者控制。(1)Web攻击的行为和特点攻击的行为和特点 静态地观察。静态地观察。实施破坏。实施破坏。攻击的简单性。攻击的简单性。第24页,共40页。(2 2)WebWeb欺骗攻击的原理和过程欺骗攻击的原理和过程 Web欺骗攻
18、击的关键在于攻击者的欺骗攻击的关键在于攻击者的WebWeb服务器能够插在服务器能够插在浏览者和其他的浏览者和其他的WebWeb之间,如图之间,如图7.17.1所示。所示。改写改写URLURL图图7.17.1 攻击服务器截断正常的连接攻击服务器截断正常的连接第25页,共40页。图图7.2 Web欺骗攻击的例子欺骗攻击的例子第26页,共40页。开始攻击开始攻击因为页面上所有的因为页面上所有的URLURL都指都指 制造假象制造假象为了防止用户发现自己被攻击了,攻击者会消除所有可能会为了防止用户发现自己被攻击了,攻击者会消除所有可能会留下的攻击线索。留下的攻击线索。第27页,共40页。77.22.3
19、3 监控监控WebWeb站点的信息流站点的信息流1 1概述概述(1 1)监控请求)监控请求 服务器日常受访次数是多少?受访次数是否增加?服务器日常受访次数是多少?受访次数是否增加?一周中哪天最忙?一天中又是何时最忙?一周中哪天最忙?一天中又是何时最忙?用户从哪里连接的?用户从哪里连接的?服务器上哪类信息被访问?哪些页面最受欢迎?每个目录服务器上哪类信息被访问?哪些页面最受欢迎?每个目录下有多少页被访问?下有多少页被访问?每个目录下有多少用户访问?访问站点的是哪些浏览器?每个目录下有多少用户访问?访问站点的是哪些浏览器?与站点对话的是哪种操作系统?与站点对话的是哪种操作系统?哪种提交方式用得更多
20、?哪种提交方式用得更多?第28页,共40页。(2)测算访问次数)测算访问次数确定站点的访问次数。访问次数是一个原始数字,仅确定站点的访问次数。访问次数是一个原始数字,仅仅描述了站点上文件下载的平均数目。当一个用户在仅描述了站点上文件下载的平均数目。当一个用户在站点上详细阅读时,一次简单的会话就可以形成好几站点上详细阅读时,一次简单的会话就可以形成好几次访问记录。次访问记录。确定站点访问者数目。确定站点访问者数目。第29页,共40页。2利用防火墙增强利用防火墙增强WebWeb服务器的安全性服务器的安全性3利用入侵检测系统保护利用入侵检测系统保护Web服务的安全服务的安全 入侵检测系统(入侵检测系
21、统(Intrusion Detection System,IDS)从不同的系统和网络源收集信息,然后根据已)从不同的系统和网络源收集信息,然后根据已知的攻击模式对信息进行分析,检查是否有入侵的知的攻击模式对信息进行分析,检查是否有入侵的迹象,有些入侵检测系统还允许管理员定制实施相迹象,有些入侵检测系统还允许管理员定制实施相应策略。应策略。第30页,共40页。7.3 DNS7.3 DNS的安全的安全77.33.1 DNS1 DNS的安全问题的安全问题 DNSDNS的安全问题可以分为实现中的安全问题和协的安全问题可以分为实现中的安全问题和协议安全缺陷两大类,实现相关的问题几乎影响了目前议安全缺陷两
22、大类,实现相关的问题几乎影响了目前所有的所有的DNSDNS服务器,但是可以通过打补丁等方法进行修服务器,但是可以通过打补丁等方法进行修补,而协议安全缺陷则需要使用防火墙技术解决。补,而协议安全缺陷则需要使用防火墙技术解决。第31页,共40页。1DNSDNS实现中的安全问题实现中的安全问题(1)DNS的请求得到虚假应答的请求得到虚假应答(2)主机名与)主机名与IP地址地址DNS树之间的数据不匹配树之间的数据不匹配(3)给入侵者透露的信息太多)给入侵者透露的信息太多 除此之外,除此之外,DNS在使用过程中也存在以下一些安在使用过程中也存在以下一些安全缺陷。全缺陷。最直接攻击方式最直接攻击方式 服务
23、失效攻击服务失效攻击 服务窃取攻击服务窃取攻击 抢占抢占 其他其他DNS攻击方式攻击方式第32页,共40页。2设置设置DNS来隐藏信息来隐藏信息(1)在堡垒主机上建立一个伪)在堡垒主机上建立一个伪DNS服务器供外界使用服务器供外界使用图图7.37.3 用防火墙来隐藏用防火墙来隐藏DNSDNS信息信息 第33页,共40页。(2)在内部系统上建立一个真实的)在内部系统上建立一个真实的DNS服务器供内部使用服务器供内部使用图图7.47.4 有转发的有转发的DNSDNS 第34页,共40页。v3DNS协议的安全缺陷第35页,共40页。77.33.2 2 增强的增强的DNSDNS1DNS安全扩展安全扩展
24、2密钥的分配密钥的分配 DNS的安全扩展使用基于分开密钥的密钥分配机制,的安全扩展使用基于分开密钥的密钥分配机制,以支持鉴别和其他安全服务。其中使用的一个重要概念以支持鉴别和其他安全服务。其中使用的一个重要概念就是密钥资源记录(就是密钥资源记录(KEY RR),它把一个公开密钥和一),它把一个公开密钥和一个个DNS名关联起来。名关联起来。3数据的原始鉴别和完整性保护数据的原始鉴别和完整性保护4事务和请求的鉴别事务和请求的鉴别5签名的资源记录签名的资源记录第36页,共40页。77.33.3 3 安全安全DNSDNS信息的动态更新信息的动态更新1概述概述安全安全DNS信息动态更新处理的是信息动态更
25、新处理的是DNS的信息的信息(及(及RR)的动态修改,包括删除)的动态修改,包括删除RR及设置及设置RR等等一些频率较低的操作,一些频率较低的操作,DNSSEC工作组为此定义工作组为此定义了专门的操作、请求和响应格式、返回码等等。了专门的操作、请求和响应格式、返回码等等。第37页,共40页。v2基本原理基本原理vDNS动态更新过程中会涉及到以下动态更新过程中会涉及到以下3个角色。个角色。v(1)从服务器()从服务器(Slave):):v(2)主服务器()主服务器(Master):):v(3)原主服务器()原主服务器(Primary Master):):v3基本模式基本模式v(1)模式)模式Av
26、 域的隐蔽密钥和域中的静态信息都被离线存放,以域的隐蔽密钥和域中的静态信息都被离线存放,以提高静态数据的安全性。所有提高静态数据的安全性。所有RR的动态更新数据都需要的动态更新数据都需要被认可过的动态更新密钥签名,而且这些动态数据保存在被认可过的动态更新密钥签名,而且这些动态数据保存在在线的动态主文件中。在线的动态主文件中。第38页,共40页。(2)模式)模式B 在模式在模式B中,域的隐蔽密钥和主文件都在线存放,中,域的隐蔽密钥和主文件都在线存放,当更新完成时,域密钥会重新计算更新内容的当更新完成时,域密钥会重新计算更新内容的SIG,因为在网络中仅有惟一的主文件。因为在网络中仅有惟一的主文件。第39页,共40页。表7.2模式A和模式B之间的差别比较指 标模式A模式B定义域密钥离线存放域密钥在线存放服务器数据的安全性轻高静态数据的安全性很高中到高动态数据的安全性中中到高密钥的限制好粗糙动态数据存放短暂的永久的动态更新密钥过期做不到可以第40页,共40页。