您的位置: 网界网 > 安全 > 正文

Linux最新0day的幕后故事和技术分析

2009年07月24日 11:03:28 | 作者:阿风 | 来源:51CTO | 查看本文手机版

摘要:我们应该知道不存在绝对完美的安全,没有一个绝对安全的程序。总之,安全是一个过程,而不是一个产品。Linux在过程方面的安全是相当出色的,这也是它极大安全的原因。这有一个例子。7月16号,一个名叫Brad Spengler的安全方面的...

标签
漏洞
0day
Linux

我们应该知道不存在绝对完美的安全,没有一个绝对安全的程序。总之,安全是一个过程,而不是一个产品。Linux在过程方面的安全是相当出色的,这也是它极大安全的原因。这有一个例子。

7月16号,一个名叫Brad Spengler的安全方面的程序员,他设计了一个开源网络和一个叫grsecurity的服务器安全程序,这个程序全面披露了安全邮件列表——Linux内核2.6.30版的安全漏洞

根据SANS英特网风暴中心的说法,关于这个漏洞比较简洁的表述是:“在进行网上或大规模运算时,代码的脆弱就表现出来了。简言之,开发者初始化了一个可以为NULL的变量。并紧接着正确地检查这个新变量在附近几行代码中的值,如果是0(NULL),他就返回一个错误。”

但是,从技术的观点来说这是有趣的地方。程序员这样写的代码看起来是没错的。只有在使用gcc“编译器开始处理这个变量,优化代码,编译器会发现变量已经被赋值(如果是0)并且从编译好的代码中移除。换个说法,编译器会把变量引入到二进制码,不存在源代码中。这将会引起内核尝试去读/写0x00000000的数据,这使攻击者能映射到用户区,最终破解程序。”

听起来很吓人,是不是?你看,因为它在底层工作,这个漏洞可以绕开安SELinux(安全增强的Linux),突破其它Linux安全程序。但实际上,这完全没有那么的值得惊慌失措。

首先,为了攻击一台这样的计算机,你必须先拥有一个很高的Linux权限才能使用开发工具。其次,你需要重新开始编写一个程序,并把利用代码加入其中。

这不像在Windows下,你只要错误的点下某些网页或是打开一封带附件的邮件,你的电脑马上就会感染上恶意软件或是和僵尸软件等威胁。你几乎真要尝试用这个方法打开你的Linux计算机来消灭它。

但是,这个漏洞也许怎么都不能发挥作用。你看,同样是相似的溢出问题,也许潜伏着更大的危险的——使用PulseAudio时(一个流行的Linux和Windows媒体服务器)发生了溢出问题——在六月被修复了——这是重点,。

所以,如果你使用最新版的Linux内核,Linux 2.6.31-rc3,你应该感觉极好。

无论如何(+本站微信networkworldweixin),事情的关键点并不在于技术细节。而是在于对开源软件,问题很快被大家发现并且被修复。举个例子,周三时,Firefox 3.5有重要的安全漏洞被揭发,但周五时,Firefox 3.5.1就修复了这个漏洞。

在周一,微软的IE浏览器同样有一个主要的安全漏洞被披露,但现在还没有看到补丁出现。这不足为奇。Windows和其他微软程序的有些安全漏洞在几个月、几年后仍然没有补丁发布。至少,在去年年末,微软修复了一个存在了七年的漏洞——我不骗你。而且,让我们不要忘记,一个叫MyDoom的恶意软件——最早出现在2004年,到现在还可以在Windows电脑上用来进行DDoS[注](分布式拒绝服务[注])攻击。

简而言之,所有开源软件比同类的商业软件更安全,因为开源的特性使安全漏洞的查找和修复快速得多。如果微软真关注它的软件安全,那么它在周四就应该对漏洞进行修补,它应该开放代码,从而是安全问题得到控制。可是,这种事情是不可能发生的。所以,现在和将来,FOSS(自由及开源软件)都会在安全方面更胜一筹。

参考资料

1.DDoS:分布式拒绝服务(:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DoS攻击,从而成倍地提高拒绝服务...详情>>

[责任编辑:李夏艳 li_xiayan@cnw.com.cn]