中文  |  English
Red Flag Software
----News
红旗首页> 新闻中心 > 业内新闻
孙玉芳:Linux安全可靠吗?
发布时间:2000年10月30日
中国科学院软件研究所副所长、中科红旗软件技术有限公司董事长孙玉芳研究员在《计算机世界》的“专家视点”栏目中谈到了Linux 发展的两个问题:Linux会四分五裂吗?Linux是.com吗?今天他又提出了一个问题————   Linux遵循GPL规则,据此规则Linux开放其全部源码,而且他人修改、添加等也必须开放源码。由于其源码是公开的,人人可以获取并可以深入研究、开发出别的产品。这种全部公开其秘密的系统是否安全?是不是给别有用心的人大开了方便之门?   Linux主要是由一批自由之民的才智堆砌而成的。从一开始它就是一大群爱好者在网络上一起涂涂抹抹出来的。没有严格的品质控制与高层决策发展方针,靠的是每周发表新版供大家下载测试,测试者再把bug(缺陷、错误)与patcl(补丁)贴到网络上改进成下一版。虽然核心目前仍由T. Linus一组人严格审查、控制和发布,并且由一批发行商在作打包发行并提供支持和服务。但是与传统的软件供应商如Mircosoft、 Oracle、Informix、Sybase、IBM等不同,Linux的这种发展及发行和支持模式是否可靠?用户购买了传统软件商的软件,有问题可以找这些供应商,而Linux的核心发布与打包发行是由不同群体完成的。核心发布完全是免费的,发行商目前发行的版本也只是收取发行成本费而不是许可证费,现在若把应用软件放在Linux平台上,一旦出了问题,那么我该找T. Linus 还是打包发行商?现在发行商这么多,用户该选哪一个发行版本呢?其可靠性如何呢?   显然,用户提出这些问题不足为奇,而且也是Linux真正成为商业软件,为广大用户接受所必须解决的问题。 一、开放源码比“黑盒子”更不安全吗?   自商业软件问世以来,最终用户已习惯于购买并运行这些软件来完成其工作,而并不关心构成这些软件的原始形式是某种特定编程语言(如汇编、高级语言C、C++、Fortran),还是开发工具如(VB、Powerbuilder、Development2000)。但对于软件开发者和系统研究者来说,他们往往想知道该软件包的结构和内部功能是如何实现的,这就需要通过分析这些软件包的原始形式,即其源码,因为阅读这些软件包的运行目标码(往往是“0101”位串)是根本行不通的。而普通商业软件公开源码几乎是不可能的,因为整个公司产品的秘密几乎全部蕴含在这些源码中。公开了源码也就公开了产品的秘密,竞争对手可以通过深入分析这些源码掌握其产品精髓,进而可以生产出更好的产品来与之竞争,显然对于企业来说这是生死攸关的大事。   这些商业软件的目标码系统的安全性如何,即有没有安全漏洞,是否强健得足以抵御一般的病毒感染甚至骇客攻击,则很难知晓。在目前PC与PC 服务器上用得最多的微软的Windows 据说有很多安全漏洞,微软自己也宣称发现了其产品有许多bug。在这样的系统上采取安全防范措施不是不想为,而是不可为。   相反,Linux是开放源码,而且相比Windows 2000, 6000人花20亿美元两年半才开发完成的庞大系统来说,是比较精干的。   据报道,即使是最新的Linux 2.4版(还未正式发布)也只在2M左右。根据笔者以前分析UnixV6和以后的若干版本及近来组织一批工程师分析 Linux版本的亲身体会,如果你有些Unix原理的知识,那么分析完这样大小的系统,只要两个人年的工作量;如果只想大致了解系统结构和模块的功能实现,则花半个人年工作量足矣。   深入了解Linux结构及模块功能,就可以自由地修改、添加所需的功能如安全模块,为我所用。但人们会提出如下问题:   问题之一:根据GPL规则,您对Linux核心的修改(如加入安全模块)也必须开放,人家也就知道了,您的安全措施就无秘密而言了。是的,我们要遵守游戏规则,正是大家的奉献才有Linux今天的辉煌。如果您的安全防范措施的确有效,被Linux社团及T. Linus为首的系统维护和审查组认可,则无疑是你对Linux安全性增强做出了贡献。但是如果为了特定目的,那么你所加入的安全模块也可以不公开,你可以保持这种修改版本在某一特定领域或范围内部使用。   问题之二:因为Linux是开放源码,你可以分析了解,骇客也可以分析了解,那不是给骇客提供了攻击破坏系统的机会了吗?对于这一问题,应从以下几个方面来看:   首先,如果骇客要把诸如逻辑炸弹的模块放入Linux,那么在被人们下载之前(只有人们下载使用,才会有“炸弹爆炸”造成危害的可能,这正是骇客制造逻辑炸弹的本意),它必须在网上经过上千人的测试和审查。我想千百人的眼睛是雪亮的,这些“炸弹”将无一例外地被剔除出去,所以骇客的计谋根本不可能实现。   第二,由于骇客深谙Linux内核工作原理,所以会从外部各方面攻击Linux,可能比对黑盒子式的系统来得更为“猛烈”,手段更为“高明”。但是我们不也因为深谙Linux而可以采取更有效的防范措施么?正可谓“道高一尺,魔高一丈”,互相斗法,而且这种斗法很可能会长远演练下去。   从另一个角度,由于我们对于Windows那样的黑盒子内部一点不了解,安全性方面即使明知有问题,不也是一脸的无奈吗?有了开放源码,我们通过分析研究,不是在对付病毒、攻击等方面至少有了一些主动权了吗?   最后,笔者认为由于有了大量开放源码,我们可以充分利用这些资源,在技术上可以跳跃前进,迅速掌握国际上核心软件的关键技术,不仅可以立即为我所用,可以尽快培养造就一批专业人才,也为我们今后再创新提供了丰富的素材、技术及人才基础,“站在巨人的肩膀上可以看得更远”。 二、基于Linux平台发展我国软件应用可靠吗?   这一问题可分几个层面来说明。   首先从Linux操作系统本身的性能来说,国内的基本情况是:政府及大中型企业等关键部门的应用服务器及数据库服务器上运行的基本是各种Unix 系统,而小型企业、个人及部门服务器之外的客户机上运行的操作系统则以Windows为主。由于PC(包括低端PC服务器、笔记本电脑、家用电脑)量大,因此从装机量上说Windows 占有绝对优势。但关键部位基本是用Unix系统,其主要原因之一就是Windows在系统运行的可靠性方面比Unix差。Linux是Unix的一个变种,Unix所具备的一切优点Linux都具备,在系统可靠性方面也是如此。有人在1997年12月曾对世界前1000个大型信息技术企业作过调查,在TCO、互操作性、价格、管理、灵活性、可用性、Java支援、功能及效能中Linux 有7项名列第一,整体满意度处于首位。Linux/Navigator比 IE/NT4.0的效能至少快30%~ 40%。现在这么多国际著名厂商都支持Linux,除了“反微软”情结之外,Linux的性能优良应是理性的厂商首先考虑的重要因素。Linux有无限的发展空间和极好的市场前景。   第二,以前花高价购买了有版权的软件,你买到的其实仅仅是这些软件的使用许可权。你没有买到“软件”,而只是这个软件的一个副本。该软件厂家还可以向别的用户出卖此软件的副本,或者说“使用权”。不像你买了一个杯子就是一个杯子,厂(商)家就少了一个杯子。“软件”可不因为你买了“使用权”,而少了一块东西。   “软件”卖给你后,它并未对你使用该软件产生的所有结果负责,除非真是软件中的故障、bug等导致系统出现问题,该软件厂家可能提供一些补救措施。从这种意义上讲,软件厂家并没有提供任何可靠性保证。而如果你想获得额外支持服务,那必须付费。   与之相比较,由于Linux所遵循的GNU/GPL规则,不但其核心在网上发布,人人可以下载,而且众多的发行版本也只是收取一部分成本费,根本不是使用许可权费。另外,既然购买别的商用软件提供的技术支持可以花高价,那么要获得 Linux厂家的支持当然也应该付费。只要提供的服务一样到位,其服务费就不应因软件本身的价格的差异而有大的不同。   专业的Linux发行商所提供的技术支持、培训、维护等服务和Unix系统厂商的服务一样好,因为这些Linux发行商或服务商在版本发行方面几乎不赚钱,而正是靠服务才能赚取利润,它们的服务更专业。当然Linux供应商的实力、技术背景及市场定位是有差异的,用户应根据自己的需要作必要的挑选,选择自己中意的合作伙伴,以保证应用系统的长远运作有技术上的可靠保证。   一些传统用户总是对开放源码运动及目前Linux发行商的运作有一种捉摸不透的疑虑,这是正常的,因为毕竟这是一种新的动作模式,与传统的软件发行不同,这也正是“软件是服务而非产品”的新思维的集中体现。人们长期以来习惯于版权费,对于目前Linux所体现的模式要有一个认识、熟悉并渐渐接受的过程。   另外,国内一些用户都还有点疑虑,觉得马上采用Linux 风险太大。其实国外已有许多Linux大型应用的案例,你不可能是第一个吃螃蟹的人了。 三、围绕操作系统安全性的研发思考   1.操作系统的安全支持范畴   操作系统安全研究的根本目标不应该是追求达到橙皮书或其他任何一个安全标准的某个级别,而应该是切切实实地搞清楚操作系统应该具备的安全能力。在构成计算机系统环境的各个层次的软件系统中,不同层次上的系统肩负着不同的安全使命,企图在应用层实现应该由操作系统实现的安全服务,或者相反,都是错误的。不难证明,上层的诸如访问控制和加密等机制必须依赖操作系统的强制访问控制、可信路径等机制的支持,才能实现其安全功能。否则,上层的那些安全机制都不可能达到其安全目标。   操作系统必须提供上层系统赖以支持的安全服务,这些安全服务的集合都必须在操作系统中实现,如何确定这样一个安全服务的集合,目前尚未得到很好的解决,这应该是我们研究的目标。因此,由某个已有标准的安全级别来确定操作系统的安全功能,是不现实的,而完全依赖橙皮书的做法,正好走进了这一误区。CC标准的方法与橙皮书不同,它所定义的安全保证级别与安全功能是分离的,安全功能由用户或开发人员来确定,这比较适合于结合操作系统的安全研究来评价操作系统的安全可信度。   2.围绕Linux内核引擎的操作系统安全研发途径   Linux继承了Unix的安全特性。Linux的发展背景也促使其安全性得到较快的改进。目前Linux的安全性如果用橙皮书来衡量的话,那么大致处于C2 级。国际上有关Linux安全性改进的项目和活动中,有些以B1级为设计目标,也有一些以 B2级为设计目标。   具体地说,Linux的安全性与Unix的情况是相同的,面临着Suid问题、口令问题、引导问题、特洛伊木马问题、缓冲区溢出问题等,访问控制表、强制访问控制等都没有得到特别的支持。但在现有Linux内核引擎的基础上开展工作,解决安全性问题,首先要从宏观上理清以下思路:现有内核安全性的不足有哪些方面?需要增加哪些安全机制?如何实现增强的安全机制?如何评价安全可信度?   在橙皮书的影响下,国际上已经推出了一些具有较高安全性的Unix系统,这些系统的安全实现方法为我们积累了很多经验。在当今的技术状况和应用需求面前,我们认为橙皮书已不宜作为操作系统的安全评价目标,但是,其中定义的内容,很多仍有宝贵的参考价值,应该加以合理利用。   总而言之,我们认为较好的途径是:把Linux系统的安全性与一般意义上的操作系统安全性的研究结合起来,以已有成果为基础,探讨进一步完善的操作系统安全特性,以CC标准为准绳,实现高安全可信度的Linux核心安全支持,从而为建立安全的系统软件平台奠定应有的基础。
©北京红旗软件有限公司 2000-2015 | 网站备案序号:京ICP备05032410号  
 公司信息 |  招聘信息 |  联系我们 | 公司大事记 |  软硬件兼容列表 |  产品购买咨询