본문 바로가기

STUDY/Spring

Spring | log4j → log4j2로 변경하기 (CVE-2019-17571)

기존 log4j는 보안상 취약점 및 오랜시간 동안 업데이트 되지 않았다고 하여 log4j2로 변경해 보았음.

(github에서 알림이 와서 바꿈...)

 

+)읽어보기

 

[Research & Technique] Apache log4j Remote Code Execution 취약점(CVE-2019-17571)

​■취약점 개요2019년 12월 20일, JAVA 애플리케이션 로그 수집 라이브러리인 Apache log4j 1.2.x 버...

blog.naver.com

 

1. pom.xml수정 

기존 log4j는 org.apache.log4j였다면 log4j2는 org.apache.logging.log4j임.

<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-api</artifactId>
  <version>2.12.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-core</artifactId>
  <version>2.12.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-jcl</artifactId>
  <version>2.12.1</version>
</dependency>
<dependency>
  <groupId>org.apache.logging.log4j</groupId>
  <artifactId>log4j-slf4j-impl</artifactId>
  <version>2.12.1</version>
</dependency>

 

2. log4j.xml 변경

파일명은 log4j2.xml

 

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
  <Appenders>
    <Console name="STDOUT" target="SYSTEM_OUT">
      <PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
    </Console>
  </Appenders>
  <Loggers>
    <Logger name="org.apache.log4j.xml" level="info"/>
    <Root level="debug">
      <AppenderRef ref="STDOUT"/>
    </Root>
  </Loggers>
</Configuration>

 

 

 

+) 참고

 

log4j에서 log4j2 Migration

자바에 대표적인 로깅 유틸리티로 log4j를 꼽을 수 있다.

medium.com

 

 

[Java Library] slf4j + log4j2 한 방 정리

| slf4j와 log4j2 slf4j는 자바 로깅 시스템을 쉽게 사용할 수 있도록 해주는 라이브러리이며, 다양한 자바 로깅 시스템을 사용할 수 있도록 파사드 패턴(facade pattern) 및 추상화를 통해 로깅 기능을 제

engkimbs.tistory.com

 


 

 

Log4j – Apache Log4j 2

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

logging.apache.org

log4j2의 이슈(CVE-2021-44228)에 따라 2.15.0으로 버전 업그레이드를 해주어야 한다.

참고로 spring boot를 사용할 경우 log4j로 기본 로그모듈을 log4j로 변경한 것이 아니라면, 해당 이슈와는 관련이 없다.
log4j-core를 사용하는지 확인하고, 사용한다면 수정이 필요하다.

maven은 pom.xml을 업데이트하고,

<properties>
    <log4j2.version>2.15.0</log4j2.version>
</properties>

 

gradle은 build.gradle을 업데이트한다.

ext['log4j2.version'] = '2.15.0'

 

만약 자바 버전이 1.8 이하일 경우

시스템 속성을 변경해주는 방법을 사용할 수 있다. jar를 실행할 때 아래 설정을 추가한다.

-Dlog4j2.formatMsgNoLookups=true

참고로 log4j는 2.12.1까지만 자바 1.7버전을 지원하며 이후로는 지원계획이 없다고 밝혔다.

 

 

 

Log4J2 Vulnerability and Spring Boot

<p>As you may have seen in the news, a new zero-day exploit has been reported against the popular Log4J2 library which can allow an attacker to remotely execute code. The vulnerability has been reported with <a href="https://nvd.nist.gov/vuln/detail/CVE-20

spring.io

 

 

Log4j – Download Apache Log4j 2

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

logging.apache.org