2021年12月8日,知道创宇404积极防御实验室通过创宇安全智脑监测到Apache Log4j2远程代码执行高危漏洞(CVE-2021-44228)被攻击者利用,且该漏洞细节已经被公开扩散。
经专家验证,该漏洞只要外部用户输入的数据被日志记录,即可触发导致远程代码执行,成功利用该漏洞的攻击者可以在目标设备上远程执行恶意代码。
一、「前情回顾」知道创宇关于Apache Log4j2漏洞的应急响应
12月9日,知道创宇发布紧急预警及处置建议,但该高危漏洞的影响并未停止,反而愈演愈烈。
Log4j2作为java平台的基础组件应用非常广泛,众多著名的通用框架及软件都有集成调用。经证实,大量的通用程序均存在漏洞,同时针对这些通用框架组件的POC及细节已经被公开扩散,如著名的Strusts2、Spring等。
另一方面,随着黑产组织的入场,该漏洞已被广泛利用进行攻击。目前已曝出多起因Apache Log4j2漏洞而被勒索软件攻击的事件,受到影响的系统及攻击路径均与基于java的OA等系统相关。
知道创宇针对上述情况也在第一时间发布了相应的预警信息及处置建议:
12月11日:警惕利用Apache Log4j2最新远程代码执行漏洞后续:针对Struts2等通用组件的攻击
12月13日:紧急!警惕僵尸网络及勒索软件利用最新Apache Log4j2进行攻击
二、「黑哥提醒」及时更新并部署防护产品
知道创宇首席安全官、404安全研究体系总负责人“黑哥”周景平,针对本次Apache Log4j2远程代码执行高危漏洞的发现、扩散、演变及响应等过程,提出了自己的一些思考与建议。
1、有请求不一定代表有漏洞,但很有可能存在漏洞,在没有授权的情况下不建议深入,可直接提交报告给官方,等待官方确认。
2、并不是使用Log4j的应用程序就一定会受到影响,但是大多数情况确实是会受到影响的,其触发流程要具体看应用调用方式。
3、该漏洞被认为影响了2.0至2.14.1-rc1的所有版本,rc1版本中漏洞点确实可以被绕过,但rc1已经默认了修改Log4j配置log4j2.formatMsgNoLookups=true可作为临时应急方案。
4、目前的主要攻击暴露面还是在事件型漏洞上,直接简单暴力提交参数就可以,后续可能会出现通用软件的暴露面。
5、Log4j可以说无处不在,如果短期内无法确定地排查出哪些应用受到了漏洞影响,建议部署WAF等设备进行规则拦截,推荐使用知道创宇云安全产品创宇盾进行防护,无需升级默认即可拦截。
6、攻击面可能涉及到服务端甚至客户端、各种云、各种OS,所以需要做好长久战的准备,时刻关注进展。(tips:安卓不支持jndi)。
7、此次Apache漏洞事件,可能也算是开源软件的缺陷。开源软件的安全补丁代码基本算是“透明”的,很容易通过查看diff定位漏洞并复现漏洞。而用户在看到补丁更新时,需要测试兼容性去一个一个部署,尤其是像Log4j这种基础的通用组件,无法提供一个自动更新的接口,他们的更新依赖那些开发者及调用这种组件的通用程序的开发者,这是需要大量的时间、大量的空间的。
虽然这是一个看似无解的问题,但还是可以做一些事情的:比如不要像Strust2直接把exp开源;比如漏洞相关的补丁方式不要那么“直接”,可以增加些门槛;再比如,漏洞更新时认真对待。
8、该漏洞必然会在历史上留名,毫不夸张的说,绝大多数互联网公司都会受到该漏洞的影响,这是一个最开始被低估的漏洞。
9、该漏洞的后续影响可能会出现一波接一波的情况,有点类似我们现实中的疫情,也会出现变异,可能需要做好打长久战的准备,目前还处于第4条中提到的阶段,只是开始有僵尸网络、勒索软件等黑产组织入场收割。
10、通用组件的漏洞攻击面已经有所暴露,比如出现了Struts2、Spring等的Poc。但实际在野利用还在路上,第9条中提到的“一波一波”“变异”主要体现在这里,这也与第2条提到的相关,取决于应用程序的调用方式,这些研究调试需要一定的时间。不过现在暴力阶段可能会暴露抵消掉一些通用组件触发的情况。
11、“变异”与利用研究相关,目前利用还在jndi注入实现RCE的暴力手段上,但这依赖JDK版本,所以建议及时更新JDK:使用新版本11.0+的JDK,老版本JDK建议更新为8u191、7u201或6u211。当然这里不排除针对具体的应用及场景开发出,突破JDK限制的可能,甚至可能不依赖jndi的可能,但这也需要一定的研究时间。
12、更多场景下的利用被挖掘,“万物皆可Log Shell”,比如大家看到的各种职能IoT、车链网其实也算是云、api的一个攻击点。更多场景下的利用可能被逐步暴露,这与第6条意思相近。另外,还有其他行业软件及场景可能完全没有被看到。
13、第3条实际上是存在很多绕过的方式,推特上也有很多例子。也有许多问题在问最新版是不是也被绕过了,但其实这些都不关键,关键点在于rc1“已经默认了log4j2.formatMsgNoLookups=true ”,所以已经更新或者手动配置过,就不用太纠结绕过的问题。
也有问题提到了WAF等设备绕过的问题,这种绕过还是需要留意,尤其是那种比较粗糙的处理jndi这种关键词的。这里我建议关注"$ { }"这个核心,当然WAF规则本身是一个对抗,传统的WAF在规则升级进化方面估计没有那么灵活,比较被动,所以这也是推荐我们创宇盾云防御的原因。
14、github.com/nice0e3/log4j_POC 该项目中的漏洞是CVE-2019-17571,www.cnblogs.com/nice0e3/p/14531327.html
中的是Log4j漏洞,二者均不是本次Log4j2的RCE漏洞,因此,9个月前就已经发现Log4j2漏洞的说法并不可信。
15、最近几天,全球迎来了升级大潮,目前各种通用组件的更新报告已经陆续发布,建议大家关注相关官方信息,及时升级。
16、此次的Log4j2漏洞非常值得思考,要知道,漏洞挖掘难度、技术含量跟漏洞利用、漏洞影响并非一个概念。
创宇安全智脑7*24小时数据显示,截至目前:
◼创宇盾共计拦截利用 Log4j2 漏洞攻击1606385次;
◼ScanV MAX 监测到 40% 的客户业务系统存在这个漏洞,这些系统均使用 Java。
在此,知道创宇再次建议,注意提防该漏洞相关攻击。如果您遇到Apache Log4j2漏洞相关攻击,请联系我们(400 833 1123)或留下您的联系方式(点击填写),我们将第一时间为您解决问题!
如若转载,请注明原文地址