[보안취약점] log4j 보안 취약점 사태(log4jShell) 조치 방법

2021. 12. 22. 15:24· etc
반응형

log4j 보안 취약점 사태(log4jShell, 관련 링크)로 인하여 log4j 2버전을 사용하고 있는 사내 솔루션들에 대한 조치가 필요해졌다.

 

□ 영향을 받는 버전
 o CVE-2021-44228
   - 2.0-beta9 ~ 2.14.1 버전 (Log4j 2.12.2 제외)
 o CVE-2021-45046
   - 2.0-beta9 ~ 2.12.1 및 2.13.0 ~ 2.15.0 버전
 o CVE-2021-4104
   - 1.2 버전
    ※ JMSAppender를 사용하지 않는 경우 취약점 영향 없음
    ※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전 업데이트 적용 권고

 

□ 대응방안
 o 제조사 홈페이지를 통해 최신버전으로 업데이트 적용[3]
   ※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
   ※ 신규 업데이트가 불가할 경우 임시조치방안 적용 권고
    - CVE-2021-44228, CVE-2021-45046
      · Java 8 : Log4j 2.16.0으로 업데이트[3]
      · Java 7 : Log4j 2.12.2으로 업데이트[9]
      · 임시조치방안 : JndiLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
           ※ 임시조치방안은 게시된 취약점에 대한 임시적 조치로 신규 버전으로 업그레이드를 권장함
           ※ log4j-core JAR 파일 없이 log4j-api JAR 파일만 사용하는 경우 위 취약점의 영향을 받지 않음

   - CVE-2021-4104
      · Java 8 : Log4j 2.16.0으로 업데이트[3]
      · Java 7 : Log4j 2.12.2으로 업데이트[9]

 

출처 : https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389

 

 

 

필자의 조치방법

필자는 JndiLookup.class 파일을 삭제하고 로컬환경에서 테스트겸 서버를 키니 아래와 같이 NoClassDefError가 발생하였다.

 

그리하여 JndiLookup을 호출하는 Interpolator.class 파일도 수정하였다.

참고로 필자가 사용하는 log4j 버전은 log4j-core-2.0-rc1 이다.

 

필자의 조치 내역은 말그대로 임시 조치이기 때문에, 참고용으로만 읽어주길 바란다.

 

 

임시 조치 내역 

  1. 솔루션 라이브러리 폴더에 있는 log4j-core-2.0-rc1.jar 파일을 연결프로그램 반디집으로 연다.
  2. org/apache/logging/log4j/core/lookup 경로의 JndiLookup.class를 클릭 및 Delete키를 이용하여 jar파일에서 해당 class파일을 삭제한다.
  3. Interpolator.class 수정없이 서버 실행하는 경우, NoClassDefError 오류가 발생하며 서버가 정상적으로 실행되지 않는다. (rc2 이전 버전에 해당)
  4. org/apache/logging/log4j/core/lookup 경로의 Interpolator.class가 JndiLookup을 호출하기 때문에 소스 수정이 필요하다.
    1. class파일이고, import하는 것이 많기 때문에 java 파일에서 class 파일로 compile하는 것은 쉽지 않다고 판단하여 바이트코드 에디터(JBE, Java Bytecode Editior)를 이용하여 class파일 자체를 수정했다.

수정 전 Interpolator.class(디컴파일한 캡쳐본)

수정 후 Interpolator.class(디컴파일한 캡쳐본)

 

솔루션 라이브러리 폴더에 있는 log4j-core-2.0-rc1.jar을 반디집으로 열고 org/apache/logging/log4j/core/lookup 경로의 Interpolator.class파일을 바이트코드 에디터로 수정한 class파일로 교체한다.

 

바이트코드 에디터 사용방법

- 바이트코드 에디터 설치 링크 : http://set.ee/jbe/,

- 바이트코드 해석 참고 링크 : https://en.wikipedia.org/wiki/List_of_Java_bytecode_instructions

 

a. 바이트코드 에디터 실행 및 왼쪽 위 돋보기 모양으로 수정할 class 파일 OPEN

b. Methods - 수정할 함수이름 - [0] Code - Code Editor 탭에서 내용 수정

c. Save method 버튼을 클릭하여 파일 저장

 

반응형

'etc' 카테고리의 다른 글

[CS 공부] Network  (0) 2022.03.20
[AWS] 8080포트 접속 시, 로그인 화면이 나타나는 경우  (0) 2022.01.19
[maven] maven repository 경로 확인 방법  (0) 2021.12.18
[git] git 특정 파일들 커밋 목록에 나타나지 않도록 하기  (0) 2021.12.17
[Git] 커밋 시, 잔디가 제대로 안심어지는 경우 해결 방법  (0) 2021.12.16
'etc' 카테고리의 다른 글
  • [CS 공부] Network
  • [AWS] 8080포트 접속 시, 로그인 화면이 나타나는 경우
  • [maven] maven repository 경로 확인 방법
  • [git] git 특정 파일들 커밋 목록에 나타나지 않도록 하기
멍목
멍목
개발 관련 새롭게 알게 된 지식이나 좋은 정보들을 메모하는 공간입니다.
반응형
멍목
김멍목의 개발블로그
멍목
전체
오늘
어제
  • 분류 전체보기 (514)
    • BE (190)
      • Spring (21)
      • Java (141)
      • Kotlin (6)
      • JPA (22)
    • FE (33)
      • Javascript (16)
      • Typescript (0)
      • React (5)
      • Vue.js (9)
      • JSP & JSTL (3)
    • DB (32)
      • Oracle (22)
      • MongoDB (10)
    • Algorithm (195)
    • Linux (8)
    • Git (6)
    • etc (42)
    • ---------------------------.. (0)
    • 회계 (4)
      • 전산회계 2급 (4)
    • 잡동사니 (2)

블로그 메뉴

  • 홈
  • 관리

공지사항

인기 글

태그

  • junit5
  • MongoDB with Node.js
  • 알고리즘 공부
  • 알고리즘공부
  • 프로젝트로 배우는 Vue.js 3
  • MongoDB 공부
  • 자바 공부
  • 전산회계 2급 준비
  • 자바공부
  • 자기개발
  • 자바 개발자를 위한 코틀린 입문
  • vue3 공부
  • 더 자바 Java 8
  • 자바 테스팅 프레임워크
  • 자기공부
  • 코틀린
  • java 8
  • Java to Kotlin
  • 이펙티브 자바
  • 더 자바 애플리케이션을 테스트하는 다양한 방법
  • Oracle
  • 코테 공부
  • JPA 공부
  • JPA
  • 자기 공부
  • 이펙티브자바
  • Effective Java
  • MongoDB 기초부터 실무까지
  • 코테공부
  • 자기 개발

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.0
멍목
[보안취약점] log4j 보안 취약점 사태(log4jShell) 조치 방법
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.