개발/Backend
[Spring Boot] Log4J2 shell 취약점 대응하기
HuiYa
2021. 12. 13. 10:13
이 글을 보는 분들이라면 다들 알겠지만 Log4J2 라이브러리에 취약점이 보고되었다.
참고: CVE-2021-44228
스프링부트는 기본적으로 기본 로그 시스템을 Log4J2로 변경했을때만 해당이 된다고 한다.
취약점에 대한 뉴스를 접하자마자 github의 pom.xml부터 확인했었고,
해당사항이 없는 걸 보고 안심한채 주말내내 불구경하는 마음으로 구경했었는데...
출근 후 확인해보니 디펜던시 걸린 다른 라이브러리에서 Log4J2를 사용하고 있었다.
./mvnw dependency:list | select-string -pattern log4j
나에게 사용하고 있는 라이브러리의 업데이트를 기다릴 시간따윈 없다.
강제로 버전을 올리는 방법을 알아보자
1. Maven 사용시
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
pom.xml의 properties를 설정하여 강제로 버전을 올려주면 된다.
2. Gradle 사용시
ext['log4j2.version'] = '2.15.0'
대부분은 log4j2.version을 설정하는 것으로 충분하다고 한다.
3. 버전 업데이트가 불가능할 경우
log4j2.formatMsgNoLookups=true
log4j2.properties에 위와 같은 옵션을 추가해도 된다고 한다.
java -Dlog4j2.formatMsgNoLookups=true -jar myapp.jar
혹은 프로젝트 실행시 위와 같은 옵션으로 실행하면 된다.
결과
빌드 후 확인해보니 Log4J2가 정상적으로 업데이트 된 모습을 볼 수 있다.
출처
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot