频道栏目
首页 > 安全 > 系统安全 > 正文

工具软件漏洞引发的安全隐患

2005-04-14 09:32:53           
收藏   我要投稿
拿最典型的远程管理软件来说,网管用它可以帮助用户远程解决问题,但是这类软件到了黑客手里,就变成了可以远程操控用户计算机的“高危”凶器。在了解软件正面、普通功能的同时,如果还能看到软件的潜在危险,将大大降低由这些软件带来的安全性问题。


纵观计算机几十年的发展历史,我们可以清楚地知道,最初的计算机输入输出系统是一种打了小孔的纸带,用以表示二进制的0和1,这就是早期的“存储器”(Memory)。在当时,“操作系统”(Operating System)的概念尚未出世,这种纸带承担了全部计算任务,这种计算任务,其实就是我们现在所说的“程序”(Program)。那个时候,程序的输入输出都要人工协作把纸带往阅读纸带的设备里送,同时还要对计算机做出的反应进行处理。随着计算机技术的发展,计算机的处理速度日益提高,以往依靠人工输入程序的工序成了计算机处理数据的瓶颈,人们需要一种能自动输入程序以及能实时对硬件反馈的信息做出反应的产品。这时计算机的存储技术有了飞跃,数据的输入输出不再需要纸带,而是转为了磁性介质存储,使人们得以摆脱纸带的束缚。采用磁存储技术使得数据输入输出更快,已经不适合人工控制,于是人们设计了一种帮助程序输入输出等工作的专用程序,“操作系统”的雏形就这样诞生了。发展到后来,操作系统成为管理硬件和人机交互的接口,它不仅负责处理底层硬件,还向用户提供一个操作界面用于实现硬件操作。可以这么说,计算机的发展史,就是操作系统的发展史。

应用程序

上面说了这么多关于操作系统的话题,也许心急的读者已经在纳闷儿了:这些跟信息安全有什么关系啊?要彻底理解操作系统和应用程序之间相互制约的关系,这些基本的道理一定要讲明白。

上面谈到,操作系统提供了一个人机交互的接口。可是,仅有一个操作系统是没有用的,操作系统就像一个舞台,它为观众提供了一个舞蹈场所,但是它并不能提供舞蹈演员——操作系统就像裹在蛋糕上的一层白色奶油,它仅仅为“硬件软化”作了一个铺垫而已,要完成实际的工作,还必须有另一种东西配合,这就要涉及到“应用程序”(Application)的概念了。

其实在上面提到的纸带机时期就已经有了应用程序的影子,人们先让计算机读入一段初始化程序,接着再把实际应用的程序代码纸带输入计算机,如果没有前面的一段初始化程序,后面要用到的程序代码根本无法被识别执行。这段初始化程序放到今天来说就类似于“操作系统”,那实际操作的程序代码就是“应用程序”。换用较为严谨的计算机理论术语来表述,那就是:应用程序建立在操作系统基础上,通过操作系统提供的接口得以控制硬件工作方式,从而完成用户期望的操作。计算机硬件为搭建舞台提供了地基,操作系统就是那一座舞台,而舞台上必须有舞蹈演员——应用程序。

系统接口

既然硬件、操作系统、应用程序这三者是相辅相成的,那么它们之间通过什么渠道进行沟通呢?答案是接口(Interface)。

操作系统位于硬件和应用程序之间,充当一个中介的角色,因此它在硬件方面具有底层交互能力,在用户界面又提供了一种能让应用程序使用的接口,设计者把这个接口表达为各个功能不同的代码指令(称为接口函数),应用程序并不直接与硬件打交道,而是通过这些预先设定好的接口函数得以实现硬件操作。很多应用程序的功能实现实际上是依靠操作系统提供的各种接口函数完成的,它们并没有权利直接与硬件打交道。这样的控制结构必然导致应用环境复杂化,从而引发出一个又一个不可预料的后果,我们会在后面的文章中用具体的例子来说明。

杀毒软件的尴尬

自从计算机病毒诞生以来,杀毒软件在许多人的眼里成了电脑保护神的代名词,然而你也许不知道,病毒和杀毒软件本来是一家,它们都属于应用程序。正如同属动物的猫和老鼠一样,尽管它们是冤家,但你也不能把猫视为神仙供奉,再厉害的猫终究也会有失败的时候,杀毒软件自然逃不过这个法则。

从第一款杀毒软件面世到现在,杀毒软件经历了多次改朝换代,后台监测技术也得以挂上“XX盾”、“XX墙”之类的专用名词放上台面,可是它们能如厂商宣传的那样,真的百毒不侵吗?事实是,如果用户把100%信心都放在这些什么“墙”或者“盾”上面,那么有一天当你蓦然回首自己的计算机时,会发现一些病毒一直在坦然面对你信赖的“墙”,并在你的计算机里繁衍生息。

为什么会出现这样的情况呢?这与杀毒软件采用的技术密切相关,现在大部分杀毒软件都采用一种被称为“特征码检测”的病毒扫描技术,其原理是读取一个程序或文件内容,并与自身数据库里储存的已被确认为病毒程序的某段代码进行匹配,一旦两者相同,杀毒软件就“确认”此文件为病毒,这种方法的优点是杀毒效率提高了,厂商也不用为增加查杀新病毒的代码而头痛了,因为只需要更新病毒数据库(病毒特征库)就行了;但是这样做的缺点也是不容忽视的,由于如今病毒发展也相对迅速,不仅会出现传统技术无法清除的病毒(如当年的“中国黑客”),而且病毒特征码也必须随时更新。这在国内不太现实,因为国内很多用户使用的多是非正版杀毒软件(或者多人使用同一套杀毒软件),这就意味着他们无法得到更新病毒特征库的服务,而且很多用户根本不知道病毒库也需要升级更新,安装完杀毒软件后从来就没有进行过病毒特征库的更新工作,让这样一个杀毒软件做你的“墙”,能安心吗?


\



计算机接口、特征码危机  


危险的替换服务

如果说仅仅是由于特征库得不到及时更新而导致“墙”不能遮挡风雨,那也情有可原。可是一般用户也许不知道,有时候,庇护他们计算机安全的“墙”本身也可能存在漏洞,这种漏洞带来的安全性问题往往比病毒更难防范。

究其原因,是因为杀毒软件自身也是程序,根据墨菲定律,“任何程序都会存在漏洞缺陷”,杀毒软件中存在漏洞也在所难免,一些杀毒软件甚至会被病毒狙杀!

由于杀毒软件采用特征检测手段去查杀病毒,那么病毒体特征码只要稍作变动,就可以大摇大摆地躲过杀毒软件的扫描。

杀毒软件是运行在操作系统之上的程序,和杀毒软件一样,操作系统也可以被称之为一个大的程序,那么操作系统也一定会存在种种缺陷和漏洞。可想而知,由操作系统这个“地基”引发的安全漏洞将会给应用程序带来多么大的影响。这里,抛开操作系统漏洞直接引起的病毒、黑客安全隐患,让我们一起来看看更高级的问题:“替换服务法”和“利用杀毒软件特级权限入侵系统”。

NT架构系统普遍采用一种称为“服务”(Service)的技术作为系统底层接口,一般情况下,用普通终止进程命令无法停止服务运行,这是服务享有的特权。实际上,这些服务自身也是一个个应用程序,如果杀毒软件要在系统启动时就把自身运行起来并享有不被轻易终止的特权,它就必须作为一个服务程序运行。这样看来,杀毒软件似乎一旦随系统启动运行起来就万事无忧了,然而NT系统却给这些享有特权的程序们开了另外一个“玩笑”:稍微了解电脑的用户都知道,一般的情况下,程序正在运行的时候是无法删除它自身的磁盘文件和所有与这个程序有调用关系的文件的,这是操作系统的保护机制,用以保证应用程序的完整性;然而在服务程序的领域里,这条守则被打破了:对于采用服务方式启动且已经在运行的程序,系统没有保护它们的磁盘文件!于是用户的噩梦来了,杀毒软件的服务程序被入侵者删除并用后门程序代替,下次系统启动时,用户的计算机就对外面的世界敞开了大门。


\



进程、系统服务的区别和特点
轻松入侵

Winamp、Media Player、RealPlayer……每个用户的计算机上都会有多种音乐播放器,正是因为这些音乐工具与系统的配合,用户才有了精彩的声乐体验,然而谁又能预料到在悠扬音乐的背后,一双黑手可能正透过软件的漏洞在向你发起进攻呢?

个人电脑与网络紧密结合是当今世界的趋势,音乐播放器自然不会忽略这一部分市场,但是网络是危险的,稍有不慎便会从网上坠落,摔个粉碎。Winamp主程序仅仅作为一个承担众多功能模块的控制界面,但是这些模块里出现的漏洞却会毫不留情地出卖它,Winamp中承担CD音乐播放的IN_CDDA.dll就是这样。这个插件里面包含一段与网页交互的代码,不幸的是这段代码存在严重缺陷,当它与恶意网页交互时,会下载网站上存放的后门程序并执行。

RealPlayer早就实现了把自身嵌入网页的功能,但是它太服从于包含它的网页了,以至于网页下命令让它控制用户的计算机它也照做。

Media Player系出名门,理应知道网络的危险,然而不幸的是,它太依赖自家兄弟IE了,导致MIME漏洞配合脚本入侵把这些难兄难弟一锅端了。

流媒体播放软件要实现在线播放,就必须搭配一款为之订做的音乐源提供工具,于是就有了Helix Universal Server、Windows Media Server和Nullsoft SHOUTcast Server等媒体服务器,这些服务器工具是播放软件最大的动力源,然而这些动力源都不约而同存在着缓冲区溢出漏洞——这个漏洞已经让我们头痛了很多年。

音乐工具服务器端的工作原理和普通HTTP服务器一样,它工作的依据是客户端发来的数据请求,但是这个数据请求可能是恶意的。还记得溢出攻击的核心“格式化字符串”吗?这些看似平凡无奇的字符请求搞垮了无数软件,音乐服务器也不例外。SHOUTcast Server一旦接收到一段包含特殊字符串的数据请求就产生了溢出,进而让入侵者拿到控制服务器的权限;Helix Universal Server是RealPlayer的幕后助手,但是它也承受不住包含超过约定长度的数据请求,入侵者发送一段超长的包含特定字符的URL字符
上一篇:后IT时代的安全攻略[2005第2期]
下一篇:服务器安全配置精华技巧
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站