CVE 링크 : https://nvd.nist.gov/vuln/detail/CVE-2021-44228
매우 유용하게 사용중인 아파치 오픈소스 중 로깅 유틸리티 프로그램인 LOG4J에서 매우 치명적인 취약점이 발견되어 요즘 뉴스, 인터넷이 뜨겁습니다.
로그를 이쁘게 찍어주는 매우 고마운 프로그램인데요, log4j에 대한 설명보다는 어떻게 처리했는지, 어떻게 그나마 쉽게 조치할 수 있었는지 적어보려고 합니다.
제가 일하고 있는 직장에서도 위의 취약점을 조치하여 보고하라고 해서 ㅠㅠ
늦은감이 없지않아 있지만 오늘 오후 급하게 부랴부랴 작업했습니다.
대상이 되는 log4j의 버전은 아래와 같습니다.
□ 영향을 받는 버전
o Apache Log4j 2
- 2.0-beta9 ~ 2.14.1 모든버전
o Apache Log4j 2를 사용하는 제품
출처 : KISA
우선 현재 가장 크게 알려진 조치 방법은 두가지로 알고 있습니다.
(알고 계시다면.. 댓글 부탁드립니다 케케..)
1. 제조사 홈페이지를 통해 최신버전으로 업데이트 적용
2. 최신버전으로 업데이트가 어려운 경우 사용중인 버전확인 후 버전별 조치 적용
출처 : KISA
2번의 경우 아래와 같이 작업하시면 취약점 조치가 가능 합니다.
V2.0-beta9 ~ 2.10.0
JndiLookup 클래스를 경로에서 제거 (org/apache/logging/log4j/core/lookup/JndiLookup.class)
~ 2.14.1
log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정
제가 현재 담당하고 있는 사이트는 대부분 최초 구축한 지 오래된 사이트가 많아, 대부분 log4j core가 2.0 ~ 2.1이었습니다.
사용중인 log4j 2.0 버전같은 경우 jar파일내의 class파일을 삭제하고 로컬 환경에서 서버 재기동을 시도하였더니 ClassNotFound Exception을 뱉으면서 기동 자체가 불가능하여, 2.1로 버전업하고 2.1버전의 jar파일내의 있는 JndiLookup.class 파일을 삭제하고 재기동 시도하였더니 구동되었습니다.
기동 후 모니터링을 해보니 WARN을 뱉는 경우도 있었는데, 사이트 이용에는 큰 문제가 없었습니다.
보통 jar파일 내의 내용을 확인하거나 수정하려면 리눅스 환경에서나, 윈도우 환경에서나 jar파일을 DOS환경에서 열어 일일이 찾아 삭제를 해줘야하지만, Windows 환경에서는 보다 쉽게 처리가 가능합니다.
우선 반디집을 설치해주시고, 문제가 되는 log4j-core-2.x.jar 파일을 우클릭 해줍시다.
압축 파일 미리 보기를 클릭해주시고 문제의 JndiLookup.class가 있는 위치로 이동해주세요!
경로 > org/apache/logging/log4j/core/lookup/
우클릭하셔서 선택한 파일 삭제해주시면 됩니다.
JndiLookup.class가 삭제된 것을 확인하시고, 서버에 올리셔서 재기동하시면 됩니다.
무엇보다 개발서버가 있거나 로컬환경에서 테스트가 가능하다면 우선 테스트해보시고, 로깅이 찍히는 지 확인 해보시고 반영하시길 바랍니다!
확인도 안하고 반영했다가 진짜 큰일나는수가..
'Engineering' 카테고리의 다른 글
싱글레톤이 아닌 싱글톤에 대하여 (0) | 2020.10.10 |
---|---|
디자인 패턴, Design Pattern (0) | 2020.10.09 |
프로그래밍 아키텍쳐, Architecture (0) | 2020.10.09 |
HTTP 통신(WEB 통신) 과정 (0) | 2020.09.29 |