상세 컨텐츠

본문 제목

새로운 log4shell?스프링에서 Spring4Shell 취약점 발견!

보안 카드뉴스

by MIR 2022. 4. 6. 17:53

본문

 

새로운 log4shell?

스프링에서 Spring4Shell 취약점 발견!

 

Spring 이란?

Java Spring에서 Spring4Shell(CVE-2022-22965) 취약점이 발견됐습니다. 

Spring은 자바 애플리케이션 개발을 용이하게 도와주는 애플리케이션 프레임워크입니다.

 

Spring4Shell 이란?

Spring4Shell은 Spring Framework의 getCachedIntrospectionResults 메서드가 

파라미터를 바인딩 할 때 바람직하지 않게 클래스 객체를 외부에 노출해 발생한 취약점입니다.

 

공격자는 HTTP POST 요청을 통해 ClassLoader를 조작하고 백도어를 설치하거나

임의의 코드를 실행할 수 있습니다.

 

Spring4Shell 이란?

CVE-2022-22965 취약점은 자바와 관련이 있다는 점이나 

익스플로잇 방법이 Log4Shell과 비슷하여 

Spring4Shell이라는 이름이 붙여졌습니다.

 

Spring4Shell 영향

보안 업체 소나타입(Sonatype)의 CTO인 일카 투루넨(Ilkka Turunen)은

“Spring4Shell은 중대한 문제이지만,

Log4Shell 취약점에 비해 익스플로잇에 필요한 조건이 많고, 

 실제 익스플로잇 공격이 발생할 가능성이 그리 많지 않다고

여러 조직들이 판단하고 있다“고 말했습니다.

 

Spring4Shell 공격 조건

· JDK 9+ 이상

· Apache Tomcat을 서블릿 컨테이너로 사용

· 전통적인 WAR 패키징 (스프링 부트의 jar 패키징은 해당 안됨)

· Spring Web MVC 혹은 Spring Webflux 사용

· ​Spring Framework 버전이 5.3.0 ~ 5.3.17, 5.2.0 ~ 5.2.19, 혹은 그 이하

 

이슈 버전 확인 방법

· ​JDK 버전 확인

$ java -version

· ​Spring Framework 사용 유무 확인

- 프로젝트 내 jar, war 패키지를 zip 확장자로 변경하여 압축 해제 후 대상 디렉토리에서 아래와 같이 명령어 실행

$ find . -name spring-beans*.jar

$ find . -name spring*.jar

$ find . -name CachedIntrospectionResuLts.class

 

Spring4Shell 대응 방안

이 문제를 해결하기 위해서는 

Spring Framework 버전 5.3.18 또는 5.2.20로, 

Spring Boot 버전 2.15.12 또는 2.6.6로 업그레이드해야 합니다. 

또한, 아래 링크에서 Spring4shell 취약점의 영향을 받지 않는 소프트웨어를 확인할 수 있습니다.

제조사별 현황 : https://github.com/NCSC-NL/spring4shell/tree/main/software

 

감사합니다.

 

참고 링크 : 

취약점 업데이트 정보 : https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement

KrCERT 보안공지 : https://krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592

https://www.boannews.com/media/view.asp?idx=105890&page=1&kind=1

관련글 더보기

댓글 영역