Ralph Goers是一名资深架构师,他有一个儿子和一个女儿,从2006年开始,他喜欢在业余时间捣鼓一个小软件:Log4j , 一个帮助应用程序记录日志的Java类库。
实际上,他是Log4j 2 的初始作者,在这个小团队中,活跃成员现在只有6个人,包括位于荷兰阿姆斯特丹的Volkan Yazici, 一位为 bol.com 工作的程序员。
尽管只是一个业余项目,但是Log4j 在Java应用中无所不在,尤其是企业软件 。
你能想到的主要软件公司都在使用它,它是互联网核心基础设施的关键部分。
Log4j被放到商业公司的各个产品中,被发布,被使用。
由于Log4j是开源软件,不用花一分钱,相当于白嫖。
2021年11月24号,Log4j小组收到了阿里巴巴云安全组报告的一个安全漏洞,Log4j 的一个功能存在重大缺陷,急需修复,否则会影响到整个互联网。
Log4j小组立刻行动起来,开始疯狂抢修。
他们放弃了可以和家人共度的周末,不眠不休,轮班工作。
Volkan Yazici从早上6点工作到第二天凌晨4点,长达22个小时。
不要忘了,这并不属于他们的本职工作,他们没有报酬,没有工资。
但是他们却遭受了网络的批评和骚扰,一举一动都被审视。
软件被白嫖,没有工资,还要被骂!真是没有天理了。
这些骂人的家伙们,可能忘记了开源软件经常存在的一个声明:
开源软件的用户需要对软件的使用、分发负责,并承担相应风险。
这些世界上顶级的程序员,无偿的开源维护者(也不准确,有三个人在GitHub上给Ralph Goers捐赠),被全世界当成了自家的带薪安全工程师!
这让我想到了另外两个知名的开源软件的遭遇:
2014年4月,OpenSSL的维护者收到了Google报的安全问题,要求修复。他感慨道:为什么一个每年只能收到2000美元捐助的人,却要负责加密17%的互联网流量?
2018年,一个每周下载数百万次的JavaScript库ua-parser-js被添加了恶意代码,用来窃取加密货币。原因就是最初的作者没有动力维护了,他把控制权交给了匿名的人。
他肯定没有动力,因为这个项目只筹集到了微不足道的41.61美元的钱,但是他却要应付各种各样,海量的需求。
这实在是太不公平了,为什么开源软件会走入到这个境地?
有开源软件走了商业化的道路,如Docker, Elastic Search ,MongoDB 等, 他们的产品有免费版和商业版之分,商业版功能更强,但是技术支持和升级要付费。
互联网公司也在大量使用开源软件,并且对一些软件会有全职带薪的工作人员去参与开发。
但是,更多的开源软件都不属于这两类,像Log4j , OpenSSL还是靠志愿者在背后默默努力,一旦暴雷,只有硬抗。
开源的维护者通过知名的软件获得了声望,对于职业发展有莫大的好处,这是毋庸置疑的,但是也不能指望他们完全凭借兴趣,在业余时间把软件的漏洞都发掘出来,然后堵上。
这该怎么办呢?
一种解决方案是,白嫖了开源软件的巨头们,可以针对性地成立开源基金,帮助修复这些开源软件的漏洞。
Google 已经这么做了,它在9月份承诺提供一亿美元帮助提高开源项目的安全性,第一轮选了8个项目:
Git :最流行的版本控制软件
Lodash :一个非常有用的JavaScript工具库
Laravel :PHP Web框架
Slf4j :对各种日志框架的封装形成的Facade
Jackson-core & Jackson-databind:对JSON进行序列化的开源框架
Httpcomponents-core & Httpcomponents-client:简化HTTP客户端与服务器进行通信的框架
希望有更多的公司做出行动,支持开源吧!