상세 컨텐츠

본문 제목

새로운 Spring Java 프레임워크 제로데이, 원격 코드 실행 허용해

국내외 보안동향

by 알약4 2022. 3. 31. 08:19

본문

New Spring Java framework zero-day allows remote code execution

 

Spring Core Java 프레임워크의 새로운 제로데이 취약점인 'Spring4Shell'이 공개되었습니다. 해당 취약점은 애플리케이션에서 인증되지 않은 원격 코드 실행을 허용하는 것으로 나타났습니다.

 

Spring은 소프트웨어 개발자가 엔터프라이즈 수준의 기능으로 Java 애플리케이션을 빠르고 쉽게 개발할 수 있도록 하는 인기 높은 애플리케이션 프레임워크입니다. 이후 이러한 애플리케이션을 Apache Tomcat과 같은 서버에 필요한 모든 종속성이 있는 독립 실행형 패키지로써 배포할 수 있습니다.

 

329, CVE-2022-22963으로 등록된 새로운 Spring Cloud Function 취약점이 공개되었으며 곧 PoC 익스플로잇 또한 생성될 것으로 예상됩니다.

 

하지만 이후 더 심각한 Spring Core 원격 코드 실행 취약점에 대한 정보가 QQ 채팅 서비스 및 중국 사이버 보안 사이트에서 유포되고 있었습니다.

 

Spring4Shell로 명명된 이 새로운 Spring RCE 취약점은 Java 9 이상에서 실행되는 Spring 애플리케이션에만 영향을 미치며, 전달된 인수의 안전하지 않은 역직렬화로 인해 발생합니다.

 

이 제로 데이 취약점에 대한 익스플로잇은 잠시 동안 유출된 후 삭제되었지만, 사이버 보안 연구원은 그 전에 이를 다운로드 할 수 있었습니다.

 

이후 수 많은 사이버 보안 연구원들과 보안 회사에서 해당 취약점이 실제로 유효하고 심각한 문제임을 확인했습니다.

 

 

< 이미지 출처 : https://twitter.com/testanull/status/1509185015187345411, https://twitter.com/pwntester/status/1509235919106236416>

 

 

사이버 보안 회사인 Praetorian에서도 버그를 확인했지만, 이를 제대로 악용하려면 특정 방식으로 구성되어야 한다고 밝혔습니다.

 

Praetorian은 블로그를 통해 아래와 같이 밝혔습니다.

 

"악용에는 DataBinder가 활성화된 엔드포인트가 필요하며(: 요청의 body에서 데이터를 자동으로 디코딩하는 POST 요청) 애플리케이션의 서브렛 컨테이너에 크게 의존합니다."

 

"예를 들어, Spring Apache Tomcat에 배포되면 WebAppClassLoader에 액세스할 수 있기 때문에 공격자가 getter setter를 호출하여 결국 디스크에 악성 JSP 파일을 작성할 수 있게 됩니다."

 

"하지만 Embedded Tomcat Servlet Container를 사용하여 Spring을 배포할 경우 classloader는 액세스가 제한된 LaunchedURLClassLoader입니다."

 

"특정 구성에서는 공격자가 취약한 시스템에 조작된 POST 요청을 보내기만 하면 되기 때문에 취약점 악용이 간단합니다. 하지만 다른 구성일 경우 공격자는 악용에 효과적인 페이로드를 찾기 위해 추가적인 조사를 해야 합니다."

 

하지만 연구원들은 Spring이 일반적으로 Apache Tomcat과 함께 사용되기 때문에 폭넓은 악용 가능성이 있다고 밝혔습니다.

 

또한 BleepingComputer는 여러 출처로부터 Spring4Shell 취약점이 공격에 적극적으로 악용되고 있다는 제보를 받았습니다.

 

 

< 이미지 출처 : https://twitter.com/th3_protoCOL/status/1509201539461619715>

 

 

Praetorian블로그를 통해 특정 '패턴' Spring Core DataBinder 기능에 전달되는 것을 허용하지 않음으로써 Spring4Shell 공격을 부분적으로 완화할 수 있는 방법을 설명했습니다.

 

이 취약점을 수정하는 패치는 아직까지 없기 때문에, Spring 애플리케이션을 사용할 경우 이러한 방법을 통해 위험을 완화하는 것이 좋습니다.

 

 

 

 

출처:

https://www.bleepingcomputer.com/news/security/new-spring-java-framework-zero-day-allows-remote-code-execution/

https://www.praetorian.com/blog/spring-core-jdk9-rce/

관련글 더보기

댓글 영역