2013 年 3 月 15 日,英国 IT 社区领先的新闻、分析、观点、信息和服务提供商 ComputerWeekly.com 发表了 Bryan Glick 的一篇文章,标题为:政府强制“优先”使用开源。这篇文章重点介绍了英国新发布的 政府服务设计手册,该手册将从 2013 年 4 月起,为英国政府为公众消费开发的在线服务提供管理标准。
新文件中最有趣的部分或许是题为:何时使用开源 的章节。至少对我来说很有趣。多年来,我一直倡导在美国国防和情报部门的项目中使用开源产品。因此,请原谅我有点羡慕,当我读到该章节中的以下内容时:
优先使用开源软件,而不是专有或闭源替代方案,特别是对于操作系统、网络软件、Web 服务器、数据库和编程语言。
该声明没有留下太多讨论或怀疑的空间。当在可比较的替代方案之间进行选择时,开源胜出。句号。多么开明!
在美国政府项目中,虽然使用开源软件 (OSS) 不是强制性的,但它是允许的,并且经常受到鼓励。然而,由于控制法律、法规、政策和指南 (LRPG) 的拜占庭性质以及一些流行的误解,架构师、系统工程师和开发人员在推荐使用 OSS 时,经常会遇到从不熟悉到抵制的各种反应。在本文的剩余部分,我们将调试五个最广泛的误解。具体来说,我们将讨论以下误解:
- OSS 在政府项目中没有得到广泛使用
- OSS 不等同于商业软件
- 政府信息保障政策禁止 OSS
- OSS 比专有软件安全性低
- 将恶意代码插入 OSS 更容易
OSS 在政府项目中没有得到广泛使用
开源组件和应用程序长期以来一直被美国政府项目所利用,并且经常提供不可替代的核心系统功能。仅举几例:
- Mozilla Firefox 浏览器和 Thunderbird 电子邮件客户端
- 谷歌 Android 移动设备操作系统
- Apache Tomcat Web 服务器和 Servlet 容器
- Linux 操作系统
- PostgreSQL 对象关系数据库管理系统 (ORDBMS)
- Drupal 内容管理系统
- WSO2 企业服务总线 (ESB)
- Apache Hadoop 分布式计算框架
- NASA World Wind 地理空间信息系统 (GIS)
OSS 不等同于商业软件
大多数(如果不是全部)OSS 应用程序和组件,根据法律,都是商业项目。该定义来自美国联邦法律(41 USC 403,第 12 款),该法律将“商业项目”定义为
(A) 除不动产以外的任何一种类型的物品,这种类型的物品通常被普通大众或非政府实体用于政府目的以外的目的,并且
(i) 已出售、出租或许可给普通大众;或
(ii) 已提供出售、出租或许可给普通大众。
(B) 通过技术或性能进步从 (A) 项所述物品演变而来的任何物品,并且该物品尚未在商业市场上提供,但将在商业市场上及时提供,以满足联邦政府招标下的交付要求。
(C) 任何物品,但由于
(i) 在商业市场上通常可获得的类型的修改,或
(ii) 为满足联邦政府要求而进行的细微修改,否则将满足 (A) 或 (B) 项中的标准。
国防部于 2009 年 10 月 16 日发布了关于 OSS 的澄清指南,美国海军于 2007 年 7 月 5 日发布了 关于 OSS 指南的备忘录,证实了该法律将 OSS 声明为“商业软件”的解释。
此外,自 2003 年发布 备忘录 M-03-14:降低联邦政府购买商业软件的成本并提高质量 以来,美国管理和预算办公室 (OMB) 已承认 OSS 支持协议的商业性质。事实上,许多著名的商业公司(例如,IBM、RedHat、Novell、Microsoft 等)通过支持开源产品获得了可观的收入。其他商业公司,例如 WSO2,构建开源软件产品,并且仅从与这些产品相关的支持和咨询中产生收入。
政府信息保障政策禁止 OSS
这种误解源于误读,或者更准确地说,是不完全阅读 国防部指令 8500.2 信息保障 (IA) 实施。该文件包含一个附件(附件 4),标题为:基线信息保障级别。此附件包含许多经批准的系统必须遵守的软件控制措施(或者,如果未遵守,则必须获得指定批准机构 (DAA) 的豁免)。其中之一是控制措施 DCPD-1 公共领域软件控制。OSS 被禁止的想法之所以产生,是因为许多人只读了前几行,内容如下:
除非对于完成任务是必要的,并且没有其他可用的 IT 解决方案,否则不得在国防部信息系统中使用二进制或机器可执行的公共领域软件产品以及其他保修有限或没有保修的软件产品,例如通常称为免费软件或共享软件的产品。
然而,控制措施的文本继续写道:
此类产品会评估信息保障影响,并经 DAA 批准使用。评估解决了以下事实:此类软件产品难以或不可能审查、修复或扩展,因为政府无法访问原始源代码,并且没有所有者可以代表政府进行此类修复。(强调添加。)
充分理解此控制措施的关键在于最后一句话,该句话讨论了政府无法访问原始源代码所带来的后果。该控制措施(旨在处理废弃的二进制文件)显然不适用于 OSS,因为根据定义,用户可以访问源代码!
OSS 比专有软件安全性低
存在一种常见的误解,即“由于 OSS 对全世界可见,因此更容易被黑客入侵”。换句话说,这种说法是,由于专有软件的源代码未公开,因此攻击者不知道漏洞。现实情况和信息技术社区不同意这一前提。早在 1973 年,Jerome Saltzer 和 Michael Schroeder 在他们的论文 计算机系统中信息的保护 中就指出,依赖攻击者的无知不是一种有效的保护机制。最近,安全专家 Vincent Rijmen(Rijndael 算法 的创建者之一,后来成为高级加密标准 (AES))和 Whitfield Diffie(公钥密码学的先驱)也表达了同样的观点。
尤其能说明问题的是,在 2001 年采用 Rijndael 算法作为 联邦信息处理标准 (FIPS) 197 中的 AES 之前,国家标准与技术研究院 (NIST) 公开了该算法。分配了大约三年的时间,在此期间,来自世界各地的密码分析师被要求尝试击败 Rijndael。最终,所有尝试都失败了,AES 至今仍是美国政府加密方法的核心。对于透明的(并且本质上是开源的)过程,失败算法之一的作者 Bruce Schneier 说,“我对 NIST 和 AES 流程只有好评。”
将恶意代码插入 OSS 更容易
反对 OSS 的论点之一是,任何人都可以修改它,包括攻击者。现实情况是,任何代码都可以被修改;你只需要一个十六进制编辑器。真正的问题是如何将修改后的代码放入供应链中。这个前提不仅需要颠覆开发人员和受信任的存储库,而且完全忽略了与分布式源代码合作的现实。OSS,无论是社区还是公司开发的,都会定期接受一个松散耦合的检查组织的审查,该组织的规模是专有开发公司在经济上可行的规模的许多倍。此外,广泛的审查人员导致从许多不同角度进行检查。
因此,被篡改的代码更难长时间不被发现。也许这方面最能说明问题的例子是 Borland 的 InterBase/Firebird 数据库。在开发时,后门被内置到系统中。使用用户名“politically”和密码“correct”,可以通过互联网获得对数据库的管理访问权限。在 2001 年发现时,据估计后门至少从 1994 年就已存在。从 OSS 的角度来看,有趣的是,Borland 在 2000 年年中根据 Mozilla 公共许可证开源了 InterBase 源代码。在开源发布后的五个月内,已经存在至少七年的安全漏洞被发现。
结论
总而言之,虽然美国政府迄今尚未发布要求优先使用开源的指南,但它已明确表示,开源产品应至少与专有产品享有同等优先地位。此外,开源产品在安全性和信息保障方面具有一些显着的内在优势。这实际上意味着采购经理拥有更大的选择权,并且能够做出程序性决策,从而在降低总拥有成本的同时提高能力。这是一个全面成功的秘诀。
最初发布于 The Intelligent Triad。根据知识共享许可重新发布。
1 条评论