기사 한줄요약(22.3.31.):
'스프링(Spring)'이라는 자바 애플리케이션 프레임워크에서 제로데이 취약점인 스프링4셸(Spring4Shell)이 발견되었다.
취약점 번호는 CVE-2022-2296이며, 로그4셸처럼 강력한 취약점이 될지는 아직 더 분석이 필요하다고 한다.
[ 스피링4셸 취약점 ]
- Spring (자바 프레임워크)
* 취약점 실행을 위해서는 조건이 필요
- 중국QQ라는 채팅 서비스에서 활발히 사용.
- 영향 : 원격 코드 실행
문가용 기자, 새로운 로그4셸? 스프링에서 스프링4셸 취약점 발견돼, 보안뉴스, https://m.boannews.com/html/detail.html?mtype=6&tab_type=&idx=105816
[ KISA 보안공지]
Spring Java 프레임워크 보안 업데이트 권고
1. 개요
o Spring 보안팀에서 Spring 프레임워크 및 Spring Cloud Function 관련 원격코드 실행 취약점을 해결한 임시조치 방안 및 보안업데이트 권고
o 공격자는 해당 취약점을 이용하여 정상 서비스에 피해를 발생시킬 수 있으므로, 최신 버전으로 업데이트 권고
2. 주요 내용
o Spring Core에서 발생하는 원격코드실행 취약점(Spring4Shell 취약점)[1]
o Spring Cloud Function에서 발생하는 원격코드실행 취약점 (CVE-2022-22963)[2]
3. 영향을 받는 버전
o Spring4Shell
- 1) JDK 9 이상의 2) Spring 프레임워크 사용하는 경우
※ JDK 8 이하의 경우 취약점의 영향을 받지 않음
o CVE-2022-22963
- Spring Cloud Function 3.1.6 ~ 3.2.2 버전
※ 취약점이 해결된 버전 제외(3.1.7, 3.2.3 업데이트 버전 제외)
4. Spring4Shell 버전 확인 방법
o JDK 버전 확인
- “java -version” 명령 입력
o Spring 프레임워크 사용 유무 확인
- 프로젝트가 jar, war 패키지로 돼 있는 경우 zip 확장자로 변경하여 압축풀기
이후 아래와 같이 “spring-beans-.jar”, “spring.jar”, “CachedIntrospectionResuLts.class” 로 검색
find . -name spring-beans*.jar
5. 대응방안
o (Spring4Shell)
- 프로젝트 패키지 아래 해당 전역 클래스 생성 후 재컴파일(테스트 필요)
import org.springwork.core.Ordered;
import org.springwork.core.annotation.Order;
import org.springwork.web.bind.WebDataBinder;
import org.springwork.web.bind.annotation.ControllerAdvice;
import org.springwork.web.bind.annotation.InitBinder;
@ControllerAdvice
@Order(10000)
public class BinderControllerAdvice {
@InitBinder
public setAllowedFields(WebDataBinder dataBinder) {
String[] denylist = new String[]{"class.*", "Class.*", "*.class.*", "*.Class.*"};
dataBinder.setDisallowedFields(denylist);
}
}
※ 보안 업데이트가 공지될 경우 업로드 예정
o CVE-2022-22963
- 제조사 홈페이지를 통해 최신버전으로 업데이트 적용
· Spring Cloud Function 3.1.7, 3.2.3 버전으로 업데이트[3]
6. 기타 문의사항
o 한국인터넷진흥원 사이버민원센터: 국번없이 118
7. 작성 : 침해사고분석단 취약점분석팀
https://www.krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592