3

软件被白嫖,没有工资,还要被骂!真是没天理了

 2 years ago
source link: https://zhuanlan.zhihu.com/p/449515180
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

软件被白嫖,没有工资,还要被骂!真是没天理了

公众号「非著名程序员」主理人,程序员/复业者/生涯规划师

文章首发于微信公众号「非著名程序员」,欢迎大家关注。

大家好,我是校长。

我昨天不是写了一篇文章《阿里云出事了,被工信部处罚,它真不冤,但也别慌》吗?

文章中的观点其实没啥,就是说这就是一个普通的处罚实践,非技术圈的人,没必要骂阿里巴巴没有政治意识,没有国家安全意识,更没必要说阿里云跟某想一样是卖国贼,而我们技术圈的人也没必要笑话工信部不懂技术,给你上报你也修改不了漏洞。

阿里云既然加入了工信部建立的 “网络安全威胁和漏洞信息共享平台” 就有必要遵守规定。规定条例上写的清清楚楚,如下:

v2-91f802b4c6e902ff1dc5e6a1b5b33bb6_720w.jpg

但是,昨天有读者疑问,质疑说这不该阿里云的事。因为第 7 条规定上写的是:“网络产品提供者”,log4j2 产品的 “提供者” 是阿里云吗?有义务 2 日内报告的是 Apache 基金会吧。

有质疑是好事,我简单说一下:阿里云是有义务报告的,这个没什么问题,阿帕奇基金会提供的这个开源项目属于上游组件,所以,阿里云应该第一时间向 Apache 通报这个漏洞,但是同时阿里云在自己的产品中使用了这个开源项目,像阿里云在国内的影响力,又有很多厂商使用了阿里云提供的服务和网络产品,这也就意味着阿里云的网络产品也是有问题的,所以,阿里云应该上报并及时修复。

好了,这个问题过去了,咱就不讨论了,本质上阿里云问题也不大,更不是程序员的问题,说到底就是阿里云作为企业没有认真研究这项规定,并没有做好培训工作导致的一个小问题,所以,没必要上升到更高层次去揣测。

还记得当 log4j2 当天发生问题后,我第一时间写的那篇文章吗?在文章《让 Java 界无人入眠的「核弹级」、「史诗级」漏洞,我却看到了不一样》当中写道,安全软件供应链是非常重要的,一个供应链的安全不是仅仅靠软件维护者去解决的,这是一个系统问题,是所有的参与者,开发者,使用者需要共同面对的问题。

何为软件供应链?软件供应链简单来讲就是你开发的产品其实只是供应链当中的一个环节,因为你的产品可能涉及到了硬件,公共库,第三方依赖库,还有其他软件工具,这些东西一起组成了供应链。

既然是一个供应链,其实在每一个环节都容易出现问题,就容易遭到攻击,这就叫:"软件供应链攻击"

"软件供应链攻击" 指的是攻击软件所依赖的代码库或服务。

最常见的供应链攻击有两种形式,一是:起一个跟依赖库或域名很容易混淆的名字;二是:向依赖库注入恶意代码。

咱举个简单的例子吧,比如:log4j2 开源项目是供应链源头,然后阿里云使用了 log4j2 ,但是,国内又有很多厂商使用了阿里云提供的带有 log4j2 的产品,而更下游的厂商可能使用了上游厂商使用了阿里云提供的带有 log4j2 的产品的产品,就像是俄罗斯套娃一样,是一层套一层,组成了一个供应链。

一旦源头出问题,整个供应链都出问题,这时整个供应链就遭到了攻击。

其实,我认为要想让软件供应链保持安全,那就是使用者不应该想到自己的便利,也应该有危机意识和防范意识,对于使用的一些开源项目应该学会去看源码,去发现问题,去共同维护这个供应链,而不是只知道一味的使用和吐槽。

毕竟开源项目的代码是开源的,当黑客看着代码找漏洞的时候,可比自己盲猜找漏洞容易多了,要想让开源项目更安全,需要全体开发人员和使用者共同维护。

你还别说,有的开发者还真只知道使用和吐槽,这不,大家不好好去修补漏洞,还去谩骂人家 Log4j2 开源项目的维护者。

以致于 Log4j2 的维护者之一 @Volkan Yazıcı 在推特上吐槽:Log4j2 维护者只有几个人,他们无偿、自愿地工作,没有人发工资,也没人提交代码修复问题,出了问题还要被一堆人在仓库里留言痛骂。

翻译一下:Log4j 维护者一直在为缓解措施而失眠:修复、文档、CVE、对查询的回复等。然而,没有什么能阻止人们痛骂(bush)我们,因为这份没有报酬的工作。其实我们都不喜欢这个出于向后兼容性问题而需要保留的功能(指 JNDI )。

你看,你们这些谩骂者,是不是白嫖习惯了?在开源的世界里有一条开源规则:

开源软件的用户需要对软件的使用、分发负责,并承担相应风险。

开源的项目,是谁使用,谁承担风险。

开源作者没有责任帮你们承担风险,毕竟代码我都开源了,有没有问题,有没有漏洞,你们自己看源码,就能看出来,如果你没看出来,那就是你的能力不行,你看出来了,不帮助维护,这不就是你没有职业道德和开源精神吗?

这就是你自己想省事,不想花时间自己写,但是,你还不想承担便捷带来的风险,合着,什么好事都让你占了。

开源作者也挺冤的,我特么好心好意的开源,你们出事了,还赖我。这特别像职场上特别能干事的员工,干的越多,风险越大,出了事,自己还得负责,倒是不干事的人,不用承担风险,不做事,就不会犯错啊。

在校长看来,开源的共享精神,不仅让某些人在行动上懒惰了,还让某些人的思想堕落了。

这就是为什么很多开源项目最后都不维护了,因为心太累了,不仅没有报酬,还要承担责任,你说,谁愿意干这事啊?

所以,大家应该少点抱怨,多点支持,GitHub 上又不是没有捐赠按钮,多点点这个按钮,别什么都强。

Log4j2 的开发者和维护者 Ralph Goers 在 GitHub 上仅有 3 名赞助者。

我是 Apache 软件基金会的成员,也是 Apache Commons、Apache Flume、Apache Logging Services 和 Apache Maven 的 PMC 成员。我创建了 Apache Log4j 2 的初始版本,并继续将我的大部分精力放在提供支持和改进上,以使 Apache Log4j 2 成为目前从事软件架构师全职工作的 Java 开发人员的最佳日志记录框架。我在业余时间从事 Log4j 和其他开源项目,我通常从事我最感兴趣的那些问题。我一直梦想着全职从事开源工作,希望您的支持能实现这一梦想。

你看,这完全就是用爱发电啊。

开源的世界需要的是大家的维护,一起共同确保整个软件供应链的安全,而不是某个维护者和开发者的责任。

没有这种意识的开发者,就是白嫖者,没有任何权利去吐槽别人。

大家认为呢?

好东西,看这里:


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK