博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
foss测试_防止下一次心脏出血,使FOSS更安全
阅读量:2542 次
发布时间:2019-05-11

本文共 5626 字,大约阅读时间需要 18 分钟。

foss测试

戴维·惠勒(David Wheeler)在就开源软件相关问题提供咨询和与美国政府合作方面一直处于领导地位。 他的个人网页是有关开放标准,开放源代码软件和计算机安全性的经常被引用的资源。 David正在领导一个新项目,即 ,该是Linux基金会旨在加强开源软件的安全性。 在这次采访中,他谈到了这对政府和其他用户意味着什么。

让我们从一些基础知识开始。 徽章项目是什么,它是如何产生的?

2014年,在OpenSSL加密库中发现了Heartbleed漏洞。 作为响应,Linux基金会创建了核心基础设施计划(CII),以资助和支持开源软件(OSS),这是全球信息基础设施的关键要素。 CII已确定并资助了特定的重要项目,但不能资助所有OSS项目。 因此,CII还资助了一些方法来总体上提高OSS的安全性。

最新的CII项目是最佳实践徽章项目,其重点是总体上提高安全性。 我是这个项目的技术负责人。 我们认为,遵循最佳实践的OSS项目更有可能是健康的,并且可以生产更好的软件,包括具有更好的安全性。 但这要求人们知道最佳实践是什么,以及给定的项目是否在遵循这些最佳实践。

为了解决这个问题,我们首先检查了许多文献和OSS项目,以确定一组广泛接受的OSS最佳实践。 然后,我们建立了一个网站,OSS项目可以在该网站上报告它们是否应用了这些最佳实践。 在某些情况下,我们可以检查项目的网站并自动填写一些信息。 我们使用该信息(自动的和非自动的)来确定项目是否充分遵循了最佳实践。 如果项目充分遵循最佳实践,则该项目将获得“通过”标志。

在这里我应该指出,徽章项目本身就是OSS项目。 您可以看到 。 我们希望有更多的参与,所以请加入我们! 要回答这个明显的问题,是的,它确实获得了自己的徽章。 其他获得徽章的OSS项目包括Linux内核,curl,Node.js,GitLab,OpenBlox,OpenSSL和Zephyr。 相反,Heartbleed之前的OpenSSL无法通过许多标准,这表明该标准正在捕获有关项目的重要因素。

如果您参与OSS项目,我鼓励您获得一个徽章。 如果您正在考虑使用OSS项目,建议您查看该项目是否带有徽章。 您可以在查看更多信息。

您能告诉我更多有关徽章标准的信息吗?

当然。 当然,没有一套实践可以保证软件永远不会有缺陷或漏洞。 但是一些实践鼓励良好的发展,这反过来又增加了获得高质量产品的可能性,这就是我们关注的重点。

为了创建标准,我们回顾了许多关于FLOSS项目应该做什么的文件; 最具影响力的单一来源可能是Karl Fogel的著作《 。 我们还研究了许多现有的成功项目。 我们还从包括Karl Fogel,Greg Kroah-Hartman(Linux内核),Rich Salz(OpenSSL)和Daniel Stenberg(curl)在内的许多人那里对标准草案进行了非常有帮助的批评。

一旦确定了初始标准,它们就会分为以下几类:基本,变更控制,报告,质量,安全性和分析。 我们最终得出66条标准。 每个条件都有一个标识符和文本。 例如,标准floss_license要求“软件必须作为FLOSS发布”。 准则know_common_errors要求:“至少一名主要开发人员必须知道导致此类软件漏洞的常见错误,以及至少一种应对或缓解每种错误的方法。” 这些条件可以在线获得,LWN.net上的文章更详细地讨论了这些条件。 一个典型的OSS项目只需约一个小时即可填写表格,部分原因是我们会自动填写一些信息。 自动化方面的更多帮助将不胜感激。

随着证件项目获得更多反馈以及使用中的最佳做法的集合变化,标准可能会缓慢地(可能每年)更改。 我们还打算在当前的“通过”级别之上增加更高的徽章级别,并暂时将其命名为“金”和“铂”级别。 但是,项目团队决定分阶段创建标准。 一旦我们拥有当前设置的经验,我们就更有可能创建良好的标准。 一些已提议的更高级别标准的列表已经发布; 如果您有想法,请发表问题或加入徽章项目邮件列表。

在深入研究这一领域时,最令您惊讶的是什么?

也许最令人惊讶的是,许多OSS项目都没有描述如何报告安全漏洞。 当然有很多。 Mozilla Firefox等许多项目描述了如何将漏洞报告到专用电子邮件地址,以及如何提供用于发送加密电子邮件的PGP密钥。 某些项目(例如Cygwin)有明确的政策,所有缺陷报告都必须公开报告(在这种情况下,通过邮件列表),并且明确禁止通过私人电子邮件进行报告。 我不喜欢“所有公共政策”(因为它们可以使攻击者有先机),但是当每个人都知道规则时,处理漏洞就容易了。 但是,许多项目根本没有告诉人们如何报告漏洞。 这引发了很多问题。 安全研究人员应该使用公共问题跟踪程序或邮件列表报告漏洞,还是执行其他操作? 如果项目要使用加密来接收私人报告,则该如何加密信息? 应该使用什么键? 如果项目没有提前考虑,则可能会减慢漏洞报告和处理的速度。

有几个原因对此感到惊讶。 首先,令人惊讶的是,开发人员没有预料到他们的代码中存在漏洞,而他们应该准备解决这些漏洞。 该新闻充满了漏洞报告! 其次,提前解决这个问题非常容易。 只需在项目网站上说明如何报告漏洞。 只需要一到三句话! 当然,写下来需要项目成员考虑如何处理漏洞,这很有价值。 最好在报告漏洞之前决定如何处理漏洞。

什么没让您感到惊讶,但可能会让其他人感到惊讶?

可能会让您感到惊讶的一些事情是:

1.还有一些项目(大多数是较旧的项目)不支持公共版本控制的存储库(例如,使用Git),这使得其他人很难跟踪更改或进行协作。

2.仍有一些项目(大多数是较旧的项目)没有(有用的)自动化构建或自动化测试套件。 这使得进行改进变得更加困难,并且缺陷更容易被漏出而未被发现。 当在依赖关系中发现漏洞时,这也使得升级依赖关系变得困难,因为没有简单的方法来验证更改几乎可以肯定是无害的。

3.许多人认为大多数项目都是OSS,但大多数情况下都是较新的项目,但由于它们根本没有许可证,因此它们是不合法的。 在大多数国家/地区,没有许可证或其他标记的软件通常不合法使用,分发或修改。 这在GitHub上尤其是个问题。 Ben Balter在2015年的演示中发现在GitHub上,拥有1,000颗或更多星星的项目中有23%根本没有许可。 的确,在1976年之前,在美国未贴有版权标志的作品不受版权的限制,但这是很久以前的事了。 如今,几乎所有国家/地区的法律都要求开发人员必须先许可软件,然后其他人才能合法使用它,而且这种情况不太可能改变。 即使您认为法律不适用于您,但忽略FLOSS许可证也往往会抑制项目的使用,共同开发和审查(包括安全审查)。

4.大多数开发人员仍然不知道开发安全软件的基本原理,也不知道导致漏洞的常见错误是什么。

我们希望徽章程序将有助于解决此类问题。

对于在使用开源软件方面苦苦挣扎的政府而言,该计划是否有教训?

大型组织有两种:知道自己正在使用OSS的组织和不知道他们正在使用OSS的组织。 没有第三种。 如果您为专有软件许可付费,那么如果您向里看,几乎所有专有软件中都会发现很多OSS。 定制软件通常建立在OSS之上并由OSS构建。

许多管理人员之所以努力,是因为他们不了解计算机行业已经发生的变化,也就是说,OSS是计算的主要力量,并且会持续存在。 仍然有一些经理不想假装接受变更,而是假装变更尚未发生,或者试图重回一些神话般的“美好的旧时光”,但实际上并没有那么好。 对于那些试图阻止所有使用OSS的人,我建议一个简单的补品:停止尝试倒退时机,取而代之的是接​​受已经发生的更改。

一个与众不同的斗争是那些部分接受这一现实,但又想管理风险却又不知道如何做的人。 目标是正确的,但是他们的方法经常被误导。 我反复听到“例如,但您不知道谁开发了OSS”。 在大多数情况下,这是错误的,因为写每行的人通常是公共记录(版本控制系统数据中包括了)。 荒谬的是,即使他们对编写代码的想法一无所知,这些人还是很乐意使用专有软件。 一个相关的问题是,许多人希望将公司的位置注册用作恶意代码的唯一风险度量,这是一个错误。 例如,一家公司可能在美国注册,但这并不意味着其开发人员和测试人员在美国或为美国公民。 公司注册就像船舶注册; 这是与现实无关的法律小说。 此外,您可以是一个国家的公民,并且仍然可以创建恶意代码来攻击该国家的政府。 简单的测试(例如“这是来自我们国家的公司”)对于管理风险不是很有帮助; 我们需要更好的方法。

对于那些希望引入OSS但又希望管理其风险的人们,此计划无疑应该提供一些帮助。 相反,我们专注于各种更有可能产生良好软件的最佳实践,而不是专注于国家注册等法律小说。 潜在用户可以通过标记项目来查看最佳实践以及特定项目的执行情况。

当然,最佳实践徽章项目无法解决所有问题。 我们无法告诉您某些给定的OSS是否可以解决您遇到的问题; 只有您能了解您的需求。 OSS支持模型很多。 在某些情况下,简单的下载并根据社区而定是一个不错的选择,而在另一些情况下,您确实应该使用提供专业支持的公司。 我们正在努力为人们提供更好的决策所需的一些信息。

换句话说,当我们上次发言时,您表示美国政府分叉项目的风险仍然是一个大问题。 您如何看待今天的情况?

首先,快速澄清。 我使用“ fork”一词来表示要修改项目的任何项目。 如果计划将修改提交回主项目,则分叉非常有用。 问题是“项目分支”,它是旨在创建新的独立项目的分支。 项目分支禁止协作,而不是鼓励协作,因此这就是项目分支成为问题的原因。

美国政府没有追踪其资金的项目分叉,因此我无法满怀信心地回答这个问题。 有趣的是,我认为问题已经有所减轻,但这仍然是一个大问题。 帮助减少政府资助项目中项目分叉的一件事是,公共存储库的使用日益增加,尤其是在GitHub上。 公共存储库以及使用该存储库的期望大大提高了透明度。 如果一家公司知道它将被迫公开公开其项目分支,它将正确地担心它可能会被要求为不可抗辩的辩护。 用大法官路易斯·登比兹·布兰代斯(Louis Dembitz Brandeis)来解释,透明度通常是最好的消毒剂。 另外,如果政府强迫一家公司将其项目分支作为OSS可用,那么对项目分支的一些经济诱因就消失了,其改进可能会被合并回主项目中(称为“修复”分支的过程)。

话虽如此,政府中仍然有太多不正当激励措施。 一个明显的例子是,如果承包商从头开发软件而不是重新使用现有软件,他们将获得更高的利润。 许多项目重新发明了轮子,因为这样做是有报酬的,而纳税人则花了钱。

更严重的是,供应商知道,如果他们可以将客户锁定在他们的产品中,他们可以勒索更多的钱。 如果无法逃脱产品或服务,则供应商可以毫无限制地继续提高价格,并且供应商也没有动力提供新技术或良好支持。 政府的整个采办系统假定存在对工作和未来工作的公开竞争,并且从理论上讲提供了反补贴力量。 在实践中,通常不是这样。

在计算中,数据权(又称知识产权或技术数据权)是权力的代名词。 除非您拥有数据权利,否则即使您最初为该软件的开发付费,也不能更改软件,也不能竞标购买其他未来的维护者。 然而,许多政府雇员对此并不了解。 承包商确实了解这一点,并且有动机去剥削那些没有的天真的政府雇员。 可以说,数据权利比需求重要得多,因为需求不断变化,而数据权利决定了谁可以修改软件以响应新需求。 承包商将要求获得软件的专有权,即使他们没有为软件的大部分开发支付费用,也将使用诸如创建专有“通信总线”之类的技巧,其主要目的是将政府锁定在该承包商中。 如果承包商获得专有权,那么政府将永远丧失对其维护进行有效竞争的能力。 同样,第三方软件供应商通常具有专有接口,或为标准接口创建专有扩展,以禁止用户更改为竞争的供应商。 这并不是说所有承包商或第三方供应商都是邪恶的,也不是说所有政府雇员都是无知的。 离得很远。 政府需要这些人! 但是,不正当的激励措施加上政府方面的幼稚,往往会导致政府陷入承包商或第三方供应商的困境,而后者又可以对不良结果收取任意价格。 我的猜测是,如果政府实际上可以在软件方面进行全面和公开的竞争,那么每年将至少节省数百亿美元。 确切的数字比问题要小。 我们显然有一个需要修复的问题。

我认为对此有很大帮助,除非有迫切需要否则,要求将使用政府资助开发的软件作为开源软件发布给公众。 那将大大减少从头开始重建一切的动机,或者试图将政府锁定为一个单一承包商。 我们可能还想对那些没有进行市场研究以找到替代方案的人施加经济处罚; 这是法律和合同所要求的,但通常没有做到。 我确定还有其他事情要做; 关键是当前系统存在很多问题。

与美国政府有关的人们还应该知道什么?

正如我上次提到的那样,最大的问题之一是大多数采购人员都不了解几乎所有的OSS都是商业软件。 根据美国法律,《联邦采购法规》(FAR)和《国防部FAR补充条款》(DFARS),如果软件具有非政府用途且已获得公众许可,则该软件为商业软件。 特别是,请参阅美国法典标题41第103节,其中定义了术语“商业项目”。

因为几乎所有OSS都符合商业软件的定义,所以几乎所有OSS都是商业软件。 一旦了解了这一点,便知道要使用OSS,您只需遵循商业软件的规则,并且美国法律对商业产品的偏爱(10 USC 2377)包括OSS。 这种理解非常容易做出很多决定,但是仍然没有被广泛理解。

戴维·惠勒(David A. Wheeler)为国防分析研究所(IDA)工作,但在本次采访中他并未为IDA,美国政府或Linux基金会发表演讲。

翻译自:

foss测试

转载地址:http://byfzd.baihongyu.com/

你可能感兴趣的文章
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>
Maven配置
查看>>
HttpServletRequest /HttpServletResponse
查看>>
SAM4E单片机之旅——24、使用DSP库求向量数量积
查看>>
从远程库克隆库
查看>>
codeforces Unusual Product
查看>>
hdu4348 - To the moon 可持久化线段树 区间修改 离线处理
查看>>
正则表达式的搜索和替换
查看>>
个人项目:WC
查看>>
地鼠的困境SSL1333 最大匹配
查看>>
flume+elasticsearch+kibana遇到的坑
查看>>
【MM系列】在SAP里查看数据的方法
查看>>
C#——winform
查看>>
CSS3 transform制作的漂亮的滚动式导航
查看>>
《小强升职记——时间管理故事书》读书笔记
查看>>