스위스 정부에서 깔끔하게 정리해서 포스팅한 글을 참조 하였습니다.
거두절미 하고 Log4j 2.x 의 이슈 CVE-2021-44228 설명은 생략 하겠습니다.
- Message formatting 을 통한 lookup 동작을 위해 ${protocol:~~~} 의 패턴을 갖습니다. WAF 에 룰을 설정하여 차단합니다.
- Log4j2 의 message lookup 을 disable 합니다. (2.10 <= current < 2.15.0)
JAVA 환경변수-Dlog4j2.formatMsgNoLookups=true
또는
시스템 환경 변수LOG4J_FORMAT_MSG_NO_LOOKUPS=true
설정 합니다. - Log4j2 를 2.15.0 이상 으로 업그레이드 합니다.
- JNDI Lookup 을 disable 합니다. log4j-core artifact 에서 JndiLookup 클래스를 제거 하거나 Log4j2 를 2.16.0 으로 업그레이드 합니다. (Disable JNDI by default)
- Remote codebase 를 disable 합니다.
- RMI 기반 설정은
com.sun.jndi.rmi.object.trustURLCodebase
와com.sun.jndi.cosnaming.object.trustURLCodebase
를 false 로 셋팅 합니다.
8u121 부터 false 가 default 로 변경 되었습니다.
(https://www.oracle.com/java/technologies/javase/8u121-relnotes.html) - LDAP 기반 설정은
com.sun.jndi.ldap.object.trustURLCodebase
를 false 로 셋팅 합니다.
6u211, 7u201, 8u191, and 11.0.1 이상부터 false 가 default 입니다.
- RMI 기반 설정은
모두 안전하게 조치하여 보안 가득한 인프라 라이프가 되었으면 합니다.