[긴급] 표준프레임워크 및 Spring Java 프레임워크 보안 업데이트 긴급공지
- 작성자
- 관리자
- 작성일
- 2022-04-01
- 조회수
- 4,785
[긴급] 표준프레임워크 및 Spring Java 프레임워크 보안 업데이트 긴급공지
전자정부 표준프레임워크센터입니다.
표준프레임워크 실행환경 및 Spring Framework 기반 프레임워크 관련하여 보안취약점이 발표되었습니다.
아래의 내용을 확인하시어 즉시 조치하여 주시기 바랍니다.
=======================================
□ 개요
o Spring 보안팀에서 Spring 프레임워크 관련 원격코드 실행 취약점을 해결한 임시조치 방안 및 보안업데이트 권고
o 공격자는 해당 취약점을 이용하여 정상 서비스에 피해를 발생시킬 수 있으므로, 최신 버전으로 업데이트 권고
□ 주요 내용
o Spring Core에서 발생하는 원격코드실행 취약점(CVE-2022-22965)[1][2]
□ 영향을 받는 버전
o JDK 9 이상 Spring 프레임워크 사용하는 경우
※ JDK 8 이하의 경우 취약점의 영향을 받지 않음
□ Spring4Shell 버전 확인 방법
o JDK 버전 확인
- “java -version” 명령 입력
o Spring 프레임워크 사용 유무 확인
- 프로젝트가 jar, war 패키지로 돼 있는 경우 zip 확장자로 변경하여 압축풀기
이후 아래와 같이 “spring-beans-.jar”, “spring.jar”, “CachedIntrospectionResuLts.class” 로 검색
find . -name spring-beans*.jar
□ 대응방안
o 표준프레임워크의 경우 아래와 같이 조치 적용 (운영환경 JDK 9 버전 이상인 경우)
· 프로젝트 패키지 아래 해당 전역 클래스 생성 후 재컴파일(테스트 필요)
----------------------------------------------------------------------------------------------------------------
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 표준프레임워크가 아닌 Spring 프레임워크 기반인경우 제조사 홈페이지를 통해 최신버전으로 업데이트 적용
※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
· Spring Framework 5.3.18, 5.2.20 버전으로 업데이트[3]
참고사이트
[1] 취약점 정보 : https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
[2] 취약점 업데이트 정보 : https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
[3] 신규버전 다운로드 : https://repo.maven.apache.org/maven2/org/springframework/
출처 :
https://krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592
전자정부 표준프레임워크센터입니다.
표준프레임워크 실행환경 및 Spring Framework 기반 프레임워크 관련하여 보안취약점이 발표되었습니다.
아래의 내용을 확인하시어 즉시 조치하여 주시기 바랍니다.
=======================================
□ 개요
o Spring 보안팀에서 Spring 프레임워크 관련 원격코드 실행 취약점을 해결한 임시조치 방안 및 보안업데이트 권고
o 공격자는 해당 취약점을 이용하여 정상 서비스에 피해를 발생시킬 수 있으므로, 최신 버전으로 업데이트 권고
□ 주요 내용
o Spring Core에서 발생하는 원격코드실행 취약점(CVE-2022-22965)[1][2]
□ 영향을 받는 버전
o JDK 9 이상 Spring 프레임워크 사용하는 경우
※ JDK 8 이하의 경우 취약점의 영향을 받지 않음
□ Spring4Shell 버전 확인 방법
o JDK 버전 확인
- “java -version” 명령 입력
o Spring 프레임워크 사용 유무 확인
- 프로젝트가 jar, war 패키지로 돼 있는 경우 zip 확장자로 변경하여 압축풀기
이후 아래와 같이 “spring-beans-.jar”, “spring.jar”, “CachedIntrospectionResuLts.class” 로 검색
find . -name spring-beans*.jar
□ 대응방안
o 표준프레임워크의 경우 아래와 같이 조치 적용 (운영환경 JDK 9 버전 이상인 경우)
· 프로젝트 패키지 아래 해당 전역 클래스 생성 후 재컴파일(테스트 필요)
----------------------------------------------------------------------------------------------------------------
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 표준프레임워크가 아닌 Spring 프레임워크 기반인경우 제조사 홈페이지를 통해 최신버전으로 업데이트 적용
※ 제조사 홈페이지에 신규버전이 계속 업데이트되고 있어 확인 후 업데이트 적용 필요
· Spring Framework 5.3.18, 5.2.20 버전으로 업데이트[3]
참고사이트
[1] 취약점 정보 : https://www.rapid7.com/blog/post/2022/03/30/spring4shell-zero-day-vulnerability-in-spring-framework/
[2] 취약점 업데이트 정보 : https://spring.io/blog/2022/03/31/spring-framework-rce-early-announcement
[3] 신규버전 다운로드 : https://repo.maven.apache.org/maven2/org/springframework/
출처 :
https://krcert.or.kr/data/secNoticeView.do?bulletin_writing_sequence=66592