블로그

Spring 라이브러리의 새로운 취약점: 위험에 처한 지, 무엇을 해야 하는지 파악하는 방법

찰리 에릭슨
게시일: Apr 01, 2022

최근 Java 커뮤니티에서 가장 인기있는 라이브러리 중 하나 인 Spring 라이브러리는 RCE (원격 코드 실행)와 관련된 2 가지 취약점을 공개했습니다. 취약점에 대한 위험이 있는지 그리고 어떤 조치를 취해야 하는지 더 쉽게 이해할 수 있도록 "Spring4Shell" 및 "Spring Cloud Function"에 대한 알려진 세부 정보를 세분화했습니다.

취약점 1 - "Spring4Shell"(CVE-2022-22965)

2022 년 3 월 29 일 커뮤니티는 가장 최근에 출시 된 버전 인 5.3.17을 포함하여 Spring Core의 모든 버전에 대한 원격 코드 실행을 허용하는 Spring Core (SC)를 대상으로 한 익스플로잇의 개념 증명 스크린 샷이 포함 된 일련의 트윗을 발견했습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

현재 Tomcat에서 호스팅되는 응용 프로그램 만이이 새로운 악용의 위험에 처한 것으로 확인되었습니다. 이 악용이 임베디드 Tomcat 서블릿 컨테이너 또는 Tomcat 호스팅되지 않은 다른 응용 프로그램에 대해 성공적으로 입증되지는 않았지만 위협이 향후 이러한 프레임 워크에 성공적으로 성공할 가능성을 배제하지는 않습니다. 

Spring은이 취약점에 대한 공식 성명서 를 발표했는데, 취약점에 대한 현재의 이해에 따라 취약하기 위해서는 다음 조건을 충족시켜야한다는 것을 분명히합니다.

  • JDK 9 이상
  • 서블릿 컨테이너로서의 아파치 톰캣
  • 전통적인 WAR로 패키지 됨 (스프링 부트 실행 항아리와 달리)
  • spring-webmvc 또는 spring-webflux 종속성
  • 스프링 프레임 워크 버전 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전

"Spring4Shell" 익스플로잇은 어떻게 작동하나요?

악용은 메소드 서명에서 POJO (Plain Old Java Objects)를 사용하는 요청에서 "Data Binding"(org.springframework.web.bind.WebDataBinder)을 사용하는 데 의존합니다.

여기서 Foo 클래스는 다음과 같이 정의 할 수있는 POJO 클래스입니다. 실제 클래스는 클래스 로더에 의해로드되는 한 중요하지 않습니다. 

요청이 이와 같은 메서드에 의해 처리되면 클래스 로더가 클래스를 확인하는 데 사용됩니다. 클래스 로더는 가능한 모든 유형을 메모리에 먼저 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다. 새 클래스를 사용할 때로드 할 .jar 파일을 파악합니다. 

이 취약점에 대한 최신 정보는 Spring에서 블로그 포스트에서 직접 찾을 수 있으며 잠재적 인 수정 사항이나 해결 방법을 포함합니다.

취약점 2 - 스프링 클라우드 기능(CVE-2022-22963)

2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 RCE(원격 코드 실행) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID CVE-2022-22963: 스프링 표현식 리소스 액세스 취약점이 할당되었습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

이 취약점은 다음 조건에서 응용 프로그램에 영향을 미쳤습니다.

  • JDK 9 이상
  • 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전 

악용은 어떻게 작동합니까?

Spring Cloud Function은 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 속성 spring.cloud.function.routing-expression을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다. 이것은 "스프링 표현 언어"(SpEL)를 받아들이는 강력한 기능입니다. 이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었으며, 이는 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 포함시켜 임의 코드를 실행할 수 있음을 의미합니다. 

사용자가 위험을 완화하기 위해 취해야 할 단계는 무엇입니까?

Spring은 HTTP 헤더를 통해이 속성을 설정하지 못하게하여이 문제를 해결하기 위해 버전 3.1.7 및 3.2.3을 출시 하여 취약점을 완화했습니다. 두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.

개발자가 더욱 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알고 싶으신가요? 데모를 예약하거나 보안 코드 코치에서 무료 보안 코딩 가이드라인을 살펴보세요.

소스

리소스 보기
리소스 보기

최근 Java 커뮤니티에서 가장 인기있는 라이브러리 중 하나 인 Spring 라이브러리는 RCE (원격 코드 실행)와 관련된 2 가지 취약점을 공개했습니다. 우리는 "Spring4Shell"및 "Spring Cloud Function"에 대한 알려진 세부 사항을 세분화하여 위험에 처해 있는지 그리고 위험에 처한 경우해야 할 일을 이해하는 데 도움을줍니다.

더 알고 싶으신가요?

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약
공유하세요:
저자
찰리 에릭슨
게시일: Apr 01, 2022

공유하세요:

최근 Java 커뮤니티에서 가장 인기있는 라이브러리 중 하나 인 Spring 라이브러리는 RCE (원격 코드 실행)와 관련된 2 가지 취약점을 공개했습니다. 취약점에 대한 위험이 있는지 그리고 어떤 조치를 취해야 하는지 더 쉽게 이해할 수 있도록 "Spring4Shell" 및 "Spring Cloud Function"에 대한 알려진 세부 정보를 세분화했습니다.

취약점 1 - "Spring4Shell"(CVE-2022-22965)

2022 년 3 월 29 일 커뮤니티는 가장 최근에 출시 된 버전 인 5.3.17을 포함하여 Spring Core의 모든 버전에 대한 원격 코드 실행을 허용하는 Spring Core (SC)를 대상으로 한 익스플로잇의 개념 증명 스크린 샷이 포함 된 일련의 트윗을 발견했습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

현재 Tomcat에서 호스팅되는 응용 프로그램 만이이 새로운 악용의 위험에 처한 것으로 확인되었습니다. 이 악용이 임베디드 Tomcat 서블릿 컨테이너 또는 Tomcat 호스팅되지 않은 다른 응용 프로그램에 대해 성공적으로 입증되지는 않았지만 위협이 향후 이러한 프레임 워크에 성공적으로 성공할 가능성을 배제하지는 않습니다. 

Spring은이 취약점에 대한 공식 성명서 를 발표했는데, 취약점에 대한 현재의 이해에 따라 취약하기 위해서는 다음 조건을 충족시켜야한다는 것을 분명히합니다.

  • JDK 9 이상
  • 서블릿 컨테이너로서의 아파치 톰캣
  • 전통적인 WAR로 패키지 됨 (스프링 부트 실행 항아리와 달리)
  • spring-webmvc 또는 spring-webflux 종속성
  • 스프링 프레임 워크 버전 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전

"Spring4Shell" 익스플로잇은 어떻게 작동하나요?

악용은 메소드 서명에서 POJO (Plain Old Java Objects)를 사용하는 요청에서 "Data Binding"(org.springframework.web.bind.WebDataBinder)을 사용하는 데 의존합니다.

여기서 Foo 클래스는 다음과 같이 정의 할 수있는 POJO 클래스입니다. 실제 클래스는 클래스 로더에 의해로드되는 한 중요하지 않습니다. 

요청이 이와 같은 메서드에 의해 처리되면 클래스 로더가 클래스를 확인하는 데 사용됩니다. 클래스 로더는 가능한 모든 유형을 메모리에 먼저 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다. 새 클래스를 사용할 때로드 할 .jar 파일을 파악합니다. 

이 취약점에 대한 최신 정보는 Spring에서 블로그 포스트에서 직접 찾을 수 있으며 잠재적 인 수정 사항이나 해결 방법을 포함합니다.

취약점 2 - 스프링 클라우드 기능(CVE-2022-22963)

2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 RCE(원격 코드 실행) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID CVE-2022-22963: 스프링 표현식 리소스 액세스 취약점이 할당되었습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

이 취약점은 다음 조건에서 응용 프로그램에 영향을 미쳤습니다.

  • JDK 9 이상
  • 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전 

악용은 어떻게 작동합니까?

Spring Cloud Function은 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 속성 spring.cloud.function.routing-expression을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다. 이것은 "스프링 표현 언어"(SpEL)를 받아들이는 강력한 기능입니다. 이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었으며, 이는 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 포함시켜 임의 코드를 실행할 수 있음을 의미합니다. 

사용자가 위험을 완화하기 위해 취해야 할 단계는 무엇입니까?

Spring은 HTTP 헤더를 통해이 속성을 설정하지 못하게하여이 문제를 해결하기 위해 버전 3.1.7 및 3.2.3을 출시 하여 취약점을 완화했습니다. 두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.

개발자가 더욱 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알고 싶으신가요? 데모를 예약하거나 보안 코드 코치에서 무료 보안 코딩 가이드라인을 살펴보세요.

소스

리소스 보기
리소스 보기

아래 양식을 작성하여 보고서를 다운로드하세요.

우리는 당신에게 우리의 제품 및 / 또는 관련 보안 코딩 주제에 대한 정보를 보낼 수있는 귀하의 허가를 바랍니다. 우리는 항상 최대한의주의를 기울여 귀하의 개인 정보를 취급 할 것이며 마케팅 목적으로 다른 회사에 판매하지 않을 것입니다.

전송
양식을 제출하려면 '분석' 쿠키를 활성화하세요. 완료되면 언제든지 다시 비활성화할 수 있습니다.

최근 Java 커뮤니티에서 가장 인기있는 라이브러리 중 하나 인 Spring 라이브러리는 RCE (원격 코드 실행)와 관련된 2 가지 취약점을 공개했습니다. 취약점에 대한 위험이 있는지 그리고 어떤 조치를 취해야 하는지 더 쉽게 이해할 수 있도록 "Spring4Shell" 및 "Spring Cloud Function"에 대한 알려진 세부 정보를 세분화했습니다.

취약점 1 - "Spring4Shell"(CVE-2022-22965)

2022 년 3 월 29 일 커뮤니티는 가장 최근에 출시 된 버전 인 5.3.17을 포함하여 Spring Core의 모든 버전에 대한 원격 코드 실행을 허용하는 Spring Core (SC)를 대상으로 한 익스플로잇의 개념 증명 스크린 샷이 포함 된 일련의 트윗을 발견했습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

현재 Tomcat에서 호스팅되는 응용 프로그램 만이이 새로운 악용의 위험에 처한 것으로 확인되었습니다. 이 악용이 임베디드 Tomcat 서블릿 컨테이너 또는 Tomcat 호스팅되지 않은 다른 응용 프로그램에 대해 성공적으로 입증되지는 않았지만 위협이 향후 이러한 프레임 워크에 성공적으로 성공할 가능성을 배제하지는 않습니다. 

Spring은이 취약점에 대한 공식 성명서 를 발표했는데, 취약점에 대한 현재의 이해에 따라 취약하기 위해서는 다음 조건을 충족시켜야한다는 것을 분명히합니다.

  • JDK 9 이상
  • 서블릿 컨테이너로서의 아파치 톰캣
  • 전통적인 WAR로 패키지 됨 (스프링 부트 실행 항아리와 달리)
  • spring-webmvc 또는 spring-webflux 종속성
  • 스프링 프레임 워크 버전 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전

"Spring4Shell" 익스플로잇은 어떻게 작동하나요?

악용은 메소드 서명에서 POJO (Plain Old Java Objects)를 사용하는 요청에서 "Data Binding"(org.springframework.web.bind.WebDataBinder)을 사용하는 데 의존합니다.

여기서 Foo 클래스는 다음과 같이 정의 할 수있는 POJO 클래스입니다. 실제 클래스는 클래스 로더에 의해로드되는 한 중요하지 않습니다. 

요청이 이와 같은 메서드에 의해 처리되면 클래스 로더가 클래스를 확인하는 데 사용됩니다. 클래스 로더는 가능한 모든 유형을 메모리에 먼저 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다. 새 클래스를 사용할 때로드 할 .jar 파일을 파악합니다. 

이 취약점에 대한 최신 정보는 Spring에서 블로그 포스트에서 직접 찾을 수 있으며 잠재적 인 수정 사항이나 해결 방법을 포함합니다.

취약점 2 - 스프링 클라우드 기능(CVE-2022-22963)

2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 RCE(원격 코드 실행) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID CVE-2022-22963: 스프링 표현식 리소스 액세스 취약점이 할당되었습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

이 취약점은 다음 조건에서 응용 프로그램에 영향을 미쳤습니다.

  • JDK 9 이상
  • 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전 

악용은 어떻게 작동합니까?

Spring Cloud Function은 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 속성 spring.cloud.function.routing-expression을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다. 이것은 "스프링 표현 언어"(SpEL)를 받아들이는 강력한 기능입니다. 이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었으며, 이는 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 포함시켜 임의 코드를 실행할 수 있음을 의미합니다. 

사용자가 위험을 완화하기 위해 취해야 할 단계는 무엇입니까?

Spring은 HTTP 헤더를 통해이 속성을 설정하지 못하게하여이 문제를 해결하기 위해 버전 3.1.7 및 3.2.3을 출시 하여 취약점을 완화했습니다. 두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.

개발자가 더욱 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알고 싶으신가요? 데모를 예약하거나 보안 코드 코치에서 무료 보안 코딩 가이드라인을 살펴보세요.

소스

리소스에 접근

아래 링크를 클릭하여 이 자료의 PDF를 다운로드하세요.

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

보고서 보기데모 예약
PDF 다운로드
리소스 보기
공유하세요:
더 알고 싶으신가요?

공유하세요:
저자
찰리 에릭슨
게시일: Apr 01, 2022

공유하세요:

최근 Java 커뮤니티에서 가장 인기있는 라이브러리 중 하나 인 Spring 라이브러리는 RCE (원격 코드 실행)와 관련된 2 가지 취약점을 공개했습니다. 취약점에 대한 위험이 있는지 그리고 어떤 조치를 취해야 하는지 더 쉽게 이해할 수 있도록 "Spring4Shell" 및 "Spring Cloud Function"에 대한 알려진 세부 정보를 세분화했습니다.

취약점 1 - "Spring4Shell"(CVE-2022-22965)

2022 년 3 월 29 일 커뮤니티는 가장 최근에 출시 된 버전 인 5.3.17을 포함하여 Spring Core의 모든 버전에 대한 원격 코드 실행을 허용하는 Spring Core (SC)를 대상으로 한 익스플로잇의 개념 증명 스크린 샷이 포함 된 일련의 트윗을 발견했습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

현재 Tomcat에서 호스팅되는 응용 프로그램 만이이 새로운 악용의 위험에 처한 것으로 확인되었습니다. 이 악용이 임베디드 Tomcat 서블릿 컨테이너 또는 Tomcat 호스팅되지 않은 다른 응용 프로그램에 대해 성공적으로 입증되지는 않았지만 위협이 향후 이러한 프레임 워크에 성공적으로 성공할 가능성을 배제하지는 않습니다. 

Spring은이 취약점에 대한 공식 성명서 를 발표했는데, 취약점에 대한 현재의 이해에 따라 취약하기 위해서는 다음 조건을 충족시켜야한다는 것을 분명히합니다.

  • JDK 9 이상
  • 서블릿 컨테이너로서의 아파치 톰캣
  • 전통적인 WAR로 패키지 됨 (스프링 부트 실행 항아리와 달리)
  • spring-webmvc 또는 spring-webflux 종속성
  • 스프링 프레임 워크 버전 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19 및 이전 버전

"Spring4Shell" 익스플로잇은 어떻게 작동하나요?

악용은 메소드 서명에서 POJO (Plain Old Java Objects)를 사용하는 요청에서 "Data Binding"(org.springframework.web.bind.WebDataBinder)을 사용하는 데 의존합니다.

여기서 Foo 클래스는 다음과 같이 정의 할 수있는 POJO 클래스입니다. 실제 클래스는 클래스 로더에 의해로드되는 한 중요하지 않습니다. 

요청이 이와 같은 메서드에 의해 처리되면 클래스 로더가 클래스를 확인하는 데 사용됩니다. 클래스 로더는 가능한 모든 유형을 메모리에 먼저 미리 로드할 필요 없이 런타임에 클래스를 로드하는 역할을 합니다. 새 클래스를 사용할 때로드 할 .jar 파일을 파악합니다. 

이 취약점에 대한 최신 정보는 Spring에서 블로그 포스트에서 직접 찾을 수 있으며 잠재적 인 수정 사항이나 해결 방법을 포함합니다.

취약점 2 - 스프링 클라우드 기능(CVE-2022-22963)

2022년 3월 27일, 사이버 켄드라는 패치가 존재하지 않는 스프링 클라우드 함수의 0일 RCE(원격 코드 실행) 취약점에 대한 세부 정보를 공개했습니다. 이 취약점에는 ID CVE-2022-22963: 스프링 표현식 리소스 액세스 취약점이 할당되었습니다.

어떤 응용 프로그램이 위험에 처해 있습니까?

이 취약점은 다음 조건에서 응용 프로그램에 영향을 미쳤습니다.

  • JDK 9 이상
  • 스프링 클라우드 함수 버전 3.1.6 (또는 그 이하), 3.2.2 (또는 그 이하) 또는 지원되지 않는 버전 

악용은 어떻게 작동합니까?

Spring Cloud Function은 개발자가 일반적으로 구성 또는 코드를 통해 수행되는 속성 spring.cloud.function.routing-expression을 통해 라우팅이 처리되는 방식을 구성할 수 있는 기능을 제공합니다. 이것은 "스프링 표현 언어"(SpEL)를 받아들이는 강력한 기능입니다. 이 0일 취약점을 통해 요청의 HTTP 헤더를 통해 이 속성을 설정할 수 있다는 사실을 알게 되었으며, 이는 공격자가 RoutingFunction 엔드포인트에 대한 HTTP 요청에 SpEL 코드를 직접 포함시켜 임의 코드를 실행할 수 있음을 의미합니다. 

사용자가 위험을 완화하기 위해 취해야 할 단계는 무엇입니까?

Spring은 HTTP 헤더를 통해이 속성을 설정하지 못하게하여이 문제를 해결하기 위해 버전 3.1.7 및 3.2.3을 출시 하여 취약점을 완화했습니다. 두 버전 중 하나로 업그레이드한 후에는 추가 단계가 필요하지 않습니다.

개발자가 더욱 안전한 코드를 작성하도록 지원하는 방법에 대해 자세히 알고 싶으신가요? 데모를 예약하거나 보안 코드 코치에서 무료 보안 코딩 가이드라인을 살펴보세요.

소스

목차

PDF 다운로드
리소스 보기
더 알고 싶으신가요?

Secure Code Warrior 는 전체 소프트웨어 개발 수명 주기에서 코드를 보호하고 사이버 보안을 최우선으로 생각하는 문화를 조성할 수 있도록 도와드립니다. 앱 보안 관리자, 개발자, CISO 등 보안과 관련된 모든 사람이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 도와드릴 수 있습니다.

데모 예약다운로드
공유하세요:
리소스 허브

시작할 수 있는 리소스

더 많은 게시물
리소스 허브

시작할 수 있는 리소스

더 많은 게시물