扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我们应该知道不存在绝对完美的安全,没有一个绝对安全的程序。总之,安全是一个过程,而不是一个产品。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,你应该感觉极好。
无论如何,事情的关键点并不在于技术细节。而是在于对开源软件,问题很快被大家发现并且被修复。举个例子,周三时,Firefox 3.5有重要的安全漏洞被揭发,但周五时,Firefox 3.5.1就修复了这个漏洞。
在周一,微软的IE浏览器同样有一个主要的安全漏洞被披露,但现在还没有看到补丁出现。这不足为奇。Windows和其他微软程序的有些安全漏洞在几个月、几年后仍然没有补丁发布。至少,在去年年末,微软修复了一个存在了七年的漏洞——我不骗你。而且,让我们不要忘记,一个叫MyDoom的恶意软件——最早出现在2004年,到现在还可以在Windows电脑上用来进行DDoS(分布式拒绝服务)攻击。
简而言之,所有开源软件比同类的商业软件更安全,因为开源的特性使安全漏洞的查找和修复快速得多。如果微软真关注它的软件安全,那么它在周四就应该对漏洞进行修补,它应该开放代码,从而是安全问题得到控制。可是,这种事情是不可能发生的。所以,现在和将来,FOSS(自由及开源软件)都会在安全方面更胜一筹。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者