Apache Log4j 2远程代码执行漏洞的排查与处置建议

时间 :  2021年12月10日  来源:  安天CERT


1.漏洞描述


       Apache Log4j是一个基于Java的日志记录工具。Log4j是几种Java日志框架之一。该项目在Apache接手后进行了代码重构,解决了框架中的架构问题并在Log4j 2中提供了一个插件架构,这使其更具扩展性。用户可以更为精确的对日志进行细粒度的控制,支持将日志信息发送到服务器、写入到文件或是发送给GUI组件等,通过定义日志信息的级别、输出格式,发送参数来对日志进行更完善的管理。

       Log4j 2.X中采用了LDAP的简单目录服务结构进行日志的查询。在进行递归查询时,JNDI方法在处理查询参数的过程中存在注入漏洞,攻击者可利用该漏洞在未授权的情况下,构造恶意参数以远程方式在目标服务器上执行恶意代码。

       该漏洞影响范围非常广泛,目前无法准确统计受影响的具体资产和组件的数量。安天CERT建议通过Apache官方升级页面下载对应的升级包对存在该漏洞的组件进行升级以修复该漏洞。对于无法进行升级的用户可以采用缓解措施进行暂时防御。

       通过安天的智甲、探海、捕风、拓痕等产品,可以实现对此漏洞的有效响应。



2.漏洞影响范围


       经安天CERT分析人员验证 2.15.0-rc1 版本存在绕过的可能性,实际受影响范围:

       Apache Log4j 2.x < 2.15.0-rc2

       根据 mvnrepository 中的软件库依赖关系,含有该漏洞的Log4j 2影响到超过 6000个中间件或应用,目前已知的可能受影响的应用及组件包括但不限于如下清单中所列出的:

       · Spring-Boot-strater-log4j2

       · Apache Struts2

       · Apache Solr

       · Apache Flink

       · Apache Druid

       · ElasticSearch

       · Flume

       · Dubbo

       · Redis

       · Logstash

       · Kafka



3.排查方法、缓解措施


       安天CERT建议用户彻底排查所使用的应用是否引入了Apache Log4j2 Jar包,特别是各单位在历史招标建设中明确要求采用 Log4j 或 SLF4J 记录日志的信息系统,若存在引入则可能受该漏洞影响。排查方法如下:

       (1)针对应用自身排查

       在应用内部搜索log4j-core-*.jar以及log4j-api-*.jar两个关键字,查看其版本是否在受影响的版本范围中,同时查看其pom.xml文件内部的版本号进行二次确认。也可以通过查看内部JAVA源代码库中所引入的组件清单列表来确认是否引入了Apache Log4j 2.x的Jar包。

       1 find / -name "log4j*"

       (2)入侵排查

       攻击者在利用前通常采用dnslog方式进行扫描、探测,针对该漏洞利用可通过应用系统报错日志中的如下关键字进行排查:

       1 "javax.naming.CommunicationException"

       2 "javax.naming.NamingException: problem generating object using object factory"

       3 "Error looking up JNDI resource"

       攻击者发送的恶意数据包中可能存在“${jndi:rmi”、“${jndi:ldap”关键字,推荐使用全流量或WAF设备进行检索排查。

       检测:

       在WAF中添加如下两条自定义规则:

       tcp_payload^%24%7Bjndi%3Aldap%3A%2F%2F

       http_msgbody^%24%7Bjndi%3Aldap%3A%2F%2F

       建议升级Apache Log4j 2至2.16.0版本修复此漏洞,下载地址:

       https://logging.apache.org/log4j/2.x/download.html

       临时缓解措施(任选一种):

       修改jvm启动参数 -Dlog4j2.formatMsgNoLookups=true

       修改配置log4j2.formatMsgNoLookups=True

       设置系统环境变量 LOG4J_log4j2_formatMsgNoLookups为 true

       临时缓解措施自动化处置脚本:

       Windows 操作系统:使用管理员权限运行 log4j2_hjcs.bat 后重启操作系统

       Windows 处置脚本下载地址:

       https://www.antiy.com/tools/Log4j2_hjcs.bat



4.安天观点及风险提醒


       本次事件虽然表现为Apache的一个模块出现漏洞,但其本质是供应链中的公共模块出现了漏洞,目前还难以衡量其攻击面。

       攻击者可以利用它执行远程代码,从而获得对服务器的访问权限。

       鉴于本次漏洞影响十分广泛且危害较大,安天CERT给出下列建议:

       1. 各单位及组织应该加强对内部信息系统及对外服务信息系统相关服务器、办公终端的操作系统的安全排查并采取缓解措施,防止攻击者利用该漏洞造成破坏。

       2. 对存在漏洞的信息资产的访问权限进行严格管控,对信息系统的各项日志尤其是登录日志及威胁告警日志等加强审计和监管、对网络流量进行实时审计与告警,防止被非法访问或配置被非法篡改。

       3. 加强信息安全应急响应能力建设,重视应急预案的定期更新与演练,确保在处理突发事件时能保证有条不紊,确保信息系统遇到攻击能够快速恢复并进行有效溯源。



5.安天产品解决方案


1. 安天智甲(云主机安全系统)

       (1)定位影响资产

       用户可通过资产中心模块快速识别Apache Log4j <= 2.14.1的风险资产信息,用于快速排查受此次log4j2漏洞事件影响的资产。

       (2)漏洞检测

       智甲云主机安全系统发布漏洞库更新包20211210023816,支持对Apache Log4j2远程代码执行漏洞(CNVD-2021-95914)检测,请用户联系技术支持人员获取规则升级包对漏洞库版本进行升级。

       对于无法及时更新漏洞库的用户,可自定义添加规则实现漏洞的快速检测。

       (3)安全基线检查

       最新版智甲云主机安全系统v1.0版的配置风险功能,已经可以通过资产配置核查的功能识别此漏洞风险。

       (4)微隔离加固

       智甲云主机安全系统微隔离模块能够识别网内东西向流量,通过严格的进程级网络访问策略,能够检测出异常的网络访问行为。

2. 安天探海

       “探海”产品已可针对log4j 2漏洞利用事件进行检出。已包含相关检测规则的网络威胁行为规则库版本为:basic_rules_1.00.9_20211020100532(请确认设备系统版本为:6.6.1.2 以上,旧版本建议先升级到最新版本)。

       若用户设备已配置加入安天动态均衡防护计划,设备将在一天内自动收到更新规则并应用检测。请关注ID为2310308256、2310308257,威胁名为:ExploitWeb:JNDI[ldap]/Log4j2.2310308256!c2s、ExploitWeb:JNDI[rmi]/Log4j2.2310308257!c2s,规则描述为“[WEB应用漏洞]疑似Apache Log4j 2.x <= 2.14.1-Lookup组件RCE-Payload”的检出信息。检出时,设备将自动留存相关证据pcap供下载分析。

       安天探海在公网中已检测到的该漏洞的利用:

       若未加入此计划,建议立即联系安天售后服务热线,以获取规则更新包。我们也将在下一次常规更新中提供对应规则。安天售后服务热线:400-840-9234

       在用户获取更新之前,可以通过如下自定义规则进行威胁检测。配置路径为:策略——>自定义规则 ——> 新增规则 ——> 自定义表达式

针对版本

自定义表达式规则

6.6.1.0 - 6.6.1.1

`/url`~"jndi:(ldap|ldaps|rmi|iiop|iiopname|corbaname|dns|nis)"

6.6.1.2及之后

`/url`~"jndi:(ldap|ldaps|rmi|iiop|iiopname|corbaname|dns|nis)",`/http/response/body`~"jndi:(ldap|ldaps|rmi|iiop|iiopname|corbaname|dns|nis)"


       若用户已从其他途径获取更多威胁情报,可通过设备的“自定义规则”(针对IP、域名、URL等),“流量检测规则”——“自定义规则“(针对SNORT规则)进行威胁情报应用。若网内发现了威胁的相关线索,可通过“目标审计”功能对可疑主机进行全流量获取分析。

       若用户使用的是全要素版本HD2000,建议同时通过如下查询语句,检索历史中是否遭遇过此类攻击事件(规则为单行,请完整拷贝):

       `/url`~"jndi:(ldap|ldaps|rmi|iiop|iiopname|corbaname|dns|nis)",`/http/response/body`~"jndi:(ldap|ldaps|rmi|iiop|iiopname|corbaname|dns|nis)"

3. 安天捕风

       “捕风蜜罐”产品已具备针对log4j漏洞仿真及威胁感知能力,如果用户设备版本是V3.3.6.0及以上,可以通过部署Scada·LTS、Apache Tomcat、 Struts2、Elastic Search、Redis这些仿真资产来发现威胁,了解攻击者意图。

       如果用户设备版本是V3.3.6.0及以上,同时也部署了具备log4j漏洞仿真的资产,可以重点关注检出特征描述:JNID注入,威胁名称为:漏洞利用,蜜罐服务名称:Scada·LTS、Apache Tomcat、Struts2、Elastic Search、Redis(任意一个时)的威胁事件。蜜罐设备将自动保存相关的pcap以供下载,同时用户可以通过结合捕获到的payload字符串信息进行详细的分析。

       如果用户设备版本是V3.3.6.0以下,建议立即联系安天售后服务热线,以获取升级包和规则更新包。安天售后服务热线:400-840-9234

4. AntiyRASP(应用威胁自免疫)

       应用运行时自我保护,拥有检测、定位、阻断漏洞利用能力。紧急发布新版本:可有效防止 Apache Log4j JNDI 漏洞注入、漏洞绕过及在野利用。用户甚至无需修改现有业务配置,即可快速实现安全防护。

       免费获取地址: https://vs.antiy.cn/RASP

5. 安天WAF产品已经完成相应攻击规则特征库更新,可有效防御基于Apache Log4j 2远程代码执行漏洞的WEB攻击行为,已购买安天WAF产品的客户可通过更新WAF攻击规则特征库,有效抵御Apache Log4j 2远程代码执行漏洞带来的网络安全风险。

       注:上述产品所有型号及版本自身不受此漏洞影响。



6.安天产品针对Log4j 2漏洞相关攻击的防御价值简介


产品品牌

产品定位

部署方式

针对本漏洞相关攻击的防御价值

智甲

终端防御系统

UES

(统一端点防御,覆盖

EPP\EDR\CWPP

安装(或原厂预制)在系统主机上。

智甲终端防御系统可识别终端资产上安装的应用及插件版本信息,有助于客户排查终端资产是否存在漏洞,同时可通过软件分发功能向存在应用漏洞的资产推送漏洞修复包。

探海

威胁检测系统

NDR

(网络检测响应)

在政企网出口、关键网段等位置旁路部署,可以作为云资源池部署。

探海威胁检测系统可针对网络流量,利用原生机制和第三方威胁情报进行漏洞利用威胁检测。如使用的是全要素留存版本,还可检索历史数据中是否具有此威胁的攻击。在设备已联动态势感知、SIEM等数据平台的情况下,也可使用联动平台对历史全要素日志进行漏洞利用发现分析。

捕风

蜜罐系统

威胁欺骗捕获

支持企业内网、隔离网、私有云、公有云等部署场景

捕风蜜罐系统支持通过仿真包含log4j 2的高交互服务如Apache Struts2ElasticSearchRedis

等模拟欺骗捕获威胁攻击,配置相关仿真资产可以与导流设备结合,有效感知针对该漏洞的扫描探测、具体漏洞攻击,检出漏洞利用事件,提供威胁情报,联动响应和处置,以供应用户及时防御。

拓痕

应急处置工具箱

应急处置

基于U盘、光盘、便携设备与场景连接使用。

拓痕基于对终端侧系统进行威胁检测分析,包括进程、服务、内核、引导扇区等对象的全要素的提取解析,调用安天AVL SDK反病毒引擎进行更精准的检测,检出和留存攻击载荷,提取可疑对象。