炸锅了!删库跑路把“开源”推上了风口浪尖~
Posted Z1Y492Vn3ZYD9et3B06
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了炸锅了!删库跑路把“开源”推上了风口浪尖~相关的知识,希望对你有一定的参考价值。
《中智观察》第1592篇推送
作者:雨涵
编辑:苏苏
头图来源:哔哩哔哩Gitee酱
2022年新年伊始,开源圈被推上了风口浪尖。
前有知名开源工具Faker.js 的作者 Marak 故意破坏了 GitHub 上的这个开源库,将项目所有代码清空;后有Apache PLC4X 的创建者 Christofer Dutz发布声明称,将停止对 PLC4X 的维护……
短短数周,因开源项目作者删库跑路,数千个应用程序无限输出乱码,在引发了广泛关注的同时,对于开源的讨论也此起彼伏。
所谓“开源”是指源代码、文档等设计内容开放的开发模式,是群智协同、开放共享、持续创新的理念和生产方式,也是当下软件开发者乐于并广泛运用的开发方式。
开源带来的价值和影响不言而喻,但当开源有悖初衷、无法真正做到开放包容时,赋予开源的本质意义也就变了味。
如今,开源已经上升至国家战略层面。根据工信部发布的《“十四五”软件和信息技术服务业务发展规划》中提出“开源重构软件发展新生态”的重要判断,开源逐步成为重塑软件产业生态的关键力量。网信办十四五信息化规划也提出“鼓励中国开源输出、参与国际开源组织、参与全球标准合作”,开源内生的全球化属性越来越受到认可。
与此同时,我国的开源生态也在快速发展。根据信通院调研数据显示,2021年我国已经使用开源技术的企业占比为88.2%,其中超过90%的中国金融机构已经引入开源软件。
一方面是对开源的积极向好,另一方面怎样避免包括删库跑路等在内的开源风险、如何对开源代码负责等也成为亟待解决的问题。
‖开源项目遭删库跑路
“Nobody is perfect.”这是坐拥千万用户的“码神”Marak Squires 在1月20日写到的一句话。
今年1月初,一个知名开源库Faker.js的作者Marak Squires,选择主动恶意破坏自己的这个项目。不仅“删库跑路”,还注入了导致程序死循环的恶意代码,让所有使用“colors”的程序在控制台无休止地打印各种非ASCII字符序列,从而使数以千计的的项目直接崩溃,给全球大量使用该项目的个人与企业都带来了不小的影响。
(Marak注入恶意代码,引起众多应用程序崩溃)
据了解,Faker.js 是十分流行的 Node.js 工具库,提供了各种类型的模拟数据,用于开发调试。最早的 Faker 项目于 2004 年由 Jason Kohles 首次使用 Perl 实现。后来 Marak 实现了 Node.js 版本,并投入了大量精力和时间来维护 Faker.js。
作为GitHub上的知名开源库,Faker.js 可以生成可用于应用程序开发/测试方面的 Fake 数据,包括用户名、密码、邮件、日期、地址、文章等内容。对于开发者而言,在实际的软件开发过程中使用假数据进行测试是一个必要环节,其同时也能够帮助开发者验证前端设计的合理性。其受欢迎程度甚至被《财富》世界 500 强企业在内的数百家公司使用。
作为项目的托管平台,GitHub对Marak的账号进行了封禁。Faker.js 也成为被社区控制的项目。自接管 Faker.js 以来,新团队已对 issue 进行了分类和审查 PR、提供在线文档、迁移至 TypeScript、创建公开的推特帐号、在 npm 上发布软件包、清理 Prettier、CI、Netlify Deploy Previews 和 GitHub Actions 等工具,并承诺将继续开发和维护 Faker.js 项目。
目前随着事件的不断发酵,Marak似乎也感到“后悔”,声称“每个人都会时不时地犯编程错误,没有人是完美的”以希望重回GitHub,但从目前看,Marak的这一做法并未获得太多的支持。
除了Marak删库跑路外,近日,Apache PLC4X 的创建者 Christofer Dutz 在 GitHub 上发布声明称,由于缺乏任何形式的回报,他将停止对 PLC4X 的维护,也将停止向 PLC4X 的企业用户提供免费社区支持。
针对近期频发的删库跑路事件,作为企业级开源分布式数据库厂商的PingCAP副总裁刘松在接受中国软件网采访时表示,从短期来看,在某种程度会对开源社区的参与者产生一定的心理影响,让开发者对开源协议的宽松跟自由产生一些疑惑。从长期来看,删库跑路不会对开源协作的大浪潮产生较大影响。刘松进一步指出,“这也让开发者越来越意识到,无限自由的开源协作并不是终点。从某种程度上说,由一些商业实体或者基金会孵化的开源项目,具有更高的稳定性和持续性,也更值得开源社区的贡献者长久持续的贡献。”
冰鉴科技研究院高级研究员王诗强也持有同样的观点。“开源项目删库跑路,不会对现在开源盛行的局面带来影响。但它会让代码开源者认真思考,为什么要开源、选择什么开源的协议、怎样从开源的免费模式进度到商业化的模式。同时,这也让很多公司在开源项目的使用选择上非常慎重,也会对已使用的开源代码在数据备份上更加重视。”
中国开源软件推进联盟秘书长刘澎认为,“开源作者删库跑路的行为有违道德。”开源软件遵循开源许可证,实际是作者单方面放弃一些权力的约定。但删库属于商业违规,不能剥夺遵守开源软件许可证的用户的权利。同时,开放代码后,有很多社区人士在方方面面不断贡献,删库跑路的行为也损害其他贡献者的权利。”
‖开源还有哪些风险
根据不完全统计,全球97%的软件开发者和99%的企业使用开源软件,基础软件、工业软件、新兴平台软件大多基于开源,开源软件已经成为软件产业创新源泉和“标准件库”。
值得关注的是,企业在享受成本降低、迭代速度加速等便利的同时,开源许可证的兼容性问题、开源项目的合规问题、开源安全漏洞问题和开源知识产权的侵权等问题也日趋凸显。
以开源协议为例,通常情况下,为了维护开源社区、代码不被滥用,一般在开源时会加一份开源协议。开源的协议有上百个,目前流行的有MIT、GPL、BSD、Apache。其主要区别在于,别人修改代码后是否可以闭源( 私藏起来 ),是否要遵循同样的开源协议。
具体来看,不同于GPL中,程序使用协议下的项目需要公开,MIT则相对宽松,开发者只需要在软件和软件的所有副本中包含著作权声明和许可声明即可。
Marak 删库跑路的Faker.js采用的正是MIT协议。因此,从法律角度看,Marak质疑其他公司拿着他的项目去赚钱而自己分文未得的行为并不受到制约。
再以证券行业为例,根据信通院发布的《证券行业开源治理白皮书》显示,在外购商业业务系统场景下,外购软件的开源组件存在数据不清、风险不明、影响不定、修复不易、来源不一等痛点,可能会将开源安全合规风险引入到证券机构。
王诗强表示,从目前看,部分开源的代码存在软件质量低下、代码可读性、可维护性差、代码安全性差等问题;另外受限于免费的模式,很多关注度少的项目,维护更新的周期慢、活跃度不高,采用这类开源项目的公司产品,也无法得到有效的支持。
在防范开源风险方面,王诗强提出了三大建议,“第一,采用开源项目的公司需要正确评估使用开源项目使用的开源协议如MIT、Apache GPL等,避免因开源协议的问题导致的商业代码被迫开源的风险;第二,选择开源项目应该看项目的活跃程度、维护更新的频率,加强选用的源码的备份,如做本地镜像;第三,对同一种开源的软件,需要有一种以上的备用软件,便于出现删库跑路的情况下,可以随时进行适配。”
“开源并不存在太大的风险,开源的协作模式已经运行了几十年,近几年也逐步进入企业级用户的视野,而且越来越成为支持数字经济的主要支撑。一个先天不足的体系很难经过时间的考验。”刘松坦言,开源的伟大之处之一在于其不断的纠错和适应能力,开源的自由开放会使类似删库跑路的事情造成的影响降到最低。
他进一步表示,“在开源社区里面,每个人、机构都可以 fork 自己的副本,在发生重大分歧的时候,开源社区也依然能作出自己的选择并且坚持。在风险防范方面,开源基金会,从事开源的大中型企业也都在持续强化自己的开源治理,以系统性方式降低使用开源的风险。”
(摘自《2021年影响中国开源未来的十大热点》)
‖谁对开源代码负责
如今,应用开源是大势所趋,用开源的方式做开源风险治理,让开源用多样性拥抱不确定性,形成开源新范式。
值得注意的是,随着开源项目作者删库跑路事件的升级,对开源是否脆弱、谁应该对开源代码负责等关注点引发了广泛地讨论。
对此,刘松表示,“开源脆弱性是一个普遍存在的误解”他进一步解释到,“在《大教堂与集市》这部有关开源的经典著作中,作者ESR已经通过大量的论证证明了开源集市模式的先进性,在那本书问世之后的20多年里,开源技术体系支持了整个互联网包括移动互联网的蓬勃发展,集市模式的生命力已经充分得到了验证。”
“一个开源项目的脆弱性不取决于它的代码是否开源,而是取决于它是不是存在一个足够活跃和多样化的开源社区。”刘松坦言,“开源的开放性意味着任何有参与意愿的开发者都可以自由地参与到项目当中来。与以前以企业为主体的封闭式开发相比,开源社区的参与者的激励动机存在着多样化的特征,除了物质激励以外,在开源社区中的贡献能获得声誉和荣誉是大家更加追求的一种激励形式,这也是开源社区繁荣的根本。如果开源项目需要满足产品级或者企业级的需求,更理想的状态是这个项目的开源社区中有一个商业组织持续不断的为此努力和贡献,这样才能更好的解决‘开源脆弱性’的问题,也能在时间上更快速的响应用户的需求。”
王诗强认为,软件开源是一把双刃剑,大量使用开源代码会加速研发的整个过程,但开源软件必然会因其免费就会存在影响业务的风险。开源无过,开源的脆弱性,需要使用开源软件的公司正视相关问题,做好相关的风险防范措施。最终解决办法,是找到开源软件从免费到商业化付费模式演进的道路。
在谈到“开源代码一旦被采用,谁应该最终负责”的问题时,刘松认为“共同体”能更好诠释开源社区的意义和价值。
“开源社区中的成果,是为大家所共有的,它并不只属于任何个人。”刘松说,“可能大家会希望这个答案是项目的 Maintainer,但是我认为这个是不够公平的,项目的 Maintainer 也只是在开源社区里面作为和大家一样的贡献者存在。但是如果有商业公司基于开源项目,为此提供了一个企业版本,或者 Managed Cloud Service,那么我们才可以认为商业实体应该为此负责。”
公开数据显示,2021年GitHub上中国开发者增长了103万,达到755万,成为仅次于美国第二大开发者群体,而Gitee 2021年注册开发者增长超180万,整体超过800万,中国开源开发者数量无论是在国际还是国内都呈现出了加速增长的趋势,成为中国开源产业的基础力量。
由开源中国和PingCAP作为技术支持发布的《2021年影响中国开源未来的十大热点》中提到,随着开源数据库部署首次超过非开源数据库,Confluent、HashCorp、GitLab三家开源软件企业IPO均超过百亿美元,全球开源企业融资进入加速上升通道,未来的开源产业趋势也将呈现新的特点和变化。
海比研究院院长、中国软件行业协会应用软件产品云服务分会秘书长曹开彬表示,未来的开源将呈现三大发展趋势。
首先,对开源生态的治理提出了更高要求。包括对开源生态的供给侧、需求侧,应该遵循什么样的规范,采用什么样的治理模式,需要业界形成更多的共识。其次,开源作为软件研发模式的改变与创新,它是未来的发展趋势,比闭源模式更为先进。虽有各种问题的出现,但开源的大趋势不会因此而改变。此外,我国正在大力发展开源生态,建立自己的开源社区,删库跑路事件会给我们带来更多的警示。
“我国的开源生态要有更多的自主可控,对开源项目要有更多的风险防范措施。” 曹开彬指出,“更进一步,我们建设开源社区、开源生态时,可以采用更全面的治理机制,以实现具有全球竞争力的、更健康的开源生态。”
代码投毒删库跑路,开源生态链安全该如何保证?
【CSDN 编者按】这两天node-ipc作者往开源代码投毒一事引起热议,在此之前出现了Log4j2事件,与Marak Squires删库事件,一时间大家都议论纷纷。热议之后,我们不妨品读一下开源社理事长庄表伟对开源软件供应链安全的看法,或许会有不一样的收获与思考。
作者 | 庄表伟 责编 | 张红月
之前写过一篇文章《我所理解的开源软件供应链安全》,当时的情况,还没有出现一些值得探讨的,堪称紧迫的热点事件,所以我也仅仅是泛泛而谈,到最后留了一句话:「我的提议是:不再提“开源供应链安全”,而是提“开源生态建设”。」
在最近一段时间,接连出现了Log4j2事件,与Marak Squires删库事件,一时间大家都议论纷纷,我也觉得自己有责任,来更加深入的探讨一下,这个方面的问题。
时代已经发生了变化
在B站上,有一位著名的Up主:半佛仙人,发了一篇文章,后来还专门录了一期视频。因为是“外行”的缘故,所以会受到很多的批评与指责。其实我觉得他说得大致上都很有道理,作为一位热心人士,积极找程序员朋友交流,尽量深入理解开源,然后再发表自己看法,已经非常不错了。
至少半佛的一个观点,我特别赞同:时代已经发生了变化。我们只有意识并理解这些变化,然后才谈得上“如何应对”。
比尔盖茨的一封信
1976年2月3日,著名的微软公司的创始人,发布了《致电脑爱好者的一封公开信》。这封信在开源社区,估计无人不知、无人不晓。关键在于下面这段话:“谁会从事专业的软件开发却分文无获。哪有业余爱好者会花费3个人年的精力去编写软件,去修正软件,编写使用手册却免费发放给别人使用?”
在很长一段时间里,开源社区的人都视微软是开源的敌人,而且常常喜欢拿段话出来“打脸”。现在就是有那么多人,那么多技术水平高超,却不求回报的人,愿意花费极其惊人的时间,去写软件,修bug,写文档。甚至还有社区运营、技术布道等等诸多工作。
“你们这些资本家们无法理解的事情,正在这个世界上发生着,而且越来越多”。
早期的黑客是一群什么人?
有一些事情,确实很难理解。尤其是像半佛这样的人,无法理解那些早期黑客的动机。因为按照“理性经济人”的假设,那些黑客完全是在做一些一味付出,不求回报的事情。
事实上,我们可以从两个角度,来理解黑客的逻辑。
关于回报:如果我们扩展经济人假设,将回报,不仅仅局限于经济上的,金钱的,直接的回报。而是按照功利主义的定义:“效用最大化”。所谓效用,包括幸福、快乐、满足等等情感体验。通过获得经济收入,当然是一种方式。但是:社会地位的提升,甚至仅仅是在社区范围内的备受尊崇,也是一种方式。更有甚至,仅仅是创造一个从未存在过的事物,这种创造的喜悦,就足以回报那些黑客的全部投入。
关于未来:黑客、程序员,也许是最喜欢科幻小说的人群了吧。不仅仅是喜欢,而且他们甚至希望能够促成某种未来的早日实现。如果自己写的代码能够帮助这样的未来早日实现,如果与一群黑客一起努力,能够推动这样的世界早日降临,几乎每一个黑客都会愿意倾尽全力。
所以,简单的总结就是:早期黑客们,在努力推动未来早日实现的过程中,已经获得了他们希望得到的回报。
供求双方,从合一到分离
我们可以引用一段自由软件的定义:“自由软件”尊重用户的自由,并且尊重整个社区。粗略来讲,一个软件如果是自由软件,这意味着用户可以自由地运行,拷贝,分发,学习,修改并改进该软件。
后来在社区里有一些不同的声音,在质疑这样的定义。为什么只谈用户的自由,却不谈“作者”的自由?为了用户可以自由的运行,拷贝,分发,学习,修改并改进,就可以不管作者的利益了吗?作者为啥不能自由的定义自己的授权协议?想授予就授予?想收回就收回?
其实,根源还是在于时代不同了。在自由软件,甚至开源软件刚刚诞生的时候。软件的供求双方,是一个紧密的整体。社区里的人,既是一些软件的开发者,也是另一个软件的使用者。所谓“尊重整个社区”就是这个意思。尊重整个社区的自由,就是为了整个社区的利益。
在早期:开源与互联网几乎就是一对双生子,他们一起成长,互相扶持。风借火势,火借风威。但是,渐渐的,开源社区与软件产业、互联网产业,以及由互联网产业成长起来的云计算行业,不再是一体的了。在这个过程中,供应方发生了变化,需求方也发生了变化。要想再愉快的一起玩耍,就需要从新思考各自的定位了。
所以,下面我将从分离之后的供求双方,来分析这个问题。
从“礼物文化”到“注意力兑换”
在Eric Raymond的《大教堂与集市》中,有一个最经典的比喻,就是礼物文化。我们引用其中的两段:
在礼物文化下,其成员通过送出礼物而竞争社会地位。
礼物文化并不是对物质稀缺的适应,而是对物质充裕的适应。
充裕性会使命令关系难以维持,会使交换关系变成无意义的游戏。
在礼物文化中,社会地位并不取决于你控制了什么,而是你给予了什么。
礼物的价值,是由礼物本身决定的?
我们来分析一下礼物这个比喻的内涵。一个人送出了一个礼物。人们根据这个礼物的贵重程度,而“赋予”这个送礼者,相应的社会地位。
这意味着三个并未明确讲述的要素:
1、礼物的价值是客观存在的吗?是可以被客观、准确、以公认的方式判定的吗?
2、人们,注意这里的人们,到底是一百个人,还是一万个人?这些人的数量应该会有多少,他们如何达成共识?
3、所谓社会地位,到底是什么?尊重,礼让,还是某种“注目礼”?
开源软件的价值,现在是由“价值+关注度”决定的
假设我们还是沿用“礼物”这个思路,来看现在的开源软件,我们需要如何来衡量一个人做出了多大的贡献?或者说“送出了多贵重的礼物?”
先区分两种情况,一个人独立开发出一款开源软件,作为一个礼物。一个人参与一个开源项目,在其中贡献了一部分“代码、文档、讨论、布道等等”
首先应该是软件价值本身,一个加密软件,应该比一个加法软件,更有价值。
其次是这个软件究竟对多少人有价值?一个只对一百个人有用的软件,肯定不如对一百万人有用的软件,那么有价值。
然后就是争夺关注度的情况了,一款对一百万人有用的软件,现在只有一百个人知道,这个软件的价值说到底也不大。
现在来计算礼物的价值:一个人,做了一个开源软件,有多少人知道这个软件,而且知道是他做的,而且认可他的工作。这个数量,大概可以用来推算他所贡献的礼物的价值。
如何将注意力兑换成其他事物?
自从互联网流行以后,尤其是互联网上免费的商业模式流行起来以后,大家都会谈一个词,叫做“流量变现”。其实在开源软件领域,简单的“礼物文化”,也需要升级为“注意力兑换”。
以前的逻辑是:一个人贡献礼物 –> 获得社会地位
现在的逻辑是:一个人贡献礼物 –> 吸引了多少注意力 –> 这些注意力能够兑换多少社会地位
当然,我们也可以将兑换这个词,用来描述更多的现象。
兑换内心满足(有人用,我就很开心)
兑换社会地位(更高的社会评价)
兑换就业机会(跳槽到大厂)
兑换风险投资(有投资人看中这个开源软件)
兑换维护合同(有企业级用户使用,愿意找你维护)
但是,所有的这些,还需要一个前提:注意力。如果没有足够高的关注度,你啥也兑换不了。
事实上,早期开源那种“爱用就用,别来烦我”的态度,当然没有问题。但是:那样不够“友好”,也就会影响关注度的快速提升。无论是在社区快速响应,和蔼可亲的回答问题,快速修复bug,其实都是一种吸引更多注意力,留住更多关注度的办法。
虽然这么说有些残忍,但是我还是想说:“Marak Squires的做法错了,一款开源软件有几千万次下载,并不能够自动兑换成社会地位,个人收入或者其他东西”。
供应链、责任链与利益链
下面再来说说需求方的问题。现在我们常常说:软件吞噬世界,开源吞噬软件。但是,我们为啥还会接着说:云计算吞噬开源呢?
软件吞噬世界:全世界都运行在软件之上。
开源吞噬软件:几乎所有的软件,都有开源的成分,甚至完全就是开源。
云计算吞噬开源:云计算靠开源赚到了钱,但是并没有分给开源。
当然,这里面的每一句话,可能都有些问题。
由开源软件的依赖关系,自然形成的供应链
在上一篇文章中,我写了这么一段话:“我们在做软件开发时,通常会定义的一个依赖文件。一款软件,会依赖一组其他软件(包),而这些软件(包)又会进一步的依赖某些其他的软件(包)。但是,随着包依赖描述的不断改进,我们会区分:开发期(Dev)依赖与执行期(Running)依赖。”
在那段话里,我只是希望说明“依赖不等于风险”,由软件依赖关系形成的整个网络,可以称之为:“开源供应链”或者“开源生态”,却不能简单的等同于供应链风险。
但是,我并没有进一步分析:开源软件的供应链与一般的供应链,有何区别?以下一段文字,要特别感谢李大维老师,因为与他的交谈,让我认识到这一点。
传统的供应链,是一级与一级之间,都签了合同的。
但是在软件,尤其是开源软件的供应链,每一级之间,都有免责条款。
免责条款
事实上,有两种免责条款。一种是大多数开源软件的授权协议里写的。比如在GPL 2.0里。
由于本程序是免费提供的,所以在法律许可范围内,本程序是没有担保的。除非有书面说明。本程序是“AS IS”的,没有任何明示或暗示的保证,比如默认的适销性、适用性这些保证都没有,关于本程序的功能和性能导致的风险都由用户自己承担,(你单位用我作品出了事,你可别想拉我当垫背的,大公司都不背这锅,你让我一个不挣你钱的背?)如果我这作品真有缺陷,你自己想办法搞定,你可以花钱买服务,这种公司又不是没有。(摘录自卫Sir的《人话版GPL 2.0协议》)
再比如在MIT里:
本软件是“按原样“提供的,不附带任何明示或暗示的保证,包括没有任何有关适销性、适用性、非侵权性保证以及其他保证。在任何情况下,作者或版权持有人,对任何权益追索、损害赔偿以及其他追责,都不负任何责任。无论这些追责产生自合同、侵权,还是直接或间接来自于本软件以及与本软件使用或经营有关的情形。(摘录自卫Sir的《开源程序员绝望毁库跑路的背后》)
另一种是互联网服务的免责条款、云计算服务的免责条款、商用软件的免责条款。
这里就不再摘录了,因为那种法律文本,往往都很长很长,在你使用之前,你几乎是不会去读完的。但是:你肯定已经点过“确定”或者“接受”按钮了。
利益断裂
一方面是供应链的延续性,另一方面是责任的断裂(免除)。于是,我们就会发现一个实际存在的现象:因为责任链条断裂,所以利益链条也断裂了。
因为事实上软件出现问题之后,厂商可能损失的金额并不太高,所以在平时厂商也没有任何动力,投入足够的人力与预算,去确保他所用到的开源软件的供应链安全。
前两天听到的一个课程,在介绍影响全球互联网产业的美国《通信规范法》230条款。互联网公司被免除了涉及用户生成内容的法律责任。一方面这些内容的存在不会损害互联网厂商的利益,另一方面,互联网厂商又可以出于“出于良善的信念”自行删除或管理这些内容。
这当然大大降低了互联网厂商的法律风险与投入成本。再加上他们所用到的开源软件,又是无需支付费用的。这才带来了互联网产业的高速发展与如今的繁荣。
冰山现象
与此同时,我们还在开源社区里,积极的宣传礼物文化。“充裕性会使命令关系难以维持,会使交换关系变成无意义的游戏。”
结果就变成了:开源世界的冰火两重天
一座冰山是“开源项目”,海面之上看得到的开源项目,只是开源世界里的极小部分。海面之下的开源项目,不仅重要,而且是海面上的开源项目,存在的基础。但是,海面之下的开源项目,几乎没有商业价值,也没有投资前景
另一种冰山是“开源贡献者”,海面之上的开源开发者,只是开源社区里的一小部分人。他们的确做出了极大的贡献,也因此享受到了“礼物文化”。海面之下的开发者,他们的贡献甚至被忽略了,社区的尊崇地位,几乎与他们无关
生态责任
当我们来谈开源软件的供应链风险,或者开源生态的问题时,首先需要达成一个共识:现在的开源生态,的确存在问题,而且是一个亟待解决的,严重的问题。基于这一共识,我们才能够来讨论,在这个生态之中,有哪些角色,各自有什么责任?
开源开发者的责任
大家应该都能承认,开源是一种软件开发的协作方式。对于某些人来说,开源甚至是一种娱乐方式。当然,如果有公司愿意雇佣你写开源代码,开源也是一种很不错的工作方式。但是,如果你希望将开源作为自己的生活方式,要么你家里有矿,要么你非常擅长兑换注意力。否则,难免会伤心失望。
虽然我们都认为,开源是一种纯个人的行为,但是单纯的发泄不满。最多引发同情,却未必会得到支持,更是难以获取自己真正想要的结果。
作为一个理性行动者,知道自己想要什么,也知道自己将要付出什么,才是一种负责人的做法。
开源使用者的责任
“只要足够多的眼球关注,就可让所有软件缺陷浮现。”,或者说“只要有足够的测试员及共同开发者,所有软件缺陷都会在很短时间内被发现,而且能够很容易被解决。”这句话被称之为Linus定律。现在我想要告诉这些开源软件的使用者,现在的开源软件已经越来越多了,眼球已经根本不够用了。
假设“开源软件没有质量问题,不会给你带来安全风险,完全免费,拿来就可以用。”是一种完全不负责任的冒险。
开源软件并不是“免费”的,任何使用开源软件的企业,都需要为自己的使用负责,要留出预算,要么找到合格的员工,要么找到合格的服务商,来帮你应对这些风险。
开源基金会的责任
一款开源软件,如果出现安全风险,这个开源软件的社区,应该要快速解决。如果这款开源软件被捐赠给某个开源基金会,那么这个基金会也有义务,为这个开源软件的质量负责。
为什么?因为:你的品牌与声望,为这款开源软件背书,使得更多的厂商选择了它。那么:如果它内含风险,你的品牌与声望,就放大了这些风险。
作为一个基金会,你收到的捐款,应该更多的投入到保障软件质量的工作中去!
开源布道师的责任
不要只是介绍“礼物文化”,不要反复的强调“Just for Fun”。不要仅仅宣传Linus眼球定律。在布道的时候,还需要介绍更多的真实世界的情况。
政府的责任
2022年1月13日,白宫就Log4j漏洞与公私实体召开了开源软件安全峰会。其中一名高级官员表示:“开源软件虽然加速了创新并推动了巨大的社会和经济效益,但其广泛使用且由志愿者维护的事实是重大的国家安全风险,正如我们正在经历的Log4j漏洞事件。它并非新问题,本次峰会我们将讨论如何解决这个问题,生效的解决方案是什么以及我们还能采取哪些行动来保护我们都在依赖的开源软件安全。”(引用自《白宫和科技巨头在开源软件安全峰会上说了啥?》)
在我看来,各个政府,应该都会有所行动才是。
结束语
这篇文章,已经太长了,引用一段我在《2021年中国开源年度报告》中的前言,作为结尾吧。
在开源还只是一个小众群体的业余爱好时,几乎做任何事情,都是自由的。但是,在软件吞噬世界、开源吞噬软件的今天,开源技术,已经成为整个世界的基础设施之一。能力越大,责任越大。应用越广,风险越高。我们应该如何思考与保障开源供应链安全呢?应该如何建设更加健康的开源生态呢?在这样一种生态中,各方的责任又该如何界定呢?
愿与诸位共同探索。
END
《新程序员001-004》全面上市,对话世界级大师,报道中国IT行业创新创造
— 推荐阅读 —
☞高通宣布停止向俄罗斯公司销售产品;微信、抖音上线一键关闭 “个性化推荐 ”;Android 13官宣:5月11日见|极客头条
☞“全宇宙首个”用中文编写的操作系统!作者还自创了甲、乙、丙编程语言?
☞大厂螺丝钉还是开源极客?开源新手该怎么选?
—点这里↓↓↓记得关注标星哦~—
一键三连 「分享」「点赞」「在看」
技术新闻 日日相见
以上是关于炸锅了!删库跑路把“开源”推上了风口浪尖~的主要内容,如果未能解决你的问题,请参考以下文章
安卓刷机时代不再!魔趣开源项目创始人宣布:“决定删库跑路了”
安卓刷机时代不再!魔趣开源项目创始人宣布:“决定删库跑路了”