众所周知啊 , 程序员在敲完一段代码之后 , 肯定不可能马上拿来用 , 而要通过反复的测试来验证代码的可行性 。
文章图片
但代码本身在跑的时候 , 处于一个黑箱状态 , 如果放任它瞎跑的话 , 跑到一半卡住 , 根本不知道是错在哪一步上 。
这就好像是做数学题时候如果没草稿纸 , 在心里算总是没个底 。
这时候 , 日志的作用就体现出来了 , 它就好像是一大张草稿纸 , 能在上面做任何你自己看的懂得步骤和标记 , 方便随时随地验算 。
本质上日志是程序员们经常使用的一个工具 , 它把代码在测试过程中的每一步都给记录下来 , 跑完再回头 Debug 的时候 , 就很有针对性 , 效率也高 。
文章图片
而 Log4J2, 就是这么一个开源的日志框架 , 它里面整合了不少在修改代码时会用到的常用功能 , 比如 日志管理、输出变量等实用功能 。
文章图片
这次的高危漏洞就是源于 Log4J2 中一个叫 Lookups 的功能 。
从字面上理解 , 这个功能就是一个用来搜索内容的接口 , 想要搜些啥 , 那就要靠代码去实现了 。
文章图片
Log4J2 也在 Lookups 的功能下 , 提供了不少实现的途径 , 问题就出在这个叫 JNDI 的途径上 。
文章图片
JNDI 被 Java 允许通过远程连接的方式来加载文件 , 这个远程地址可以是开发者自己的服务器 , 也可以是外界的服务器 。
文章图片
坏就坏在这个远程下载上了 。。。
黑客只要通过 JNDI 的方法连接上自己的恶意服务器 , 就可以堂而皇之从这个接口进来 , 继而攻破整栋固若金汤的大厦 。
文章图片
这里世超用尽可能简单的说法解释了一下这个漏洞 , 如果差友们对具体的实现方式有兴趣 , 可以看下知乎上轩辕之风大佬写的这篇文章 , 介绍的很详尽了 。
那么问题来了 , 为什么这个漏洞在被发现之后过了这么久 , 才被重视起来?
外行看热闹 , 内行看门道 , 有些事儿还真得问问业内人士 。
于是世超咨询了国内知名的白帽网站—— 火线安全平台的小火子同学 , 聊了一通之后 , 大致了解了专业人士对这件事儿的看法 。
文章图片
实际上 Log4J2 漏洞产生的原因 , 是因为部分程序员想要开发者保留在 Lookups 中 JNDI 的实现方式的旧功能而引起的 。
根据 Log4J2 的维护者 Volkan Yaz?c? 的说法 , 他们早就想把这个有风险的功能给去了 , 但为了保证向后的兼容性 , 照顾到想要用这个功能的程序员 , 所以还是保留了下来 。
文章图片
好嘛 , 小洞不补、大洞吃苦 ,这个高危漏洞被发现之后 ,Log4J2 实际的管理机构 Apache 软件基金会并没能引起足够的重视 , 披露漏洞的流程也没有按流程来走 。
特别声明:本站内容均来自网友提供或互联网,仅供参考,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
