본문 바로가기

개발/Linux & DevOps

Log4J 자바 보안 취약점, 버전 조회, 조치 방법

당신은 핵을 당했던 것!

 

최초 발생


2021년 11월 24일 알리바바 클라우드의 보안팀의 Chen Zhao Jun 이 처음 발표.

 

위험 이유

Log4J 는 거의 모든 권한을 갖고 있기 때문에 사실상 해커가 서버 컴퓨터를 원격조종 가능하게 되는 엄청난 취약점인 셈이다.


조치 방법

log4j 2.15.0 이전 버전에서 모두 해당 취약점을 가지므로 업데이트 해야한다.

버전확인 (택1) :

  • 자바/톰캣 등 의 lib 폴더 속에 jar 형태로 들어있다. log4j-2.0.1.jar 와 같은 형태.
  • ps -elf | grep log4j 로 확인. (톰캣 설정에 따라 보이지 않으면 위 방법으로 확인)

1) 2.0-beta9 ~ 2.10.0 의 경우

JndiLookup 클래스를 경로에서 제거하기 :
zip -q -d log4 j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookupclass

2) 2.10 ~ 2.14.1 의 경우

log4j.formatMsgNoLoopkups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정하여
제조사 홈페이지를 통해 최신 버전 (2.15.0)으로 업데이트 적용

3) 1.X.X 이 경우

해당 취약점에는 노출되지 않으나, 지원 종료로 인해 타 취약점에 노출되었기 때문에
가능한 빠른 시일 내 조치 필요.


발생 원인

먼저 알아야할 개념 :

JNDI(Java Naming and Directory Interface)는 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup)하기 위한 자바 API

LDAP(Lightweight Directory Access Protocol)는 DAP라는 디렉터리 서비스(이름을 기준으로 대상을 찾아 조회 / 편집할 수 있는 서비스)를 기반으로 경량화되어, 가벼운 네트워크 대역폭으로 네트워크 상에서 조직이나 개인의 파일 / 디바이스 정보를 조회하게 해주는 소프트웨어 프로토콜.

 

아파치 Log4j 2.14.1 이하 버전의 JNDI에서 사용되는 설정(Configuration), 로그메시지, 파라미터들이 LDAP와 그 외의 JNDI를 보호하지 못해서 발생된 에러.

로그 메시지 혹은 로그 메시지 파라미터를 제어할 수 있는 공격자는 메시지 조회가 활성화된 경우 LDAP서버에서 로드된 임의의 코드를 실행할 수 있게 됩니다.

이전 릴리스에서는 시스템 속성 "log4j2.formatMsgNoLookups"을 true 로 설정하거나, 클래스의 경로에서 JNDILookup클래스를 제거하여 이 동작을 완화할 수 있습니다.

 

참고한 글:

 

도움이 되셨다면 ♡공감 ↓광고클릭으로 저를 응원해주세요!!! :D

반응형