SSL(Secure Sockets Layer)은 1999년 TLS(Transport Layer Security)이전의 인터넷 통신을 통한 보안을 제공하기 위해 가장 널리 배포 된 암호화 프로토콜이었습니다.SSL 프로토콜의 사용이 중단되고 대신 TLS가 채택되었지만 사람들은 여전히 이 유형의 기술을 'SSL'이라고합니다.
유서트에서 판매되는AATL(Adobe Approved Trust List) 인증서는 전 세계 수 백만 명의 사람들이 세계에서 가장 신뢰할 수있는 디지털 ID를 사용하여 문서에 디지털 서명을 할 수 있게 해주는 인증서이며,Secure Email(S/MIME) 사용자가 전자 메일에 디지털 서명하고 암호화 할 수 있도록 하는 인증서 입니다.
□ 개요 o Spring 보안팀에서 Spring 프레임워크 및 Spring Cloud Function 관련 원격코드 실행 취약점을 해결한 임시조치 방안 및 보안업데이트 권고 o 공격자는 해당 취약점을 이용하여 정상 서비스에 피해를 발생시킬 수 있으므로, 최신 버전으로 업데이트 권고 □ 주요 내용 o Spring Core에서 발생하는 원격코드실행 취약점(Spring4Shell 취약점)[1] o Spring Cloud Function에서 발생하는 원격코드실행 취약점 (CVE-2022-22963)[2] □ 영향을 받는 버전 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 업데이트 버전 제외) □ Spring4Shell 버전 확인 방법 o JDK 버전 확인 - “java -version” 명령 입력
o Spring 프레임워크 사용 유무 확인 - 프로젝트가 jar, war 패키지로 돼 있는 경우 zip 확장자로 변경하여 압축풀기 이후 아래와 같이 “spring-beans-.jar”, “spring.jar”, “CachedIntrospectionResuLts.class” 로 검색
find . -name spring-beans*.jar
□ 대응방안 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); } }