https://nvd.nist.gov/vuln/detail/CVE-2021-44228

https://nvd.nist.gov/vuln/detail/CVE-2021-44228

이번 달(2021-12) 초에 큰 이슈가 됐던 log4shell 취약점, cve-2021-44228이다.

cve score를 보면 10(critical)인 것을 알 수 있다. 공격 방법도 굉장히 간단하고 많은 서버가 이를 사용하기에 정말 파급력이 크고 중대한 취약점이다.

취약점은 바로 Log4j2라는 라이브러리에 의해서 발생된다.

cve 설명

log4j2에 포함된 JNDI 기능이 공격자의 LDAP 및 기타 JNDI 쿼리를 통해악용되어 RCE(remote code execution)로 연계 가능한 취약점이다.

☑️ 배경 지식


Log4j란..?


2001년에 만들어진 자바 기반의 로깅 유틸리티로 Apache 소프트웨어 재단의 프로젝트 Apache Logging Service의 일부다.

개발자가 프로그램을 개발할 때 디버깅 등을 위해서 로그를 남길 때 사용된다.

한마디로 log를 남기는데 사용되는 라이브러리다.

// 예시 코드

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

public class Test
{
		public static void main(String[] args)
		{
				Logger logger = (Logger) LogManager.getLogger(Test.class);
        logger.info("A");
        logger.info("B");
		}
}

위처럼 작성하면 “A”, “B”가

“[시간] [로그를 출력하는 패키지 명] A”

“[시간] [로그를 출력하는 패키지 명] B”

형식으로 로그가 출력된다. info 말고도 trace, debug, error 등으로 로그 레벨을 설정할 수 있다.