实验08Web漏洞扫描课件
- 格式:doc
- 大小:230.00 KB
- 文档页数:11
漏洞扫描漏洞(或计算机漏洞)是指在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷,从而可以使攻击者能够在未授权的情况下访问或破坏系统。
具体举例来说,比如在 Intel Pentium芯片中存在的逻辑错误,在Sendmail早期版本中的编程错误,在NFS协议中认证方式上的弱点,在Unix系统管理员设置匿名Ftp服务时配置不当的问题都可能被攻击者使用,威胁到系统的安全。
因而这些都可以认为是系统中存在的安全漏洞,这些漏洞存在于各个方面,而且数量惊人。
据卡巴斯基实验室的统计显示:仅2010年第三季度,就检测出用户计算机中的漏洞程序和文件数量约3200万个。
计算机漏洞是一个比较独特的抽象概念,它具有以下特点:1.计算机安全漏洞的存在并不能导致损害,但是它可以被攻击者利用,从而造成对系统安全的威胁和破坏。
计算机安全漏洞也不同于一般的计算机故障,漏洞的恶意利用能够影响人们的工作、生活,甚至会带来灾难的后果。
2.漏洞是普遍存在的,例如,软件编程过程中出现逻辑错误是很普遍的现象,而这些错误绝大多数都是由疏忽造成的。
3.漏洞是在硬件、软件、协议的具体实现或具体使用的过程中产生的错误,但并不是系统中存在的错误都是安全漏洞,只有能威胁到系统安全的错误才是漏洞。
许多错误在通常情况下并不会对系统安全造成危害,只有被人在某些条件下故意使用时才会影响系统安全。
4.漏洞和具体的系统环境密切相关,在不同种类的软、硬件设备中,同种设备的不同版本之间,不同设备构成的不同系统之间,以及同种系统在不同的设置条件下,都会存在各自不同的安全漏洞问题。
5.漏洞问题是与时间紧密相关的,而且是长期存在的。
随着时间的推移,旧的漏洞会不断得到修补或纠正,而在修补或纠正旧的漏洞的同时,可能会导致一些新的漏洞或错误,而且随着用户的深入使用,系统中存在的漏洞会被不断暴露出来,因此,漏洞将会长期存在。
从广义角度来说,漏洞可以分为应用程序漏洞、网络漏洞和主机漏洞等,本章节所指漏洞专指网络服务漏洞,如POP漏洞、HTTP漏洞、FTP漏洞等。
漏洞扫描通常是指基于漏洞数据库,通过扫描等手段,对指定的远程或者本地计算机系统的安全脆弱性进行检测,发现可利用的漏洞的一种安全检测或者渗透攻击的行为。
漏洞扫描是对系统进行全方位的扫描,检查当前的系统是否有漏洞,如果有漏洞则需要马上进行修复,否则系统很容易受到网络的伤害甚至被黑客借助于电脑的漏洞进行远程控制那么后果将不堪设想,所以漏洞扫描对于保护电脑和上网安全是必不可少的,而且需要每星期就进行一次扫描,一但发现有漏洞就要马上修复,有的漏洞系统自身就可以修复,而有些则需要手动修复。
漏洞扫描也应当包含对内部网络中没有与互联网连接的系统进行审计,目的是检查和评估欺诈性软件威胁,以及恶意的雇员造成的威胁。
应当说,无论对内还是对外,漏洞扫描都有益处。
漏洞扫描可以找出安全缺陷,通过对系统实施测试找出其弱点。
这一点许多人都重视,但许多单位仅仅将漏洞扫描看作是一个总体安全审计的局部而已,其表现就是一年内仅进行一两次漏洞扫描。
这其中的风险极大,因为网络是一个动态变化的实体,特别是一些程序经常需要更新,一些新的软件可能经常需要安装到服务器上,这可能会给造成新的安全威胁。
新的漏洞和程序缺陷几乎每天都在被发现。
所以对于任何一个单位而言,应当经常进行漏洞扫描,应当将其作为一项常规的安全分析计划的重要部分。
漏洞扫描技术的原理是:1.通过端口扫描后得知目标主机开启的端口以及端口上的网络服务,将这些相关信息与网络漏洞扫描系统提供的漏洞库进行匹配,查看是否有满足匹配条件的漏洞存在。
2.通过模拟黑客的攻击手法,对目标主机系统进行攻击性的安全漏洞扫描,如测试弱势口令等。
若模拟攻击成功,则表明目标主机系统存在安全漏洞。
7.1 Web漏洞扫描7.1.1 背景描述WEB服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。
WWW 是 Internet 的多媒体信息查询工具,是 Internet 上近年才发展起来的服务,也是发展最快和目前用的最广泛的服务。
正是因为有了WWW工具,才使得近年来 Internet 迅速发展,且用户数量飞速增长。
随着web 应用的日益增多,如电子商务,交流论坛,公司网站等等都使用web 作为应用的平台,如何保证web应用的安全性也成为当前日益重要、必须解决的问题。
由于网络技术的飞速发展,网络规模迅猛增长,据Netcraft公布的2010年2月份的全球Web服务器使用情况调查报告显示:目前全球web服务器的数量超过了2亿个,并且数量还在持续增长:2010年2月期间Apache主机名称数量增长了1600万个,排在增长趋势的第一位,增长第二位的是微软的Web服务器,主机名称增长数量为1100万个。
迅猛增加的web服务器,导致新的系统漏洞不断增加。
另据瑞典互联网监测机构—Pingdom—2010年7月份发布的全球20大互联网国家排行数据显示:全球互联网用户数量已经达到了18亿,其中中国互联网用户数量为达到了4.2亿。
许多互联网用户出于好奇或别有用心,针对web服务器漏洞,不停的窥视网上资源。
由此导致的web安全事件数不胜数,web服务器安全的严峻形势迫使人们不得不严阵以待。
7.1.2 工作原理Web漏洞扫描方法主要有两类:信息获取和模拟攻击。
信息获取就是通过与目标主机TCP/IP的Http服务端口发送连接请求,记录目标主机的应答。
通过目标主机应答信息中状态码和返回数据与Http协议相关状态码和预定义返回信息做匹配,如果匹配条件则视为漏洞存在。
模拟攻击就是通过使用模拟黑客攻击的方法,对目标主机Web系统进行攻击性的安全漏洞扫描,比如认证与授权攻击、支持文件攻击、包含文件攻击、SQL注入攻击和利用编码技术攻击等对目标系统可能存在的已知漏洞进行逐项进行检查,从而发现系统的漏洞。
远程字典攻击也是漏洞扫描中模拟攻击的一种,其原理与其他攻击相差较大,若攻击成功,可以直接得到登陆目标主机系统的用户名和口令。
目前WEB服务器存在的主要漏洞有:1.物理路径泄露:物理路径泄露一般是由于WEB服务器处理用户请求出错导致的,如通过提交一个超长的请求,或者是某个精心构造的特殊请求,或是请求一个WEB 服务器上不存在的文件。
这些请求都有一个共同特点,那就是被请求的文件肯定属于CGI脚本,而不是静态HTML 页面。
还有一种情况,就是WEB服务器的某些显示环境变量的程序错误的输出了WEB服务器的物理路径,这应该算是设计上的问题。
2.CGI源代码泄露:CGI源代码泄露的原因比较多,例如大小写,编码解码,附加特殊字符或精心构造的特殊请求等都可能导致CGI源代码泄露。
3.目录遍历:目录遍历对于WEB服务器来说并不多见,通过对任意目录附加“../”,或者是在有特殊意义的目录附加“../”,或者是附加“../”的一些变形,如“..\”或“..//”甚至其编码,都可能导致目录遍历。
前一种情况并不多见,但是后面的几种情况就常见得多,如IIS 二次解码漏洞和UNICODE 解码漏洞都可以看作是变形后的编码。
4.执行任意命令:执行任意命令即执行任意操作系统命令,主要包括两种情况。
一是通过遍历目录,如前面提到的二次解码和UNICODE 解码漏洞,来执行系统命令。
另外一种就是WEB服务器把用户提交的请求作为SSI 指令解析,因此导致执行任意命令。
5.缓冲区溢出:缓冲区溢出漏洞是WEB服务器没有对用户提交的超长请求没有进行合适的处理,这种请求可能包括超长URL,超长HTTP Header域,或者是其它超长的数据。
这种漏洞可能导致执行任意命令或者是拒绝服务,这一般取决于构造的数据。
6.拒绝服务:拒绝服务产生的原因多种多样,主要包括超长URL,特殊目录,超长HTTP Header域,畸形HTTP Header域或者是DOS 设备文件等。
由于WEB 服务器在处理这些特殊请求时不知所措或者是处理方式不当,因此出错终止或挂起。
7.条件竞争:这里的条件竞争主要针对一些管理服务器而言,这类服务器一般是以system或root身份运行的。
当它们需要使用一些临时文件,而在对这些文件进行写操作之前,却没有对文件的属性进行检查,一般可能导致重要系统文件被重写,甚至获得系统控制权。
8.跨站脚本执行漏洞:由于网页可以包含由服务器生成的、并且由客户机浏览器解释的文本和HTML 标记。
如果不可信的内容被引入到动态页面中,则无论是网站还是客户机都没有足够的信息识别这种情况并采取保护措施。
攻击者如果知道某一网站上的应用程序接收跨站点脚本的提交,他就可以在网上上提交可以完成攻击的脚本,如JavaScript、VBScript、ActiveX、HTML 或Flash 等内容,普通用户一旦点击了网页上这些攻击者提交的脚本,那么就会在用户客户机上执行,完成从截获帐户、更改用户设置、窃取和篡改cookie 到虚假广告在内的种种攻击行为。
9.SQL注入:对于和后台数据库产生交互的网页,如果没有对用户输入数据的合法性进行全面的判断,就会使应用程序存在安全隐患。
用户可以在可以提交正常数据的URL 或者表单输入框中提交一段精心构造的数据库查询代码,使后台应用执行攻击着的SQL 代码,攻击者根据程序返回的结果,获得某些他想得知的敏感数据,如管理员密码,保密商业资料等。
Web漏洞扫描程序可以在帮助人们造就安全的Web站点上助一臂之力,也就是说在黑客入侵之前,先检测一下系统中的漏洞,巩固web服务器的安全。
如下是典型的十个Web漏洞扫描程序。
1. Nikto。
这是一个开源的Web服务器扫描程序,它可以对Web服务器的多种项目(包括3500个潜在的危险文件/CGI,以及超过900个服务器版本,还有250多个服务器上的版本特定问题)执行彻底的测试。
其扫描项目和插件经常更新并且可以自动更新(如果需要的话)。
Nikto可以在尽可能短的周期内测试Web服务器,这在其日志文件中相当明显。
不过,并非每一次检查都可以找出一个安全问题,虽然多数情况下是这样的。
有一些项目是仅提供信息(“info only” )类型的检查,这种检查可以查找一些并不存在安全漏洞的项目,不过Web管理员或安全工程师们并不知道。
这些项目通常都可以恰当地标记出来,为人们省去不少麻烦。
2. Paros proxy。
这是一个对Web应用程序的漏洞执行评估的代理程序,即一个基于Java的web代理程序,可以评估Web应用程序的漏洞。
它支持动态地编辑/查看HTTP/HTTPS,从而改动 cookies和表单字段等项目。
它包括一个Web通信记录程序,Web圈套程序(spider),hash 计算器,还有一个可以测试常见的Web应用程序攻击(如SQL注入式攻击和跨站脚本攻击)的扫描器。