
Swiss Government Computer Emergency Response Team
Log4j 2란? #
- Log4j 2를 간단히 알아보도록 한다. Log4j 2는 아파치 소프트웨어 재단에서 개발한 인기 있는 Java 로깅 프레임 워크로, 프로그램을 작성하는 도중에 로그를 남기기 위해 사용되는 자바 기반 로깅 유틸리티이다. CVE-2021-44228 은 이 유틸리티에서 발견된 주요 취약점으로, Log4j 2 버전에 존재하는 JNDI(Java Naming and Directory Interface) 인젝션 취약점을 악용하여 원격 코드 실행(RCE)이 가능하도록 하게 한다. 이는 다시 말해 공격 타깃이 되는 서버나 PC의 모든 권한을 취득할 수 있다는 의미이기도 하다. 비밀번호 입력 없이 서버를 통해 내부망에 접근해 데이터를 탈취하거나 랜섬웨어 등의 악성코드를 실행시켜 돈을 요구할 수도 있다.
- CVE-2021-44228은 미국 국토아노국 CISA에서 정한 것으로, CVE(Common Vulnerablilties and Exposures)로 공개된 보안 결함 목록으로 생각하면 된다. CVE 목록은 CVE에서 확인할 수 있다.
대응방안 #
- 현재 관련 취약점에 영향을 받는 버전은 2.0-beta9 ~ 2.15 이전 버전이다.
- KISA의 보안 공지는 다음과 같다.
- CVE-2021-44228, CVE-2021-45046 경우
- JAVA 8일 경우 Log4j 2.16.0으로 업데이트
- JAVA 7일 경우 8로 업데이트 후 위와 같이 진행 또는 JAVA 버전 업그레이드가 불가할 땐 Log4j 2.12.2로 업데이트 후 JndiLookup 클래스를 경로에서 제거( zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class)
- 되도록 신규 버전으로 업그레이드를 권장
- log4j-core JAR 파일 없이 log4j-api JAR 파일만 사용하는 경우 취약점의 영향을 받지 않음
- 불가피하게 버전을 업그레이드하기 힘든 경우에 JndiLookup 클래스를 경로에서 제거해주는 프로그램을 LOGPRESSO에서 Github를 통해 오픈소스로 제공하고 있으니 참고하여 보안사고에 대비하길 바란다.