Apache Log4J(Log4Shell) 취약점이란?

Log4Shell(CVE-2021-44228, CVE-2021-45046CVE-2021-45105)은 악의적인 공격자가 서버를 제어하는 임의의 Java 코드를 실행할 수 있게 하는 원격코드 실행(RCE) 취약점입니다.

Log4Shell 취약점 개요

Java 기반 로깅 라이브러리인 Apache Log4j에서 발견된 치명적인 결함인 Log4Shell 제로데이 취약점입니다. 공식적으로  CVE-2021-44228로 식별되며 CVSS(Common Vulnerability Scoring System)의 심각도 점수는 10점 만점에 10점(CVSS v3.1)입니다.

이 취약점은 2021년 11월 24일 Apache에 비공개로 처음 보고되었습니다. 2021년 12월 9일에 Log4Shell이 공개적으로 공개되었으며 초기에 Apache Log4j 버전 2.15.0으로 패치되었습니다.

관찰된 공격에 대한 후속 뉴스는 미국 사이버 보안 및 기반 시설 보안국(CISA), 영국 국가 사이버 보안 센터(NCSC) 및 캐나다 사이버 보안 센터를 비롯한 여러 국가 사이버 보안 기관에서 경고를 발령했습니다. Apache Log4j의 인기로 인해 수억 개의 장치가 영향을 받을 수 있습니다.

Log4Shell 작동 방식

Log4Shell은 원격 코드 실행(RCE)을 허용할 수 있는 JNDI(Java Naming and Directory Interface™) 주입 취약점입니다. 영향을 받는 Apache Log4j 버전의 기록된 메시지에 신뢰할 수 없는 데이터(예: 악성 페이로드)를 포함함으로써 공격자는 JNDI 조회를 통해 악성 서버에 연결할 수 있습니다. 결과: 전 세계 어디에서나 시스템에 완전히 액세스할 수 있습니다.

JNDI lookup은 DNS(Domain Name Service), LDAP(Lightweight Directory Access Protocol) 등 조직의 네트워크 장치, RMI(Remote Method Invocation), IIOP(Inter-ORB Protocol) 등의 정보를 제공하는 다양한 디렉토리 유형을 지원하므로, Log4Shell은 다음과 같은 다른 위협으로 이어질 수 있습니다.

  • 코인마이닝: 공격자는 귀하의 리소스를 사용하여 암호화폐를 채굴할 수 있습니다. 클라우드에서 서비스와 애플리케이션을 실행하는데 필요한 막대한 컴퓨팅 성능을 고려할 때 이 위협은 상당한 비용이 소요될 수 있습니다.
  • 네트워크 서비스 거부(DoS): 이 위협은 공격자가 네트워크, 웹 사이트 또는 서비스를 종료 및/또는 비활성화하여 대상 조직이 액세스할 수 없도록 합니다.
  • 랜섬웨어: RCE가 달성되면 공격자는 몸값을 목적으로 데이터를 수집하고 암호화할 수 있습니다.

 

다음은 감염 체인입니다.

감염 체인 가능성

취약한 제품, 애플리케이션 및 플러그인

기본적으로 Apache Log4j 버전 2.0 ~ 2.14.1을 실행하는 모든 인터넷 연결 장치. 영향을 받는 버전은 Apache Struts, Apache Solr, Apache Druid, Elasticsearch, Apache Dubbo 및 VMware vCenter에 포함됩니다.

패치 및 완화

Apache는 처음에 Apache Log4j 버전 2.15.0을 릴리스하여 이 취약점을 패치했습니다. 그러나 이 버전은 Java 8에서만 작동했습니다. 이전 버전의 사용자는 임시 완화를 적용하고 다시 적용해야 했습니다. 발표 당시 아파치는 2.16.0 버전을 출시하였으며 사용자에게 잠재적으로 영향을 받을 수 있는 라이브러리를 가능한 한 빨리 업데이트하라고 권고하였습니다.

가상 패치 및 침입 탐지/방지 시스템(IDS/IPS) 활용과 같은 다른 완화 전략을 적극 권장합니다. 가상 패치는 취약점을 보호하는 반면 IDS/IPS는 수신 및 송신 트래픽에서 의심스러운 동작을 검사합니다.

Apache Log4J

관련 리서치

CNN
CNET
ThreatPost