这几天,关于娱乐圈和直播圈的瓜刷屏不断,吃个一两次还好。

但连着几天被微博强行喂瓜,估计大伙都吃麻了,天天都是王力宏薇娅,谁看了不说一声腻啊。

为了给大家带来源源不断的新鲜感,小雷今天和大伙聊点正经的。

不知道你们在昨晚有没有刷到这样一条资讯:阿里云被暂停网络安全威胁信息共享平台合作单位。

事情是这样的,阿里云发现了一个核弹级别的Log4Shell漏洞,按正常处理流程来说,应该及时向外界报告才对。

毕竟漏洞危害性极强,多拖一秒都有可能对各大互联网公司造成巨大损失。



而阿里云确实向外界报告了,但整体的报告流程引起了广大网友的不满。

因为它先是报告给美国apache软件基金会,再过了十几天后,工信部那边才收到具体消息...



这就意味着,Log4Shell漏洞在这十几天里处于为所欲为的状态,犹如猛兽出笼,后害无穷。

无论是业界技术人员,还是机圈爱好者,都在同一时间吐槽阿里云:哥们儿,你这流程走的不对啊。

如果是普通的小漏洞,也许不至于泛起如此波澜,但Log4Shell漏洞实在太顶了,它不仅攻击性强,连适用性都是一等一的广。

目前已经被apache软件基金会评为10级漏洞(从1-10分,等级越高危害越大)。



就这么说吧,这玩意儿要是放在黑客手上,管你公司是啥安全级别,统统都是弟弟。


也因此这事儿,国内外的云服务提供商都紧张得很,收到消息后纷纷开启排查。

像腾讯云就很快发出通告,提醒用户尽早升级Log4j最新版本。



腾讯云甚至把漏洞的风险等级定义为高风险。

具体风险也是典型的字少事大:攻击者利用该漏洞可导致任意代码执行。

只要攻击者乐意,完全可以远程控制软件,并从中盗取敏感信息。

再狠点,甚至能长期霸占服务器,把它用来挖矿牟取利益,放在现实中,这相当于当着咱们面入室抢劫了。



微软这边也很严谨,直接整了个防御和检测Log4Shell的长文,连检测工具都连夜开发了出来。

毕竟大用户太多,要是真出事了,微软云服务这一整年基本就白干了...



当然啦,之所以有大公司们着手防御,当然是因为有倒霉蛋先行中招...

而这个倒霉蛋就是知名游戏《我的世界》Java版。



不夸张的说,通过Log4Shell入侵《我的世界》,可能比小雷赢一把斗地主还简单。

直接在聊天窗口输入一行恶意代码,就能入侵别人的游戏服务器。

国外有一些老哥知道这事儿后,都亲自上游戏试了一下,结果是屡试不爽。

好在《我的世界》反应够快,没多久就修复了漏洞,不然这游戏可以直接改名《黑客世界》...



与其同时,小雷也十分好奇,这Log4Shell漏洞的源头在哪。



小雷特意去网上搜了下发现,这个漏洞源自于apache软件软件基金会旗下的log4j项目。

平时不接触代码的人可能没听过,但在全世界的程序员大圈子里,log4j作为java生态的基础组件,几乎是人人皆知。



就像《英雄联盟》玩家离不开LOL盒子,还有玩FPS游戏离不开准星。

而Log4j也不是啥复杂的程序,说简单了说,它只是一个开源的Java日志框架。

众所周知啊,搞开发是一个与代码疯狂对线的过程,在一个能正常使用的软件面世之前,势必要经过无数次测试。

一次测试跑不通,就得重新查看代码,看看哪里出了问题。

这图可以说是很贴切了

但运行代码跟平常打游戏不一样,它不能实时回放运行过程发生了啥。

如果真遇上运行崩溃了,程序员只能等代码跑完,再去后台查看错误日志。

像前段时间MIUI的bug很多,开发人员就会让用户反馈bug的时候带上一份日志,这样他们才能精准定位问题所在。



至于记录日志,其实是需要一个通用框架去实现的。

毕竟程序员不可能每次开发软件,都额外再搞一个日志记录器吧。

So,借助现成的日志记录框架来做开发,是十分省事省力的方法,也符合程序员“不重复造轮子”的理念。

在Java这边,Log4j就是最出名且使用最广泛的开源日志记录框架。

小到个人开发,大到苹果谷歌微软,在做Java开发时都会用上Log4j。



没办法,谁让人家功能齐全,查起错误来够方便呢。

但是越多人用,Log4Shell漏洞的危害就越大,大伙看完下面这张图估计就懂了。

国内外的互联网大厂所开发的软件,底层都保留了开源的Log4j框架,如果哪天这个框架出了问题,整个软件都会随之坍塌。

这就很好解释了,为啥大厂们遇到这事儿都慌得一批。



Log4Shell漏洞能如此变态,并不是因为漏洞本身足够复杂,让安全保护机制一头雾水。

相反,它实在TM太容易被触发了,适用范围还贼广,任何软件都可以将其嵌入到底层使用。

不过小雷也确实纳闷,这么开源框架可是全世界都在用的,为啥安全性不搞好点呢?

仔细想想,开发和安全性其实是两回事儿。 

作为开源项目,开发和维护Log4j框架压根就不赚钱,开发者都是在工作之余花时间去维护。

有时候甚至穷得要在推特上找用户掏钱赞助。



虽然漏洞被曝出来后,Log4j的几位开发者已经在尽力修复,并推出了最新的修复版本。

但比起大厂们当天就能修复的神级速度,作为官方维护者的它们,速度还算是慢的。

一方面是因为维护人力确实有限,另一方面则是财力上的巨大差距。



世界上所有伟大的商业软件,都离不开开源软件的支持,就像安卓离不开Linux,iOS离不开FreeBSD。

但回过头来,开源项目也因为没有足够的人力物力,导致使用起来难用和稳定性差。

大厂们虽然也会派员工去参与代码维护,但大多数情况下都是能白嫖就白嫖,反正以大厂的反应能力,出了问题也能光速修复。

商业软件享受了开源代码带来的好处,但出现问题带来的损失和谩骂,几乎是开源项目的维护者在承受。



再聊回阿里云这次做得不对的地方。

阿里云的安全技术人员在11月就发现了这个漏洞,也确实很快就报告了给apache软件基金会。

这个操作没问题,毕竟Log4j是Apache旗下的开源项目。

但在发现漏洞后,阿里云居然没有尽快向工信部报告,在代码界,漏洞上报的及时性是很重要的。

然而,从阿里云上报漏洞到Apache,到工信部得知漏洞,这中间隔了足足有十几天。



好家伙,这十几天都足够小雷在网上吃遍今年所有的瓜了。

如果黑客别有用心,利用这漏洞窃取资料造成巨大损失,这算不算是阿里云的锅?

目前阿里云也对这事儿作出回应,表示是当时没有意识到漏洞的严重性,才导致最终未及时上报。



不过怎么说,阿里云确实没遵守《网络产品安全漏洞管理规定》,被取消合作伙伴资格6个月的事实也板上钉钉。

希望在这次事件发生后,大厂们都能更加重视开源项目的安全性吧。

总不能只顾着白嫖,不帮开源项目的开发者分担下维护压力呀。