Sping Boot 에 apache log4j 적용
STS 에 프로젝트에 log4j 가 등록되어 있는지 확인 하자.
Project and External Dependencies 를 활성화하여 log4j 라이브러리를 확인한다.
log4j-core-2.14.1.jar 파일이 확인 된다. 2.14 면 취약점이 발견 된 버전이다.
Gradle인 경우 dependencies 에 등록 된 항목을 확인한다.
안정된 버전을 dependencies 아래에 추가하여 변경해 보자.
ext['log4j2.version'] = '2.15.0'
변경 후 Refresh Gradle Project 를 실행하여 반영해 보자.
반영 후 변경된 log4j를 확인 한다.
위 적용 방식 말고 실행 할 때 옵션을 주어 사용하는 방법도 있다. 아래와 같이 적용하면 취약점을 방지할 수 있다고 한다.
java -Dlog4j2.formatMsgNoLookups=true -jar webserver
추가로 spring boot 에서 기본으로 사용하는 SLF4 인터페이스에서 log4j 를 사용하기는 하나 문제가 되는 라이브러리는 log4j-core 라이브러리이기에 slf4는 사용이 가능합니다.
log4j-slf4j-impl-2.14.1 , log4j-to-slf4j-2.14 , log4j-api 라이브러리는 취약점과 무관합니다.
위에 나온 내용들은 spring boot 블로그에 기재된 정리하여 적어 보았습니다. 자세한 내용은 아래 링크 참조 하세요.
https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
Log4J2 Vulnerability and Spring Boot
<p>As you may have seen in the news, a new zero-day exploit has been reported against the popular Log4J2 library which can allow an attacker to remotely execute code. The vulnerability has been reported with <a href="https://nvd.nist.gov/vuln/detail/CVE-20
spring.io
Log4j 취약점 검색기
추가로 log4j 가 있는지 확인하는 라이브러리도 있어서 테스트 해보았습니다.
log4j 스캐너 제공 사이트
사이트에 접속하여 도구다운받기를 누릅니다.
그럼 jar 파일 하나가 나오는데 이것을 프로젝트 폴더에 복사합니다.
shell 하나를 띄워 써있는 명령어 대로 실행합니다.
java -jar LabradorLog4ShellDetector.jar -project webserver
중간에 WARNING 메시지와 함께 취약점이 발견 되었다고 업그레이드 하라고 메시지가 뜹니다.
패치 완료 후 메시지에서는 WARNING 메시지가 없습니다.
'기타' 카테고리의 다른 글
Apache logback 취약점 발견 CVE-2021-42550 (0) | 2021.12.20 |
---|---|
Apache Log4j 2 긴급 업데이트 패치 (0) | 2021.12.13 |
[VPN] SoftEther VPN 서버 구축하기 (feat 재택근무) (0) | 2021.12.09 |
댓글