首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何验证是否应用了Log4Shell修补程序?

如何验证是否应用了Log4Shell修补程序?
EN

Security用户
提问于 2021-12-11 11:38:05
回答 1查看 1.1K关注 0票数 3
  1. log4j-corelog4j-api升级到2.15.0,但将绑定库log4j-slf4j-impl留给2.14.1是否就足够了,因为mvn dependency:tree表明log4j-slf4j-impl:2.14.1依赖于log4j-core:2.15.0log4j-api:2.15.0,并且日志记录工作正常吗?我之所以问这个问题,是因为在昨天发生大灾难的时候,log4j-slf4j-impl还没有发布2.15.0
  2. 2.15.0中的修复是否包括了将LOG4J_FORMAT_MSG_NO_LOOKUPS设置为true的更改?运行以下单元测试表明,变量仍然是false,第一个问题中的所有依赖项都被设置为2.15.0版本:
代码语言:javascript
复制
import org.apache.logging.log4j.util.PropertiesUtil;

@Test
public void testLog4j() {
    PropertiesUtil props = PropertiesUtil.getProperties();
    boolean val = props.getBooleanProperty("LOG4J_FORMAT_MSG_NO_LOOKUPS");
    System.out.println(val);
}
EN

回答 1

Security用户

回答已采纳

发布于 2021-12-12 20:19:33

修复方法是:默认情况下,Log4j2不再格式化消息中的查找.

log4j-slf4j-impl不包含易受攻击的代码,所以应该是可以的,但是现在更新到2.15.0。

LOG4J_FORMAT_MSG_NO_LOOKUPS不存在于您的测试中,所以它返回false,但这不是在log4j中读取它的方式。该属性现在被读取为PropertiesUtil.getProperties().getBooleanProperty("log4j2.formatMsgNoLookups", true),因此如果它不存在,那么它将默认为true。这可以通过以下方式进行检查:

代码语言:javascript
复制
import org.apache.logging.log4j.core.util.Constants;
...
System.out.println(Constants.FORMAT_MESSAGES_PATTERN_DISABLE_LOOKUPS);

在新版本中,这是正确的,但也没有使用。相反,必须通过包含%msg{lookups}的模式启用查找。

来自MessagePatternConverterTest的测试应该显示这些查找是否正在进行:

代码语言:javascript
复制
@Test
public void testDisabledLookup() {
    final Configuration config = new DefaultConfigurationBuilder()
            .addProperty("foo", "bar")
            .build(true);
    final MessagePatternConverter converter = MessagePatternConverter.newInstance(
            config, new String[] {"nolookups"});
    final Message msg = new ParameterizedMessage("${foo}");
    final LogEvent event = Log4jLogEvent.newBuilder() //
            .setLoggerName("MyLogger") //
            .setLevel(Level.DEBUG) //
            .setMessage(msg).build();
    final StringBuilder sb = new StringBuilder();
    converter.format(event, sb);
    assertEquals("${foo}", sb.toString(), "Expected the raw pattern string without lookup");
}
票数 3
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/257897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档