Dev study and notes

[log4j] log4j 취약점 해결 초간단 본문

studyLog

[log4j] log4j 취약점 해결 초간단

devlunch4 2021. 12. 13. 14:58
반응형

+추가수정 2.15 버전도 취약하다고하니 2.16 버전을 사용하기 바란다

2.16 버전으로 바꾸기!



출처: https://openlunch.tistory.com/115 [LIKE A D!AMOND]

 

log4j 취약점 관련 간단히 해결을 해보자..

 

해결법 보려면 스크롤 아래로 내려서 순서확인한다~

 

- 안내

일단 문제 되는 버전 log4j 2.0.0 ~ 2.14.1 버전.

 

 

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

1. 취약점 내용
Apache Log4j 를 이용하여 원격 코드 실행이 가능한 JNDI 인젝션 취약점 입니다. 사용자의 입력으로 발생한 오류메시지 로그를 기록할 때 임의코드 실행이 가능하게 됩니다.
2. 취약점 대상
- Apache Log4j 2.0 이상 2.14.1 이하 버전
- 2.15.0-rc1 버전은 'log4j2.formatMsgNoLookups=true' 가 기본값으로 제공되어 취약하지 않으나 이를 변경하지 않도록 주의
- 취약한 버전에 포함되지 않으면 취약점 없음
3. 보안 권고 사항
1. 제조사 홈페이지를 통해 최신버전(2.15.0)으로 업데이트 적용
2. 소스 수정이 불가능한 경우 아래 설정을 변경하여 조치
** 버전 정보 주의 **
 (1) log4j 2.0-beta9 ~ 2.10.0 버전
  +JndLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
 (2) log4j 2.10.0 ~ 2.14.1 버전
  +JVM 매개변수를 아래와 같이 수정
   -Dlog4j2.formatMsgNoLookups=true
  +또는 config파일에서 logging 패턴 레이아웃을 "%m -> %m{nolookups}" 로 수정
​ (3) log4j 2.0.0 ~ 2.14.1 버전
   +config파일에서 logging 패턴 레이아웃을 "%m -> %m{nolookups}" 로 수정

 

 

- 내 프로젝트의 문제점

나의경우 문제는 디펜던시에서 직접 명시하지 않았는데

log4j가 호출이 된다.

이렇다는것은 타 라이브러리 또는 디펜던시에서 log4j를 호출한다는것 ,, 과거버전으로..

이를 해결하기엔 간단하게 해당 라이브러리/디펜던시의 버전을 명시해 주면 된다.

 

 

- 해결법

다시 정리하면 기존 pom.xml에서 log4j 는 직접적으로 maven을 통해 가져오지 않고 dependency 내 <groupId>org.springframework.boot</groupId> 를 갖는 부분에서 log4j 취약버전을 가져오는 것으로 예상.

이를 해결하고자 해당 log4j 버전을 직접 명시하여 적용하였다.

 

1. ~ 사용자/.m2/repository 폴더를 비웠다.
2.  현재 프로젝트에서 사용한 log4j 확인 (maven dependency 부분 찾기)

3. pom.xml 에서 log 관련 버전 설정

  • dependency - org.springframework.boot
  • dependency - sl4j

에서 log4j 2.11.2 버전을 가져오는 것으로 예상되어 해당 버전을 현재 문제 없는 버전으로 변경하고자 함.
pom.xml 에 버전 명시 추가

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

pom.xml 에 확인 적용

pom.xml 저장후 maven project update 또는 re build.

변경 확인

 

 

위처럼 하면 버전 업데이트가 된다!

 

두둥!

 

 

 

 

*참조 사이트 : 

https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot

 

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


CVE - CVE-2021-44228 (mitre.org)

 

CVE - CVE-2021-44228

Apache Log4j2 <=2.14.1 JNDI features used in configuration, log messages, and parameters do not protect against attacker controlled LDAP and other JNDI related endpoints. An attacker who can control log messages or log message parameters can execute arbitr

cve.mitre.org

 

반응형
Comments