그들은 Spring Framework에서 취약점을 발견했습니다.

최근 뉴스는 제로데이 유형의 치명적인 취약점이 감지되었습니다. 모듈에서 Spring Framework의 일부로 제공되는 Spring Core, 인증되지 않은 원격 공격자가 서버에서 코드를 실행할 수 있도록 합니다.

일부 추정에 따르면 Spring Core 모듈은 자바 애플리케이션의 74%에서 사용. 취약점의 위험은 "@RequestMapping" 주석을 사용하여요청 핸들러를 연결하고 JSON/XML이 아닌 "name=value"(POJO, Plain Old Java Object) 형식의 웹 양식 매개변수 바인딩을 사용하면 공격에 취약합니다. 어떤 Java 애플리케이션과 프레임워크가 이 문제의 영향을 받는지는 아직 명확하지 않습니다.

"Spring4Shell"이라는 이 취약점은 전체 RCE로 이어지는 클래스 주입을 이용하며 매우 심각합니다. "Spring4Shell"이라는 이름은 Spring Core가 악명 높은 Log4Shell 취약점을 일으킨 log4j와 유사한 유비쿼터스 라이브러리이기 때문에 선택되었습니다.

JDK 버전 9 이상을 실행하는 사용자는 RCE 공격에 취약하다고 생각합니다. 모든 버전의 Spring Core가 영향을 받습니다.

공격을 완화하는 전략이 있으며 아래에서 논의되는 다른 요소에 따라 모든 Spring 서버가 반드시 취약한 것은 아니라고 생각합니다. 즉, 현재 모든 사용자가 Spring Core를 사용하는 경우 완화 또는 업그레이드를 적용하는 것이 좋습니다.

취약점 악용은 Java/JDK 9를 사용할 때만 가능합니다. 또는 최신 버전. 취약점은 "class", "module" 및 "classLoader" 필드의 블랙리스트 작성 또는 허용된 필드의 명시적 화이트리스트 사용을 차단합니다.

문제 CVE-2010-1622 취약점에 대한 보호를 우회하는 기능 때문입니다. 2010년 Spring Framework에서 수정되었으며 요청 매개변수를 구문 분석할 때 classLoader 핸들러의 실행과 연결되었습니다.

익스플로잇 작업은 요청을 보내는 것으로 축소됩니다. c"class.module.classLoader.resources.context.parent.pipeline.first.*" 매개변수를 사용하여 "WebappClassLoaderBase"를 사용할 때 처리가 AccessLogValve 클래스에 대한 호출로 이어집니다.

지정된 클래스를 사용하면 Apache Tomcat의 루트 환경에서 임의의 jsp 파일을 생성하고 공격자가 지정한 코드를 이 파일에 작성하도록 로거를 구성할 수 있습니다. 생성된 파일은 직접 요청이 가능하며 웹 셸로 사용할 수 있습니다. Apache Tomcat 환경에서 취약한 애플리케이션을 공격하려면 curl 유틸리티를 사용하여 특정 매개변수로 요청을 보내는 것으로 충분합니다.

Spring Core에서 고려 중인 문제 새로 식별된 취약점과 혼동하지 마십시오. CVE-2022-22963 및 CVE-2022-22950. 첫 번째 문제는 Spring Cloud 패키지에 영향을 미치며 원격 코드 실행(익스플로잇)도 가능하게 합니다. CVE-2022-22963은 Spring Cloud 3.1.7 및 3.2.3 릴리스에서 수정되었습니다.

두 번째 문제 CVE-2022-22950은 Spring Expression에 존재하며 DoS 공격을 시작하는 데 사용할 수 있으며 Spring Framework 5.3.17에서 수정되었습니다. 이것은 근본적으로 다른 취약점입니다. Spring Framework 개발자는 아직 새로운 취약점에 대해 어떠한 성명도 발표하지 않았으며 수정 사항을 발표하지도 않았습니다.

임시 보호 조치로 코드에서 잘못된 쿼리 매개변수의 블랙리스트를 사용하는 것이 좋습니다.

여전히 결과가 얼마나 치명적일 수 있는지 명확하지 않습니다. 확인된 문제 및 공격이 Log4j의 취약점의 경우와 같이 대규모인지 여부 2. 이 취약점의 코드명은 Spring4Shell, CVE-2022-22965이며 Spring Framework 5.3.18 및 5.2.20 업데이트가 릴리스되었습니다. 취약점을 해결하기 위해.

31년 2022월 5.3.18일 현재 최신 Spring 버전 5.2.20 및 XNUMX에서 패치를 사용할 수 있습니다. 모든 사용자가 업그레이드할 것을 권장합니다. 업그레이드할 수 없는 경우 다음 완화가 가능합니다.

Spring Core에 RCE가 있음을 확인하는 Praetorian의 게시물을 기반으로 현재 권장되는 접근 방식은 악용에 필요한 취약한 필드 패턴의 블랙리스트를 추가하여 DataBinder를 패치하는 것입니다.

마지막으로 예 당신은 그것에 대해 더 알고 싶어 메모에 대한 자세한 내용을 확인할 수 있습니다. 다음 링크에서.


코멘트를 남겨주세요

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

*

*

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