[보안취약점] Apache Log4j 보안 취약점 대응 / 점검 방안

Apache Log4j 보안 취약점


1. Log4J

  • 자바 기반 로깅 유틸리티 / 디버그용 도구로 주로 사용.
  • Logger : 로깅 메세지를 Appender 에 전달
  • Appender : 로그의 출력 위치 결정
  • Layout : 어떠한 형식으로 출력할것인지 결정


2. 주요내용

  • Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)
  • Apache Log4j 2에서 발생하는 원격코드 실행 취약점(CVE-2021-45046)
  • Apache Log4j 1.x에서 발생하는 원격코드 실행 취약점(CVE-2021-4104)
    ✱ Apache 소프트웨어 재단은 Log4j 2에서 발생하는 취약점 해결을 위한 보안 업데이트를 권고


3. Log4J 버전 별 영향

  • CVE-2021-44228 : 2.0-beta9 ~ 2.14.1 이하 (2.3.1, 2.12.2, 2.12.3 제외)
  • CVE-2021-45046 : 2.0-beta9 ~ 2.15.0 버전 (2.3.1, 2.12.2, 2.12.3 제외)
  • CVE-2021-4104 : 1.x 버전
    ✱ JMSAppender를 사용하지 않는 경우 취약점 영향 없음


4. 대응방안

  • 제조사 홈페이지를 통해 최신버전으로 업데이트 적용
  • 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
  • CVE-2021-44228, CVE-2021-45046

    Java 8 이상 : Log4j 2.17.0으로 업데이트
    Java 7 : Log4j 2.12.3으로 업데이트
    Java 6 : Log4j 2.3.1으로 업데이트
    ✱ log4j-core-.jar 파일 없이 log4j-api-.jar 파일만 사용하는 경우 위 취약점의 영향을 받지 않음

  • CVE-2021-4104

    Java 8 : Log4j 2.17.0으로 업데이트
    Java 7 : Log4j 2.12.3으로 업데이트
    Java 6 : Log4j 2.3.1으로 업데이트

    신규 업데이트가 불가능할 경우 아래와 같이 조치 적용

    • CVE-2021-44228, CVE-2021-45046 · JndiLookup 클래스를 경로에서 제거
      $ zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
      
  • CVE-2021-4104

    JMSAppender 사용 확인 후 코드 수정 또는 삭제
    ✱ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전(2.x) 업데이트 적용 권고


4.1. 전자정부 프레임워크 Log4j 업데이트

  • 전자정부 프레임워 3.5를 이용하는데 의존성이 전자정부 dataaccess > logging > log4j 2.1 버전이 이용중에 있었습니다.
  • 단순히 log4j 만 2.17.0으로 업데이트 하려 했을때 서버 구동이 불가능하여 확인 결과 아래와 같이 추가적으로 slf4j 가 같이 업데이트 되어야 합니다.
  • pom.xml
    //pom.xml
    <dependency>
    	<groupId>org.apache.logging.log4j</groupId>
     	<artifactId>log4j-core</artifactId>
     	<version>2.17.0</version>
     </dependency>
     <dependency>
     	<groupId>org.apache.logging.log4j</groupId>
     	<artifactId>log4j-slf4j-impl</artifactId>
     	<version>2.17.0</version>
     </dependency>
    


5. 취약점 점검 방법

  • ESTsecurity 에서 취약점 스캐너를 제공.
  • 스캐너 이용하면서 생긴 문제점.
    1. centos7 - unzip 오류 발생
      ✱ 해결 : unzip rpm 버전 문제로 추정되나 unzip에 다운그레이드가 불가능하여 압축 해제 후 서버에 업로드 하여 작업이 가능했습니다.
    2. 안내대로 sudo ./AlyacLog4jScanner_Linux_x64 /dir 이용시 command not found. 발생
      ✱ 해결 : 해당 파일에 실행 권한을 주어야 하며 명령은 아래와 같습니다.
      $ chmod +x AlyacLog4jScanner_Linux_x**
      

ESTsecurity 취약점 스캐너 다운로드 바로가기


6. Log4j 공격여부 체크

  • SK shieldus 에서 제공
  • SK쉴더스에서 제공하는 Log 기록 체크 스크립트를 이용하여 확인 및 체크 가능합니다.

SKshieldus 점검 스크립트 다운로드 바로가기


7. 참고

KISA 인터넷 보호나라 - 보안업데이트 공고
ESTsecurity
SKshieldus





마지막 수정