3

Apache Log4j2漏洞的爆炸力

 2 years ago
source link: https://segmentfault.com/a/1190000041132637
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

Apache Log4j2漏洞的爆炸力

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

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

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

【验证等级】
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/log...

蚂蚁切面安全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注入导致的远程命令执行、文件目录列出、任意文件上传、敏感文件下载等行为均可实现拦截。

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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK