본문으로 바로가기

목차

    추가 업데이트 3(CVE-2021-44832)

    Apache Log4j 2에서 발생하는 원격코드 실행 취약점 (CVE-2021-44832) 발견되었습니다. 

    2.17.1 버전으로 업데이트해야 합니다. 아래의 링크를 확인해주세요.

    https://veneas.tistory.com/entry/Spring-Boot-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-Log4J2-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A1%B0%EC%B9%98-CVE-2021-44832

     

    [Spring Boot] 스프링 부트 Log4J2 취약점 조치 (CVE-2021-44832)

    0. 조치 환경 Spring Boot 2.5.6 (Gradle Project) JDK 11(Java 11) IntelliJ 1. 취약점 내용 Apache Log4j 2에서 발생하는 원격코드 실행 취약점 (CVE-2021-44832) 보안공지 | 자료실 - KISA 인터넷 보호나라&KrC..

    veneas.tistory.com

     

    추가 업데이트 2(CVE-2021-45105)

    Logj4 2.16.0 버전에서 JNDI Lookup pattern 취약점이 발견되었습니다. 

    2.17.0 버전으로 업데이트해야 합니다. 아래의 링크를 확인해주세요.

    https://veneas.tistory.com/entry/Spring-Boot-스프링-부트-Log4J2-취약점-조치-CVE-2021-45105

     

    [Spring Boot] 스프링 부트 Log4J2 취약점 조치 (CVE-2021-45105)

    0. 조치 환경 Spring Boot 2.5.6 (Gradle Project) JDK 11(Java 11) IntelliJ 1. 취약점 내용 이전 취약점들을 조치한 Logj4 2.16.0 버전에서 JNDI Lookup pattern 문제 발생 It was found that the fix ..

    veneas.tistory.com

    추가 업데이트 1(CVE-2021-45046)

    취약점(CVE-2021-44228)을 해결하기 위한 조치로 업데이트 된 2.15 버전이 불완전 한 것으로 나타나서 2.16 버전으로 업데이트해야 합니다. 아래의 링크를 확인 해주세요.

    https://veneas.tistory.com/entry/Spring-Boot-%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B6%80%ED%8A%B8-Log4J2-%EC%B6%94%EA%B0%80-%EC%B7%A8%EC%95%BD%EC%A0%90-%EC%A1%B0%EC%B9%98-CVE-2021-45046

     

    [Spring Boot] 스프링 부트 Log4J2 추가 취약점 조치 (CVE-2021-45046)

    0. 조치 환경 Spring Boot 2.5.6 (Gradle Project) JDK 11(Java 11) IntelliJ 1. 취약점 내용 CVE-2021-45046 Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)을 해결하기 위한 조치로 2.15.0..

    veneas.tistory.com

    0. 조치 환경

    • Spring Boot 2.5.6 (Gradle Project)
    • JDK 11(Java 11)
    • IntelliJ

    [build.gradle = dependencies]

    필자의 프로젝트의 dependencies는 다음과 같습니다.

    dependencies {
    	implementation 'org.springframework.boot:spring-boot-starter-quartz'
    	implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
    	implementation 'org.springframework.boot:spring-boot-starter-web'
    	implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:2.2.0'
    	implementation 'org.springframework.boot:spring-boot-devtools'
    	implementation 'org.springframework.boot:spring-boot-starter-aop'
    	implementation 'org.springframework.boot:spring-boot-starter-log4j2'
    	compileOnly 'org.projectlombok:lombok'
    	runtimeOnly 'mysql:mysql-connector-java'
    	annotationProcessor 'org.projectlombok:lombok'
    	testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }

    필자의 log4j2 사용중인 버전

    2.14.1

    1. 취약점 내용

    • Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)
    • Log4J2 라이브러리에 대해 해커(공격자)가 원격으로 코드를 실행할 수 있는 새로운 제로 데이 공격이 보고되었습니다.

    2. 조치 방안

    • 이 취약점은 Log4j-core jar에 대해 CVE-2021-44228에서 보고되었으며 Log4J v2.15.0에서 수정되었습니다.
    • 여러 방안이 존재하지만 필자는 2.15 버전으로 업데이트 했습니다.

    3. Log4j2 버전 업데이트

    build.gradle 파일에 다음과 같이 log4j2 2.15와 관련 의존성을 추가해 줍니다.

    dependencies {
    	// 추가
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.15.0'
    	implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
    	implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.32'
    }

     

    또는 log4j2 starter를 주석 처리하고 log4j2 2.15와 관련 의존성을 추가해 줍니다.

    dependencies {
    	// implementation 'org.springframework.boot:spring-boot-starter-log4j2'
        
    	// 추가
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-core', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-jul', version: '2.15.0'
    	implementation group: 'org.apache.logging.log4j', name: 'log4j-slf4j-impl', version: '2.15.0'
    	implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.7.32'
    	implementation group: 'org.slf4j', name: 'jul-to-slf4j', version: '1.7.32'
    }

    4. 확인

    • IntelliJ에서 gradle의존성을 확인해보면 log4j2의 버전이 2.15.0로 변경된 것을 알 수 있습니다. 
    • Spring Boot 프로젝트 실행 시 콘솔에 찍히는 로그도 버전이 바뀐 것을 확인 할 수 있습니다. (2.15

    2.15.0
    콘솔 확인