让全世界大厂都手忙脚乱的代码漏洞,是怎么一步步成为噩梦的?

时间:2021-12-17来源:栏目:网络营销

最近几天,各大互联网公司的程序员和史超的朋友都被一个名为Log4Shell的史诗级漏洞搞疯了!该漏洞源于一个名为Log4J2 (Log For Java 2)的Java开源日志框架,所有使用Java敲代...

最近几天,各大互联网公司的程序员和史超的朋友都被一个名为Log4Shell的史诗级漏洞搞疯了!

该漏洞源于一个名为Log4J2 (Log For Java 2)的Java开源日志框架,所有使用Java敲代码的代码农民都知道这个框架。

就像玩《魔兽世界》早年必须安装的大脚插件。它属于真正的“ 咖啡伴侣 ”,很少有Java程序不使用这个组件。

就是这么一个要命的底层日志框架,被发现透了一个洞。。。

最先发现漏洞的是阿里巴巴云安全团队的一个叫陈昭君的大人物。

据他说,这个漏洞早就被国外的安全静态代码分析平台扫清了,圈内的程序员都在等官方的修复,二话没说。

“面对Log4J2漏洞,百万刀的安全架构毫无价值。 "

很快,包括阿里、腾讯、百度、网易、新浪,在内的一大批国内互联网公司相继中枪,全部被困在受灾地区。

一些博主也收到了腾讯云的保护信息。

不仅是大工厂的服务系统,还有耳机、电脑、车机,等硬件系统。

毫不夸张地说,如果这个漏洞不及时修复,最终会被饥饿的黑客砸坏,进一步威胁网络安全。

他们将有效地利用“ 零日漏洞 ”(指发现后立即被恶意利用的安全漏洞)发起零时间差攻击,并在安全补丁出来之前杀死服务器。

甚至我们的日常手机、电脑软件(大部分都是用Java写的)也会受到黑客的攻击。想戳哪儿戳哪儿也不是不可能,拿你的电脑当我的人质也不是不可能。

就和打游戏偷家似的, so easy 。。。

然而,有趣的是,一些有趣的人利用了这个漏洞,发现了特斯拉将国内数据上传到美国服务器的尴尬事情。

不知道这个数据有没有包含用户数据,但我建议马龙师兄不要急着解释这个胡茬,还是赶紧把这个漏洞补上,不然到时候可能真的会很惨。

咳咳,扯远了。。。

回到这个漏洞,最可怕的是没有实现的门槛。只要使用一串简单的字符,就可以轻松突破服务器,在上面运行各种代码。

更别说窃取个人信息了。黑客想要远程劫持和瘫痪企业级服务器,这也是畅通无阻的。

黑客是如何利用这个漏洞,用几串字符轻松攻破服务器的?

要整明白这个问题,我们得先搞清楚啥是日志。

众所周知,程序员打完一段代码后,肯定不可能马上使用,而是要通过反复测试来验证代码的可行性。

但是,当代码本身运行时,它处于黑盒状态。如果让它盲目跑,它会在跑的中途被卡住,它根本不知道自己走错了哪一步。

就像做数学题的时候,如果没有草稿纸,心里总是没有底。

这时候,日志的作用就体现出来了,它就好像是一大张草稿纸,能在上面做任何你自己看的懂得步骤和标记,方便随时随地验算。

本质上日志是程序员们经常使用的一个工具,它把代码在测试过程中的每一步都给记录下来,跑完再回头 Debug 的时候,就很有针对性,效率也高。

而 Log4J2 ,就是这么一个开源的日志框架,它里面整合了不少在修改代码时会用到的常用功能,比如日志管理、输出变量等实用功能。

这次的高危漏洞就是源于 Log4J2 中一个叫 Lookups 的功能。

从字面上理解,这个功能就是一个用来搜索内容的接口,想要搜些啥,那就要靠代码去实现了。

Log4J2 也在 Lookups 的功能下,提供了不少实现的途径,问题就出在这个叫 JNDI 的途径上。

JNDI 被 Java 允许通过远程连接的方式来加载文件,这个远程地址可以是开发者自己的服务器,也可以是外界的服务器。

坏就坏在这个远程下载上了。。。

黑客只要通过 JNDI 的方法连接上自己的恶意服务器,就可以堂而皇之从这个接口进来,继而攻破整栋固若金汤的大厦。

这里世超用尽可能简单的说法解释了一下这个漏洞,如果差友们对具体的实现方式有兴趣,可以看下知乎上轩辕之风大佬写的这篇文章,介绍的很详尽了。

https : //zhuanlan.zhihu.com/p/444103520

那么问题来了,为什么这个漏洞在被发现之后过了这么久,才被重视起来?

外行看热闹,内行看门道,有些事儿还真得问问业内人士。

于是世超咨询了国内知名的白帽网站――火线安全平台的小火子同学,聊了一通之后,大致了解了专业人士对这件事儿的看法。

实际上 Log4J2 漏洞产生的原因,是因为部分程序员想要开发者保留在 Lookups 中 JNDI 的实现方式的旧功能而引起的。

根据 Log4J2 的维护者 Volkan Yaz c 的说法,他们早就想把这个有风险的功能给去了,但为了保证向后的兼容性,照顾到想要用这个功能的程序员,所以还是保留了下来。

好嘛,小洞不补、大洞吃苦,这个高危漏洞被发现之后, Log4J2 实际的管理机构 Apache 软件基金会并没能引起足够的重视,披露漏洞的流程也没有按流程来走。

他们直接把问题往开源平台 Github 的 issue 里一贴,期待能有好心人给出解决问题得方案。

但这是个开放平台啊,有程序员同样也有黑客。。。

这波操作等于告诉了全世界的黑客:“ 咱这软件有高危漏洞哈,欢迎来捅! ”

甚至在漏洞全面爆发之前,就已经有白客们在 issue 中公开讨论过具体的修复细节。

可惜的是,等到所有用到使用 Log4J2 的业务系统反应过来有这个漏洞,已经过去了很长一段时间了。

因为使用 Log4J2 组件的软件实在太多,所以互联网公司的安全部门要一个个软件做修复和升级,这里头的工作量也可想而知。

目前最快的临时处理方案,是在 Log4J2 做一个触发式的拦截程序,类似于给系统先打上疫苗,把与漏洞相关内容,提前进行阻拦,和防火墙的原理差不多。

话说回来,世超觉得引发这次漏洞问题的锅,也不应该全由 Log4J2 的维护者来背。

说出来你可能不信,像 Log4J2 这么大一个开源项目,实际只靠几个程序员在业余时间来管理和维护,他们本身也是用爱发电,没有任何报酬的。

来自 Volkan Yaz c 推特下网友们的评论�

与之相反的是,包括像苹果、谷歌、亚马逊、特斯拉在内的这些大公司,都一定程度上在开心的“ 白嫖 ”Log4J2 ,毕竟开源嘛,能省一点人力维护就省一点,反正总会有人维护的。。。

对于大厂开发者来说,这个来自十几年前仅有数人在维护的工具,只要能够完成产品,那凑合用就凑合用了,绝不重复造轮子。

并且争取在出现问题之前,成功跳槽。。。

可想而知,人人对于这类程序安全漏洞始终都是“ 碰到了才明白出了问题 ”,谁知道整个行业都翻了车。

尽管事儿已经是告一段落了,但这样大型的漏洞翻车事件,并不是第一次,也不会是最后一次发生,此类的“ 黑天鹅事件 ”,往往是不可预估且偶发性的。

而这一场场在网络世界中燃起的大火,唯有依靠程序员们的挑灯夜战,才得以熄灭。。。

特别鸣谢:火线安全

撰文:基昊编辑:小鑫鑫、结界

图片、资料来源:

微博:@程序员的那些事

微博:@Flanker_017

微博:@主动干饭猫

知乎:核弹级漏洞!我把log4j扒给你看!

新智元:中国程序员抢先预警「史诗」级漏洞,席卷苹果特斯拉

开源中国:Log4j 维护者:为向后兼容没移除导致漏洞的旧功能

Twitter:@yazicivo

Mitigating the log4j Vulnerability (CVE-2021-44228) with NGINX

1.本站部分来源于互联网用户自主整合上传,如有侵权,请联系我们删除;

2.文章内容并不代表本站的观点或立场,如有关于文章内容,版权或其它问题请联系删除;

3.本文地址:https://www.jiatu888.com/wlyx/86661.html

最新文章

网站介绍

本站部分内容收集于互联网,如有侵犯贵司(个人)版权,请联系本站删除。

Copyright@2018-2021 www.jiatu888.com 嘉图网 All Rights Reserved 粤ICP备20051635号 网站地图 tag列表

嘉图网