谁应该为Log4j2 RCE漏洞负责?

admin 2021年12月16日18:19:06评论106 views字数 2931阅读9分46秒阅读模式

谁应该为Log4j2 RCE漏洞负责?


其实现在这个时候来谈这个问题是有点不合适的,因为漏洞还在继续,应该把跟多的关注点集中在漏洞应急修复等工作上,当然到现在这个阶段经过了一个大周末的集中处理,一线的人员多少有点卷了,周一来了轮到其他人上场了... 但是看到了不少“言论”及“观点”感觉比较尴尬,所以还是打算简单聊一下


1、被低估的漏洞


《关于这次Apache Log4j2漏洞 简单说几点》里我就提到了这个漏洞开始可能是被低估了的,当然我这个也算是我的yy吧,因为我一开就低估了它,我当时关注点在于通用组件的调用,简单按经验认为需要看具体应用的调用,当然我意识到这个可能影响很多很多通用程序,但是没有意识到直接参数提交这个方式,直到我们小伙给我发了一张百度搜索框触发dnslog的截图~~ 然后一发不可收拾啥icloud、亚马逊 ... 然后整个安全圈子就开始疯了,疯狂的找各种搜索框,毫不忌讳地说我们ZoomEye也有人测试(触发没成功,事后证明ZoomEye是受漏洞影响的,只是因为我们的改动没有出触发)


这里我认为是这种“简单”、“暴力”、“直接”的参数提交利用方式是失控的很重要的一个点


2、漏洞的扩散


这个漏洞是阿里的小伙发现并报告的,应该是在11月份,这个可以从官方coomits 

https://github.com/apache/logging-log4j2/pull/608/commits 

是11月30号创建的,所以这个漏洞肯定是在这个日期之前就报告了,细心的朋友可能看过我们的文章:《谁是超级骇客!从创宇盾感知Apache Log4j2 曝光前后惊魂24小时态势》  里提到:


漏洞应急响应后回溯分析发现在11月25日就已有攻击者利用该漏洞进行攻击,该攻击被创宇盾智能引擎拦截,攻击失败。
知道创宇云防御,公众号:创宇云防御谁是超级骇客!从创宇盾感知Apache Log4j2 曝光前后惊魂24小时态势


根据当时“攻击者”使用的payload 分析后可以得到如下2点:


* 这个“攻击者”意识到了参数注入的攻击方式* 使用本地的ldap的IP地址,由此推断这个应该算是一个纯手抖误操作 (跟粘贴板里信息直接发错群里的那种情况差不多)


然后直到12月9号开始出现攻击,在这个角度上来看,实际上我个人认为可以说明阿里的小伙是没有扩散的相关细节的。那么在12月9号发生了什么呢?最大的一种可能就是有人根据官方github上的代码更新复现了漏洞,并很可能在某些小圈子群里做了分享,很可能也是没意识到这个漏洞“简单”“暴力”的方式,再加上觉得补丁已经发布了就没想那么多 ... 随即就被扩散 ... 直到有人随手测试了下百度 ...


3、“马后炮”式的评价


后来大家看到的啥“史诗级”、“核弹级”等评价,这些都算是“马后炮”式的思维,也就是因为这个影响大了成为了事实后的评价,而不是在漏洞报告及补丁更新时候的评价!如果没有意识到这个问题很容易陷入“先入为主”的思维陷阱。如果在这个基础上作出的推测甚至“扣帽子”那多少都有点尴尬!这里我在举一个前几月刚发生影响很大一系列关于SonarQube事件,事实上我们知道创宇404实验室在2020年的7月29日就进行漏洞应急及预警,直到1年后的前个月大规模爆发泄露事件 ...


谁应该为Log4j2 RCE漏洞负责?


从本次国外社区的表现也能很好的说明这个问题,我可能是第一个在推特上呼吁老外关注这个漏洞人,所以被老外媒体看到了


谁应该为Log4j2 RCE漏洞负责?


当时的很多老外都是一脸懵逼,因为连个CVE都没有,我只给出了一个Log4j2的更新,同样这些人也没当回事,因为他们不懂中文,不用微信,不能混大天朝的安全圈子看不到那些刷屏的dnslog截图,直到我转发

了一个项目:

https://github.com/YfryTchsGD/Log4jAttackSurface/ 


然后老外们疯了...


这些都说明一个问题:“安全事件”仍然是网络安全的第一推动力,所以本次Log4j2是因为产生那么多的安全事件影响到那么多的国际大厂,才在最短的时间里得到爆发实现了“史诗级”、“核弹级”的评价。我们也可以YY一下如果这些事情都没有发生,我敢肯定大部分的那些在朋友圈、微博里吐槽骂娘的加班的同学们也不会去关注一个默默无闻的“咔咔锅过”那个卑微的Log4j2组件,那些超级大厂网站后面依然运行着存在漏洞的Log4j2,可能直到有一天各大网站的数据库被5毛比特币在一个叫RF的论坛上出售,当然这个算是后果最轻的yy了 ...


4、开源的原罪


这个问题我也在《关于这次Apache Log4j2漏洞 简单说几点》里提到了,讲道理我对apache的开源社区是完全没啥好感的,比如有一次Strusts2的一个漏洞,直接把攻击代码也给“开源”了,当然咯这次倒是没有直接放POC/EXP。不能直接接这个锅,我说的开源的问题是:现在开源的整个社区都没有考虑到一个问题,就是安全补丁的代码是基本算是“透明”的,很容易通过查看diff定位漏洞并复现漏洞,相比同时用户在看到补丁更新,需要测试兼容性需要去一个一个部署,尤其是log4j这种基础的通用组件,不可能提供一个自动更新的接口,他们的更新依赖那些开发者及调用这种组件的通用程序的开发者,这个是需要大量的时间、大量的空间的,我想这次很多大厂的技术有着深刻的感受。


我们开源的一套系统WAM https://github.com/knownsec/wam 就是基于这个逻辑实现的,我记得当时数字公司推出的漏洞收购计划来弥补通用漏洞防御能力,那时候我基本是不慌的,主要是对我们自己的漏洞能力比较放心,另外一个就是我们有WAM系统,你的每次发钱收购的漏洞,都要提交给官方,那我们只要监控官方代码更新就能快速的定位漏洞输出防御规则,所以当时我们一直都能做到快速的响应。


当然回头一想这个问题实际上没有很好的解决办法,所以我说是“原罪”,只能“祈祷”了!也就是说“定时炸弹”一定是会爆炸的,就看定在啥时候了!虽然是无解,但是还是可以做一些事情的,比如不要跟strust2那种直接把exp给开源了,比如漏洞相关的补丁方式不那么“直接”增加点门槛啥的,在比如漏洞更新的时候能认真对待,比如这次那么多年CVE都没有一个,当然很多开源维护者是不具备安全能力的。


所以网上又有人开始吐槽甩锅给Log4j2的维护者,结果被人看到了事实:“Apache Log4j项目由三名志愿者业余时间维护。请不要嘲弄他们,因为市值数十亿美元的公司正在使用他们的工具,却连投入 1000美元都不屑一顾。” 看到这个时候大家平和了很多,很多人想起了老罗当年给Openssl的捐款!在这里我有呼吁下有钱的大佬可以支持大赏一下:

https://github.com/sponsors/rgoers



5、到底是谁的“锅”?


“菩提本无树,明镜亦非台,本来无一物,何处惹尘埃。”


漏洞是真实存在并确实被发现了,漏洞正常报告,官方确实也给了修复方案了(虽然漏洞点存在绕过,但是默认配置还是很安全),这些都已经成为既定事实!绝大部分场景下被明目张胆的“黑”比被偷偷“黑”带来的后果要小很多。“正视漏洞,加强防御,积极应对”才是王道。


(以上观点均属于我个人观点,与其他人及组织无关)





原文始发于微信公众号(黑哥说安全):谁应该为Log4j2 RCE漏洞负责?

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月16日18:19:06
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   谁应该为Log4j2 RCE漏洞负责?https://cn-sec.com/archives/675070.html

发表评论

匿名网友 填写信息