프로그래밍/Java

Log4j2 취약점 해결 : 보안 업데이트

소행성왕자 2021. 12. 13. 10:24

□ 개요
 o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1]
 o 공격자는 해당 취약점을 이용하여 악성코드 감염 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고
 
□ 주요 내용
 o Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2]
   * 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티

□ 영향을 받는 버전
 o Apache Log4j 2
   - 2.0-beta9 ~ 2.14.1 모든버전
 o Apache Log4j 2를 사용하는 제품
    ※ 참고 사이트 [4]를 확인하여 해당 제품을 이용 중일 경우, 해당 제조사의 권고에 따라 패치 또는 대응 방안 적용
 
□ 해결방안[1]
 o 제조사 홈페이지를 통해 최신버전(2.15.0)으로 업데이트 적용[3]
   ※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전 업데이트 적용 권고

 o 최신버전으로 업데이트가 어려운 경우 사용중인 버전확인 후 버전별 조치 적용
  - (버전확인방법)
       1. log4j가 설치된 경로의 (pom.)파일을 열어 "log4j"로 검색
       2. 검색결과 "사용버전(version)" 확인가능
  - (조치방법) 2.0-beta9 ~ 2.10.0
      ※ JndiLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
  - (조치방법) 2.10 ~ 2.14.1
      ※ log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정

 

공격자가 원격으로 코드를 실행할 수 있는 인기 있는 Log4J2 라이브러리에 대한 새로운 제로 데이 익스플로잇이 보고되었습니다.

취약점은 jar 에 대해 CVE-2021-44228 로 보고 되었으며 Log4J v2.15.0 에서 수정되었습니다 .

maven

Maven 사용자의 경우 다음 지침에 따라 log4j2.version속성을 설정할 수 있습니다.

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

gradle

Gradle 사용자의 경우 이 지침에 따라 버전 속성을 업데이트하거나 BOM을 가져오거나 resolutionStrategy.

대부분의 사용자는 log4j2.version속성을 설정하는 것으로 충분합니다.

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

종속성 관리 플러그인 대신 Gradle의 플랫폼 지원을 사용하는 경우 Log4J BOM에 종속성을 추가할 수 있습니다.

implementation(platform("org.apache.logging.log4j:log4j-bom:2.15.0"))

보안패치 적용후