Spring4Shell: Spring 핵심 RCE 취약점
출처 | https://www.cyberkendra.com/2022/03/springshell-rce-0-day-vulnerability.html?m=1 |
---|
+++추가
https://svrforum.com/itnews/222674
https://svrforum.com/itnews/224085
Log4j 시즌 2입니다...ㅂㄷㅂㄷ
현재는 WAF를 이용한 대응방법밖에없는듯합니다.
WAF 및 업데이트로 가능하다고합니다.
보안담당자들이 또 바빠지겠네요..
업데이트:- 우리는 Spring4Shell 취약점에 대한 몇 가지 정보를 가지고 있으며 Spring4Shell: 세부 정보 및 악용 게시물에 대한 세부 정보를 공유했습니다. 또한 Praetorian의 보안 팀은 JDK9+의 Spring Core가 CVE-2010-1622에 대한 우회로 인해 원격 코드 실행에 취약하다는 것을 확인했습니다.
오늘날 연구원들은 수많은 애플리케이션에 심각한 피해를 줄 수 있는 또 다른 최악의 취약점을 발견했습니다. 인터넷을 망칠 수 있습니다. 이 시점에서 이 취약점에 대한 CVE ID는 없지만 Spring4Shell 이라고 부를 수 있습니다 . 취약점은 JDK 버전이 9.0 이상인 Spring 코어에 존재합니다.
Spring Framework 및 파생된 프레임워크 spring -beans-*.jar 파일 또는 CachedIntrospectionResults.class
취약점 세부정보 및 조사
- 현재 이 취약점을 유발하려면 두 가지 기본 조건이 필요하다고 알려져 있습니다.
- JDK9 이상의 Spring MVC 프레임워크 사용
(1). JDK 버전 번호 확인
조직 시스템의 실행 중인 서버에서 " java -version " 명령을 실행하여 실행 중인 JDK 버전을 확인합니다. 버전 번호가 8 이하인 경우 취약점의 영향을 받지 않습니다.
(2). Spring 프레임워크 사용 확인
1. 조직체계 프로젝트가 전쟁패키지 형태로 전개되는 경우 아래의 순서대로 판단하여 진행한다.
- war 패키지 압축 풀기: war 파일의 접미사를 .zip으로 변경하고 zip 파일의 압축을 풉니다.
- 압축 해제 디렉토리 에서 spring-beans-*.jar 형식의 jar 파일(예: spring-beans-5.3.16.jar)을 검색합니다. 존재한다면 비즈니스 시스템이 스프링 프레임워크를 사용하여 개발되었음을 의미합니다.
- spring-beans-*.jar 파일이 존재하지 않는다면 , 압축해제 디렉토리에서 CachedIntrospectionResuLts.class 파일 의 존재를 검색한다 . 존재한다면 Spring 프레임워크를 사용하여 비즈니스 시스템을 개발했다는 의미입니다.
2. 조직 시스템 프로젝트가 jar 패키지 형태로 직접 독립적으로 실행되는 경우 다음 단계에 따라 판단합니다.
- jar 패키지 압축 풀기: jar 파일의 접미사를 .zip으로 변경하고 zip 파일의 압축을 풉니다.
- 압축 해제 디렉토리 에서 spring-beans-*.jar 형식의 jar 파일(예: spring-beans-5.3.16.jar)을 검색합니다. 존재한다면 비즈니스 시스템이 스프링 프레임워크를 사용하여 개발되었음을 의미합니다.
- spring-beans-*.jar 파일이 존재하지 않는다면 , 압축해제 디렉토리에서 CachedIntrospectionResuLts.class 파일의 존재를 검색한다. 존재한다면 비즈니스 시스템이 스프링 프레임워크를 사용하여 개발되었음을 의미합니다.
(3) 종합조사
위의 두 가지 문제 해결 단계를 완료한 후 다음 두 가지 조건이 동시에 충족되어 이 취약점의 영향을 받는지 확인합니다.
- JDK 버전 번호는 9 이상입니다.
- 스프링 프레임워크 또는 파생 프레임워크를 사용합니다.
취약점 수정 가이드
WAF 보호
임시 수리 조치
Spring 프로젝트 의 Git Repository 에서 Spring 개발자가 원격 코드 실행 취약점에 대한 수정 작업을 하고 있는 것으로 보이지만 공식 확인을 기다려야 합니다.