Avatar
박기혁
좋아요
댓글
[ 긴급 ] Apache Log4j 보안 패치 안내문

 

Log4Shell - Remote Code Execution - log4j

 

개요

Apache Log4j는 Java 기반 애플리케이션의 로깅 기능을 위한 라이브러리입니다.

해당 취약점은 2.0.0 버전과 2.14.1 이하 버전에서 원격 공격자가 Apache Log4j를 호출한 Java 기반 애플리케이션과 동일한 권한으로 대상 시스템에서 코드를 실행할 수 있도록 합니다. 

이를 통해 원격 공격자는 공격자가 제어하는 문자열 값을 공격자의 JNDI LDAP 서버 조회와 함께 기록할 경우 서버에서 코드를 실행할 수 있습니다.

 

이 문제는 CVE-2021-44228 로 지정되었으며 심각도 영향은 Critical이며

CVSS 점수는 10점(최고점)로 평가 되었습니다 .

 

영향을 받는 버전

이 문제는 2.0과 2.14.1 사이의 log4j 버전에만 영향을 미칩니다.

 

해결 방안

    <참고> log4j 2.15.0으로 업데이트 하기 위해서는 JAVA8 이 필요합니다.

 

Workaround

  • 2.10.0 이상 2.14.1 이하 버전 사용시,

- 시스템 속성 log4j2.formatMsgNoLookups를 true로 설정

-Dlog4j2.formatMsgNoLookups=true

- JAVA 실행 계정의 환경 변수 혹은 시스템 변수를 true로 설정

LOG4J_FORMAT_MSG_NO_LOOKUPS=true

 

  • 2.0.0 이상 2.10.0 이하 버전 사용 시,

- 클래스 경로에서 JndiLookup 클래스를 제거합니다. ( 아래를 참고해 주세요 )

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

 

 

※ 주요 제품별 영향도 (2021.12.13 기준)

제품 영향도 관련 URL
RHEL log4j 1.x 버전 제공으로 영향도 없음 https://access.redhat.com/security/cve/cve-2021-44228
CentOS log4j 1.x 버전 제공으로 영향도 없음 https://access.redhat.com/security/cve/cve-2021-44228
AWX 관련 패키지 존재하지 않음, 영향도 없음  
Postgres 관련 패키지 존재하지 않음, 영향도 없음  
MariaDB 관련 패키지 존재하지 않음, 영향도 없음  
EPAS EFM log4j 2.x 사용으로 영향도 있음.
xDB와 MTK는 log4j 1.x 사용
 
tomcat

영향도 없음, 선택적으로 사용 여부에 따라서 영향도 존재, Default 사용안함.

https://bishopfox.com/blog/log4j-zero-day-cve-2021-44228
wildfly

영향도 없음, 선택적으로 사용 여부에 따라서 영향도 존재, Default 사용안함.


https://twitter.com/WildFlyAS/status/1469362190536818688
jboss eap

EAP7 log4j 1.x 버전 제공으로 영향도 없음

https://access.redhat.com/security/cve/cve-2021-44228
K8s K8s 자체 영향도 없음. 배포 이미지에 포함되어 선택적으로 사용 가능하므로 관련하여 확인 필요  
Docker Docker Runtime 영향도 없음. 단, Docker Desktop에 한해 Docker Desktop 4.3.1+ 이상 업그레이드 권고

https://docker.com/blog/apache-log4j-2-cve-2021-44228

Kafka 버전에 따라 영향도 있음 https://mvnrepository.com/artifact/org.apache.kafka/kafka-log4j-appender
Elastic Search

영향도 있음,

Elasticsearch
6,7 버전의경우 꼭 수정할 필요는 없으나, "-Dlog4j2.formatMsgNoLookups=true" 옵션 권고

Logstash
JndiLookup 클래스 제거

APM java agent
"Dlog4j2.formatMsgNoLookups=true"

 

https://discuss.elastic.co/t/apache-log4j2-remote-code-execution-rce-vulnerability-cve-2021-44228-esa-2021-31/291476

 

 

FAQ

Q: 보안 수정 또는 완화를 적용한 후 서비스나 응용 프로그램을 다시 시작해야 합니까? 그렇다면 어떤 것이 있습니까? 

A: 애플리케이션 배포 전략에 따라 다릅니다. 예를 들어:

  • Java 기반 응용 프로그램의 경우 보안 수정 사항을 적용한 후 응용 프로그램 서버를 다시 시작해야 합니다.

Q: 보유하고 있는 시스템이 현재 log4j를 사용하고 있는지 어떻게 검증이 가능한가요 ? 

A: 해당 어플리케이션 벤더에 문의해 보시는게 가장 정확하며 현재 국내 보안 업체에서 스캐너 점검도구를 배포 하고 있습니다. 아래 Site 에서 제공해 주는 도구를 이용해 볼 수 있습니다.

 

Q: 폐쇄망을 사용 중에 있습니다. 이번 보안 취약점은 log4j 취약점만 있으면 공격이 가능한가요 ?

A: 아래 공격 시나리오의 결과로 보면 공격자가 만든 임의의 LDAP 서버와 통신이 가능한 환경에서 발생 가능한 것으로 확인 됩니다.

 다만, 폐쇄망 이라도 위험에 노출될 가능성이 존재 하오니 꼭 패치를 권고 드립니다.

 

1.공격자는 log4j 서버에 Ldap 주소 포함하여 HTTP Request 요청.

2.서버에서 log4j를 통해 로그 생성 과정에서 ldap 주소를 만남.

3.ldap 서버로 이동하여 ldap에서 악성 클래스 파일 또는 http기반 주소로  Response함.

4.log4j 서버에서 악성 클래스 파일이 실행 또는 다운로드 됨.

mceclip0.png

출처 : https://www.fastly.com/blog/digging-deeper-into-log4shell-0day-rce-exploit-found-in-log4j

 

Q: JAVA 또는 JDK 버전 6u211, 7u201, 8u191, 11.0.1 이상 버전에서는 

    com.sun.jndi.ldap.object.trustURLCodebase는 false로 설정되어 JNDI가 LDAP를 사용하여 원격코드를

    로드할 수 없으므로 영향을 받지 않을 수 있다 라고 하는데 맞는지요 ?

     (https://www.cnblogs.com/yyhuni/p/15088134.html)

A: 일부 해외 사이트에서 관련하여 리포트 된 사례가 있으나 공식 Site 에 Workaroud 조치로 가이드 되어 있지 않아 공식 가이드 문서로 패치 및 완화 조치를 권고 드립니다.