Security

Log4j

엠제이야 2021. 12. 15. 09:05
728x90
반응형

0. why

 - 심각한 보안 취약점 발견(CVE-2021-44228) : Log4Shell 혹은 LogJam으로 명명된 취약점

 

1.개념(Log4j : Log for Java)

 - 시스템 로그문의 출력을 다양한 포맷으로 기록 할 수 있도록 도와주는

   아파치 재단의 JAVA로 작성된 오픈소스 라이브러리 도구

 

2.특징

- 융통성이 풍부(어디에도 적용이 쉽다)
- 설정 파일은 property 파일, XML 형식으로 실행 중 수정 적용 가능
- 처음부터 자바의 예외를 처리하기 위해 디자인
- 출력을 파일, 콘솔, java.io.OutputStream, java.io.Writer, TCP를 사용하는 원격서버, 원격 Unix Syslog 데몬, - 원격 JMS 구독자, 윈도우NT EventLog로 보낼 수 있고, 심지어는 e-mail로 보낼 수도 있음
- 6단계의 레벨을 사용. < TRACE(추가), DEBUG, INFO, WARN, ERROR, FATAL >
- 국제화를 지원

 

3. 구조 

 - Logger(Category) : 로깅 메세지를 Appender에 전달
 logger는 로그레벨을 가지고 있으며, 로그의 출력 여부는 로그문의 레벨과 로거의 레벨을 가지고 결정

 

- Appender : 로그의 출력위치를 결정(파일, 콘솔, DB 등)
 log4J API문서의 XXXAppender로 끝나는 클래스들의 이름을 보면, 출력위치를 어느정도 짐작가능

 

- Layout : Appender가 어디에 출력할 것인지 결정했다면 어떤 형식으로 출력할 것이지 출력 layout을 결정

 

 

 

 

 

728x90
반응형