Log4Shell이라고도 알려진 Log4j 취약점은 2021년 11월에 Apache Log4j 로깅 라이브러리에서 발견된 매우 심각한 취약점입니다. Log4Shell은 기본적으로 해커에게 패치되지 않은 버전의 Log4j를 실행하는 디바이스를 완전히 제어할 수 있는 권한을 부여합니다.
악의적인 공격자는 Log4j 결함을 이용해 취약한 시스템에서 원하는 거의 모든 코드를 실행할 수 있습니다.
연구원들은 Log4Shell을 "치명적인" 보안 취약점으로 간주하는데, 그 이유는 매우 널리 퍼져 있고(Log4J는 전 세계에서 가장 널리 배포된 오픈 소스 프로그램 중 하나) 악용하기 매우 쉽기 때문입니다. 미국 사이버 보안 및 인프라 보안국(CISA)의 국장 Jen Easterly는 "가장 심각하지는 않더라도 내 경력에서 본 것 중 가장 심각한 것 중 하나"라고 말했습니다.
Log4Shell은 2021년 12월 사이버 공격 급증을 촉발했습니다. IBM의 X-Force Threat Intelligence 인덱스에 따르면 2020년과 2021년 사이에 취약점이 34% 증가했으며, 이는 주로 Log4Shell에 기인한 것으로 나타났습니다.
Log4Shell은 발견 직후 패치가 적용되었지만 Log4J가 소프트웨어 공급망에 깊숙이 자리잡아 수년 동안 위험을 초래할 수 있습니다. 미국 국토안보부는 모든 취약한 사례를 찾아 수정하는 데 최소 10년이 걸릴 것으로 예상하고 있습니다.
IBM Security X-Force Threat Intelligence Index를 통해 더 빠르고 효과적으로 사이버 공격에 대비하고 대응할 수 있는 인사이트를 확보하세요.
데이터 유출 비용 보고서 등록
Log4j는 Apache Software Foundation에서 개발한 로깅 프레임워크입니다. 이름에서 알 수 있듯이 Log4J는 로거입니다. 프로그램의 오류 메시지 및 사용자 입력과 같은 중요한 정보를 기록합니다.
Log4J는 개발자가 자유롭게 사용할 수 있는 미리 작성된 코드 패키지인 오픈 소스 소프트웨어 라이브러리입니다. 개발자는 자체 로거를 작성하는 대신 Log4J 라이브러리를 앱에 연결할 수 있습니다. 이러한 편리함 때문에 Log4J는 Microsoft 및 Amazon과 같은 주요 조직의 제품에 내장되어 널리 보급되어 있습니다.
CVE(Common Vulnerability and Exposure) 식별자 CVE-2021-44228인 Log4Shell은 일부 버전의 Log4J에 존재하는 원격 코드 실행(RCE) 취약성입니다. 이 결함은 Apache Log4J 2, 버전 2.14.1 이하에 영향을 줍니다. Log4J 2.15 이상 및 모든 버전의 Apache Log4J 1은 영향을 받지 않습니다.
Log4Shell은 이전 버전의 Log4J 2가 Java 네이밍 및 디렉토리 인터페이스(JNDI) 룩업을 처리하는 방식에서 비롯되었습니다. JNDI는 Java 애플리케이션이 외부 서버에서 호스팅되는 리소스에 액세스하는 데 사용하는 애플리케이션 프로그래밍 인터페이스(API)입니다. JNDI 룩업은 서버로 이동하여 데이터나 스크립트와 같은 특정 객체를 다운로드하도록 앱에 지시하는 명령입니다. 이전 버전의 Log4J 2는 이 방법으로 다운로드한 모든 코드를 자동으로 실행합니다.
사용자는 로그 메시지에 JNDI 룩업을 포함하여 취약한 버전의 Log4J에 JNDI 룩업을 보낼 수 있습니다. 방법은 간단합니다. 예를 들어, Log4J를 사용하여 사용자 메시지를 기록하는 이전 버전의 Minecraft Java 버전에서는 사용자가 공개 채팅 창에 JNDI 룩업을 입력할 수 있습니다.
해커는 이 JNDI 기능을 사용하여 악성 임의 코드를 원격으로 실행할 수 있습니다. 먼저 해커는 주의를 끌지 않기 위해 LDAP(경량 디렉토리 액세스 프로토콜)와 같은 일반적인 프로토콜을 사용하여 서버를 설정합니다. 그런 다음 해당 서버에 악성 페이로드(예: 멀웨어 파일)를 저장합니다. 마지막으로, 공격자는 공격자의 LDAP 서버로 이동하여 페이로드를 다운로드하고 코드를 실행하라고 지시하는 JNDI 룩업을 프로그램에 보냅니다.
기술 대기업 Alibaba의 보안 연구원들이 2021년 11월 24일에 Log4Shell을 발견했습니다. 그 즉시 CVSS(일반 취약성 점수 시스템) 점수는 10점으로 가장 높은 심각도 등급을 받았습니다.이 등급에는 몇 가지 요인이 영향을 미쳤습니다.
2021년 12월 9일까지 Log4Shell을 악용하는 방법에 대한 개념 증명 코드가 GitHub에 게시되었고 해커들은 공격을 시작했습니다. Minecraft, Twitter, Cisco와 같은 주요 기업 및 서비스가 노출되었습니다. Log4Shell 활동이 최고조에 달했을 때 Check Point는 매분 100건 이상의 공격을 관찰했으며, 전 세계 모든 비즈니스 네트워크의 40% 이상에 영향을 미쳤습니다.
초기 공격은 봇넷과 크립토마이닝 멀웨어를 확산시켰습니다. 일부 해커는 이 결함을 이용해 파일리스 공격을 시작하여 Windows 및 Linux 컴퓨터에 악성 스크립트를 보내 암호 및 기타 민감한 정보를 유출하도록 했습니다.
Log4Shell에서 다수의 랜섬웨어 조직이 체포되었습니다. 특히 해커들은 Minecraft를 통해 Khonsari 랜섬웨어 변종을 유포했습니다. Night Sky 랜섬웨어는 VMware Horizon을 실행하는 시스템을 표적으로 삼았습니다.
심지어 국가 단위의 공격자들도 가담했습니다. 중국, 이란, 북한, 터키와 관련된 해커들이 이 취약점을 악용하는 것으로 나타났습니다.
Apache는 2021년 12월 10일에 첫 번째 패치(Log4J 버전 2.15.0)를 릴리스했습니다. 그러나 이 패치는 해커가 특정 기본 설정이 아닌 로그에 악의적인 명령을 보낼 수 있는 또 다른 취약점(CVE-2021-45046)을 노출시켰습니다.
Apache는 2021년 12월 14일에 두 번째 패치(Log4J 버전 2.16.0)를 릴리스했습니다. 또한 해커가 서비스 거부(DoS) 공격을 시작할 수 있는 결함(CVE-2021-45105)이 있었습니다.
세 번째 패치인 Log4J 버전 2.17은 DoS 결함을 수정했지만, 해커가 원격 코드를 실행하기 위해 "애펜더"라는 Log4J 구성 요소의 제어권을 장악할 수 있는 마지막 취약점(CVE-2021-44832)이 남아있었습니다. Apache는 네 번째이자 마지막 패치인 Log4J 버전 2.17.1로 이 문제를 해결했습니다.
Log4J 2.17.1은 Apache 측에서 Log4Shell과 관련된 모든 취약점을 폐쇄했지만, 사이버 위협은 여전히 이 결함을 이용하고 있습니다. 2023년 5월까지 Log4Shell은 가장 많이 악용된 취약점 중 하나였습니다.
Log4Shell은 여러 가지 이유로 지속됩니다.
첫 번째는 Log4J가 많은 기업의 소프트웨어 공급망에 깊숙이 파묻혀 있다는 점입니다. 오늘날 많은 앱은 기존의 오픈 소스 소프트웨어 라이브러리를 조립하여 구축됩니다. 이 프로세스는 편리하지만 조직이 앱을 구성하는 모든 구성 요소에 대한 가시성이 제한되어 있음을 의미하기도 합니다. 이전 버전의 Log4J를 간과하기 쉽습니다.
취약한 버전의 Log4J가 패치되었다고 해서 항상 패치된 상태로 유지되는 것은 아닙니다. 2022년 11월, Tenable은 Log4Shell에 여전히 취약한 자산의 29%가 "재발"되었다고 보고했습니다. 즉, 과거에 패치되었지만 결함이 다시 나타난 경우였습니다. 이 시나리오는 사람들이 앱을 빌드하거나 업데이트할 때 실수로 아직 패치되지 않은 버전의 Log4J가 포함된 소프트웨어 라이브러리를 사용하기 때문에 발생합니다.
결국 해커들은 자신의 흔적을 감출 수 있는 교묘한 방법을 개발했습니다. CISA에 따르면 일부 해커는 Log4Shell을 사용하여 네트워크에 침입한 다음 자산에 패치를 적용합니다. 회사에서는 안전하다고 생각하지만 해커들은 이미 '진입' 있습니다.
최신 버전의 Log4J에는 Log4Shell이 없습니다. 사이버 보안 전문가는 보안 팀이 시스템의 모든 Log4J 인스턴스를 최신 상태로 유지하는 데 집중할 것을 권장합니다.
Log4J를 업데이트하는 것은 느리게 진행되는 프로세스일 수 있는데, 이는 기업이 자산을 깊이 파헤쳐서 찾아야 하는 경우가 많기 때문입니다. 그 동안 보안팀은 공격 표면 관리(ASM) 및 엔드포인트 탐지 및 대응(EDR) 플랫폼과 같은 지속적인 취약성 스캔 및 위협 탐지 도구를 사용하여 인터넷에 연결된 자산을 모니터링할 수 있습니다. 전문가들은 인시던트 대응 팀이 Log4Shell 활동의 힌트를 철저히 조사할 것을 권장합니다.
Log4Shell이 공개된 후 많은 방화벽, 침입 탐지 시스템(IDS) 및 침입 방지 시스템(IPS)이 Log4Shell 공격을 탐지하기 위한 규칙을 추가했습니다. 이러한 도구는 보안 팀이 공격자가 제어하는 서버의 트래픽을 감지하고 차단하는 데 도움이 될 수 있습니다.
2013년 7월 18일: Apache가 JNDI 플러그인을 지원하는 첫 번째 버전인 Log4J 2.0-beta9를 릴리스했습니다. 취약점은 몇 년이 지나야 발견되지만 Log4Shell은 지금 이 순간부터 존재합니다.
2021년 11월 24일: Alibaba의 보안 연구원들이 Log4Shell을 발견하고 Apache에 보고합니다. Apache는 패치 작업을 시작하지만 공개 보안 권고를 발표하지는 않습니다.
2021년 12월 9일: Alibaba의 보안 연구원이 Log4Shell이 실제로 논의되고 있다는 증거를 발견하고 개념 증명 공격 코드를 GitHub에 게시했습니다.
2021년 12월 10일: Apache가 첫 번째 패치를 발행하고, Minecraft 개발자가 Minecraft Java Edition에서 Log4Shell을 발견합니다. 사이버 보안 커뮤니티는 상황의 심각성을 빠르게 깨닫고 조직은 시스템을 폐쇄시키기 위해 고군분투하기 시작합니다.
2021년 12월 11일: Cloudflare는 위협 공격자들이 처음 생각했던 것보다 더 이른 시기인 12월 1일부터 Log4Shell을 공격하기 시작했다는 증거를 발견했습니다.
2021년 12월 14일: CVE-2021-45046이 발견되고 Apache가 이를 해결하기 위한 패치를 릴리스합니다.
2021년 12월 17일: CVE-2021-45105가 발견되고 Apache가 이를 해결하기 위한 패치를 릴리스합니다.
2021년 12월 28일: CVE-2021-44832가 발견되고 Apache가 최종 패치를 릴리스합니다. Log4J 버전 2.17.1 이상부터는 Log4Shell이 완전히 수정되었습니다.
2022년 1월 4일: 미국 연방거래위원회(FTC)가 Log4Shell을 해결하지 못해 소비자 데이터를 해커에게 노출시킨 모든 기업을 추적하겠다고 발표합니다.
2023년 5월: Check Point는 Log4Shell이 여전히 두 번째로 많이 공격받는 취약점이라는 사실을 발견했습니다.
온프레미스 또는 하이브리드 클라우드에서 구현되는 IBM 데이터 보안 솔루션은 사이버 위협을 조사 및 해결하고, 실시간 제어를 시행하며, 규정 준수를 관리하기 위한 가시성과 인사이트를 얻는 데 도움을 줍니다.
사전 예방적 위협 사냥, 지속적인 모니터링 및 위협에 대한 심층 조사는 이미 바쁜 IT 부서가 직면한 우선 순위 중 일부에 불과합니다. 신뢰할 수 있는 인시던트 대응 팀이 대기하고 있으면 대응 시간을 줄이고 사이버 공격의 영향을 최소화하며 더 빠르게 복구하는 데 도움이 됩니다.