Apache Log4j(CVE- 2021- 44228)
취약점 분석 보고서

(‘21.12.12, 교육부 사이버안전센터)

 취약점 개요

❍ 대상 시스템 :Apache Log4j 2*) 라이브러리를 사용하는 모든 시스템

* Log4j : Apache 재단에서 웹 서비스 로그를 기록할 수 있도록 개발한 자바 기반의 라이브러리

❍ 취약 버전 : 2.0- beta9 ~ 2.14.1 모든 버전

❍ 패치 버전 : 2.15.0 버전

❍ 취약점 내용 : 원격 코드 실행 취약점

 취약점 위험성

❍ Apache Log4j 취약점(CVE- 2021- 44228, JNDI Injection)을 통해 원격 코드 실행 가능

❍ 취약 버전의 Log4j를 사용하는 모든 시스템*)이 공격 대상이 되며 해당 취약점을 통해 악성코드 감염, 자료유출 등의 악성 행위 가능

* 점검 필요 시스템 : 외부에서 접근 가능한 웹페이지를 보유한 모든(상용 포함) 시스템

 취약점 상세 분석

❍ 원격 코드 실행 취약점

-  취약 버전 사용 시 JNDI Inejction 공격이 가능하며 공격자는 User- Agent 및Content- Type 값 변조를 통한 JNDI Injection을 시도하며 성공 시 원격 코드 실행 취약점 악용 가능

-  취약점 공격 성공 시 아래와 같은 순서를 통해 악성 명령 실행

1. 피해 시스템에서 공격자의 LDAP 서버로 접근

2. LDAP 서버로부터 악성 Class 파일이 저장된 웹서버 경로 수신

3. 수신 받은 경로로 악성 Class 파일 요청

4. 악성 Class 파일 다운로드 후 실행

- 1 -

 

User- Agent 값 변조를 통한 JNDI Injection 공격

 

CVE- 2021- 44228 공격 순서도

 취약점 점검 방법

❍ 윈도우 시스템

-  Windows 검색 기능을 활용 'Log4j' 이름의 파일 검색

-  검색된 파일명에 포함된 버전명과 취약버전을 비교하여 취약여부 확인

 

Windows 검색 기능을 이용한 Log4j 검색

❍ 리눅스 계열 시스템

-  리눅스 검색 기능을 활용 `Log4j` 이름의 파일 검색

-  검색된 파일명에 포함된 버전명과 취약버전을 비교하여 취약여부 확인

 

Linux 검색 기능을 이용한 Log4j 검색

- 2 -

 탐지방안

❍ 취약점 공격이 확인된 시점 이후 아래 사항에 대해서 확인

※ 취약점 공격이 확인되지 않은 경우 12월 11일을(취약점 코드 공개 시점) 기준으로 점검

1) 웹 방화벽 등 보안 장비를 통해 비인가된 외부 IP 접근 여부 점검

2) 취약점 공격이 확인된 시점 이후에 생성된 파일의 악성여부 점검


 조치방안

❍ 제조사 홈페이지를 통해 최신버전(2.15.0)으로 업데이트 적용

❍ 업데이트가 불가능할 경우 아래 내용을 참고하여 보안 조치

1) 2.0- beta9 ~ 2.10.0 버전의 경우

-  JndiLookup 클래스를 경로에서 제거

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

2) 2.10 ~ 2.14.1 버전의 경우

-  log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정

- 3 -