在网络安全的四要素中,后三种技术均为事后的被动检测,
而脆弱性评估则是病毒、黑客攻击前的主动检测。
安全,需要的是防患于未然……
近年来,随着互联网的迅速发展,黑客、病毒攻击事件越来越多。
CERT/CC表示,成功的Web攻击事件中约95%都是由于没有对已知的漏洞进行修补。攻击事件的增多,一方面是由于互联网的应用范围越来越广,另一方面也由于简单易用的黑客工具越来越多。而最主要、最根本的原因是计算机系统存在可以被渗透的脆弱性,或称安全漏洞。在实际的计算机网络系统中,脆弱性几乎无所不在,其中一部份产生于单独的系统组件,而大量的脆弱性是源自不同系统组件之间的交互。因此对脆弱性进行评估就显得尤为重要。
多角度:脆弱性评估工具对抗赛
脆弱性评估,就是对目标计算机网络进行安全分析,最终提供出一份安全解决方案,帮助系统管理员在“提供服务”和“保证安全”之间找到平衡点。在网络安全领域,脆弱性评估和入侵检测系统、防火墙、病毒检测构成网络安全四要素。后三种技术都是在攻击进行中或者进行后的被动检测,而脆弱性评估则是在攻击进行前的主动检测。
手工评估 VS 自动评估
在各种脆弱性评估工具出现以前,系统管理员对系统进行脆弱性评估只能是手工的,其难度和局限性显而易见。直到1993年,SATAN的出现为系统管理员带来了这样一个观点:能够确保系统安全的最佳途径是考虑一个入侵者将怎样入侵系统。一个黑客手工搜集系统各种信息原本需要4个小时或者更多,而SATAN使得整个工作只需要十几分钟甚至更短的时间。系统管理员利用自动化的脆弱性评估工具,可以轻易地检查出系统的安全漏洞,并能在系统配置和应用不断改变的情况下,定期对系统、数据库和系统应用进行脆弱性评估,及时采取必要安全措施,对系统实施有效防范。
基于主机 VS 基于网络
按照评估实施位置的不同,脆弱性评估技术可以分为两类:基于主机的和基于网络的。基于主机的脆弱性评估可以更准确地定位系统的问题,发现系统的漏洞,缺点是与平台相关、升级复杂,而且扫描效率较低。基于网络的脆弱性评估是从入侵者角度进行检测,能够发现系统中最危险、最可能被入侵者渗透的漏洞,扫描效率更高,而且由于与目标平台无关,通用性强,安装简单。
局部评估 VS 整体评估
对计算机网络进行脆弱性评估,必须要对单个主机和网络设备进行脆弱性评估,但仅仅这样还不够。因为可能存在这样的情况:一台主机的多个服务分别看来都不存在漏洞,但可能会因不当配置造成可被渗透的脆弱性。同样,任何一台主机提供的单一服务都不存在漏洞,但是多台主机的多种服务放在一起,也有可能被渗透。因此,进行脆弱性评估首先要看局部,最终还得从被评估对象的整体角度进行分析。
基于规则 VS 基于模型
按照解决问题方法的不同,脆弱性评估又可以分为两类:基于规则的和基于模型的。基于规则的方法是从案例中抽取特征归纳成规则表达,将目标系统与已有的规则一一匹配。现有的脆弱性评估工具,无论是基于主机的或者是基于网络的工具,绝大多数都是基于规则的。
全方位:网络安全扫描的阶段战
因为主机的脆弱性只会增加而不会减少网络系统的脆弱性,所以要对整个网络进行脆弱性评估,这种评估方法又称为网络安全扫描。通过利用各种网络协议查询目标主机,并记录目标的响应,收集关于某些特定项目的有用信息,同时与已知的漏洞特征相对照,以找出目标机器的安全漏洞,这是一次完整的网络安全扫描。主要分为了三个阶段:目标发现、搜集目标信息、和检测漏洞。
目标发现这一阶段就是通过发送不同类型的ICMP或者TCP、UDP请求,从多种不同的方面检测目标主机是否存活。
信息搜集阶段用到的技术主要是端口扫描和操作系统探测。端口扫描是要取得目标主机开放的端口和服务信息,其最基本的方法是TCP connect扫描。另外,随机扫描、慢扫描、片段扫描、欺骗扫描、协同扫描这五种策略也常为入侵者所用。目前用于探测操作系统的方法主要分为两类:利用系统Banner信息和利用TCP/IP堆栈指纹。
漏洞检测的方法主要分为三种:测试、推断和证书测试。测试是指通过利用漏洞特点发现系统漏洞的方法。推断是指不利用系统漏洞而判断漏洞是否存在的方法。它并不直接渗透漏洞,而只是间接寻找漏洞存在的证据。采用推断方法的检测手段主要有版本检查、程序行为分析、操作系统堆栈指纹分析等等。证书是指访问服务所需要的用户名或者密码。很多攻击目标在于提升自己的权限成为超级用户,从而可以执行某个命令。对于这样的漏洞,如果赋予测试进程目标系统的角色,将能够检查出更多的漏洞。这种方法就成为证书测试。
趋势和挑战
总的看来,目前的计算机系统脆弱性评估的发展趋势是从局部到整体、从单机到分布式、从基于规则到规则和模型相结合。当前,基于规则的方法和技术非常成熟,这为基于模型的评估方法创造了前提条件。基于模型的评估方法也正在迅速发展。

李 刚
在计算机安全领域,特别是网络安全领域,对计算机系统进行脆弱性评估十分重要,其最终目的就是要指导系统管理员在“提供服务”和“保证安全”这两者之间找到一个平衡点。对计算机系统进行脆弱性评估的具体方法有很多,本文主要介绍对网络中的计算机系统进行脆弱性评估的方法、步骤、目标,以及目前的工作重点和今后的发展方向。 |