您现在的位置是:首页 > IT基础架构 > 网络与安全 >
应用安全:遗留软件的七大安全风险
摘要作为一家大型软件企业,当微软公司自己都认为有必要做出努力劝阻用户使用其旗下的某款产品时,这种使用习惯的危害及其中蕴藏的安全风险自然已经严重到不容妥协的地步。 ...
作为一家大型软件企业,当微软公司自己都认为有必要做出努力劝阻用户使用其旗下的某款产品时,这种使用习惯的危害及其中蕴藏的安全风险自然已经严重到不容妥协的地步。
正式展开讨论软件升级这个问题之前,我们不妨先看一个实例:微软公司去年曾单独推出过一个网站,旨在号召用户彻底停止使用IE 6这款于十多年前(2001年)推出的“老爷级”浏览器产品。网站上打出了“真正的朋友不会坐视您继续使用IE6”这样鲜明的宣传语,同时不遗余力地鼓励用户转而使用更现代、更安全的新版本浏览器。
此番努力目前取得的成效仍然有限:时至今日,依旧有6%以上的互联网用户(在中国这一数字则高达22%)继续通过IE6访问网络。而这款浏览器已经作为“目前还在服役的安全性最差的方案”而饱受讥讽(这种尖刻的评价甚至也已经是六年前的事情)。
在企业方面,情况则更是不容乐观。根据2009年Forrester研究公司组织的调查,仍然有60%的企业在使用IE 6浏览器。
作为一家大型软件企业,当微软公司自己都认为有必要做出努力劝阻用户使用其旗下的某款产品时,这种使用习惯的危害及其中蕴藏的安全风险自然已经严重到不容妥协的地步。
IE 6的真实经历只是一些所谓的“老软件”--或者叫做遗留软件--整体的一部分缩影和写照。为什么用户及企业会如此偏爱老软件并长时间坚持使用?为什么使用老软件会令自己面临越来越多的安全威胁?我们又能够做点什么来缓和这些风险呢?
难以清除的遗留软件
尽管技术市场的运转周期很短、产品更新换代速度极快,但某些软件似乎有种可怕的生命力,即使已经远远超出了它们的最终使用期限,我们仍然很难将它们从用户的设备中彻底清除。总体来说,遗留软件生命力顽强的理由包括以下几个方面:
前期投入。用户已经为产品支付过一笔款项,所以自然会希望能够尽量延长该产品的使用周期,借以降低使用成本。
培训开支。企业中的员工已经为学习产品的使用付出了相应的时间与精力(以及其它潜在资本),这一前提导致了人们很难对需要再次进行技能学习的新事物主动产生兴趣。
对技术支持的依赖。遗留软件往往能够与遗留系统协作良好,而一旦要对软件进行升级,陈旧的系统常会带来额外的拖累,而企业对于系统更新的工作向来是能拖则拖。举例来说,最新的Adobe Premiere Pro CS6需要运行在64位版本的Windows系统下,那么仍然在使用32位Windows系统的企业由于不想为此而对整套平台进行更新换代,自然会倾向于继续用Premiere Pro旧版本凑合凑合。
对遗留产品的高度依赖。企业用户很可能已经围绕遗留软件建立起了完整的业务运转机制,一旦放弃原有架构并重新建立内部软件定制组合,不仅会给企业带来未知的新风险,更会给业务带来巨大的负面影响。IE 6就是这样一个典型的例子:许多企业都拥有定制型内部网络,而在这一领域那些最新版本的浏览器其实没什么吸引力,反倒是IE 6这样的古董既方便快捷又深入人心。
当然,上述这些条目远远不足以弥补遗留软件所带来的负面作用,我们首先要认清一个现实:使用遗留软件本身绝对是种错误。而作为企业用户,最值得认真考量的问题就是遗留软件中所隐藏的安全漏洞。
风险大于收益
继续使用遗留软件能够节约时间与财力的投入,这从表面上来看算得上是一种企业收益,但这种收益其实只是幻觉。一个早已被解决的安全漏洞很可能仍然潜伏在遗留软件中,并给企业带来灾难性后果,这种情况一旦发生,所造成的时间与财力投入肯定远远超过维护最新软件版本。举例来说,目前社保卡及信用卡信息泄露事件所造成的损失平均都在700万美元以上,相信任何一家企业都不希望这种状况发生在自己身上。
软件产品都不完美,即使是最新技术也无法彻底避免安全隐患。事实上,这有时候甚至成为让遗留软件继续效力的一大有力理由--新产品可能包含更多未知及还没有被发现的安全问题,因此相比之下还是成熟而完善的老版本更加可靠。听起来似乎有一定道理,但随着时间的推移,遗留软件中的问题会在得不到持续更新的情况下变得愈发恶化。
下面我们就来聊聊遗留软件产品中那些最触目惊心的风险:
缺乏来自供应商的支持。要始终为产品提供良好的更新服务,供应商必须坚持投入维护资金。而任何一款产品在迈向使用周期的尽头后,都不可避免地失去来自供应商的支持,同时自身的许多安全漏洞仍然没能得到有效修复。我们完全可以理解,供应商会偏向于将资源集中在开发更多新版本软件方面,作为企业,推广新产品永远比维护旧产品更重要。
对安全威胁的前瞻性较差。顾名思义,遗留软件诞生的年代与现在相比,在对安全威胁的前瞻性方面必然相形见绌。大多数技术的出现都是由那些致力于入侵系统的黑客们所促成,而安全专家们为此制定出的保护策略则始终与时俱进--换言之,越陈旧的产品中蕴含的安保思想就越过时。可以肯定地说,遗留软件中的安全保护机制要远远逊色于当今的技术。十年后的软件必然在构思方式上优于目前,而站在今天的高度回望十年前的老产品同样会有“尚能饭否”的感慨。
代码重复利用。大多数软件产品都会从系列老版本或其它产品中借用一定数量的代码,也就是说遗留软件中甚至可能包含一些比自身更古老的安全威胁。
广为人知的安全缺口。一旦我们在软件中发现了安全漏洞,这些内容会被立即公布出来警示业界,进而让专家们找到合适的方法通过补丁加以弥补或修复。但这种流程同样暴露在黑客的眼皮底下,他们能够从中学习到更多攻击经验并掌握多年来的各类主流安全漏洞。可以说黑客们已经针对遗留软件中的安全问题学习、揣摩并实践了多年,这段充裕的时间令陈旧产品在他们的面前简直不堪一击。
补丁更新滞后。与上一条威胁相对应,许多企业往往不会在供应商发布安全补丁后,第一时间进行积极部署。这就使得遗留产品在拖延的这段时间中处于严重的安全风险之下,而拖的时间越长,了解并熟悉这些安全漏洞的恶意人士就越多,那么企业的也就越可能遭受严重的经济损失。
日益完善的黑客工具。当一款新产品出现安全漏洞时,能够成功利用它并实施攻击的往往只有最精明、技术力量最强的顶级黑客。但随着时间的推移,黑客工具包会不断吸纳最新最有效的小东西,而这种提升甚至会让更多刚刚入门的家伙尝到恶意入侵的甜头。目前广为流传的主流黑客工具包已经非常傻瓜,其中甚至提供了友好的用户界面以及在线教程指导,没准再过几年会用办公软件的人都能学会如何扮演黑客。
依托于不够安全的系统平台。 在某些情况下,遗留产品只能运行在特定的遗留系统环境中。就拿QuickBooks Pro 2006来说,它无法支持Windows Vista及其后的更新系统版本。也就是说,即使遗留软件本身不会来任何安全威胁,它们所要求的系统环境同样有可能引发大麻烦。举例来说,在微软决定停止提供安全补丁的前提下,那些只能运行于Windows XP平台上的遗留软件变相让我们的企业陷入安全风险当中。
当然,并不是所有遗留软件都会带来同样级别的严重安全问题。在这里我要提醒大家,面向网络的应用程序由于允许异地存取或远程控制,因此通常也是最难以打理的威胁产生源。只要有可能,千万别在这些领域使用遗留软件。
防御战略
让我们首先明确一点:更新永远是我们防范遗留软件安全风险的最佳选择。尽管没有任何一款产品敢断言自身不存在一丁点安全漏洞,但新产品中所包含的安全理念及保护思路肯定要好于旧产品。也就是说,只要我们及时选择新产品或安装新补丁,那么在一段特定的时间内自身就是相对安全的。等到黑客们发现了新版本中的弱点,又会有新的补丁出现继续为我们的业务保驾护航。
但有时候保持更新也没那么容易。出于企业预算的考量或者软件供应商干脆没有提供新补丁,都可能导致我们暴露在恶意人士的觊觎之下。一旦出现这类情况,而我们的遗留软件又免不了要与网络环境打交道,那么以下几项战略应该能够帮助大家降低安全风险:
利用虚拟化技术进行隔离。虚拟化技术带来了数不清的伟大用途,而其中最重要的一条就是为高风险平台建立一套沙箱环境,借以将其与重要系统相隔离。举例来说,大家可以利用甲骨文VirtualBox这样的免费软件为遗留应用程序提供Windows 95或者XP系统环境,同时又能保证现有现代化系统的安全。更值得称道的是,虚拟系统能够彻底切断内部网络与外部环境的联系,从而打造出固若金汤的企业防御体系。
虚拟补丁。有时候某些遗留产品根本没有能够直接用来修复或处理安全漏洞的可用补丁,但我们往往能够通过所谓“虚拟补丁”来解决高危应用程序中的某些已知漏洞。举例来说,遗留数据库产品很容易受到SQL注入式攻击--就是说当一条查询请求发往数据库时,攻击者能够通过一些小手段来偷偷修改或者窃取受保护的数据。虚拟补丁包括利用防火墙检查数据包的合规性或者制定有针对性的Web服务器规则,进而有效地寻找并检测出SQL注入式语法,最终让这些恶意请求在到达脆弱的遗留产品之前就将其拦截下来。
(本文不涉密)
责任编辑:
下一篇:应用安全:遗留软件的七大安全风险