본문 바로가기

프로그래밍/이것저것 일하면서

logback 보안 업데이트 / log4j2 JNDI Lookup 취약점 관련 조치

반응형

log4j2 JNDI Lookup 취약점

이미 2021년 한 해를 뜨겁게 장식했던 매우 심각한 취약점이다. 우리 프로젝트에서는 log4j2를 직접 사용하지 않고 spring-boot-starter-logging 모듈을 통해 logback을 사용하고 있는데, Spring 공식 블로그에는 다음과 같이 안내하고 있으므로 별다른 조치를 취하지 않았다.

Log4J2 Vulnerability and Spring Boot

Spring Boot users are only affected by this vulnerability if they have switched the default logging system to Log4J2. The log4j-to-slf4j and log4j-api jars that we include in spring-boot-starter-logging cannot be exploited on their own. Only applications using log4j-core and including user input in log messages are vulnerable.

그런데 KISA에서 Logback을 사용하는 곳도 보안 업데이트를 권고하면서, 발주사에서 Logback을 사용하는 프로젝트에서는 버전 업을 해달라는 요청이 왔다.

앞서 말했듯이 spring-boot-starter-logging을 통하여 의존하고 있으므로 별 상관이 없을 것 같지만, 찜찜하니 이참에 버전을 올려보았다.

pom.xml 의존성 관리

처음에는 spring-boot-starter-logging에 logback을 exclusion 하고 따로 의존성을 추가했더니, 어딘지 모를 이런저런 모듈에서 등록된 구 버전이 사라지지 않았다. 그래서 아래처럼 부모 모듈 pom.xml에서 dependencyManagement을 통해 전체 모듈에 적용하였더니 잘된다.

    <dependencyManagement>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.2.10</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.10</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
반응형

개발자가 그리는 인스타툰 팔로우하세요!