发布于 2026-01-06 3 阅读
0

由 Mux 主办的开源漏洞利用开发者全球展示挑战赛:展示你的项目!

开源漏洞利用

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

标题颇具争议性。

我还没想好合适的标题。

这很糟糕,也很困难,而且因为所有标题听起来都那么消极,我真的不想用它们。我保证这不是在唱衰,而是关于我们这个行业为了让它变得更好而必须做的工作。作为一个不相信山丘存在、不喜欢爬山、不相信死亡、不喜欢死去的人,我想,这大概就是我会为之奋斗终生的山丘了。

我想谈谈开源软件在大多数情况下是如何被世界顶级组织利用,沦为剥削的工具的。它如何被用来榨取你的免费劳动,以及这从根本上来说为什么是一件坏事。我将探讨我们如何才能做得更好。我将讨论为了让软件,尤其是开源软件——我深爱的软件——能够生存下去,我们需要做出哪些改变。

因为现在开源软件正处于其发展史上最岌岌可危的境地,但我觉得几乎没有人谈论这个问题。

话语已死

在开始讲述血腥细节之前,我想先谈谈爱。

更重要的是,让我们来谈谈理解这一点的重要性:你可以批评你所爱的事物,是因为你想让它变得更好,而不是因为你想伤害它。

我从上世纪90年代就开始开发开源软件了。那时候互联网还很小,一切都很渺小。我自己也很渺小。但重要的是要明白,在任何成长的道路上,那些带你从A点到B点的技术、观点和方法,未必是你从B点到C点所需要的。

人们常常难以接受这个事实。人类既美好又常常是简单的生物,他们想当然地认为,既然某种方法以前奏效过,那么它以后也一定有效,却全然不顾周围环境的变化。

作为技术人员和整个行业,如果我们想让开源软件生存下去,我们就必须接受这一点。

开源赢得了这场战斗

这一点我们现在都知道这是事实。

你很可能至少会使用 Visual Studio Code 作为文本编辑器。

截至 2018 年,Azure 上 40% 的虚拟机运行的是 Linux 系统。

开源软件通过告诉人们软件可以而且应该是免费的,赢得了人们的民心。

免费究竟意味着什么?

虽然 GPL 及其变体可能不是第一个宽松的自由软件许可证,但随着 90 年代末 Linux 的日益普及,它们是迅速获得人们关注的许可证。

Linux 确实是推动开源软件走向主流的先锋,其 GPL 许可证最初由自由软件基金会描述为“言论自由,而非免费啤酒”。这句令人费解的话让很多人难以理解。

那么,GPL 的真正含义是什么?简单来说,如果你使用了根据 GPL 许可发布的源代码,你需要将你的修改公开,以便其他人也能使用。这是因为自由软件基金会(FSF)倡导“软件自由”——顾名思义,就是软件拥有被解放的权利,用户可以对其进行修改、检查和更改。

这是一个崇高的目标,其渊源可以追溯到用于构建 Unix 克隆的许可证,该克隆本应免费提供给所有人——这一目标的核心是人们在当地计算机俱乐部共享源代码。

需要强调的是,“免费”从来不意味着“无需成本”。它始终意味着“自由”——事实上,许多原始文献都着重强调这一点,将“无需成本”的软件描述为“gratis”。

来自自由软件基金会常见问题解答:

自由软件是否意味着使用 GPL 协议?

完全不是——还有很多其他的自由软件许可协议。我们这里列出的并不完整。任何赋予用户特定自由的许可协议都是自由软件许可协议。

为什么我应该使用 GNU GPL 而不是其他自由软件许可证?(#为什么使用 GPL)

使用 GNU GPL 协议意味着所有发布的改进版本都必须是自由软件。这意味着您可以避免与他人竞争自己作品的专有修改版本。然而,在某些特殊情况下,使用更宽松的许可证可能更好。

但真正获胜的并非是那个版本的自由软件。

尽管有 Linux,尽管像 Red Hat 这样的组织早期也有限地涉足开源领域,但 GPL 的强版权保护许可并不是开源软件如今在市场上蓬勃发展的原因。

当然,这些并非微软、亚马逊或谷歌等超级巨头企业现在支持开源的原因。

企业广泛采用开源软件与 MIT 许可证和 Apache 许可证直接相关——这些“宽松”许可证不会强制要求在软件基础上进行开发的人将其修改重新分享给更广泛的社区。

宽松的许可允许个人或组织使用你的作品,在其基础上进行创作,甚至可以利用这些修改后的作品副本牟利。

与 GPL 类似,开源的目的不是为了限制商业利用,而是为了确保软件本身的自由。

谁会从宽松的许可制度中受益?

这其实是一个陷阱问题——因为在任何权力失衡的情况下——比如说,在世界上四五个最大的组织和某个在互联网上发布代码的人之间,总是组织才是最终的受益者。

开源软件因其宽松的许可协议而在企业中流行起来。

我不想听起来像个唱反调的人——因为我向你保证,我深深热爱开源软件、软件自由以及它为教学、我们的同行以及彼此带来的组合价值,但我还是要强调:

跨国公司根本不在乎你。

企业并不关心你。

但你知道他们真正关心的是什么吗?他们关心的是可以用于商业用途的免费“价值”。企业中软件的广泛普及,正是由于像 Apache 许可证和 MIT 许可证这样的许可协议被利用到闭源、专有和营利性项目中。

想验证一下这个理论吗?

明天去办公室试试在公司应用程序中添加一些 GPL 许可的代码,看看你的直属经理会有什么反应。

宽松的许可协议明确且无追索权地将权力天平向大型技术组织倾斜,而削弱了个人作者和创作者的权力。他们有能力利用代码,有能力在此基础上进行开发,并且有动机和组织架构从中获利。

开源软件之所以能在企业中普及,是因为它允许他人利用自身资源。

哦,别这么说,被剥削?这有点太夸张了吧?

不,完全正确。

剥削 (名词) · 剥削 (复数名词)

  • 为了从他人的劳动中获利而对其进行不公平对待的行为或事实。

“对移徙工人的剥削”

  • 利用资源并从中获益的行为。

“青铜时代见证了对金矿的开采”

  • 利用某种情况为自己谋取不正当利益的行为。

“他们无耻地利用人们对死亡的恐惧”

哇,这说法也太负面了吧,肯定不公平吧?

人们肯定比这聪明得多,不会让自己的劳动成果就这样被人利用吧?

互联网的运转依赖于剥削和无偿劳动。

XKCD 永远是对的

XKCD 依赖关系_x2

这就是事实,而且已被广泛报道。绝大多数开源项目都没有资金支持,即使是重要的项目也不例外。

没有赞助就没有艺术。绝对没有。世界上唯一成功的开源项目要么是:a) 由大型公司支持,这些公司利用它们进行战略营销和产品定位;要么是 b) 依靠剥削免费劳动力来为运营这些产品作为服务的组织谋取利益。

我仿佛已经看到你们气急败坏的样子了——“但是 GitHub 有捐赠机制啊!”、“Patreon 呢!”、“我捐过一次款,你看!”。

我发现你自相矛盾,削弱了自己的论点。

我们都见过有人精疲力竭。我们都见过有人尝试双重授权,却因为不够“自由”而被同行们口诛笔伐。我们也见过有人费尽心思地进行法律程序来销售支持合同,结果却只卖出寥寥几份。

我们见过一些下载量超过2000万的资源包无人问津,因为没人愿意为他们的作品付费。这简直是人间地狱,创作者们成了受害者。

我不会希望任何人经历一个成功的开源项目。

我们去问问Reddit吧

(永远不要问Reddit)

我最近在 Reddit 的一个帖子中提到,我可以在 YouTube 上直播自己阅读开源代码库,人们也乐于让我从中获利,这真是太疯狂了。但是开源社区却变得如此固执己见,以至于软件收费的想法对他们来说简直是不可饶恕的。

让我们来看一些直接引语:

“啊,所以你也讨厌gcc和linux,因为它们是由公司开发并为公司服务的?”

“反对自由软件?现在都什么年代了?!”

“如果免费,为什么不是面向所有人免费开放?这其中也包括组织机构。说实话,我不太明白你的具体建议是什么,以及在操作层面上的具体做法。”

显然,我被踩到谷底,因为人们似乎把“或许跨国公司应该为你的工作付费”解读为“我不认为软件自由是好事”。

但更让我惊讶的是,有些人竟然认为软件收费与开源的“精神”相矛盾,而这种观点恰恰暴露出他们对开源真正含义的惊人无知。

拉尔斯·乌尔里希是对的

1999年,Napster的出现标志着点对点文件共享网络的普及。而Metallica乐队为此提起诉讼,并因此遭到了彻底的谴责。

音乐行业已经变成了一只贪婪的肥猫,通过高昂的 CD 价格(新发行的 CD 价格超过 20 英镑!)从每个人身上榨取利益,乐队成员富得流油,唱片公司高管更是如此。

我们都哭诉道:“Metallica懂什么!他们已经很有钱了!我们只想听新歌!”

我十几岁的时候都在用Napster、AudioGalaxy、Limewire、Kazaa、Direct Connect等等等等盗版网站下载音乐。你知道吗?如果有人当时认真听听Lars Ulrich(Metallica乐队的鼓手)说的话,就会发现他说的完全正确,而且在过去的二十年里,他的观点也得到了充分的证明。

我最近读到一篇对他的采访,他在采访中回顾了那件事——而且他反思得很深刻。他当时实际说的是:“我们正在贬低音乐人的作品。这不会影响到我,但会影响到我之后的所有乐队。我已经是千万富翁了。文件共享贬低了作品的价值,而且一旦发生,就永远无法挽回。”

他说的没错。

大约从1999年起,音乐产业就发生了翻天覆地的变化。那些曾经能过上舒适生活的小型巡演乐队,到了2020年却只能勉强糊口。小众和地下音乐类型虽然比以往任何时候都更加活跃,却根本无法自给自足。这种模式无法规模化。我们把所有东西都免费赠送,反而贬低了作品的价值。

当你把所有资源都捐赠出去时,唯一获利的只有那些掌握权力的大型组织。

如今,Spotify 占据了音乐唱片公司曾经占据的市场位置,成为利润丰厚的庞大机构,而艺术家们却在苦苦挣扎。

你在这里

我多么希望自己拥有乌尔里希那样的美酒佳酿和艺术收藏,但请原谅我此刻的心情,我感觉自己就像是绝望地站在这里,希望人们能听到我这番话。
因为我们此刻就在这里。

我热爱开源软件,就像 Lars 热爱磁带交易和地下音乐圈一样,但我们允许开源软件被武器化的方式本身就是一种暴力。它没有将人、维护者、创造者和作者置于中心位置,而是将组织剥削作为核心目标。

我们都犯了一个悲剧性的错误,那就是认为对我们当地计算机俱乐部来说很棒的所有权模式可以扩展到全球规模的产业。

我们是怎么走到这一步的?

最可怕的是,
我们走到今天这一步,是因为我们想这么做。
是我做的,也是你做的。我们都犯过错。

过去十年,我一直倡导中大型组织采用开源软件。

我本人曾坐下来撰写政策,建议虽然我们需要尽可能地采用开源软件并为其做出贡献(但大多数组织从未这样做过),以获得战略和营销上的好处,但我们实际上应该只考虑宽松许可的软件,因为任何其他方式充其量都会产生成本,最坏的情况是迫使我们免费提供自己的软件。

天哪,我真是大错特错了。

我本应该把那些时间花在倡导我们使用双重许可软件上,倡导我们购买支持合同上,倡导我们参与版权共享软件项目并回馈社区上。

我错了,对不起,我让大家失望了。

我不是唯一一个

每当有小型组织或创作者试图以某种方式授权他们的软件,以保护自己免受大企业的剥削时——比如 Elastic,或者最近的 Apollo,或者多年来的许多其他企业——社区就会对他们进行猛烈抨击,却没有意识到这是社区在自相残杀。

我们需要更好地互相支持,要明白,当创作者抱怨精疲力竭、说靠点赞付不起房租、或者需要在NPM包里发布招聘信息时,他们是认真的。因为这种情况,你也完全有可能遇到。

我们需要新的许可证和新的文化,将人们免受剥削的自由置于软件自由之上。

我希望你们获得报酬。我希望你们拥有美好的事物。我希望你们能够以可持续的方式工作。我希望生活在一个聪明人能够创造美好事物并以此谋生的世界里。

如果我们必须在一个晚期资本主义地狱中生存,我希望一切都由我们自己掌控。

企业与开源软件进行合乎道德的互动是否可能?

当然可以。

在我谈论我们需要采取哪些措施来重新解决这种不平衡之前,先给大家带来一些积极的信息。

有些公司在开源领域做了很多有益的工作,并且投入了大量资金。他们这样做都有各自的理由,甚至一些最大的公司也拥有相当符合道德规范的开源产品,但他们始终是为了市场地位、争夺用户心智,最终目的是为了销售产品和服务,这也没什么错。

如果我们与这些组织互动,免费使用他们提供的软件无可厚非,但请记住,你的支持本身就是一种产品。
即使是像Linux这样你可能认为是“独立”的项目,它们的资金来源或人员配备也都来自大型组织。

你开发的开源软件和他们开发的开源软件并不相同,认为它们是同一回事是愚蠢的。

我们如何改变现状?

我们需要更好的方法和更好的系统,以及所有主要供应商的合作,才能真正解决这个问题。

这并非易事。但我们每个人都可以在其中发挥作用。

支持创作者

这是我们解决此问题的所有方法中最简单、最自由的方法。

下次当你们因为 Docker Desktop 将延迟更新变成付费功能而准备发一条糟糕的推文时,不妨花一秒钟思考一下他们​​为什么要这样做。

下次当你看到你喜欢的库采用“开放核心”许可模式,其中增值功能或集成需要付费时,请考虑为这些功能付费。

每当维护者请求你对你所使用的东西提供支持或贡献时,请做出贡献。

不要摆架子,不要贬低同行,不要因为他们努力谋生就对他们进行人身攻击。如果我们都能这样,软件行业将会友善得多。

恢复包裹管理

我认为,对于下一代软件包管理器和组件共享平台来说,支持计费功能是基本要求。如果某个平台将创作者的可持续发展放在首位,我会毫不犹豫地迁移过去。

我有一个理论,如果现有的商业模式支持或允许付费软件,那么会有更多组织愿意付费购买。大多数项目即便尝试,也无法开具发票、缴纳税款或接受信用卡付款。

为了创作者的可持续发展,我们的下一代平台需要支持这一点。我们已经看到,GitHub 的赞助以及像 SDKBin 这样的新兴项目——“付费版 NuGet”分发平台——正朝着这些目标迈出第一步。

请愿平台供应商

比这更进一步?我希望我使用的库能直接计入我的 Azure 账单、AWS 账单和 GCP 账单中。

虽然我一直反对大型组织利用开源软件,但大型组织本身并非邪恶、不道德或卑鄙,我只是认为它们总是以自身利益为先。第一个让我销售软件组件的平台也应该从中分一杯羹。这很公平,也是一种帮助。

我认为这将开启一个全新的软件销售领域,而目前市场上的软件销售几乎不存在这种领域。试想一下,如果不用经历繁琐的采购流程,只需添加 NuGet、NPM 或 Cargo 包,云平台供应商就会通过私有包流自动进行计费,一切该有多方便。

这是商家能为创作者提供的最好支持——他们可以创建一个真正的市场,一个对其中所有参与者都可持续发展的市场。

继续为自由软件而战

用户!教师!朋友!

我觉得我需要再次强调我一开始的观点。我非常热爱开源软件,我希望它能继续存在下去。但我们必须明白,正是那些让它走向成功的东西,如今却威胁着它的可持续发展。

开源并不一定是剥削个人的代名词。

这符合伦理。
它能够经受住考验。

我不想夺走你的源代码,我只是迫切希望有足够多的人对它进行批判性思考,这样,当你有了你认为可以做成有意义的事情的伟大新想法时,你就可以亲自执行并从中受益。

当然,你可以把成果分享给你的同行,但对于那些想以牺牲你的利益为代价从你的劳动成果中获利的大机构,不要心存怜悯。

支持场景

在音乐领域,有一种理念是支持我们的圈子、我们的传统,以及“艺术”诞生的共同之地。

这就是我们的文化。

朋友的软件要付费购买,如果他们免费赠送,也要欣然接受。

脚注 - 观看现场演示!

本文的扩展版本可作为会议演讲稿提供——如果您希望我到您的用户组或会议上谈论伦理和开源,请与我们联系。

文章来源:https://dev.to/david_whitney/open-source-exploitation-5dpj