오늘 네이버 뉴스에 아파치 log4j 보안취약점에 대해서 나와서 긴급히 프로젝트 2개의 로그 모듈을 업데이트 했습니다.
- KISA 인터넷 보호나라 : https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389
참고로, 스프링 부트는 기본으로 내장된 로그백 Logback 모듈을 사용하기 때문에 기본으로 사용하면 문제 없다.
- 로그백이란? 자바 오픈소스 로깅 프레임워크, SLF4J(Simple Logging Facade퍼사드 For Java)의 구현체
- 스프링 부트의 기본으로 설정되어 있어서 사용시 별도로 라이브러리를 추가하지 않아도 된다.
- log4j, log4j2 등과 성능을 비교했을 때에도 logback이 더 훌륭한 성능을 보여준다.
- spring-boot-starter-web 안에 spring-boot-starter-logging에 구현체가 있다.
- 참고로, 스프링 부트에서 그래들 빌드를 사용시 log4j2 를 사용한다면 아래 처럼 설정한다
//그래들 사용시
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
...
}
configurations {
all {
exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
}
}
- 아래 스프링의 메이븐빌드사용 시 pom.xml 소스 추가(기존 log4j 태그부분은 주석처리)
<!-- CVE-2021-44228 취약점 보안패치ㅣlog4j-1.2.15에서 log4j2로 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.15.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.15.0</version>
</dependency>
- 아래 log4j2.xml 파일 추가(로그 출력 레벨-TRACE > DEBUG > INFO > WARN > ERROR > FATAL 정의파일, 기존파일명은 log4j.xml 임)
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n"/>
</Console>
</Appenders>
<Loggers>
<Logger name="org.apache.log4j.xml" level="info"/>
<Root level="debug">
<AppenderRef ref="STDOUT"/>
</Root>
</Loggers>
</Configuration>
수정 전 소스: org.apache.log4j 1.2.15 (아래)
수정 후 소스: org.apache.logging.log4j 버전 2.15.0(아래)
작업소스1: https://github.com/miniplugin/kimilguk
결과URL: https://kimilguk.herokuapp.com/
작업소스2: https://github.com/miniplugin/kimilguk-spring5
결과URL: https://kimilguk-spring5.herokuapp.com/
기술참조1: https://deeplify.dev/back-end/spring/logging
기술참조2: https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=writer0713&logNo=221449871510
코틀린 프로젝트01 (0) | 2022.03.11 |
---|---|
전자정부표준프레임워크 4.0베타 개발환경 경험하기 (0) | 2022.01.23 |
포스트맨으로 테스트용 API 명세 만들기 (0) | 2021.10.15 |
스프링 부트로 시작하는 웹 서비스_8마무리 (0) | 2021.08.26 |
스프링 부트로 시작하는 웹 서비스_7 (0) | 2021.08.22 |
댓글 영역