
Log4Shell 보안 취약점 CVE-2021-44228에 대한 완화 조치
자세한 내용은 이 YouTube 동영상을 참조하세요.
이 게시물은 log4j2에서 발견된 CVE-2021-44228 보안 취약점(일명 Log4Shell 및 LogJam)에 대한 완화 방법에 대한 간략한 글입니다.
모든 정보와 함께 제공되는 코드 샘플 및 예제는 교육 및 정보 제공 목적으로만 제공되며, 자신의 시스템에서만 사용해야 합니다.
주의해서 진행하시기 바라며, 모든 책임은 본인에게 있습니다.
널리 사용되는 Java 로깅 프레임워크 log4j2의 특정 버전에 존재하는 RCE(원격 코드 실행) 형태의 제로데이 익스플로잇입니다.
CVSS(Common Vulnerability Scoring System) 척도에서 10점 만점에 10점으로 평가되었습니다.
이 취약점은 11월 24일 알리바바 클라우드 보안 팀이 Apache에 보고했으며, 알리바바 클라우드 보안 팀의 Chen Zhaojun이 발견했습니다.
그 후 2021년 12월 9일 log4j 프로젝트의 GitHub를 통해 공개적으로 공개되었습니다.
로깅 라이브러리를 사용하는 실행 중인 애플리케이션은 원격으로 사용자가 제공한 입력을 적절히 검증하지 않고 사용하는 경우 취약해집니다.
애플리케이션이 사용자가 제공한 문자열로 로그 이벤트를 처리할 때, 취약한 시스템은 공격자가 제어하는 도메인에서 악성 코드를 다운로드하여 실행할 수 있으며, 이는 효과적으로 취약한 애플리케이션을 장악하게 됩니다.
이 취약점은 다음 두 가지 종속성을 도입한 경우 Apache Log4j 2 버전 2.0-beta9부터 2.14.1까지 영향을 미칩니다.
log4j 버전 1에는 존재하지 않습니다.
6u211, 7u201, 8u191, 11.0.1보다 높은 JDK 버전은 LDAP 공격 벡터의 영향을 받지 않습니다.
왜 그럴까요? 이는 이러한 JDK 버전에서 com.sun.jndi.ldap.object.trustURLCodebase 속성이 false로 설정되어 있기 때문입니다.
결과적으로 JNDI는 LDAP를 사용하여 원격 코드를 로드할 수 없습니다.
Apache Software Foundation의 인기 프로젝트(예:)
ASF 외부의 다른 오픈 소스 프로젝트(예: Redis, ElasticSearch, Logstash)도 영향을 받을 수 있습니다.
영향을 받는 버전을 사용 중이라면 즉시 log4j-core 및 log4j-api 종속성을 log4j v2.15로 업그레이드하십시오.
log4j v2.10 이상을 사용 중이며 즉시 업그레이드할 수 없는 경우 시스템 속성을 변경하십시오:
log4j2.formatMsgNoLookups=true
zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
이 명령은 영향을 받는 버전의 log4j-core*.jar 파일에서 해당 클래스를 제거합니다.
추가 업데이트를 계속 지켜봐 주십시오.
질문이 있으시면 언제든지 문의해 주십시오.
감사합니다.