프로그래밍 언어/JAVA

[정보] Apache Log4j 2 보안 업데이트 권고 사항

투칼론 2021. 12. 14. 21:16
반응형

1. CVE-ID : CVE-2021-44228 / CVE-2021-45046

참고로, Apache Log4J는 효율적인 로그를 남기기 위한 프레임워크 입니다.

 

2. 보안 이슈 설명

 

* CVE-2021-44228 : https://nvd.nist.gov/vuln/detail/CVE-2021-44228

- 구성, 로그 메시지 및 매개변수에 사용되는 JNDI 기능은 공격자가 제어하는 ​​LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 않습니다. 

- 로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의의 코드를 실행할 수 있습니다. 

- 영향받는 버전 :  2.0-beta9 ~ 2.14.1 버전 (Log4j 2.12.2 제외)

 

* CVE-2021-45046 : https://nvd.nist.gov/vuln/detail/CVE-2021-45046

- Apache Log4j 2.15.0에서 CVE-2021-44228을 해결하기 위한 수정 사항이 기본이 아닌 특정 구성에서 불완전한 것으로 나타났습니다.

- 이것은 로깅 구성이 컨텍스트 조회(예: $${ctx:loginId}) 또는 스레드 컨텍스트 맵 패턴( %X, %mdc 또는 %MDC) JNDI 조회 패턴을 사용하여 악의적인 입력 데이터를 조작하여 일부 환경에서는 정보 누출 및 원격 코드 실행, 모든 환경에서는 로컬 코드 실행이 발생합니다.

- 영향받는 버전 :  2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0 버전

 

3. 권고안

   · Java 8 : Log4j 2.16.0으로 업데이트
   · Java 7 : Log4j 2.12.2으로 업데이트

   · Java 6이하로 업그레이드가 어려운 경우 : JndiLookup 클래스를 경로에서 제거

  zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class

 

4. Log4j2 버전 확인 방법

 

1) 운영환경

    : log4j-core-2.x.jar  - 2.x가 버전임 (J2EE 환경에서 배포된 경우에는 WEB-INF/lib에 보통 위치함)

 

2) 개발환경

    : maven을 빌드도구로 사용하는 경우 - pom.xml에서 아래 2.x가 버전임

<dependencies>
......
  <dependency> 
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-core</artifactId>
    <version>2.x</version>
  </dependency>
</dependencies>

 

위의 업데이트 버전이 추가적으로 변경될 수 있으니, 최종 확인 후 업데이트 필요함.

 

참고로, Apache Log4j 1.x를 사용하는 경우 https://blueyikim.tistory.com/2292 보안 업데이트 권고

 

[자료참조] https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

[참고URL] Log4J 다운로드 : https://logging.apache.org/log4j/2.x/download.html