任何信息安全方案的核心都是尽量减少漏洞,但企业能实现这一目标吗?计算机紧急响应小组(CERT)在2003年第一季度接到的安全事故报告多达42586起,而2000年全年才只有21756起。之所以有这种糟糕的状态,是因为现今日益复杂的计算环境内存在着各种大大小小的漏洞。它们无处不在:操作系统、网络设计、商业应用、桌面客户端、Web浏览器、媒体播放器,甚至安全软件本身等,都存在大量漏洞。漏洞影响着语音邮件、电子商务应用以及其他支持这些应用的网络基础设施。产品配置不当出现的漏洞让员工可以浏览不该看的内容,为偷盗者盗用顾客信息提供了机会,并使土库曼斯坦一位17岁少年闯入了欧洲的一台重要Web服务器。
应用软件中的漏洞与微软Web服务器里的漏洞一样多,有的定制应用软件因是外行人编写,漏洞不仅多而且还隐秘。漏洞甚至在传统的IT领域之外也日益增多:行政助理容易受到工程技术老手的蒙骗;感应卡系统往往会“远程自动开启”;数据中心可能与常年闲置不用的发电机连接在一起。在这一系列潜在的被攻击因素面前,企业怎样才能保护系统的安全呢?
正如信息安全面临的挑战巨多一样,解决漏洞的方法也有多种: 一方面在于技术,一方面在于战术,另一方面在于战略。首先,企业应该批准并实施定期审查、及时打补丁的策略,并部署漏洞评估、配置及补丁管理的技术。漏洞管理的战术核心在于两点:识别和响应。如果企业利用识别漏洞的工具,然后按照管理相关风险的计划进行部署,就能减小总体风险。
如果企业想从战略层解决漏洞,安全原则就不能局限于传统的信息安全保护方法上,必须在采购、设计及部署等方面重新决策―这对大多数公司来说是一次重大转变。
先查后堵
在堵住漏洞之前,首先得将漏洞找出来。但说时容易做时难,缩小寻找范围的关键在于必须认识到: 大多数技术性漏洞都起因于两个方面:设计缺陷和部署缺陷。
设计缺陷包括:无意中把第三方的网络连接到内部网上,又没有部署防火墙保护机制;没有在不同层次的电子商务应用之间加入合理的访问控制机制;没有采取加密技术来保护关键数据。
部署缺陷则包括:忘了启用路由器上的访问控制列表(ACL);未给新的Web服务器打上补丁;或者忘了清除Web表中的用户数据。这些漏洞会暴露公司敏感信息、允许未授权的访问,如果是蠕虫或病毒的话,还会造成“数字屠杀”。
设计问题通常比部署问题更难发现,因为很少有工具具备专业人士的能力。这就是在生命周期的设计阶段必须引入安全人员的重要原因―有经验的人能迅速识别出潜在的设计缺陷,从而避免将来为解决缺陷而必须付出的高昂代价。当然,部署问题造成的代价也不小,但幸好,现在很多工具和技术解决方案可以降低这类风险。
无论是哪种漏洞,战术都是一样的:先识别,后响应。不过,响应阶段可能会有多种方案,有些方案比较积极主动。有些企业可能决定直接利用软件补丁,或者安装设备减小漏洞被利用的可能性,有些企业则决定什么也不做,情愿承担与漏洞相关的风险。
我们不妨举一个实际例子来说明这种情况。
假设微软的IE 浏览器出现了一个重大漏洞(这种假设并不过分),该漏洞使攻击者可以在受害者的桌面上任意修改代码。那么,我们必须首先评估:你的网络上是否存在易受攻击的IE?这恐怕要用到桌面管理系统、资产跟踪系统或者漏洞评估工具(基于网络或主机的)。然后,做出积极响应:找出易受攻击的IE,使用补丁管理系统把补丁发送到桌面上。可能会部署代理服务器或智能缓存系统,过滤危险模式和恶性代码。或者可能会双管齐下,一边赶紧打上补丁,一边使用代理系统赢得一些时间。
对大多数企业来说,这种过程并不陌生,因为我们一直在给微软的Outlook、IE及其他众多的操作系统(OS)和应用软件打补丁。我们感到陌生的是一些工具,比如说漏洞评估软件、补丁管理程序和完整性检查程序,它们都能大大减少管理开销。要不是这些工具提供自动化功能,大多数企业恐怕没希望积极防范这些不断扩大的危胁。
管理工具
那么,有人会问:既然攻击这么残忍,安全工具为什么不设计得功能齐全些呢?遗憾的是,攻击比防御容易得多,再好的工具也比不上技术娴熟的攻击者。不过,有些工具将有助于防御者更有效地执行漏洞管理任务,还是面对现实吧。
漏洞评估(VA)工具有助于识别漏洞,比如基于网络和基于主机的VA扫描器和应用软件评估套件。基于网络和基于主机的VA工具会努力识别操作系统中存在的已知漏洞和常见的配置不当,指导用户解决这些问题。比如,基于网络的VA工具通常会给出一份报告,详细列出被扫描的系统要实施的补丁和配置变更。
不过,基于主机的模式和基于网络的模式两者有所区别。后者不需要在被扫描的系统上部署代理程序或软件就能正常工作,这对大企业很有帮助,因为管理队伍可能分布在世界各地。缺点在于,这类工具搜索起来不如基于主机的工具来得深入。
基于主机的VA模式需要代理程序,优点在于代理程序往往能搜索网络扫描器无法企及的系统和服务;明显的缺点是,需要管理代理程序及相应的许可证。基于主机的产品还会给分散的管理队伍带来麻烦,因为他们往往无法访问控制区以外的系统。
应用软件评估稍稍不同于传统的主机或网络型漏洞评估工具,如Cenzic的Hailstorm、@Stake的WebProxy和Sanctum的AppScan,原因在于,它们的目的是能同时评估商业应用软件和家庭应用软件。这类软件为训练有素的专业人员提供了出色的工具来完成工作,但操作人员必须精通安全知识。
一旦发现了漏洞,补丁管理工具和软件部署系统将有助于紧急响应。但有时,即使有了这类系统还不够,因为有些烦人的用户会重新安装易受攻击的应用软件、卸载补丁、不断部署可能造成危害的软件,结果把打补丁工作弄得一团糟。明智的企业会竭力给系统打上补丁,并且坚持不懈。应尽可能考虑采用能检查最新补丁级别、防病毒软件的镜像以及系统总体健康状况的产品。
风险评估
导致漏洞的另一个根源是现有软硬件存在设计和部署缺陷。去年,安全咨询委员会(SAC)称,操作系统和应用软件新出现了1000个漏洞―平均每个月新出现83个漏洞,这恐怕只是个保守估计,因为SAC关注的往往是针对企业和政府计算环境的重大危胁,因此SAC只表明了一部分真相。目前,SecurityFocus(www.securityfocus.com)的漏洞数据库列有7679个条目;美国国家标准与技术研究院的ICAT metabase数据库(icat.nist.gov/icat.cfm)列有5712个漏洞;
而通用漏洞和风险组织(CVE,cve.mitre.org)也认可了2573个漏洞。
可以肯定的是:这些数字代表的不是什么好事,没有比这更糟糕的了。
即使你到目前为止幸免于难,应用软件或操作系统的重大漏洞迟早会影响你。但如果合理的工具和方法落实到位,就可以尽量减少与清除漏洞相关的成本、时间和精力。企业还应注意为没有对漏洞攻击采取措施而付出的代价。万一入侵者利用了漏洞,企业就将面临: 数据失窃或破坏,停运时间延长,倘若事件公之于众,还会导致名誉受损、客户信心下降等。每一种结果都会带来实际或无形的经济损失。虽然公布确切的数字也许很难,但如果没有把风险评估纳入漏洞评估计划中,就可能要付出沉重的代价。
企业还必须考虑那些毫无目标的自动攻击所引起的成本,比如蠕虫、病毒及其他恶性代码发动的攻击。令人不安的是,我们遇到的造成重大危害的蠕虫都利用了操作系统或应用软件的已知漏洞: 红色代码利用了IIS ISAPI缓冲器溢出;尼姆达利用了IIS Web目录遍历漏洞;半年前,Slammer蠕虫又利用了微软SQL服务器解析服务里的缓冲器溢出漏洞。
如果企业在这些漏洞被宣布后的三四周内给系统打上补丁,也许不会受到这些蠕虫的攻击了。遗憾的是,大多数企业并没有这么做。
扪心自问
不管是否担心人为攻击还是没有特定目标的攻击,每个企业都必须定期问几个基本问题:
● 我们拥有分层防御机制吗?
● 我们的补丁是最新版本吗?我们有没有落实能够及时分发最新版本的补丁部署系统?
● 我们有没有使用自动化漏洞评估工具来识别可能易受攻击的系统?
根据我们对读者的调查,加上整个行业糟糕透顶的状况,我们敢说,大多数企业对上述问题的回答都是“No”。这不仅意味着风险加大了,还意味着成本也增加了,这正是为什么企业需要漏洞评估的理由: 无论你喜不喜欢,清除漏洞要花钱; 工时损失要花钱;没有落实漏洞管理计划最终也要花钱。
金钱说话
漏洞评估软件、资产跟踪系统及补丁管理工具不只是有益的,还是必要的。但说到解决重要问题―主流操作系统、服务和应用软件当中数量惊人的漏洞,它们仍只是战术性方案。任何老练的安全专业人士都会告诉你:解决办法在软件开发人员手里。我们需要更优秀的软件开发技术,不然永远跳不出打上补丁然后祈祷的怪圈。
但更好的软件开发技术不会一夜之间出现,这当然也不是企业客户所能控制得了的。那么该怎么办呢?首先要让安全作为考虑产品采购及部署决策时的一个关键因素,然后选择过去安全性能较好的产品。
暂且不说观点之争,如果产品过去解决漏洞问题较好,因而不大需要打补丁,这不