博威---云架构决胜云计算

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2749|回复: 4

使用漏洞扫描工具 评估网络系统安全

[复制链接]
发表于 2007-4-29 08:53:14 | 显示全部楼层 |阅读模式
使用漏洞扫描工具 评估网络系统安全
漏洞扫描是保证系统和网络安全必不可少的手段,本文将讲述Linux系统中,如何使用免费的远程安全扫描器Nessus进行漏洞扫描。    
 面对互联网入侵,如果我们能够根据具体的应用环境,尽可能早地通过网络扫描来发现安全漏洞,并及时采取适当的处理措施进行修补,就可以有效地阻止入侵事件的发生。因此,漏洞扫描非常重要和必要。漏洞扫描就是对计算机系统或者其他网络设备进行安全相关的检测,以找出安全隐患和可被黑客利用的漏洞。   

  漏洞扫描通常采用两种策略,第一种是被动式策略,第二种是主动式策略。所谓被动式策略就是基于主机之上,对系统中不合适的设置,脆弱的口令以及其他同安全规则抵触的对象进行检查; 而主动式策略是基于网络的,它通过执行一些脚本文件模拟对系统进行攻击的行为并记录系统的反应,从而发现其中的漏洞。   

  基于网络的检测技术,采用积极的,非破坏性的办法来检验系统是否有可能被攻击崩溃。它利用了一系列的脚本模拟对系统进行攻击的行为,然后对结果进行分析。它还针对已知的网络漏洞进行检验。网络检测技术常被用来进行穿透实验和安全审记。   

  网络漏洞扫描的实现   

  网络漏洞扫描方式通过远程检测目标主机TCP/IP不同端口的服务,记录目标给予的回答。通过这种方法,可以搜集到很多目标主机的各种信息,例如是否能用匿名登陆,是否有可写的FTP目录,是否能用Telnet等。在获得目标主机TCP/IP端口和其对应的网络访问服务的相关信息后,与网络漏洞扫描系统提供的漏洞库进行匹配,如果满足匹配条件,则视为漏洞存在。   

  漏洞扫描软件从最初的专门为Unix系统编写的一些只具有简单功能的小程序,发展到现在,已经出现了多个运行在各种操作系统平台上的、具有复杂功能的商业程序。对于用户来说,有如下几种实现方式:   

  ● 使用插件(plug-in)。每个插件都封装一个或者多个漏洞的测试手段,主扫描程序通过调用插件的方法来执行扫描。仅仅是添加新的插件就可以使软件增加新功能,扫描更多漏洞。在插件编写规范公布的情况下,用户或者第三方公司甚至可以自己编写插件来扩充软件的功能。同时这种技术使软件的升级维护都变得相对简单,并具有非常强的扩展性。   

  ● 使用专用脚本语言。这其实就是一种更高级的插件技术,用户可以使用专用脚本语言来扩充软件功能。脚本语言的使用,简化了编写新插件的编程工作,使扩充软件功能的工作变得更加容易和方便。   

  ● 由漏洞扫描程序过渡到安全评估专家系统。最早的漏洞扫描程序只是简单地把各个扫描测试项的执行结果罗列出来,直接提供给测试者而不对信息进行任何分析处理。而当前较成熟的扫描系统都能够将对单个主机的扫描结果整理,形成报表,能够对具体漏洞提出一些解决方法,但对网络的状况缺乏一个整体的评估。未来的安全扫描系统,应该不但能够扫描安全漏洞,还能够智能化的协助网络信息系统管理人员评估本网络的安全状况,给出安全建议,成为一个安全评估专家系统。

而Nessus是一个功能强大的远程安全扫描器(该软件可以从http://www.nessus.org/上下载),它不仅免费而且更新极快。安全扫描器的功能是对指定网络进行安全检查,找出该网络是否存在有导致对手攻击的安全漏洞。该系统被设计为Client/Sever模式,服务器端负责进行安全检查,客户端用来配置管理服务器端。在服务端还采用了插件的体系,允许用户加入执行特定功能的插件,以进行更快速和更复杂的安全检查。在 Nessus中还采用了一个共享的信息接口,称为知识库,其中保存了前面进行检查的结果。检查的结果可以HTML、纯文本、LaTeX等几种格式保存。  

  用户可以指定运行Nessus服务的机器、使用的端口扫描器及测试的内容及测试的IP地址范围。Nessus本身是工作在多线程基础上的,所以用户还可以设置系统同时工作的线程数。这样用户在远端就可以设置Nessus的工作配置了。安全检测完成后,服务端将检测结果返回到客户端,客户端生成直观的报告。在这个过程当中,由于服务器向客户端传送的内容是系统的安全弱点,为了防止通信内容受到监听,其传输过程还可以选择加密。   

  在Nessus安全测试系统中,所有的安全测试都是由nessusd进程发动的。在测试过程中,Nessus会为每个主机维护一份由扫描测试插件获得的基本信息。各种其他的测试插件应该尽可能地利用这些信息,以提高测试效率。每个安全测试插件需要向Nessus服务器进行注册后,才能使用。注册信息包括名字、描述、作者等。   

  实例分析   

  下面通过编写一个简单的脚本来测试Web服务器。这里的WWW服务器采用的是Apache,要实现对其安全测试和模拟攻击首先要做的是搜集服务器的信息。因此,将先测试一下服务器是否存在泄露自身信息的漏洞。(如图1所示)   

  这个算法的思想就是: 构造一个URL: http://www.abc.com/server-info以及http://www.abc.com/server-status,并将其发送给 Apache服务器,然后接收返回的服务器信息。这个脚本不具攻击性,属于收集信息类程序。   

  下面将介绍其具体的一些核心代码的构造和作用,以方便用户尽快上手编写:   

  script_dependencie("find_service.nes");   

  script_require_ports("Services/www", 80);   

  上面两行代码是属于注册部分,它设置了脚本的依赖关系。   

  port = get_kb_item("Services/www");  

  if(!port) port = 80;   

  这两行代码是获得服务器提供WWW服务的端口号,Nessus并不认为服务器一定在公认端口提供相应服务。其中get_kb_item()函数用来从KB库中返回对应参数所对应的值,在这里,如果服务器在其他端口提供WWW 服务的话,这个函数则返回其非80端口号。   

  string= "Apache Server Information";   

  if(get_port_state(port))   

  { soc = http_open_socket(port);   

   if(soc) {   

  buffer = http_get(item:"/server-   

  info", port:port);   

  send(socket:soc, data:buffer);   

  data = http_recv(socket:soc);   

  if( string >< data ) {  

  security_warning(port); }  

  http_close_socket(soc);}   

  }   

  上面这段代码实现的是构造URL,并将其发送到服务器,看返回的信息是否有我们预期的串,即“Apache Server Information”,若有的话,说明服务器存在这种泄露自身信息的漏洞。在执行前,先检测一下对应服务端口状态是否是打开,可避免在端口关闭的情况下进行扫描,占用带宽,提高扫描效率。函数http_get()用来构造一个 HTTP GET请求的格式,它可以自动处理HTTP版本认证。它返回一个规格的HTTP请求串。security_warning()则用来报告相应端口漏洞信息。在这里如果服务器存在这种泄露自身信息的漏洞的话,security_warning()将会报告这个端口存在漏洞,并可以在客户端显示脚本注册时 script_description()函数提供的内容。   

  上面是一个简单的例子,读者还可以通过写脚本或者插件的方式对Linux网络系统中的各种Web服务器和各种网络应用进行安全测试。   

  安全评估及措施   

  在实现了对服务器的安全扫描后,便可根据扫描结果,对服务器的安全性能进行评估,给出服务器的安全状况。下面根据给出一个大致的评价标准。需要特别注意的是: 评价标准应该根据应用系统、应用背景的不同而有相应的改变,并不存在绝对的评估标准。  

  A级: 扫描结果显示没有漏洞。虽然这并不表明没有漏洞,因为有许多漏洞是尚未发现的,但我们只能针对已知的漏洞进行测试。   

  B级: 具有一些泄漏服务器版本信息之类的不是很重要的漏洞,或者提供容易造成被攻击的服务,如允许匿名登录,这种服务可能会造成许多其他漏洞。   

  C级: 具有危害级别较小的一些漏洞,如可以验证某账号的存在,可以造成列出一些页面目录,文件目录等,不会造成严重后果的漏洞。   

  D级: 具有一般危害程度的漏洞,如拒绝服务漏洞,造成服务器不能正常工作,可以让黑客获得重要文件的访问权的漏洞等。   

  E级: 具有严重危害程度的漏洞,如存在缓冲区溢出漏洞,存在木马后门,存在可以让黑客获得根用户权限或根用户的shell漏洞,根目录被设置一般用户可写等一些后果非常严重的漏洞。   

  通过安全评估后,用户则可以根据情况采取措施,包括给系统打补丁(从技术网站上下载)、关闭不需要的应用服务等来对系统进行加固。可以看出,漏洞扫描、安全评估、采取措施是一个循环迭带、前后相继的流程,用户可以在使用中多加揣摩,从而保证Linux网络系统的安全。
相关内容·9行代码废掉Windows
·网游帐号被盗之最新有效解决
·并不神奇的Real影片木马
·网络安全防范的十个戒律
·实战分析一次WinRoute后门攻
·2004年十大网络应用漏洞
·秘密穿过内网防火墙
·揭秘:钓鱼者的三种典型攻击
·QQ大盗传播技术分析及防范
·对iis写权限的利用(关于对第
·SYN flood攻击的原理及其防御
·木马客户端与服务端隐蔽通讯

热门点击·用Linux防火墙伪装抵挡黑客恶
·SANS发布2005全球20大网络安
·雅虎拟加强交友网站安全 防止
·入侵检测系统(IDS)的测试与
·我写CC DDOS攻击器的思路及防
·SQL注入程序带来的攻击及防范
·网络安全基础:防火墙的概念
·上网安全 谨防ActiveX插件成
·简单三步走堵死SQLServer注入
·真正安全起来 网页脚本攻击防
·自己动手做服务器安全(初级
·如何关闭端口防止病毒与黑客
 楼主| 发表于 2007-4-29 08:56:09 | 显示全部楼层
安全的评估工具扫描器

作者: 来源:

随着相关组织公布的安全漏洞接踵而来,多数企业都面临着发现自身系统中的安全隐患重大压力。为了满足企业的这种需要,许多商业公司和开放源代码组织都为发现安全漏洞的自动化做了很多努力,并最终开发出了各种各样的安全评估工具。这些安全评估工具又称为扫描器(scanners),其种类繁多,性能各异。本章将简要介绍这些工具的用法及其使用场合,并就如何选取合适的扫描工具做一些探讨,以帮助读者在场永无休止的网络战争中立于不败之地

扫描器的历史

扫描器的历史要追溯到20世纪90年代,当时internet刚刚起步并在各大学校园中得到迅速发展,CERT也很快建立并运作起来,Gopher在万维网中仍然处于研究阶段;在计算机安全领域,各厂商能够解决大多数的安全问题,UNIX管理员也开始领略到黑客的狡猾了,我们今天所实践的internet安全正处于幼儿时期,但现代安全工具的蓝图却正在逐步绘制起来。

1992年,一名名叫Chris Klaus的计算机科学系学生在做internet安全试验时,编写了一种扫描工具——internet Security Scanner(ISS),该工具可以远程探测UNIX系统的各种通用漏洞。Chris这样写到:

ISS项目使我开始对计算机安全产生了浓厚的兴趣。我以前就听说过许多有关黑客和骇客入侵到NASA和大学网络的事儿,于是我想找出这些安全问题的深层原因,以及这些人为何能够访问到那些我们认为很安全计算机中。我通过internet搜索这些相关的信息,包括Phrack和CERT等咨询机构。

很多信息都是含糊其词的,并没有解释入侵者为何能够访问这些系统。多数信息一般都是警告管理员要严密保护好各种口令,并及时地打上供应商提供的补丁程序,而并没有入侵者如何探测某个网站并进宪入侵等内容。在请教了许多安全领域的专家、阅读了CERT咨询机构的大量文章之后,我开始在我的领域内寻找各种各样的安全漏洞。

令我感到惊讶的是,许多机器的安全保护都做的很好,但有一个域内的机器却有明显的漏洞,任何人都可以通过这些漏洞入侵到这台计算机上,并进而访问这个域内的其他计算机。——Chris Klauw(摘自ISS 1.0中的readme文件,1993年)。

ISS是internet上用来进行远程安全评估扫描的最早的工具之一,它能能别出几十种常见的安全漏洞,并将这些漏洞做上标记以便日后解决。虽然有些人担心该工具的强大功能可能会被用于非法目的,但多数管理员对这个工具却很欢迎。

几年以后,Dan Farmer(以COPS闻名)和Wietse Venema(以TCP_Wrapper闻名)编写了一个类似的工具,称为SATAN(Security Administrator Tool for Analyzing Networks,系统管理员网络分析工具)。SATAN本质上与ISS相同,但有一些优点:具有一个更加成熟的扫描引擎、基于Web的界面,并能进行分类检查。然而与ISS不同的是,SATAN的发布引起了媒体的极大关注:1995年4月该产品发布时,《时代》杂志发表了一篇关于SATAN和Dan Farmer的文章,CERT还评论了该工具的能力(CA-1995-06)。许多人甚至担心SATAN的发布会给internet带来混乱。

事实并非像预料中的那样混乱,只是由于几天以后人们纷纷下载SATAN而造成了网络有点拥塞而已。

注意  奇怪的是,Farmer因为SATAN丢掉了他在SGI的工作,然而Klaus却利用ISS创办了一个拥有几百万资产的网络安全公司——Internet Security Systems(ISS)。

从那时起,安全评估技术就得了不断的发展并日趋成熟。今天,业界已经出现了十几种扫描器,每种都有其优点,也有其弱点;但自从ISS和SATAN问世以来,相关的基本理论和基本概念却没有改变多少。


扫描器的工作原理

大家可能注意到,与Windows和UNIX相关的漏洞有很多,但这些操作系统漏洞基本上可以分为两类:一类是一些本地漏洞(host-level,主机级),另一类是一些远程漏洞(remote-level,远程级)。

对于远程漏洞,我们可以使用多种方法来完成漏洞自动扫描的任务。例如,一种方法是使用诸如nmap的端口扫描工具识别出操作系统的类型,然后记录下所有处理监听状态的端口;这样,用户就会得到一系列端口(如21、25、53、80等等)和操作系统的类型(如Linux kernet2.2)。然而,这种方法也有一定的缺陷:虽然用户得到了不少数据(即端口信息),但却无法得到诸如究竟哪些服务存在安全漏洞等细节,用户得到的只是关于自己系统的一些概要信息;至于如何识别那些处于监听状态的服务,以及这些服务是否存在有漏洞,所有这些工作只能由用户自己来完成。例如,如果通过数据得知识算机X运行的操作系统是Linux 2.2 kernet,在端口21有一个服务正处理监听状态,我们往往难以确定这样的系统是否会有wu-ftpd缓冲区溢出等问题;事实上,我们甚至连该系统上是否运行有wu-ftpd都不清楚(可能正运行有ProFTPd或glftpd等)。因此,即使扫描到了哪些端口是开放的,我们仍然需要:

a)识别该端口上有哪些服务正处于监听状态。

b)识别这些服务的版本。

c)研究与该服务及其版本相关的已知漏洞

尽管这种方法对于十几台机器是可行的,但对于拥有数百台机器听中大型企业,这种方法却几乎是不可能实现的。

更实际一点的解决方法是,在前面的端口扫描和操作系统识别的基础上再添加某种识别监听服务类型和版本的机制。回到前面wu-ftpd缓冲区溢出的例子上,识别了服务的版本以后,我们现在可以得知。

a)服务器运行的操作系统是Linux Kernel 2.2。

b)端口21正处于监听状态。

c)该监听服务的类型和版本号。

假定由上述过程,我们得知正在使用的服务器是wu-ftpd 2.4.2版本;这样,我们的工作又进了一步,现在只需要研究wu-ftpd 2.4.2版本都有哪些漏洞就可以了。

注意  读者需要注意端口扫描(port scanning)和漏洞扫描(vulnerability scanning)的区别。尽管多数漏洞扫描器也需要扫描开放的TCP和UDP端口,但这只是它们的一项功能。相反,尽管诸如nmap之类的端口扫描器也有某些其他功能(如操作系统识别),但一般不包含漏洞数据库。简言之,多数漏洞扫描器所做的工作都比端口扫描器所做的工作更进了一步。

漏洞扫描的最后一步就是研究对应版本的监听服务都有哪些漏洞。在很大程度上,这个过程与黑客的攻击过程非常类似:扫描、查询、研究、攻击。在这个阶段,我们会得知wu-ftpd 2.4.2版本的确存在着漏洞。

根据所有已知的产品漏洞(目前估计有2000到3000种之多)来建立一个完整的系统,并正确识别和跟踪这些产品漏洞是一项相当艰巨的任务。这些漏洞数据的采集和管理也为建立这种自动化的工具带来了极大的难度。

尽管实现的细节各不相同,但基于上述分析,我们可以推断出多数扫描方法所共有的一些部件:

·漏洞数据  漏洞评估扫描器一般都具有内部的漏洞信息数据库,以便精确地识别远端系统的漏洞。

·扫描机制  扫描的技术关键在于它能正确识别出对应的服务、子系统以及漏洞。根据扫描器实现方法的不同,有些扫描器在扫描大范围的机器时可能效率不是很高。

·报告机制  查找问题是一回事,精确地报告这些问题则完全是另一回事儿。有些产品能够更清晰地报告扫描结果。

有的扫描器可能不太符合上述要求,但这样例外的扫描器毕竟是少数。

注意  一种更加彻底也更加危险的方法是,找到了这些漏洞以后对这些漏洞实施攻击。SNI在其最初的Ballista产品中试图这样做过。从理论上讲,这肯定会找出某些诊断错误的漏洞(也称为假阳性,false positives)。然而,这种方法也会带来极大的混乱。例如,攻击诸如BIND NXT等漏洞会破坏掉DNS服务器,如果这种攻击成功的话,所有运行有BIND漏洞版本的DNS服务器都会被破坏掉!
 楼主| 发表于 2007-4-29 08:56:29 | 显示全部楼层
如何选取扫描器

与决定购买其他商品一样,购买之前首先需要确定自己的需求。例如,如果需要实现漏洞修复过程的自动化,则选择的产品最好具有日志和多种扫描集的功能;如果所处的是一个大型Netware环境,选择的产品就要有特定的Netware检查功能;如果需要扫描50到100台主机,那么产品的效率可能要求不是很高,但如果每一次性地扫描几千台机器,那么就要考虑一下产品的效率如何了。再次指出,所有这些需求都会对欲选择的扫描器类型产生极大的影响。

当然,各种产品也都有其共有的特性。一般来说,在选择漏洞扫描器时我们一般需要考虑以下各因素:

·漏洞检测的完整性  在选择扫描器时我一般都不推荐玩数字游戏;但是,一个扫描器所能扫描的漏洞数目的确很重要。至少,一个扫描器应该能够查找出root/administrator级的具有危险的已知漏洞。

·漏洞检测的精确性  扫描器必须要有一个好的漏洞检测集,然而,能否精确地识别这些漏洞同样重要。错过真正的漏洞,与识别到很多不存在的漏洞一样都是不可容忍的。与入侵检测系统类似,有些扫描器产品仍然具有假阳性问题。

·漏洞检测的范围  应该指出,多数漏洞扫描器都是用于进行远端漏洞检测的,而不是用于本地漏洞(主机级)检测。不过,像ISS和Webtrends等产品也有一些能够进行本地漏洞扫描的代理,这些本地漏洞往往是远端扫描检测不到的。不过,这些代理通常会涉及到很大范围的漏洞,而且使用之前还需要安装,这会给大型网络的管理带来一定的困难。

·及时更新  尽管扫描器的更新都是在漏洞发现之后才进行,但这种更新必须要及时地有规律地进行(如一个月一次以上)。选择的扫描器最好能有及时提供产品更新支持的R&D小组。

·报告功能  查找漏洞很重要,但正确地描述这些漏洞以及如何修复它们也同样的重要。有些大型企业需要管理员修复已经发生的问题,这个因素对他们来说往往尤为重要。

·许可和定价问题  有些产品是针对单个节点发放许可证的,有些则是针对每台服务器发放许可证的,也有一些是免费的。有些产品的许可系统很容易(如NAI),而有些产品的许可过程则比较复杂(如ISS)。在本书中试图提供精确的价格和许可信息完全没有必要,因为各供应商一直在不断地改变这些内容。然而需要指出,由于这些产品的价格体系比较混乱,在决定购买之前一定要调查清楚相关的许可证问题;如果有任何疑问,推荐读者选择免费的Nessus。

据我所知,没有一种扫描器产品都能够很好地满足上述各个条件,但Nessus和ISS Internet Security Scanner与上述各要求已经很接近了。

2001年1月,Neohapsis实验室为《Network Computing》杂志对各种扫描器产品进行了一次深入的分析,根据给定的要求,Nessus和ISS Internet Security Scanner在分析结果中高居榜首。有关内容参见http://www.nwc.com/1201/1201f1b1.html.

扫描器存在缺点

正如本书所讨论的各种安全工具都有缺点一样,扫描器也不例外。了解这些工具的缺点与了解其优点一样重要。

扫描工具的主要缺点可以归纳为三类:完整性、时间性与准确性。首先,这些产品多数都能扫描出很多己知的漏洞,但没有一种能够识别出所有的漏洞。根据SANS在2000年第四季度发布的报告,仍然有很多漏洞这些产品识别不到。

参考  读者可以通过以下网址查看SANS常见漏洞Top Ten列表:http://www.sans.org/topten.htm。由于经常发生变化,该列表并没有列举所有常见的漏洞。

其次,这些产品多数都是每个季度更新一次,如果某个漏洞于一月份公布,扫描器可能要到三月份才能检测到这种漏洞,期间两个月的时间得由用户自己检查有关的安全问题。因此,用户在进行远程扫描时,不能完全依赖于这些扫描器的扫描结果。

此外,多数现代的扫描器都简单地采用“banner-grabbing”(标志提取)技术来识别各种服务版本。这种技术在多数环境下是可行的,但有时也会产生错误的结果。例如,通过对端口25(SMTP邮件)和端口21(FTP)进行telnet,我们就可以识别出这两种服务的版本:假如识别结果是Microsoft 5.5和Microsoft FTP 4.0服务器;然而,有些诸如Bind、sendmail和wu-ftpd服务允许管理员在其配置文件中修改这些版本标志。尽管这不是一种安全隐患,但如果将默认的wu-ftpd标志改为“Fabio’s favorite FTP Server version 1.0”就会给大部分安全扫描工具造成混淆。这也说明,如果要想让扫描器工作得更有效,一般不要更改默认的版本标志。

最后,扫描器产品仍然面临着假阳性的缺陷。特别是在大型网络中,扫描器往往会报告一些根本不存在的安全漏洞;尽管这种“宁可信其有,不可信其无”的做法是非常安全的,但由于安全人员要处理这些根本不存在的安全漏洞,因而也增加了开销


常见扫描器简介

在理想情况下,在进行技术性采购时一般要考虑正确的需求、合理的测试以及现实的预算等因素。然而,我们逐渐意识到人们一般都不会这样按部就班地去做。正是基于这个原因,这里挑选了市场上我们认为比较好的扫描器在本节罗列出来;当然,这并不是说其他的产品不好,这只是根据我们的经验和使用情况来挑选的。我们鼓励读者在选择产品之前要做一些相关调查,希望下面列出的各种产品会给你一些指导。

axent netrecon

axent的netrecon丰富了其现有的防火墙和入侵检测工具集等安全产品。该工具界面美观,报告功能完善,漏洞数据库容量适中,而且具有所谓的“二次攻击”(secondary exploitation)能力——即使用从一台服务器上获得的知识来评估别的服务器。尽管我没有使用该产品的最后一个功能,但这个功能却是许多同类产品所有具备的。

netrecon以前并没有Nessus、Cybercop Scanner或ISS那样功能丰富,但现在也是一款非常实用的扫描工具。该产品也可以集成到Axent的Enterprise Security Manager(ESM)中,做一些通用的安全风险评估工作。

供应商:Axent/Symantec

总部:Rockville,MA(美国)

平台:Windows

产品名称:NetRecon

URL:http:www.axent.com

ISS internet scanner

ISS最初成立时只有Internet scanner一种软件产品,该产品一直是安全扫描界的事实上的界业标准。Internet scanner后端报告功能强大,漏洞检查集完备,GUI可用性非常好。ISS也下大气力推荐该产品作为后端扫描引擎,例如,该扫描器针对每种安全检查都提供了大量的背景数据。

Internet scanner基于Microsoft ODBC来存储其后端扫描数据,这些数据以后可以用来进行分析预测。与netrecon集成到ESM中一样,Internet scanner也与ISS Decisions集成到了一起。ISS Decisions利用扫描数据可以与其他安全产品(如防火墙、入侵检测系统等等)协同工作。

尽管Internet scanner一般没有其他产品所面临的假阳性问题,但其更新速度相对慢一些。另一个需要提及的缺点是,根据我对Internet scanner的使用经验,其发布的6.x系列版本有些不稳定。而且在进行大范围的扫描时经常出问题,有时必须要将其内部数据库清空两次才能运行,但其中的数据却无法恢复。

需要注意,ISS还提供其他两种扫描产品:System Scanner和Database Scanner,不过这两种产品都是基于代理的本地扫描工具,无法扫描远端系统。

供应商:Internet Security Systems,Inc.

总部:Atlanta, GA(美国)

平台:Windows

产品名称:Internet Scanner

URL:http://www.iss.net

Network associates cybercop scanner

cybercop scanner来源于NAI(Network associates,Inc.)收购的SNI(Secure Networks,Inc.)的Ballista产品。cybercop scanner能检测出很多漏洞,报告功能也比较强大,还附带有很多实用工具。其中两个很特别的工具是CASL和SMB grinder,CASL可以以基于GUI的方式构建IP数据包,而SMB grinder具有与LophtCrack类似的口令破解功能。
 楼主| 发表于 2007-4-29 08:56:40 | 显示全部楼层
Cybercop的主要缺点是不能检测一些重要的安全漏洞,另外,其价格体系也比较奇怪。NAI通常以每个节点的方式而不是根据服务器的数目来出售Cybercop,这样就会导致价格偏高,这也主要取决于销售商的任务计划。

供应商:Network Associate,Ine.

总部:Santa Clara,CA(美国)

平台:Windows NT, UNIX

产品名称:Cybercop Scanner

URL:http://www.nai.com

开发源代码的Nessus project

Nessus是由renaud Deraison编写的;renaud是一位开放源代码作者,他生活在法国巴黎,他从16岁就开始接触Linux并一直在寻找其漏洞。1996年,renaud开始参加2600会议并对安全问题产生了浓厚的兴趣;他还趁机认识了两位其他程序员,他们于1997年共同编写了一个监听工具。之后,renaud在1998年初构思了Nessus。

Nessus很快成为了漏洞扫描领域的Linux。在开放源代码运动的推动下,Nessus从数年前名不见经传的小工具发展成为可以与商业工具相媲美的著名扫描器。Nessus还引进了一种可扩展的插件模型,使人们可以随意添加扫描模块,这也给了Nessus足够的发展空间,它无法完成的检查可以由别人按照自己的需要自由进行补充、创建。

Nessus采用了一种控制引擎模型,在这种模型中,控制程序可以与扫描引擎驻留在同一台机器上,也可以不在同一台机器上。这种分布式的结构提供了极大的弹性,我们身边即使没有扫描引擎也可以完成漏洞扫描工作。

在本书撰定期间,Nessus已经探测出了500多种漏洞,其中有些漏洞连商业工具也无法扫描出来。只要各位开发者努力,相信明年Nessus在总体性能上会超过商业扫描器。

供应商:NONE(开放源代码)

总部:NONE

平台:UNIX(Windows控制台有效)

产品名称:Nessus

URL:http://www.nessus.org

Whisker

Whisker是由一位名为“rain forest puppy”(rfp)的黑客编写的,他是在探察基于Web的漏洞时突发灵感的。Whisker并不符合一般的漏洞扫描器的定义,因为该工具主要针对己知的CGI脚本进行扫描。事实上,该工具扫描的唯一内容就是CGI脚本,不过它所检查的CGI列表要比其他所有的扫描器都复杂。正是因为这个原因,我们推荐读者大拥有了一个主流的扫描器以后,最好再将Whisker。

供应商:NONE(开放源代码——rfp实验室)

总部:芝加哥,IL(美国)

平台:Windows, UNIX

产品名称:Whisker

URL:http://www.wiretrip.net/rfp/


小结

尽管漏洞扫描工具决不是进行漏洞识别和系统保护的全方位的解决方案,但它们的确是非常有用的工具。不过,与任何其他安全工具一样,我们也要认识到漏洞扫描工具的缺陷:这种工具的更新一般要滞后于新漏洞的发布,不能一直精确地报道各种漏洞信息,也无法详尽地描述各种漏洞数据。在漏洞识别过程中,将漏洞扫描工具与可靠的系统保护程序结合使用,再加上踏实的工作作风,解决各种安全问题应该不在话下。
 楼主| 发表于 2007-4-29 09:20:51 | 显示全部楼层

漏洞扫描等工具在安全评估中的作用

漏洞扫描等工具在安全评估中的作用

摘要:缺陷评估是信息安全评估体系中一个重要的环节,正确认识漏洞扫描、安全审计等安全工具在评估体系中的作用是本文的关键。
关键词:信息安全、风险评估、漏洞扫描、安全审计、安全工具

在当今信息化大潮中,信息化的安全对于每个企业或单位的业务发展起到了越来越关键的支撑作用-――支撑企业或单位的IT架构安全、有效、稳定的运转,信息流也正因此得以充分发挥其快捷性这一无可比拟的优势。对信息安全性进行专业风险评估的需求也越来越迫切。
工具型评估在整体安全评估中所处的阶段
       通常在我们谈到评估时,立刻会想到资产、风险、威胁、影响、脆弱点等等一系列风险评估中的术语,对于信息系统而言,安全评估即为信息安全性的风险评估,信息系统安全评估是一个很大的专业工程,目前国内外较大的安全服务提供商一般都经历过采用BS7799OCTAVE两种评估体系进行指导操作的发展阶段。
我们先谈一谈这两种评估体系的实施特点,在实施中大致可以分为以下几个阶段:
u
明确需求阶段

此阶段完成初期交流、预评估方案、投标和答标文档,客户和服务方均在此阶段逐步明确评估程度;
u
规划阶段

这是一个典型的Project工程阶段,内容包括问题描述、目标和范围、SWOT分析、工作分解、里程碑、进度计划、双方资源需求、变更控制等;
u
操作执行阶段

此阶段又可分为四个子阶段,见下表:
   
   
资产评估阶段
系统和业务信息收集/资产列表/资产分类与赋值/资产报告
威胁评估阶段
部署IDS获取威胁点/收集并评估策略文档/BS7799顾问访谈/事件分析/威胁报告
缺陷评估阶段
扫描/审计/渗透测试/缺陷报告
风险分析和控制阶段
数据整理、入库及分析/安全现状报告/安全解决方案
u
报告阶段

完成此前三个阶段的报告整理以及和用户的交流工作;
u
风险消除阶段

评估仅仅是完成客户当前风险的快照,在风险消除阶段依据此快照和开发的解决方案进行风险的控制和消除。
       以上即为风险评估的五个阶段。亲历过一个完整的评估过程的人都知道,在这个五个阶段中,只有操作执行阶段的“缺陷评估”是完全纯IT技术的操作,此外“威胁评估”中的IDS的部署和使用也涉及到了IT技术操作。在实际的评估流程操作过程当中,我们会发现相当多客户更“乐意”看到缺陷评估这样的可操作性强的报告,因为他们关心:
Q1.
非规范的操作或者非法的攻击行为是如何发生的?
Q2.
技术上的缺陷威胁在哪里?
Q3.
如何通过技术手段进行防范?
Q4.
如何通过技术手段……?
很显然,客户对风险评估的认知程度和对技术完美的追求决定了他们容易对“关键资产”和“关键资产的保护”产生了相对狭隘的理解:资产必须是有形可见的,操作必须是通过技术手段实现的。这种狭隘的理解无可厚非,因为即使是目前专业的信息安全服务提供商,他们在发展初期对安全评估的理解也仅限于缺陷评估,采用的评估手段也相当有限:
l
关键设备的远程/本地漏洞扫描 ――― 借助漏洞扫描工具或人工方式操作

l
关键系统的远程/本地漏洞扫描 ――― 借助漏洞扫描工具或人工方式操作

l
网络或设备的抽样审计  ――― 借助审计工具(包括入侵检测工具)

l
抽样病毒检测与查杀  ――― 借助病毒检测工具或者人工方式操作

l
渗透测试 ――― 借助工具,更多是以人工方式操作

这样的评估方式优点是:
&thorn;
项目的可操作性强;

&thorn;
对技术弱点的把握精确;

&thorn;
结论的可指导性强;

&thorn;
技术型报告更容易被客户接受;

经过这种评估后,对信息系统进行合适安全加固,基本上可以保证该系统在短期内(在新的缺陷暴露之前)的安全性。
然而,这种简单的评估方式的缺点也显而易见:
&yacute;
在安全管理上存在严重不足;

&yacute;
对系统整体安全状况把握不足;

&yacute;
风险的计算方法通常并不科学;

&yacute;
安全加固效果的短期性导致评估必须重复、频繁进行;

这些缺点是否表明工具型的安全评估已经“不合时宜”需要被淘汰了吗?答案当然是否定的。信息安全评估在我国的发展到了今天,工具型的安全评估已经不再是各大安全服务提供商进行安全评估的全部内容,逐渐演变成其中的一个环节,随着工具检测技术的不断进步,这个环节也逐渐发挥越来越重要的作用。
下面我们结合威胁评估和缺陷评估中使用到的安全工具谈一谈工具型安全评估在实际操作中发挥的作用。
工具型安全评估的作用       在威胁评估和缺陷评估中,按照评估的形式,我把常用的工具分为以下主动型和被动型两种:
&eth;
主动型:软硬件扫描系统

也称作评估仪,包括端口扫描和漏洞扫描,扫描方式分为本地、远程或者两种相结合的方式;
&eth;
被动型:软硬件审计系统

包括网络安全审计和数据库审计等,考虑到数据采集的方式,在这里我们把威胁评估中使用到的入侵检测系统(IDS)也归入此类;
       需要指出的是,以上所说的工具,并非都以一个“系统”的形式存在,在实际操作过程中,这些工具可能是一个小软件,或是一台设备,也可能是在进行渗透测试中临时编写的一个小脚本。
对于人工方式进行的操作系统安全配置检查、网络设备日志审计、安全设备策略审计等审计操作中涉及到的工具,因篇幅原因,不在本文中单独讨论。
主动型扫描系统的应用       扫描系统采用主动探测的方式快速获取目标设备的脆弱点,从而协助评估人员对目标系统建立风险快照。
目前国内各大信息安全服务提供商都开发有自己的扫描系统,这些系统同时具有端口扫描和漏洞扫描的功能,扫描方式也不拘泥于一种形式,通常本地/远程均可。
       在这里我们跳过扫描系统的技术实现,主要讨论一下漏洞扫描系统的特点,一个典型的工具例子是开源的漏洞扫描器Nessus(你可以从其官方网站http://www.nessus.org获取该软件的最新版本和源代码),相信大家一定也对它比较熟悉。

Nessus
是一款可以运行在LinuxBSDSolaris以及其他一些系统之上的远程安全扫描软件,可以评估的平台涉及非常广泛,包括各种流行的操作系统、安全设备(如防火墙)、网络设备(如交换机、路由器)等等,截至20044月,该软件可检测的漏洞规则已达到2000余条,覆盖Mail服务器、Web服务器、FTP服务器、拒绝服务、缓冲区溢出、流行病毒检测等十余种缺陷类别,该软件自身生成的报告也相当完善。

以下以一个典型的扫描案例为例,说明扫描系统在评估中的作用。
----------------------------------------------------------------------------------------------------------------------
事件描述20043月,安全评估工程师使用Nessus在一次针对一个C类网段100余台主机的扫描过程中,发现至少15台主机存在以下缺陷(下面结果经过整理):
漏洞名称
Rpc 服务: 检测到W32.Welchia.Worm(冲击波杀手)病毒
漏洞描述
评估仪已检测到目标主机已经感染W32.Welchia.Worm病毒,该病毒利用RPCDCOM缓冲区溢出漏洞和WebDAV缓冲区溢出漏洞进行感染和传播,在传播过程中发送的数据有可能造成网络堵塞。该病毒自20038月爆发以后,截至20042月已经出现多个变种,所利用的漏洞也在不断增加,危害巨大。请务必引起重视。
风险等级

解决方案
请安装杀毒软件,立刻升级病毒库进行查杀,同时必须进行防护措施,以防再次被感染。
防护措施:
尽管有临时解决方案,例如设置防火墙或者IP安全策略等方法防治感染,但我们强烈建议您尽快进行Windows更新,以消除该病毒所利用的漏洞引起的隐患。
请参考下面网址:
Microsoft Security Bulletin MS03-039  Microsoft Security Bulletin MS03-007  
       上面的探测结果中描述了一个Windows平台的漏洞,内容包括漏洞细节、危险级别的判断以及相应的解决方案,这对我们的评估至少提供了以下几点信息:
&Oslash;
该网段计算机用户采用Windows 2000/XP/2003系统占相当的比例;

&Oslash;
该网络尚未部署防病毒软件,或防病毒软件病毒特征库未及时更新;

&Oslash;
该网段为单位内网,内外网采用了物理隔离措施,但仍然被该网络蠕虫病毒感染,表明可能有用户擅自接入外网,或者移动设备(如笔记本)管理不善;

&Oslash;
该病毒的一个特点是发送大量ICMP数据报文,易造成网络堵塞,该网段内用户却没有上报网络中断事件,表明该网络利用率并不高,且用户计算机操作水平较低;

&Oslash;
该病毒所利用的漏洞公布日期距今接近9个月,然而这些计算机却没有及时进行升级,表明计算机管理员安全意识较弱,并没有定期系统升级的习惯(或方式),或者缺乏相应的制度进行约束;

评估结论片断:鉴于该漏洞的严重性,该网段评估结果为高危险,且应立刻检测其他网段,并采取相应的安全技术和管理措施。
----------------------------------------------------------------------------------------------------------------------
       以上仅是一个简单的案例分析,在实际操作过程当中因环境的不同,需要考虑的问题应该更加全面。从这个案例可以看出,扫描工具对于我们快速了解目标信息系统网络设备的安全概况提供了便利。
被动型审计系统的应用       审计系统采用被动方式捕获目标信息系统数据,安全评估人员通过对审计系统生成的图表和日志进行分析,从而获知目标系统的脆弱点。
       目前安全产品市场上所指的审计系统通常指网络安全审计和数据库审计两种,网络安全审计可以帮助掌握网络使用情况,监测网络内部传输的信息,发现正在发生的机密信息的泄漏和窃取,以及其他的违规操作行为。考虑到评估数据的相似性,我们把嗅探工具、病毒扫描以及入侵检测系统均划分在了审计系统的范围。在这里我们仍然抛开审计工具的技术原理实现,举例网管人员熟知的NAI公司的产品SnifferPro(你可以从NAT官方网站http://www.nai.com获取该软件的信息)介绍审计工具在安全评估中的应用。
----------------------------------------------------------------------------------------------------------------------
       事件描述:在一次对客户信息系统安全评估过程当中,使用SnifferPro V4.70对网络进行了24小时的监控。工具接入点如下图所示。
Internet

Mail 服务器

防火墙

Web 服务器

内网

探测点(1)

探测点(2)

图一:Sniffer监测示意图
       以下是几个报文数据捕获的截屏图片:
图二:探测点(1)截获的数据(片断)-DMZ区监控
图三:探测点(2)截获的数据(片断)-内网段监控
       本文不是一篇Sniffer操作手册,所以我们只摘取其中一部分报文进行分析,如上面三图所示,我们可以获得的基本信息有:
&Oslash;
根据图二并结合数据报文的详细信息,我们可以看出外部访问者212.*.*.*成功进入服务器的FTP服务;

&Oslash;
该服务器FTP口令较弱,已经被攻击者窃取,或者已经泄漏;

&Oslash;
该服务器的FTP服务存在严重缺陷,攻击者已经成功利用了Web服务器所开放的FTP服务存在的缺陷(Serv-U MDTM远程缓冲区溢出漏洞),并已经获取了系统的最高权限。

&Oslash;
根据图三数据连接频度及连接信息可以看出,内网主机10.98.43.50在频繁向同网段主机发送长度为60字节的ICMP包,并试图连接目标主机的9606端口;

评估结论片断:关键服务器已被外部访问者攻击,需要FTP服务是否存在弱口令用户,以及FTP是否需要对外公开,如果非公开,防火墙是否已经正确设定相应规则以阻断访问,FTP存在的严重缺陷需要尽快修补;内网发生的扫描行为是否合法,是否被病毒感染。
----------------------------------------------------------------------------------------------------------------------
       在以上的审计案例中,我们可以看到审计工具的功能是非常强大的,但由于审计是被动型的数据捕获,它并不针对某一安全问题或者故障进行工作,所以具有一定的局限性,例如需要较长时间的监控才能获取足够的原始数据,在数据捕获期间如果不是网络业务高峰期,且恰巧没有安全问题发生,那么捕获的数据就不满足安全分析的需要,评估的结果就和实际情况有很大差别。所以在实际操作过程中,需要在整个安全评估的初期和客户进行深入的沟通,了解系统细节,选择合适的时间和合适的工具进行审计。
最后       工具的辅助是一个完整的安全评估体系不可或缺的重要组成部分,然而正如前文所述,仅仅借助漏洞扫描、审计等工具进行的安全评估是不完整的、有局限的,工具的使用也不是简单的操作,更多的价值体现在对于工具采集的结果数据的综合考虑和总体分析上,这就对安全评估工程师的理论知识、操作水平和经验积累都提出了严格要求。如何更准确、更高效的利用工具辅助安全评估对于信息安全评估工作者来说是富有挑战意义的。



您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|boway Inc. ( 冀ICP备10011147号 )

GMT+8, 2024-11-22 15:38 , Processed in 0.100978 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表