Tech-Trends

(보안) Log4j 원격코드 실행 취약점 (CVE-2021-44228) 해결

IT오이시이 2021. 12. 13. 18:06
728x90


(보안) Log4j   원격코드 실행 취약점 (CVE-2021-44228) 해결

- Remote Code Execution (RCE)


□ 취약점 설명

Apache Log4j2 <=2.14.1 구성, 로그 메시지 및 매개변수에 사용되는 JNDI 기능은 공격자가 제어하는 ​​LDAP 및 기타 JNDI 관련 엔드포인트로부터 보호하지 않습니다. 로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의의 코드를 실행할 수 있습니다.

□ 조치 사항 요약

   1. log4j 2.15.0이상으로 업그레이드
  
   2. 이전 이전 (2.10 이하)
   -  이전 릴리스(>2.10)에서는 시스템 속성 "log4j2.formatMsgNoLookups"를 “true”로 설정
    
     $>  java -Dlog4j2.formatMsgNoLookups=true  -jar  apps.jar   또는    
      $>  LOG4J_FORMAT_MSG_NO_LOOKUPS=true
  
3. 클래스 경로에서 JndiLookup 클래스를 제거하여 해결
      :  zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class ).


(참고) https://www.openwall.com/lists/oss-security/2021/12/10/1



취약점 (CVE-2021-44228)

□ 개요

o Apache 소프트웨어 재단은 자사의 Log4j 2에서 발생하는 취약점을 해결한 보안 업데이트 권고[1]
o 공격자는 해당 취약점을 이용하여 악성코드 감염 등의 피해를 발생시킬수 있으므로, 최신 버전으로 업데이트 권고

□ 주요 내용

o Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)
   * 프로그램 작성 중 로그를 남기기 위해 사용되는 자바 기반의 오픈소스 유틸리티

□ 영향을 받는 버전

o Apache Log4j 2
   - 2.0-beta9 ~ 2.14.1 모든버전
o Apache Log4j 2를 사용하는 제품
    ※ 참고 사이트 [4]를 확인하여 해당 제품을 이용 중일 경우, 해당 제조사의 권고에 따라 패치 또는 대응 방안 적용

□ 해결 방안

o 제조사 홈페이지를 통해 최신버전(2.15.0)으로 업데이트 적용
   ※ log4j 1.x버전 사용자의 경우 추가적인 업그레이드 지원 중지로 인해 다른 보안위협에 노출될 가능성이 높아 최신버전 업데이트 적용 권고

o 최신버전으로 업데이트가 어려운 경우 사용중인 버전확인 후 버전별 조치 적용
  * (버전확인방법)
       1. log4j가 설치된 경로의 "pom.xml"파일을 열어 "log4j-core"로 검색
       2. 검색결과 "사용버전(version)" 확인가능

  *( 버전별 조치 방법)
  - (방법#1) 2.0-beta9 ~ 2.10.0
      ※ JndiLookup 클래스를 경로에서 제거 :
          zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class


  - (방법 #2) 2.10 ~ 2.14.1
      ※ log4j2.formatMsgNoLookups 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경변수를 true로 설정
            $>  java -Dlog4j2.formatMsgNoLookups=true  -jar  apps.jar    
            $>  LOG4J_FORMAT_MSG_NO_LOOKUPS=true

    - (방법#3) JndiLookup.class 파일만 삭제
          log4j-core.버전.jar 파일을 일반적인 압축 프로그램으로 열어서 org/apache/logging/log4j/core/lookup/JndiLookup.class 파일만 삭제하고 재 압축

□ 침해 여부 탐지 방범

- 시스템 취약점 탐지 방법으로  NGINX 로그를 통해 확인 가능하다.
   $>  % egrep -i -r '\$\{jndi:' /var/log/nginx/*.log

[참조]
* Apache Log4j 보안 취약점
     https://logging.apache.org/log4j/2.x/security.html
* CVE-2021-44228 Vulnerabilities
   https://github.com/advisories/GHSA-jfh8-c2jp-5v3q

* Log4J "Log4Shell" 제로데이 취약점: 영향 및 수정 사항
    https://fossa.com/blog/log4j-log4shell-zero-day-vulnerability-impact-fixes/


[참고사항]
□ 기타 문의사항
o 한국인터넷진흥원 사이버민원센터: 국번없이 118


[참고사이트]
[1] apache 보안업데이트 현황 : https://logging.apache.org/log4j/2.x/security.html
[2] 취약점 정보 : https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-44228
[3] 신규버전 다운로드 : https://logging.apache.org/log4j/2.x/download.html
[4] 제조사별 현황 : https://gist.github.com/SwitHak/b66db3a06c2955a9cb71a8718970c592
[5] 탐지정책 : https://rules.emergingthreatspro.com/open/suricata-5.0/rules/emerging-exploit.rules

 

728x90
반응형