블로그

Spring4Shell 및 관련 취약점 이해 및 해결(CVE-2022-22965, CVE-2022-22950, CVE-2022-22963)

Brian A. McHenry 썸네일
브라이언 A. 맥헨리
2022년 4월 1일 게시

뉴욕 양키스의 불멸의 포수이자 메이저 리그 야구 명예의 전당 멤버이자 말장난의 제공자인 요기 베라의 말을 인용하자면, "다시 한번 데자뷰가 일어난 것 같아요."

Log4j 취약점과 Log4Shell 공격으로 인한 고통과 혼란을 겪은 후, 우리 모두가 애플리케이션 개발에 다시 뛰어드는 것이 안전하다고 생각했을 때, 보안의 큰 부분을 차지하고 귀중한 리소스를 삼켜 버릴 또 다른 취약점이 등장했습니다.

아마 이미 들어보셨겠지만, 2022년 3월 29일 중국에 거주하는 한 연구원이 Spring Core Java 라이브러리의 원격 코드 실행(RCE) 취약성의 스크린샷을 게시했습니다. 이 취약점은 이후 CVE-2022-22965 로 지정되었으며 CVSS 심각도 점수는 "중요"로 평가되었습니다. VMware 에서 보고한 해당 취약점은 GitHub에 게시되었지만 곧 제거되었습니다. 불행히도 피해는 이미 발생했고 해당 취약점은 다른 저장소에도 재빨리 게시되었습니다.

광범위한 미디어의 주목을 받는 많은 심각한 취약점과 마찬가지로 CVE-2022-22965도 일반 이름이 지정되었습니다. Spring4Shell 또는 어떤 경우에는 SpringShell. 그럼에도 불구하고 이 정도 심각도의 취약점은 어떤 이름으로 불리든 분명 위험합니다. Spring 라이브러리는 대부분의 애플리케이션에서 Java 프로그래머의 시간 절약을 위해 사용되기 때문입니다.

Spring이 2022년 3월 31일에 RCE를 조기에 발표하면서 게시한 블로그 에 따르면, 이 취약점은 Java Development Kit(JDK) 9 이상에서 실행되는 Spring MVC와 Spring WebFlux 애플리케이션에 영향을 미칩니다. 또한 해당 애플리케이션이 Apache Tomcat에서 WAR로 실행되어야 할 수도 있습니다. 이 취약점은 Spring Framework 버전 5.3.0~5.3.17, 5.2.0~5.2.19 및 이전 버전에 영향을 미칩니다. 아마도 더욱 우려스러운 점은 Spring이 "취약성의 본질은 더 일반적이며 아직 보고되지 않은 다른 악용 방법이 있을 수 있다"고 경고한다는 것입니다.

또한 Spring에 따르면, 기본인 Java Archive(JAR) 배포로 실행되는 애플리케이션은 CVE-2022-22965에 취약하지 않지만 공급업체는 다른 악용 기술의 영향을 받을 수 있다는 점을 인정합니다.

Spring4Shell 취약점은 또 다른 취약점에 이어서 발생합니다. Spring Cloud Function 소프트웨어 버전 3.1.6 및 3.2.2와 이전의 지원되지 않는 버전에서는 Spring Expression Language(SpEL)의 특별히 제작된 라우팅 표현식을 만들어 로컬 리소스에 액세스하고 RCE 공격을 가능하게 할 수 있습니다. 원래 "중간" CVSS 심각도 점수로 분류되었던 CVE-2022-22963은 이후 "중요" 취약점으로 재분류되었습니다. Spring Cloud Function 버전 3.1.7 또는 3.2.3으로 업그레이드하면 수정 사항을 적용할 수 있습니다.  

CVE-2022-22965 및 CVE-2022-22963과 별도로 Spring의 또 다른 취약점인 CVE-2022-22950이 2022년 3월 28일에 보고되었습니다. 이는 Spring Framework 버전 5.3.0~5.3.16 및 이전 버전의 지원되지 않는 서비스 거부(DoS) 취약점입니다. Spring은 Spring Framework 5.3.17+에서 수정 사항을 출시했습니다.

현재 Spring4Shell 스캐너가 이미 만들어져 배포되었으며, 취약점이 적극적으로 악용되고 있다는 보고가 접수되었습니다.

Spring은 CVE-2022-22965 취약점을 해결하는 버전을 출시했습니다. 여기에는 Spring Framework 5.3.18 및 5.2.20, 그리고 Spring Framework 5.3.18에 의존하는 Spring Boot 2.5.12가 포함됩니다. (Spring에 따르면, Spring Framework 5.3.18에 의존하는 Spring Boot 2.6.6도 곧 출시될 예정입니다.)

Spring은 이러한 심각한 취약점을 해결하기 위한 수정 프로그램을 출시하는 데 성공했지만, 다시 한번 조직이 가능한 한 빨리 업데이트하고 수정 프로그램을 적용해야 할 책임이 있습니다. Log4j/Log4Shell 문제와 마찬가지로, 문제는 라이브러리가 널리 퍼져 있고 조직에서 인지하지 못하는 애플리케이션에서 사용될 수 있다는 사실입니다. 조직이 애플리케이션이 영향을 받는 라이브러리 세트를 사용하고 있다는 사실을 알지 못한다면 조직과 사용자가 악용의 영향을 받지 않도록 어떻게 보호할 수 있을까요?

바로 여기서 F5가 등장합니다.

Spring 프레임워크 취약점과 Log4j 취약점 및 Log4Shell 익스플로잇 사이에는 특성상 유사점과 차이점이 있지만, 두 취약점 모두 웹 애플리케이션 방화벽(WAF) 및 유사한 보안 솔루션을 배포하여 감지하고 차단할 수 있습니다.

F5 고객으로서 여러분은 이미 Spring4Shell과 관련 취약성을 기반으로 하는 공격을 방어할 수 있는 가장 강력한 보호 수단을 갖추고 있습니다. 그러나 F5에서는 귀하와 귀사의 개발팀에 영향을 받는 모든 Spring 라이브러리를 즉시 업그레이드하고, 더 이상 필요하지 않은 경우 애플리케이션에서 취약한 Spring 라이브러리를 제거할 것을 촉구합니다.

F5가 포괄적이고 역동적인 보안 제품 및 서비스 포트폴리오를 통해 어떻게 귀사를 지원하고 귀사의 애플리케이션, 조직 및 사용자를 보호하는지 알아보세요.

F5 보안 사고 대응 팀(SIRT)

공격을 받고 있거나 조직과 앱이 취약하고 노출되었다고 생각되는 경우, F5 지원팀에 문의하여 F5 SIRT 로 에스컬레이션을 요청하세요. 24시간 연중무휴 운영되는 이 팀은 F5 시스템 및 소프트웨어 패치를 안내하고, 구성을 돕고, F5 iRules 배포를 지원하여 노출을 제한하거나 공격을 완화합니다.


BIG-IP 고급 WAF

F5는 Spring4Shell 취약점으로 인해 노출된 알려진 공격 벡터를 차단하기 위해 BIG-IP Advanced WAF 및 BIG-IP ASM 배포에 사용할 수 있는 서명 세트를 출시했으며 앞으로도 계속 출시할 예정입니다. 또한 서명은 우회 시도에 대한 보호 기능을 갖춰 지속적으로 업데이트되고 있습니다. 최신 Attack Signature Update(ASU) 패키지를 보유하고 사용하고 있는지 확인하세요. 

Advanced WAF 또는 ASM을 배포하지 않은 고객의 경우 iRule을 애플리케이션에 적용하여 특정 CVE를 타겟으로 하는 모든 악성 트래픽을 탐지, 기록하고 삭제할 수 있습니다.

NGINX 앱 보호 WAF

F5는 고객이 사용하고 배포하는 F5 플랫폼에 관계없이 일관된 애플리케이션 보안을 보장합니다. 따라서 NGINX App Protect WAF 고객은 BIG-IP Advanced WAF 고객과 동일한 업데이트된 서명을 동시에 받게 됩니다. NGINX App Protect WAF 서명을 업데이트하세요. 이를 수행하는 방법에 대한 자세한 내용은 이 지침을 참조하세요. 또한 WAF 정책에서 "서버 측 코드 삽입" 공격 유형이 활성화되어 있는지 확인하세요.

F5 분산 클라우드 WAAP

최근 출시된 F5 분산 클라우드 웹 애플리케이션 및 API 보호(WAAP)는 F5의 업계 최고 수준의 SaaS 기반 웹 애플리케이션 방화벽(WAF)과 봇 보호, 고급 API 보안, L3-L7 DDoS 방어 기능을 제공하여 클라우드와 엣지 사이트에 배포된 앱과 API를 보호합니다. F5의 단일 WAF 접근 방식은 고객이 배포한 F5 솔루션에 관계없이 일관된 애플리케이션 보안을 보장합니다. 따라서 Spring4Shell 취약점을 해결하는 시그니처가 이미 생성되어 BIG-IP Advanced WAF와 NGINX App Protect WAF에서 사용 가능해졌으며, 동시에 Distributed Cloud WAAP에서도 사용 가능하게 되었습니다. 추가 조치를 취할 필요는 없습니다. 분산 클라우드 WAAP 고객으로서 이미 보호를 받고 있기 때문입니다.

F5 분산 클라우드 WAF

BIG-IP Advanced WAF, NGINX App Protect, Distributed Cloud WAAP와 마찬가지로 F5 Distributed Cloud WAF는 이미 Spring4Shell 취약점과 관련된 노출로부터 보호하는 데 필요한 서명을 받았습니다. 기본 WAF 정책에 포함되어 있으므로 추가 작업이 필요하지 않습니다.

F5 실버라인 WAF

F5 Silverline 팀은 이미 필요한 완화 조치를 구현하여 고객의 애플리케이션이 Spring4Shell 및 관련 취약점으로부터 안전하다는 것을 보장했습니다. F5의 위협 연구팀과 고객 여러분과 협력하여 위협을 지속적으로 모니터링하고 필요한 완화 조치를 적용할 준비가 되어 있는 F5 Silverline SOC는 여러분의 AppSec 팀을 확장하여 24시간 365일 여러분을 위해 일합니다. F5 Silverline에 관한 질문이 있으시면 support@f5silverline.com 으로 팀에 문의해 주세요.

위협 스택

최근 F5가 인수한 Threat Stack은 검사, 탐지 및 보고 기능을 제공합니다. Threat Stack 서비스에는 Spring4Shell 손상이 우려스러운지 여부를 판단하는 탐지 규칙이 포함되어 있으며, 루트로 서비스를 시작하거나 셸에서 실행하여 시도를 확대할 수 있습니다. 자세한 내용은 F5 영업 담당자에게 문의하시거나 https://www.threatstack.com을 방문하세요.

F5 분산 클라우드 봇 방어

Spring4Shell과 같은 취약점을 악용하려는 시도는 일반적으로 자동화된 정찰부터 시작됩니다. F5 Distributed Cloud Bot Defense는 첫 번째 방어선입니다. 자동 스캔을 중단시킬 수 있으므로 공격자가 조직에 Spring4Shell에 취약한 웹 앱이 있는지 알아내는 데 어려움이 커집니다. F5 분산 클라우드 서비스는 봇넷을 운영하는 공격자의 끊임없이 진화하는 전술에 대응하여 봇 기반 자동화 공격에 대한 실시간 적응이 가능합니다.

BIG-IP SSL 오케스트레이터

Spring 라이브러리는 대부분의 Java 기반 애플리케이션에 사용되므로, 여러분과 같은 조직에서는 취약성의 전체 범위와 이로 인해 발생할 수 있는 잠재적 악용 사례를 파악하는 것이 어려울 것입니다. 영향을 받는 모든 애플리케이션을 찾을 수 있다면 이를 모두 업데이트하는 데 시간이 걸릴 수도 있습니다. 이로 인해 앱과 조직이 취약해지고 악용당하기 쉬워집니다. F5 SSL Orchestrator는 암호화된 트래픽을 가시화하여 암호화된 위협을 차단합니다. 네트워크를 통과하는 트래픽, 심지어 서버 트래픽까지 해독하고 보안 스택의 솔루션에 따라 정의할 수 있는 보안 체인으로 트래픽을 자동 라우팅합니다. SSL Orchestrator는 암호화된 위협을 처리할 뿐만 아니라 명령 및 제어(C)를 위한 트래픽과 같은 암호화된 악성 트래픽도 차단할 수 있습니다.2 ) 서버. SSL Orchestrator는 CVE-2022-22965를 완화할 수 있을 뿐만 아니라 향후 취약점과 악용으로부터도 보호합니다.

F5는 Spring4Shell( CVE-2022-22965 ) 및 관련 취약점에 대한 최신 정보를 제공하고, F5가 추가로 발생하는 익스플로잇을 어떻게 방어하고 완화하고 있는지 알려드립니다.

새로운 정보가 생기면 이 블로그를 업데이트하겠습니다. 더 자세한 내용을 알아보려면 다음 자료를 참조하세요.

K11510688: Spring Framework(Spring4Shell) 및 Spring Cloud 취약점 CVE-2022-22965, CVE-2022-22950 및 CVE-2022-22963

K24912123: BIG-IP 시스템을 사용하여 Spring Framework(Spring4Shell) 및 Spring Cloud 취약점 완화