严重安全漏洞预警!建议解决方案


9日夜间,Apache Log4j2引发严重安全漏洞,疑似很多公司的服务器被扫描攻击,一大批安全人员深夜修bug,堪称“核弹级”漏洞。
经专家研判,该漏洞影响范围极大,且利用方式十分简单,攻击者仅需向目标输入一段代码,不需要用户执行任何多余操作即可触发该漏洞,使攻击者可以远程控制用户受害者服务器,90%以上基于java开发的应用平台都会受到影响。
log4j是Apache的一个开源项目,是一个基于Java的日志记录框架。Log4j2是log4j的后继者,被大量用于业务系统开发,记录日志信息。很多互联网公司以及耳熟能详的公司的系统都在使用该框架。
此次受到攻击行为的客户分布非常广泛,IT通信(互联网)、高校、工业制造、金融、政府、医疗卫生、运营商等几乎所有行业都受到波及,全球知名科技公司、电商网站等也未能幸免。其波及面和威胁程度,均堪比2017年的“永恒之蓝”。
山东维平从专业角度出发,分析该漏洞危害,并给出解决方案来精准防护该漏洞:
漏洞概述
Apache Log4j2 是一款开源的 Java 日志记录工具,大量的业务框架都使用了该组件。此次漏洞是用于 Log4j2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。漏洞利用无需特殊配置,经过分析和确认,Spring boot、Apache Struts2、ElasticSearch、Apache Solr、Apache Druid、Apache Flink、ElasticSearch等均受影响。
漏洞危害
由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。该漏洞触发通过 info、warn、error 都能做到,并且只需要部分日志内容可控就能触发,所以影响非常严重,并且大量在使用的开源组件也在使用,根据友商发布的一些信息,目前已经包括但不仅限于 SpringBoot、Apache Solr、Apache Flink 等。该漏洞只要外部用户输入的数据如果被日志记录,即可触发导致远程代码执行,成功利用该漏洞的攻击者可以在目标设备上远程执行恶意代码。
漏洞评估
公开程度:漏洞细节已纰漏
利用条件:无权限要求
交互要求:0 click
漏洞危害:高危、远程代码执行
影响范围:Log4j2.x <= 2.14.1
安全建议
(1)紧急缓解措施:
① 修改jvm参数 -Dlog4j2.formatMsgNoLookups=true
② 修改配置log4j2.formatMsgNoLookups=True
③将系统环境变量FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS 设置为 true
(2)检测方案:
①由于攻击者在攻击过程中可能使用 DNSLog 进行漏洞探测,建议企业可以通过流量监测设备监控是否有相关 DNSLog 域名的请求。
②排查应用是否引入了Apache Log4j2 Jar包,若存在依赖引入,则可能存在漏洞影响。
③建议企业通过监测相关流量或者日志中是否存在“jndi:ldap://”、“jndi:rmi”等字符来发现可能存在的攻击行为。
(3)修复方案:
检查所有使用了 Log4j2 组件的系统,官方修复链接如下:
https://github.com/apache/logging-log4j2/releases/tag/log4j-2.15.0-rc2