반응형
2021년 12월 9일, Apache Log4j2의 원격 코드 실행 제로데이 취약점이 공개되었습니다. 공격자는 이 취약점을 이용해 원격 코드 실행을 트리거할 수 있습니다. 광범위한 영향을 끼치는 취약점이니 Log4j의 범위를 확인해보시고 버전을 업데이트하는 것이 좋겠습니다.
특히 SpringBoot의 경우 log4j를 기본적으로 갖고 있으니 꼭! 확인해보세요.
취약점 설명
Apache Log4j2는 Java 기반 로깅 라이브러리입니다. 정말 많은 시스템에서 사용되고 있죠.
대부분의 경우 사용자 입력으로 인한 오류 메시지를 로그에 기록할 때 사용하는데요. 공격자는 취약점을 통해 이 로깅 기능으로 원격 코드 실행을 트리거할 수 있습니다.
- 취약점 수준: 심각(치명적)
- 영향을 받는 버전: 2.0 <= Apache log4j2 <= 2.14.1
해결법
Maven
<properties>
<log4j2.version>2.15.0</log4j2.version>
</properties>
Property 설정 후 ./mbnw dependecy:list | grep log4j 로 버전이 2.1.5.0인지 확인
Gradle
아래 중 적용 가능한 방법으로 적용
ext['log4j2.version'] = '2.15.0'
implementation(platform("org.apache.logging.log4j:log4j-bom:2.15.0"))
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'org.apache.logging.log4j') {
details.useVersion '2.15.0'
}
}
}
원격코드실행(RCE, Remote Code Execution)는?
RCE는 원격지에서 임의의 공격 명령 실행이 가능한 취약점입니다. 대표적으로 관리자 권한 취득을 통해 시스템을 장악하기 위한 권한 상승 취약점이 존재하며, 주로 피해 시스템/네트워크에 침입하기 위한 초기 침투 시 사용됩니다.
Web Application이 배포되어 있는 Linux server에 악성 코드를 심는 등의 행위를 할 수 있는 것입니다.
Appendix
- 원문 링크: https://www.cyberkendra.com/2021/12/worst-log4j-rce-zeroday-dropped-on.html?m=1
- Log4j 취약점 관련 PoC: https://github.com/tangxiaofeng7/apache-log4j-poc
- 해결법: https://spring.io/blog/2021/12/10/log4j2-vulnerability-and-spring-boot
반응형
☕️ Networking
기술 직군의 기술적인 교류, 커리어 이야기, 직군 무관 네트워킹 모두 환영합니다!
위클리 아카데미 오픈 채팅방(비밀번호: 9323)
kakaotalk: https://open.kakao.com/o/gyvuT5Yd