log4j 취약점(CVE-2021-45105) 설명 및 대응 방법
가. 취약점 요약
항목 | 내용 | 비고 | |
CVE CODE | CVE-2021-45105 | ||
CVSS 점수 | 5.9 MEDIUM | ||
취약 대상 | log4j 2.0-alpha1 ~ 2.16.0 버전 이하 | Log4j 2.3.1, 2.12.3 버전 제외 | |
대응 방안 | JDK 8 이상 | log4j 2.17.1 이상으로 업데이트 | log4j 1.x 버전은 2015년에 EOS되었으므로, log4j 2.x 버전으로 업데이트 해야함 |
JDK 7 | log4j 2.12.4 이상으로 업데이트 | ||
JDK 6 | log4j 2.3.2 이상으로 업데이트 | ||
JDK 5 이하 | PatternLayout 변경 또는 삭제 |
나. 공격 원리
# curl server -H ‘X-Api-Version: ${${::-${::-$${::-$}}}}
공격자가 X-Api-Version 헤더에 위와 같은 페이로드를 포함한 요청을 서버에 전송하는 경우, 로그를 저장하는 과정에서 StackOverflowError가 발생하여 해당 프로세스가 종료될 수 있다
※ 해당 공격은 Log4j를 사용하는 응용 프로그램에서 'PatternLayout' 과 '쓰레드 컨텍스트 기능'이 사용되는 경우 발생
- 취약한 log4j.properties 설정
appender.console.type = Console
appender.console.name = console
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = !${ctx:loginId}! %m%n
rootLogger.level = ALL
rootLogger.appenderRef.file.ref = console
- 취약한 소스코드
ThreadContext.put(“test”, “${::-${ctx:loginId}}”);
logger.error(“Test”);
다. 공격 영향
Log4j를 사용하는 응용 프로그램 또는 서비스가 종료되어 장애가 발생할 수 있음
라. 공격 대상
log4j 2.0-alpha1 ~ 2.16.0 버전 이하
※ 취약점이 해결된 버전 제외(Log4j 2.3.1, 2.12.3 및 이후 업데이트 버전 제외)
※ log4j-core-*.jar 파일 없이 log4j-api-*.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음
※ log4j 1.x 버전은 이미 EOS되었으며, 다른 취약점이 존재하기 때문에 안전하지 않음
마. 대응 방안
Java 8 이상 : Log4j 2.17.1 이상 버전으로 업데이트
Java 7 : Log4j 2.12.4 이상 버전으로 업데이트
Java 6 : Log4j 2.3.2 이상 버전으로 업데이트
※ 버전 업데이트가 어려운 경우 아래의 방안으로 대응
- PatternLayout에서 ${ctx:loginId} 또는 $${ctx:loginId}를 (%X, %mdc, or %MDC)로 변경 또는 제거
- 소스코드 내에 ${ctx:loginId} 또는 $${ctx:loginId} 제거
바. 점검 도구(스캐너) 다운로드
2022.01.13 - [침해 사고 대응] - log4j 취약점 점검 도구(스캐너) 정리/다운로드
log4j 취약점 점검 도구(스캐너) 정리/다운로드
log4j 취약점 점검 도구(스캐너) 정리/다운로드 ※ 본문서는 21년 12월 22일을 기준으로 작성되었습니다. 1. Labrador Scaner v1.3.0 국산 오픈소스 취약점 점검 솔루션 개발사인 래브라도가 고려
hagsig.tistory.com
사. 참고 자료
KrCERT https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36397
KISA 인터넷 보호나라&KrCERT
KISA 인터넷 보호나라&KrCERT
www.boho.or.kr
CVE https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-45105
CVE - CVE-2021-45105
20211216 Disclaimer: The record creation date may reflect when the CVE ID was allocated or reserved, and does not necessarily indicate when this vulnerability was discovered, shared with the affected vendor, publicly disclosed, or updated in CVE.
cve.mitre.org
NVD https://nvd.nist.gov/vuln/detail/CVE-2021-45105
NVD - CVE-2021-45105
CVE-2021-45105 Detail Current Description Apache Log4j2 versions 2.0-alpha1 through 2.16.0 (excluding 2.12.3 and 2.3.1) did not protect from uncontrolled recursion from self-referential lookups. This allows an attacker with control over Thread Context Map
nvd.nist.gov
보안뉴스 https://www.boannews.com/media/view.asp?idx=103443
[긴급] 로그4j 신규 취약점 ‘CVE-2021-45105’과 패치 ‘Log4j 2.17.0’ 나와
log4j의 신규 취약점과 새로운 패치가 나와 보안담당자들의 시급한 업데이트가 요구된다. 아파치재단은 12월 18일 ‘Log4j 2.16.0’ 버전에서 동작하는 CVE-2021-45105 취약점을 추가로 공개했다. 안랩 ASE
www.boannews.com
'침해 사고 대응' 카테고리의 다른 글
logback 취약점(CVE-2021-42550) 설명 및 대응 방법 (0) | 2022.01.09 |
---|---|
log4j 취약점(CVE-2021-44832) 설명 및 대응 방법 (0) | 2022.01.09 |
log4j 취약점(CVE-2021-4104) 설명 및 대응 방법 (0) | 2022.01.09 |
log4j 취약점(CVE-2021-45046) 설명 및 대응 방법 (0) | 2022.01.09 |
log4j 취약점(CVE-2021-44228) 설명 및 대응 방법 (0) | 2022.01.09 |