为什么破坏Linux内核尝试会失败

ZDNet软件频道 时间:2004-03-04 作者:TechRepublic.com |  我要评论()
本文关键词:liunxtips
有人曾成功地对Linux操作系统的内核进行了未经授权的更改,有意创建了一个根用户。如果不是快速及时地发现了这一问题并进行了修正,这可能就会发展成为一个严重的问题。
本文译自TechRepublic,未经许可请勿转载

有人曾成功地对Linux操作系统的内核进行了未经授权的更改,有意创建了一个根用户。如果不是快速及时地发现了这一问题并进行了修正,这可能就会发展成为一个严重的问题。

能够这么快就发现系统被攻破要归功于对Linux内核源代码的管理措施。成千上万的人都在致力于Linux内核(的开发),在任何时候都可能会有几十人在为Linux内核的不同部分(的改进)而努力。

Linux源代码随处都可以找到,这种特性也给想要找到和有意制造(Linux内核)缺陷的人提供了可能性。任何人都可以查看Linux的源代码以寻找其缺陷——或者,在本文的例子里,有意地插入了一段代码。

但是把这一代码插回到Linux的主程序里是一项巨大的工程。开发人员的(巨大)数量使得把所有的变化和主系统进行同步需要一个过程。

令人惊讶的是,一个商业源代码管理系统——BitMover的BitKeeper,不仅能够管理Linux的主内核,而其该公司的主机里还提供当前的Linux内核。由于BitMover的工作方式,对文件的直接修改不可能不引起别人的注意。

而想要修改Linux内核的人通过使用了不同的源代码控制系统——而不是BitKeeper实现了他们的目的。他们对另一个源代码控制系统里的文件系统直接进行了更改,从而跳过了共享源代码控制系统的常规检查和对比。此外,他们把这一变化转嫁到了一个长期进行Linux内核开发的人的头上。

但是很快就有人发现了这些变动并修复了它们,其原因要部分归功于任何人都可以检查Linux的源代码。这个问题不到一天就被找到并修改了,只有两行代码出了问题。这两行代码是控制整个操作系统所需要的。

我敢肯定,关于开放源代码软件“危险性”,尤其是关于Linux不安全的大肆宣传马上就要到来。但是在你在买入市场营销的产物之前,要知道这一点:给软件加上后门在任何时候都存在——无论它是开发源代码的还是封闭源代码的。

例如,Borland老版本的InterBase被发现带有一个后门,而这个后门在它开放源代码版本——Firebird(黄鹂)里也有。但是开放源代码的开发人员不是罪魁祸首;InterBase里后门代码是Borland安放的。

之后,开发人员从开放源代码的Firebird项目里把(后门)代码删掉了,而Borland随后也发布了“修正”版的InterBase。自从1994年以来,这个后门就一直存在。

我敢肯定,寻找在Linux里安插后门责任者的工作正在进行。我们也会看到,封闭源代码和开放源代码争论者是否会用这次事件作为其论战素材还是未知。

只用记住:要确定是否有人已经潜入了程序的唯一方法查看源代码。在程序里放上一个后门不会花上太多工夫。但是,如果人们能够看到源代码,那么发现后门的机会要大得多——即使它只有两行代码。


本文作者: Jonathan Yarden是某区域ISP的高级UNIX系统管理员、网络安全管理者和高级软件设计师。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134