Apache Log4j2漏洞的爆炸力

简介: 2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2远程代码执行漏洞,编号CVE-2021-44228。蚂蚁切面安全RASP天然具备对Log4j漏洞的防护能力,因为RASP是在应用程序内部hook关键函数,只关注执行动作,只要部署了RASP的应用可不依赖外界而具备自我保护能力,即:RASP本身对攻击者执行敏感路径下文件的读取/修改、发外链等动作已具备拦截能力,攻击者无法对应用造成太多高危破坏性攻击。

2021年12月10日,国家信息安全漏洞共享平台(CNVD)收录了Apache Log4j2远程代码执行漏洞,编号CVE-2021-44228。

【漏洞描述】
Apache Log4j2是一款开源的Java日志记录工具,该工具重写了Log4j框架,并引入了大量丰富特性,可控制日志信息输送的目的地为控制台、文件、GUI组件等,在国内外应用非常广泛。

12月10日凌晨,Apache开源项目Apache Log4j 2被曝出远程代码执行漏洞,其存在JNDI注入漏洞,攻击者利用该漏洞,通过构造恶意请求在目标服务器上执行任意代码,导致服务器被攻击者控制,从而进行页面篡改、盗取数据等行为,危害性极高,几乎所有行业都受到该漏洞影响。

3.png

【验证等级】
CNVD综合评级为“高危”

【影响范围】
Java类产品:Apache Log4j 2.x < 2.15.0-rc2

【修复建议】
目前漏洞POC已被公开,官方已发布安全版本,若是使用Java开发语言的系统需要尽快确认是否使用Apache Log4j 2插件,并尽快升级到最新版本。

时间点:
2021年12月7日,Apache官方发布log4j-2.15.0-rc1
2021年12月10日,Apache官方发布log4j-2.15.0-rc2
2021年12月11日,Apache官方发布log4j-2.15.0(同log4j-2.15.0-rc2)
2021年12月13日,Apache官方发布log4j-2.16.0-rc1

地址:https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2

蚂蚁切面安全RASP应急止血方案

【RASP详细分析】
蚂蚁切面安全RASP天然具备对Log4j漏洞的防护能力,因为RASP是在应用程序内部hook关键函数,只关注执行动作,只要部署了RASP的应用可不依赖外界而具备自我保护能力,即:RASP本身对攻击者执行敏感路径下文件的读取/修改、发外链等动作已具备拦截能力,攻击者无法对应用造成太多高危破坏性攻击。

蚂蚁切面安全RASP针对Log4j漏洞在高维程度仍做了应急措施,分为3个阶段:
第1阶段:无攻击poc时,基于猜测的方案都未采用

  1. 从网络相关的注入点入手,通过检查是否包含log4j相关的堆栈来进行拦截。缺点:常规网络请求都会经过此注入点,需获取堆栈匹配,性能影响非常大。
  2. 从 JNDI 关键底层方法,通过检查是否包含log4j相关的堆栈来进行拦截。缺点:需获取堆栈匹配,影响应用正常使用 JNDI 能力,有一定性能影响。

第2阶段:拿到poc后,迅速制定和验证止血策略,确定RASP参战
由于JNDI对log4j来说是以插件形式存在,所以有统一的执行入口,由堆栈图可知RASP可以从几处进行拦截处理,其中“InitialContext.java:417”为原生底层方法,缺点上文已经提到,所以可用的点为“JndiManager.java:85” 和 “JndiManager.java:61” 。其中注入点“JndiManager.java:85” 为 2.1.x 后引入,注入点 “JndiManager.java:85” 可覆盖 2.x 所有版本,但是为避免通过其他漏洞绕过执行,最终两个注入点都进行了拦截包括获取 jdbc 连接地址时使用 jndi 的情况也进行了拦截,因为此种情况是通过 log4j2 配置而非外部输入触发。

缺点:

优点:

  1. 由于不需要匹配任何参数,无需担心性能问题;
  2. 只有解析后的内容使用了JNDI才会触发,无需担心各种变种payload,无对抗成本;
  3. 只针对log4j2自身使用JNDI的场景,不影响应用正常使用JNDI能力。

第3阶段:RASP部署上线 + 止血策略发布,持续至今
蚂蚁安全团队根据危害程度开始紧急分批进行部署上线和止血策略发布工作。

  • 第一天:主动外联的高危应用灰度预发环境止血完成。
  • 第二天:主动外联的高危应用线上 93%完成止血。

【RASP应急止血效果】

  • 拿到poc后20分钟即完成防御策略并验证成功。
  • 2小时内完成log4j 2.x所有版本包括对应sec版兼容性测试。
  • 24小时内完成高危应用预发和灰度环境的止血,并在生产环境小范围验证。
  • 48小时完成93%高危应用生产环境止血。

【RASP应急止血优势】
优势1:以数据为载体的漏洞在业界很少见,导致WAF适用范围有限。攻击者一旦跨过边界在公司技术体系内部横向移动根本无法控制,因此使用切面安全RASP技术从内部阻断拦截更精准,效果更好。

优势2:相比传统安全产品、官方版本修复方式,RASP具备:

  • 不必等官方方案,只要清楚了漏洞利用细节,RASP即可开开始发挥作用。
  • 使用切面RASP参战止血,使研发工程师避免了在短时间内以狗急跳墙方式应急,RASP在争取了两周缓冲时间的同时也不会打乱研发升级节奏,提升了研发工程师幸福感。
  • RASP适配各种环境,无需考虑升级版本兼容问题。

优势3:蚂蚁安全团队已输出针对于Log4j漏洞的专治小工具 minirasp,给生态伙伴和内部一些非标技术栈的应用应急使用。定制的minirasp效果超出预期,在标准RASP不能覆盖的海量数据处理任务job、海量udf中发挥了关键作用,能止本次Log4j漏洞隔山打牛之痛。

蚂蚁切面安全RASP为应用运行时安全提供疫苗级防护

当下网络安全形势愈发严峻,传统的基于流量检测的边界防御产品极易被绕过,基于规则库更新的安全产品更是时效性低,此类后知后觉的安全产品已无法满足安全市场需求。

2012年Gartner首次提出一种新型web防护技术 —— RASP(Runtime Application self-Protection)。区别于传统安全产品,RASP是一种基于行为和上下文语义分析的新型安全技术,在应用程序内部hook关键函数,只关注执行动作,在不更新策略和不升级应用代码的情况下检测/拦截未知漏洞,RASP像疫苗一样注入进应用实体内部,让应用不依赖外界而具备自我保护能力。

一句话概括:装载RASP的应用对Log4j2漏洞具备天然防护能力,此外,对于所有因JNDI注入导致的远程命令执行、文件目录列出、任意文件上传、敏感文件下载等行为均可实现拦截。

1.png

另外,蚂蚁RASP也支持检测/拦截内存马攻击、反序列化漏洞、命令注入、任意文件上传、远程执行命令等,全覆盖2021版OWASP TOP 10 中的Web应用程序安全风险类别。蚂蚁RASP为企业应用提供函数级实时防护,具备较强的启发式检测能力,秒级拦截、应急止血,提升安全水位,尤其适合大量使用开源组件的互联网应用或使用第三方集成商开发的应用。

2.png

相关文章
|
安全 应用服务中间件 Apache
Apache-Tomcat-Ajp文件读取漏洞(CVE-2020-1938、CNVD-2020-10487)
Apache-Tomcat-Ajp文件读取漏洞产生原因是由于Tomcat默认开启的AJP服务(8009端口)存在一处文件包含缺陷,攻击者可构造恶意的请求包进行文件包含操作,进而读取受影响Tomcat服务器上的Web目录文件
1306 1
web服务器(Apache)访问日志(access_log)详细解释
web服务器(Apache)访问日志(access_log)详细解释
|
安全 Java Shell
Apache Log4j2 远程代码执行漏洞
Apache Log4j2是一个·基于Java的日志记录工具,该工具重写了Log4j框架,并且引入大量丰富的特性,该日志框架被大量用于业务系统开发,用来记录日志信息。
209 2
|
存储 安全 Java
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
【Shiro】Apache Shiro 默认密钥致命令执行漏洞(CVE-2016-4437)的解决方案
1448 0
|
安全 Java 大数据
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
CDH/HDP/CDP等大数据平台中如何快速应对LOG4J的JNDI系列漏洞
|
9月前
|
存储 人工智能 大数据
The Past, Present and Future of Apache Flink
本文整理自阿里云开源大数据负责人王峰(莫问)在 Flink Forward Asia 2024 上海站主论坛开场的分享,今年正值 Flink 开源项目诞生的第 10 周年,借此时机,王峰回顾了 Flink 在过去 10 年的发展历程以及 Flink社区当前最新的技术成果,最后展望下一个十年 Flink 路向何方。
669 33
The Past, Present and Future of Apache Flink
|
11月前
|
SQL Java API
Apache Flink 2.0-preview released
Apache Flink 社区正积极筹备 Flink 2.0 的发布,这是自 Flink 1.0 发布以来的首个重大更新。Flink 2.0 将引入多项激动人心的功能和改进,包括存算分离状态管理、物化表、批作业自适应执行等,同时也包含了一些不兼容的变更。目前提供的预览版旨在让用户提前尝试新功能并收集反馈,但不建议在生产环境中使用。
1466 13
Apache Flink 2.0-preview released
|
6月前
|
SQL 存储 人工智能
Apache Flink 2.0.0: 实时数据处理的新纪元
Apache Flink 2.0.0 正式发布!这是自 Flink 1.0 发布九年以来的首次重大更新,凝聚了社区两年的努力。此版本引入分离式状态管理、物化表、流批统一等创新功能,优化云原生环境下的资源利用与性能表现,并强化了对人工智能工作流的支持。同时,Flink 2.0 对 API 和配置进行了全面清理,移除了过时组件,为未来的发展奠定了坚实基础。感谢 165 位贡献者的辛勤付出,共同推动实时计算进入新纪元!
762 1
Apache Flink 2.0.0: 实时数据处理的新纪元
|
11月前
|
存储 缓存 算法
分布式锁服务深度解析:以Apache Flink的Checkpointing机制为例
【10月更文挑战第7天】在分布式系统中,多个进程或节点可能需要同时访问和操作共享资源。为了确保数据的一致性和系统的稳定性,我们需要一种机制来协调这些进程或节点的访问,避免并发冲突和竞态条件。分布式锁服务正是为此而生的一种解决方案。它通过在网络环境中实现锁机制,确保同一时间只有一个进程或节点能够访问和操作共享资源。
392 3

推荐镜像

更多