主题 漏洞扫描产品的一个文章[zt]

http://www.cnw.com.cn/issues/article.asp?filename=n31024.txt

无论是外部入侵还是内部攻击,其特点都是利用操作系统、应用服务和通信协议的弱点或缺陷来攻城掳地。对付此类威胁,人们必须尽早发现网络系统中的安全漏洞,及时采取修补措施。


    明查秋毫

    ——漏洞扫描产品购买指南

    ■ 钟力  万孝雄


    漏洞扫描是一项重要的安全技术,它采用模拟攻击的形式对网络系统组成元素(服务器、工作站、路由器、防火墙和数据库等)可能存在的安全漏洞进行逐项检查,根据检查结果提供详细的漏洞描述和修补方案,形成系统安全性分析报告,从而为网络管理员完善网络系统提供依据。通常,我们将完成漏洞扫描的软件、硬件或软硬一体的组合称为漏洞扫描器。

    漏洞扫描器的分类

    根据工作模式,漏洞扫描器分为主机漏洞扫描器和网络漏洞扫描器。其中前者基于主机,通过在主机系统本地运行代理程序来检测系统漏洞,例如操作系统扫描器和数据库扫描器。后者基于网络,通过请求/应答方式远程检测目标网络和主机系统的安全漏洞,例如Satan和ISS Internet Scanner等。针对检测对象的不同,漏洞扫描器还可分为网络扫描器、操作系统扫描器、WWW服务扫描器、数据库扫描器以及最近出现的无线网络扫描器。

    漏洞扫描器通常以三种形式出现:单一的扫描软件,安装在计算机或掌上电脑上,例如ISS Internet Scanner;基于客户机(管理端)/服务器(扫描引擎)模式或浏览器/服务器模式,通常为软件,安装在不同的计算机上,也有将扫描引擎做成硬件的,例如Nessus;其他安全产品的组件,例如方御安全评估系统就是防火墙的一个组件。

    网络漏洞扫描器通过远程检测目标主机TCP/IP不同端口的服务,记录目标给予的应答,来搜集目标主机上的各种信息,然后与系统的漏洞库进行匹配,如果满足匹配条件,则认为安全漏洞存在;或者通过模拟黑客的攻机手法对目标主机进行攻击,如果模拟攻击成功,则认为安全漏洞存在。

    主机漏洞扫描器则通过在主机本地的代理程序对系统配置、注册表、系统日志、文件系统或数据库活动进行监视扫描,搜集它们的信息,然后与系统的漏洞库进行比较,如果满足匹配条件,则认为安全漏洞存在。

    在匹配原理上,目前漏洞扫描器大都采用基于规则的匹配技术,即通过对网络系统安全漏洞、黑客攻击案例和网络系统安全配置的分析,形成一套标准安全漏洞的特征库,在此基础上进一步形成相应的匹配规则,由扫描器自动完成扫描分析工作。

    端口扫描技术

    网络漏洞扫描是建立在端口扫描的基础上的。支持TCP/IP协议的主机和设备,都是以开放端口来提供服务,端口可以说是系统对外的窗口,安全漏洞也往往通过端口暴露出来。因此,网络漏洞扫描器为了提高扫描效率,首先需要判断系统的哪些端口是开放的,然后对开放端口执行某些扫描脚本,以进一步寻找安全漏洞。扫描器一般集成了以下几种主要的端口扫描技术。

    TCP SYN扫描  通常称为“半打开”扫描,这是因为扫描程序不必要打开一个完全的TCP连接。扫描程序发送的是一个SYN数据包,好象准备打开一个实际的连接并等待反应一样(参考TCP的三次握手建立一个TCP连接的过程)。一个SYN|ACK的返回信息表示端口处于侦听状态。一个RST返回,表示端口没有处于侦听状态。

    TCP FIN 扫描  TCP FIN扫描的思路是关闭的端口使用适当的RST来回复FIN数据包,而打开的端口会忽略对FIN数据包的回复。这种方法与系统实现有一定关系,有的系统不管端口是否打开,都回复RST,在这种情况下,该扫描方法就不适用了,但可以区分Unix和Windows NT。

    TCP connect( ) 扫描  这是最基本的TCP扫描。操作系统提供的connect()系统调用,用来与每一个感兴趣的目标计算机的端口进行连接。如果端口处于侦听状态,那么connect()就能成功。否则,这个端口是不能用的,即没有提供服务。

    FIN+URG+PUSH扫描  向目标主机发送一个FIN、URG和PUSH分组,根据RFC793,如果目标主机的相应端口是关闭的,那么应该返回一个RST标志。

    NULL扫描  通过发送一个没有任何标志位的TCP包,根据RFC793,如果目标主机的相应端口是关闭的,它应该发送回一个RST数据包。

    UDP ICMP端口不能到达扫描  在向一个未打开的UDP端口发送一个数据包时,许多主机会返回一个ICMP_PORT_ UNREACH错误。这样就能发现哪个端口是关闭的。UDP和ICMP错误都不保证能到达,因此这种扫描器必须能够重新传输丢失的数据包。这种扫描方法速度很慢,因为RFC对ICMP错误消息的产生速率做了规定。

    安全漏洞特征定义

    目前,漏洞扫描器多数采用基于特征的匹配技术,与基于误用检测技术的入侵检测系统相类似。扫描器首先通过请求/应答,或通过执行攻击脚本,来搜集目标主机上的信息,然后在获取的信息中寻找漏洞特征库定义的安全漏洞,如果有,则认为安全漏洞存在。可以看到,安全漏洞能否被发现很大程度上取决于漏洞特征的定义。

    扫描器发现的安全漏洞应该符合国际标准,这是对扫描器的基本要求。但是由于扫描器的开发商大都自行定义标准,使得安全漏洞特征的定义不尽相同。

    漏洞特征库通常是在分析网络系统安全漏洞、黑客攻击案例和网络系统安全配置的基础上形成的。

    对于网络安全漏洞,人们还需要分析其表现形式,检查它在某个连接请求情况下的应答信息;或者通过模拟攻击的形式,查看模拟攻击过程中目标的应答信息,从应答信息中提取安全漏洞特征。漏洞特征的定义如同入侵检测系统中对攻击特征的定义,是开发漏洞扫描系统的主要工作,其准确性直接关系到漏洞扫描系统性能的好坏。这些漏洞特征,有的存在于单个应答数据包中,有的存在于多个应答数据包中,还有的维持在一个网络连接之中。因此,漏洞特征定义的难度很大,需要反复验证和测试。目前,国内许多漏洞扫描器直接基于国外的一些源代码进行开发,利用现成的漏洞特征库,使系统的性能基本能够与国外保持同步,省掉不少工作量,但核心内容并不能很好掌握。从长远发展来看,我国需要有自主研究安全漏洞特征库实力的扫描器开发商,以掌握漏洞扫描的核心技术。

    漏洞特征定义之所以重要,在于其直接决定了漏洞扫描器的性能。在讨论入侵检测技术时,我们经常会谈到误报率和漏报率,其实这个问题漏洞扫描器也同样存在,只不过因为入侵检测还利用了异常检测技术,以及受网络流量等因素影响,使得这个问题更加突出罢了。作为特征匹配技术本身,它的误报率和漏报率是比较低的。一个定义得非常好的漏洞特征,就会使误报率和漏报率很低;反之,一个定义得不好的漏洞特征,就会使误报率和漏报率较高。从网络安全的角度来看,一个安全扫描过程是非常从容的(不像入侵检测需要面对复杂多变的网络流量和攻击),所以误报率和漏报率完全取决于漏洞特征的定义。

    漏洞特征库的多少决定了漏洞扫描器能够发现安全漏洞的数量,所以这是衡量一个漏洞扫描产品功能强弱的重要因素。这需要引出漏洞特征库升级(即产品升级)问题。由于每天都有可能出现新的安全漏洞,而基于特征匹配的漏洞扫描技术不可能发现未知的安全漏洞,所以特征库的及时升级就显得尤为重要。

    模拟攻击脚本定制

    扫描目标的信息,例如操作系统类型版本号、网络服务旗标和一些安全漏洞,扫描器都可以通过发送一些请求包来得到。但是确定安全漏洞是否存在,扫描器不得不依靠模拟攻击的方式来进行。一般情况下,扫描器尝试对某个安全漏洞进行攻击,如果攻击成功,就能证明安全漏洞存在。扫描器作为一个安全工具,应该对网络系统无损或损害很小。事实上,扫描器并不真正对目标主机进行攻击,而是采用定制的脚本模拟对系统进行攻击,然后对过程和结果进行分析。

    攻击脚本的定制对于安全扫描和安全漏洞的验证都十分关键,也是扫描器的关键技术之一。模拟攻击脚本与漏洞特征库紧密相关,需要获取包含漏洞特征的信息。事实上,模拟攻击脚本是实际攻击的一个简化版或弱化版,达到获取信息的目的即可,而不需要把目标攻瘫或获取根权限。例如模拟的拒绝服务攻击脚本,一旦发现系统出现异常时就会立刻停止攻击。探测弱口令之类安全漏洞的脚本,则会利用账户简单变换、长度较短和易猜解的口令进行尝试,而不会像口令破解程序那样会去穷尽整个搜索空间。

    模拟攻击脚本的定制参照于实际攻击的过程。针对某个具体的安全漏洞,人们需要首先利用实际攻击工具进行攻击,记录下攻击的每一个步骤、目标应答和结果信息,分析这些信息,在其中寻找漏洞特征,最后定制模拟攻击脚本。由于有些安全漏洞存在于一个主体或表现在攻击过程中,所以一个模拟攻击脚本有时能够检测到多个安全漏洞。我们在看一个漏洞扫描器的技术说明书时,经常会看到产品有多少种攻击手法,能够发现多少种安全漏洞,这里所说的攻击手法就是指模拟的攻击脚本。通常,模拟攻击脚本越多,扫描器能够发现的安全漏洞种类就越多,功能也就越强大。

    技术趋势

    从最初的专门为Unix系统编写的具有简单功能的小程序发展到现在,漏洞扫描系统已经成为能够运行在各种操作系统平台上、具有复杂功能的商业程序。漏洞扫描器的发展正呈现出以下趋势。

    系统评估愈发重要

    目前多数漏洞扫描器只能够简单地把各个扫描测试项的执行结果(目标主机信息、安全漏洞信息和补救建议等)罗列出来提供给测试者,而不对信息进行任何分析处理。少数漏洞扫描器能够将扫描结果整理形成报表,依据一些关键词(如IP地址和风险等级等)对扫描结果进行归纳总结,但是仍然没有分析扫描结果,缺乏对网络安全状况的整体评估,也不会提出解决方案。

    在系统评估方面,我国的国标已明确提出系统评估分析应包括目标的风险等级评估、同一目标多次扫描形成的趋势分析、多个目标扫描后结果的总体分析、关键漏洞扫描信息的摘要和主机间的比较分析等等,而不能仅仅将扫描结果进行简单罗列。应该说,漏洞扫描技术已经对扫描后的评估越来越重视。下一代的漏洞扫描系统不但能够扫描安全漏洞,还能够智能化地协助管理人员评估网络的安全状况,并给出安全建议。为达这一目的,开发厂商需要在漏洞扫描器中集成安全评估专家系统。专家系统应能够从网络安全策略、风险评估、漏洞评估、漏洞修补、网络结构和安全体系等多个方面综合对网络系统进行安全评估。

    插件技术和专用脚本语言

    插件就是信息收集或模拟攻击的脚本,每个插件都封装着一个或者多个漏洞的测试手段。通常,漏洞扫描器是借助于主扫描程序通过调用插件的方法来执行扫描,通过添加新的插件就可以使扫描器增加新的功能,扫描更多的漏洞。如果能够格式化插件的编写规范并予以公布,用户或者第三方就可以自己编写插件来扩展扫描器的功能。插件技术可使扫描器的结构清晰,升级维护变得相对简单,并具有非常强的扩展性。目前,大多数扫描器产品其实已采用了基于插件的技术,但各开发商自行规定接口规范,还没有达到严格的规范水平。

    专用脚本语言是一种更高级的插件技术,用户使用专用脚本语言可以大大扩展扫描器的功能。这些脚本语言语法通常比较简单直观,十几行代码就可以定制一个安全漏洞的检测,为扫描器添加新的检测项目。专用脚本语言的使用,简化了编写新插件的编程工作,使扩展扫描器功能的工作变得更加方便,能够更快跟上安全漏洞出现的速度。

    网络拓扑扫描

    网络拓扑扫描目前还被大多数扫描器所忽略。随着系统评估的愈发重要,网络拓扑结构正成为安全体系中的一个重要因素。拓扑扫描能够识别网络上的各种设备以及设备的连接关系,能够识别子网或VLAN的划分,能够发现网络的不合理连接,并以图形方式将这种结构展现在用户面前。

    拓扑扫描能够在非法的网络接入、失效的网络隔离和网络异常中断等方面发挥关键作用,网络拓扑扫描正成为安全评估的重要手段。

    安全设备有效性检测

    防火墙、入侵检测系统等安全设备已经得到了广泛的使用,这些安全设备的效果如何却很少引起人们的关注和测试。以防火墙配置为例,如果它在交换(透明)模式(无IP地址)下工作,漏洞扫描器将无法对它进行有效检测,防火墙工作有效与否就无从得知。未来的漏洞扫描器将会采用闭环回路式结构,能够接入防火墙的两端进行有效性测试,检测其访问控制措施、抗攻击措施是否与安全策略一致。

    支持CVE国际标准

    在设计扫描程序或制定应对策略时,不同的厂商对漏洞的称谓完全不同。CVE(Common Vulnerabilities and Exposures)是一个有关安全漏洞和信息泄漏标准名称的列表, CVE的目标是将众所周知的安全漏洞和信息泄漏的名称标准化。CVE的编委包括多个安全信息相关组织,由商业安全工具供应商、学术界成员、研究机构、政府机构和安全专家组成。通过开放与合作式的讨论,这些组织将决定哪些安全漏洞和信息泄漏问题将被包括在CVE中,然后再决定它们的通用名称和对这些条目的描述。  

    软件固化和安全的OS平台

    由于漏洞扫描产品是模拟攻击举动的安全工具,这就对该类产品自身的安全性提出了要求。产品本身的安全性主要指产品的抗攻击性能,如果软件本身或者软件的运行平台无法保证安全性,扫描器就有可能感染病毒、木马等有害程序,影响用户的使用。由于软件产品无法杜绝被感染的可能,漏洞扫描器正在向硬件化的方向发展,高档产品还在FLASH、文件系统、通信接口等方面采用非通用程序,以彻底杜绝被恶意程序攻击和感染的可能。

    支持分布式扫描

    目前的用户网络越来越复杂,没有划分VLAN的单一网络越来越少见。多个子网之间一般都有访问限制,不同子网之间还设有防火墙。这些限制会对跨网段的扫描产生影响,使扫描结果不准确。今后的扫描产品必须能够进行分布式扫描,以便对网络接点进行彻底、全面的检查。  


    编看编想

    未雨绸缪高于亡羊补牢

    安全漏洞数目呈现出迅速递增态势。仅在2002年,就有超过4000个安全漏洞被披露,比2001年增加了70%,平均每天出现10种以上的新漏洞。与此同时,漏洞发现与首次被黑客利用的间隔越来越短,安全漏洞的风险等级在节节升高。于是,有人也据此预言:红色代码和SQL蠕虫仅仅是利用漏洞展开攻击的开端,杀伤力更大的漏洞攻击还在后面。

    与漏洞数目迅速增加形成鲜明对比的是,人们对安全漏洞的防范意识显然慢了半拍,这从漏洞扫描产品的市场销售量可以看出,入侵检测和漏洞扫描系统仅占据整个安全市场不到5%的销售额,绝大多数用户没有把漏洞扫描器列入采购计划。与防火墙、防病毒等相比,漏洞扫描产品很显然被用户忽略了。

    漏洞扫描作为动态防护体系中的重要一环,无论对于安全事件的预先行动,还是对于应急事件的快速响应都十分关键。它的重要作用在被普遍认可的PDR和P2DR模型中得到了充分体现。PDR是由Protection(防护)、Detection(检测)、Response(响应)三部分组成。P2DR 在PDR的基础上增加了Policy(策略)。防火墙、防病毒、入侵检测、漏洞扫描分别属于PDR和P2DR模型中的防护和检测环节。这几种安全技术围绕安全策略有序地组织在一起,相互协同,相互作用,构成一个动态自适应的防范体系。实际上,绝大多数用户并没有建立起这样的动态体系,这与漏洞扫描产品没有普及到位有很大关系。

    也一些用户对漏洞扫描器使用得十分到位。经过了解我们发现,这类用户大多数是吸取红色代码和SQL蠕虫教训而采取的补救措施。虽然亡羊补牢十分可贵,但是对于“不怕一万,只怕万一”的关键业务来说,未雨绸缪才是理想境界。


    选购注意事项

    是否通过国家的各种认证

    目前国家对安全产品进行认证工作的权威部门包括公安部信息安全产品测评中心、国家信息安全产品测评中心、解放军安全产品测评中心、国家保密局测评认证中心。

    漏洞数量和升级速度

    漏洞数量是考查漏洞扫描器的重要指标,最新漏洞的数量、漏洞更新和升级的方法以及升级方法是否能够被非专业人员掌握,使得漏洞库升级的频率显得更为重要。

    产品本身的安全性

    扫描产品运行的操作系统平台是否安全以及产品本身的抗攻击性能如何都是用户应该需要考虑的因素。

    是否支持CVE国际标准

    是否支持分布式扫描

    应用领域

    定期的安全检测、评估

    定期的网络安全检测可以帮助人们最大限度地消除安全隐患,尽早发现安全漏洞并进行修补。

    安装新软件、启动新服务后的检查

    由于漏洞和安全隐患的形式多种多样,安装新软件和启动新服务都有可能使原来隐藏的漏洞暴露出来,因此进行这些操作之后应该重新进行安全扫描。

    网络建设和网络改造前后的规划评估和成效检验

    在建设网络时,用户必须在可以容忍的风险级别和可以接受的成本之间寻求恰当平衡,在多种安全产品和技术之间作出取舍,漏洞扫描产品可以帮助人们做到这一点。

    网络安全系统建设方案和建设成效评估

    网络承担重要任务前的安全性测试

    网络承担重要任务前应该采用漏洞扫描器对网络进行安全性测试,可以把出现事故的概率降到最低。

    网络安全事故后的分析调查

    发生网络安全事故后,用户可以通过漏洞扫描产品分析确定网络被攻击的漏洞所在,以弥补漏洞和调查攻击来源。

    重大网络安全事件前的准备

    在重大网络安全事件发生前,漏洞扫描产品能够帮助用户及时找出网络中存在的隐患和漏洞,帮助用户及时弥补。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值