[전자정부프레임워크] Log4J 이슈 대응 (Spring 포함)
- Language/Spring
- 2021. 12. 26.
최근 Log4J 버전에 해킹 이슈들이 터지면서 KISA에서는 기업들에게 경고 메세지를 주고 있고, 우리 회사의 경우 ISMS를 인증하였기 때문에 Log4J 대응으로 업무가 터져버릴 지경이다.
전자정부 프레임워크에서의 취약점 긴급 사항
□ 주요 내용
o Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2]
o Apache Log4j 2에서 발생하는 서비스 거부 취약점(CVE-2021-45046)[6]
o Apache Log4j 2에서 발생하는 서비스 거부 취약점(CVE-2021-45105)[8]
o Apache Log4j 1.2에서 발생하는 원격코드 실행 취약점(CVE-2021-4104)[7]
※ Log4j : 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티
□ 영향을 받는 버전 :
- apache log4j 2.0-beta9 ~ 2.16.0 모든버전 (Log4j 2.12.3 제외)
* 표준프레임워크에서 각 버전별 최초 배포되는 log4j의 버전은 다음과 같습니다.
----------------------------
1.0 : Log4j 1.3 (JMSAppender를 사용하는 경우)
2.0 : Log4j 1.3 (JMSAppender를 사용하는 경우)
2.5 : Log4j 1.3 (JMSAppender를 사용하는 경우)
2.6 : Log4j 1.3 (JMSAppender를 사용하는 경우)
2.7 : Log4j 1.3 (JMSAppender를 사용하는 경우)
3.0 : Log4j 2.0
3.1 : Log4j 2.0
3.5 : Log4j 2.1
3.6 : Log4j 2.5
3.7 : Log4j 2.8.2
3.8 : Log4j 2.10.0
3.9 : Log4j 2.11.2
3.10 : Log4j 2.12.1
4.0(베타) : : Log4j 2.14.0
----------------------------
□ 대응방안
o JDK8 사용시
- Log4j 2.17.0으로 업데이트
o JDK7 사용시
- Log4j 2.12.3으로 업데이트
o JDK6 사용시
- Log4j 2.3.1으로 업데이트
https://www.egovframe.go.kr/home/ntt/nttRead.do?menuNo=74&bbsId=6&nttId=1838
내가 근무하는 팀의 경우 마이크로 아키텍쳐(micro architecture)로 인해서 수많은 API들이 띄워져 있는데 그 중 전자정부프레임워크(eGovFramework) 기반으로 띄워진 API도 꽤 된다.
전자정부프레임워크를 사용하는 사람들이 간과하는 것이 있는데 Log4J를 안쓰고 있다고 착각을 하는 것이다. 전자정부프레임워크의 기본 Log 설정은 log4j를 호출하기 때문에 이번 Log4j 이슈에 꼭 대응해줘야 한다.
대응방법
pom.xml에서 아래와 같은 dependency를 추가한다 (2021.12.29일 권고사항으로 2.17.0 -> 2.17.1로 변경)
<!-- log4j 대응 -->
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.17.1</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.17.1</version>
</dependency>
위의 디펜던시를 추가하면, 기존의 log4j의 버전이 업데이트 된다. 위의 내용은 스프링(Spring) 및 스프링부트(Spring-boot)에서도 동일하게 적용할 수 있으니 참고하자 다만 log4j-slf4j-impl의 경우에는 slf4j를 사용하지 않는다면 전자정부프레임워크 이외에는 적용할 필요는 없을 것이다.
2021.12.29일 추가 권고사항
https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36397
참고자료
전자정부프레임워크 - [긴급] Log4J 보안 업데이트 긴급공지
반응형
'Language > Spring' 카테고리의 다른 글
의존 주입(Dependency Injection, DI) 이해하기 (0) | 2022.06.15 |
---|---|
[Springboot] Base URL(Context-path) 설정 방법 (0) | 2022.01.10 |
[Springboot] 폼(Form) 전송 및 RequestParam 변수 세팅 (0) | 2021.06.21 |
[Springboot] 스프링부트에서 JSP 사용하기 (1) | 2021.06.20 |
[Spring] 스프링부트로 1분만에 JSON API 로 출력해보기 (0) | 2021.06.13 |