风险评估应用技术和工具初探

日期: 2009-02-16 来源:TechTarget中国 英文

  安全专家都知道,要战胜黑客就必须了解攻击是如何实施的。黑客们的大部分时间花在搜索有漏洞的机器上:只要有耐心和一堆入侵工具,他们就可以成功突破系统的防线。他们用Ping之类的工具通过IP或域名找到潜在的入侵对象,然后搞清楚对方运行的是什么操作系统、安装了哪些应用软件,据此运行相应的入侵工具;或者,黑客们还会把蠕虫散布到Internet上,敲打每一台计算机的大门,尝试对每一台机器搞些小动作,甚至不必花时间去测试对方是否有让入侵得以成功的必要软件——如果一个SQL Slammer(即Sapphire)蠕虫发出了信号,入侵行动已获得了成功。

  风险评估工具自动执行入侵探测过程,让网络管理员评估网络的安全性。如果一个系统到处都是可资利用的漏洞,安全策略、ACL、签署用户协议的意义非常有限。只要能够找出安全漏洞所在,并在黑客采取行动之前封闭这些漏洞,你就向着保证网络安全的目标大大前进了一步。下文将从一种比较综合的角度探讨风险评估工具,特别是Windows平台的风险评估工具(参见附录的表)。

  大约二年之前,风险评估工具的市场还只有少数几个大厂商,但现在进入这一市场的厂商数量已经超过40了。少数产品出来之后不久即重新归于湮没无闻,还有一些大型网络安全厂商因为未能满足客户对风险评估工具的需求而放弃了其最初的努力。虽然基于主机的风险评估工具仍是最流行的产品,但成长最快的厂商却是那些面向特定应用的扫描工具,例如扫描SQL Server数据库、Web服务器和无线网络(WLAN)的工具。大部分风险评估工具属于下面几种类别之一:基于主机的,应用层(数据库或Web)的,密码和帐户检查工具。

  一、基于主机的风险评估工具

  说起风险评估工具,人们指的往往是基于主机的工具。基于主机的风险评估工具首先判断目标主机上运行的操作系统,然后进行测试,寻找已知的漏洞。它能够区分Windows 2000系统和UNIX系统,在此基础上进行相应的测试。这一类别中的大部分能够测试各个平台上的常见应用和服务,例如,如果某个风险评估工具发现目标机器是一台UNIX主机,它就会测试各种Daemon程序、Sendmail,以及Samba共享资源;如果目标机器是一个Win 2K系统,它就会测试IIS服务器、NetBIOS共享资源,搜索强度不够的密码。

  基于Windows的风险评估工具懂得区分各个Windows版本之间的差异。例如,对于一个Windows 98系统测试IIS漏洞或远程过程调用(RPC)拒绝服务攻击(DoS)是毫无意义的。部分流行的风险评估工具植根于UNIX:它们主要擅长的是测试UNIX和Linux系统,测试Windows系统则是它们的副业。如果某个网络只有Windows而没有UNIX,则在选择风险评估工具时一定要注意工具针对的主要平台是微软的平台。

  二、应用层风险评估工具

   大多数应用层风险评估工具直接面向Web服务器或数据库服务器。要全面保护一个公开的Web服务器,其困难程度难以估量。在过去的几年中,至少半打的“安全竞赛”为准黑客们攻击受到高度保护的Web服务器提供现金奖励,这些Web服务器由安全天才组成的梦幻团队配置,运行着大多数企业不敢问津的昂贵硬件保护设施,但结果呢?六次竞赛中至少有五次,数天后系统在不懈的黑客面前举起了白旗,大多数Web服务器败下阵来是因为底层操作系统或电子商务软件中存在漏洞。既然最顶尖的人才也不能保障Web服务器的安全,普通的Web管理员又如何能够做到呢?答案是运用专门为测试Web服务器而设计的风险评估工具。

  Web服务器风险评估工具通常针对IIS、Apache或Iplanet。面向IIS的风险评估工具将攻击未经正确配置的匿名用户帐户、错误的目录授权、不小心遗留的示范代码,以及有特权的服务如Internet Server API(ISAPI)筛选器。Apache和Iplanet工具检查大量的代码文件漏洞、针对cgi-bin目录的攻击,或针对/etc/passwd的攻击。不管是哪一种Web服务器,风险评估工具都能够检查保存在隐藏区域的敏感信息、密码、跨网站脚本引用、未经检验的输入内容以及缓冲区溢出。

  随着SQL注入式攻击和Slammer蠕虫的出现,各个厂商开始研制专门测试流行数据库的应用层工具,这些数据库包括SQL Server、Microsoft Exchange Server、Oracle、IBM Lotus Domini、Sybase、IBM DB和MySQL等。风险评估工具能够测试丢失或默认的(未经修改的)密码、注入式攻击问题,以及安全配置方面的缺陷。

  三、密码和帐户检查工具

  有一小部分风险评估工具会通过猜测密码的方式攻击系统。这种方法看起来很简单,但请注意密码往往是网络安全中最脆弱的一环。在脆弱的密码面前,即使最强大的加密算法也会无能为力,因为只要稍微猜测几次,管理员帐户的密码就会原形毕露了。有些基于主机的风险评估工具能够列出系统上遗留的废弃帐户。只要运用适当,密码检查工具结合帐户状态检查工具将是一种测试网络坚固程度的捷径,经济而又高效。

  当然,有许多风险评估工具涵盖一个以上的类别,很少有基于主机的风险评估工具不去检查同一主机上常见的应用软件漏洞,很多专门用于Windows的基于主机的工具还会检查密码和帐户状态。

  不过,当一个工具想要面面俱到时,它可能在任何一方面都不能做得最出色,一个专门为分析Web服务器或数据库而设计的风险评估工具很可能要比通用的扫描工具能够更深入地分析特定的应用,当然也可能存在一些例外的情况。不管一个风险扫描工具属于哪一类别,它必须具备下面三个方面的能力:构建网络拓扑图形和识别应用程序,测试安全漏洞,报告结果。

  基于主机的风险评估工具首先要询问待扫描机器的IP地址或要扫描的子网范围,优秀的分析工具将找出所有网络上具有物理连接的主机,报告操作系统的类型和版本即操作系统指纹(Fingerprinting)。风险评估工具通常会Ping(提交一个ICMP数据包)主机,然后开始识别活动的TCP和UDP端口,有些工具将自动把运行在标准端口上的服务和具体的服务名称关联起来,例如有些质量不太高的风险分析工具会将所有在80端口运行的服务作为HTTP服务器攻击——即使对方实际上是一个SMTP服务器。一些风险评估工具会尝试分析在特定端口上运行的应用(例如哪一种即时通信软件正在运行),理想情况下(考虑到性能),如果评估工具能够识别出应用程序的类型和版本,那么它就会只尝试针对该应用的攻击。

  遗憾的是,在识别应用程序和端口上风险分析工具的表现普遍不佳;而且可想而知的是,既然它们连这一步也做不到,又如何深入一步正确测试可能的漏洞呢?一些分析工具给出的答案是,分析所有可能的漏洞,即使某个漏洞根本不属于目标平台或端口。如果不在乎性能问题的话,这种大包大揽的做法不一定是坏事,在重要场合,对于安全漏洞总是宁可误查一千,不可漏网一个。
  
  四、选择风险评估工具的原则

   风险评估工具的设计目的是测试一个主机或应用在攻击面前的坚固程度,一些厂商宣称它们的产品能够检测数十甚至30000多种不同的安全缺陷。不管怎样,任何Windows平台的风险评估工具应该能够分析出数百种不同的攻击行为特征。虽然检测每一种平台已知漏洞——如由Microsoft、MITRE的CVE(Common Vulnerabilities and Exposures)和CERT/CC(CERT Coordination Center)检测出来的漏洞——有其存在的必要,但优秀的风险评估工具还必须能够更深入一步,找出可能预示着配置不完善的缺陷之处,例如找出是否存在空白的密码、配置不当的权限、开放面太广的网络共享资源,或被错误启用的Guest帐户。一些风险评估工具允许定制攻击脚本,例如对入侵测试过程进行优化,或者是避免误报。

  为提高实用性,风险分析工具不仅应该能够报告和总结特定系统上找到的安全弱点,还应该能够帮助管理员修补漏洞。一些风险评估工具报告系统存在开放的共享资源,却没有说明共享资源的名称或为何它们被认为是开放的——开放的共享资源是某个共享目录还是共享打印机?是共享资源没有设置密码,还是没有及时安装微软的补丁?较好的工具提供了指向厂商Web网站的连接,并在Web上提供漏洞的详细说明、风险程度、纠正措施等,有些工具甚至还提供了能够自动修补网络上安全漏洞的脚本。

  选择一个风险评估工具就像选择一个企业级病毒扫描工具一样。市场上不乏优秀的厂商,但一定要坚持在付款购买前试用一番,因为在一个环境下表现出色的工具换了环境后不一定仍会有出色的表现。下面是几则选择风险评估工具时应当考虑的原则。

  • 根据实际环境和企业的需求选择

  搞清楚风险评估工具的运行平台和作用平台。正如前面提到的,对于一个纯Windows环境,应当选择一个在Windows上运行、擅长分析Windows的工具。例如,Nessus是一个广受欢迎的免费风险评估工具,它能够检测超过140种的Windows漏洞,但它虽然有一个Windows的客户端,却需要一个UNIX或Linux主机来运行服务器部分的软件。

  现在看到的许多Windows风险评估工具似乎跟不上时间的脚步,它们最擅长以及注重的是测试Windows NT而非Windows XP和Win 2K,所以选购时一定要留意它是否能够识别最新的操作系统以及检测新操作系统特有的安全问题(例如Universal Plug and Play,445端口的NetBIOS通信,组策略等)。另外,必须注意大多数风险评估工具只能分析TCP/IP协议,对于Novell或Macintosh网络,如果运行了TCP/IP之外的协议则必须考虑可能存在的问题。

  • 风险评估工具应当能够精确地映射网络、应用以及进行攻击测试

  怎样了解一个工具的实际功效?最有效的办法是搜索Web,查看媒体的评论,要求厂商提供其他客户的使用情况说明。正式购买之前最好测试一下工具的性能。大多数厂商都提供限制了功能的试用版本,通常是限制IP地址的范围。

  • 不仅要注意风险评估工具为目标平台提供的攻击脚本数量,而且要留意它们的更新速度

  纯粹的数量有时不能说明问题,因为有些厂商可能把许多相关的漏洞看成一个,有的厂商则把它们算作多个漏洞。一些较为优秀的风险评估工具,如CVE,把每一种测试都链接到了一个标准的漏洞案例ID。留意风险评估工具的更新频率,看看它是自动更新还是需要手工执行更新,还有,新的安全威胁发现之后它要多长的时间才能推出相应的更新?

  • 报告数量的多少,内容翔实程度,是否允许导出报表

  只能内部使用的扫描结果报表也许能够满足最初的需要,但如果经常对系统进行风险评估,最好能够将生成的报表导出到外部数据库,以便执行对比和分析。大多数风险评估工具不能将两次扫描结果关联对比,但这个功能对于许多管理员向CEO证明自己的工作业绩却是非常重要的。

  • 是否支持不同级别的入侵测试以避免系统挂起

  所有风险评估工具都有这样的警告:入侵测试过程可能产生DoS攻击,或者导致被测试的系统挂起。通常,在高访问量期间对担负关键任务的系统不应该运行风险评估工具,风险评估工具本身可能带来问题,引起服务中断或系统被锁死。大多数高质量的风险评估工具允许执行侵害程度较小的入侵测试,避免造成系统运行中断。

  • 是否需要在线服务?

  有些风险评估工具以在线服务的形式提供。这种形式的优点是不占用硬件资源,可以从任何地方运行和获取报表,自动执行更新,一般而言总拥有成本也较低。缺点是服务的运行速度一般较慢,不象客户端产品那样容易定制。最后还有一点是,如果采用在线服务,则扫描出来的网络漏洞清单还将落入第三方的手中。

  综上所述,为了测试和保障网络的高度安全,进行风险评估是非常重要的。风险评估工具能够分析网络,找出正在运行的主机,尝试入侵找到的系统和应用软件。附表列出了当前市场上最主要的产品。找到了支持你所用平台的工具之后,你可以安装一台测试机器,故意打开几个漏洞,试验一下该工具是否能够找出这些漏洞来。没有一种风险评估工具是十全十美的,你所能做的是根据企业的网络环境、投资预算、功能、扫描精度、报告信息等,选择一种最合适的。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐