본문 바로가기

보안/보안동향

스프링4셸(Spring4Shell) 취약점

반응형

스프링(Spring) ?

 

자바 기반 애플리케이션 개발을 빠르고 효율적으로 진행할 수 있도록 지원하는 오픈소스 프레임워크다. 국내에서도 널리 쓰이고 있다. 정부 정보시스템 개발에 사용되는 전자정부프레임워크도 스프링 기반으로 만들어졌다.

 

※ 라이브러리

    특정 기능에 대한 도구 또는 함수들의 집합

    호출하는 개발자가 필요한 기능을 원할 때 호출함

    로그래머가 어떠한 기능을 수행하기 위해서 필요한 것을 제공해 주는 역할

    ex) reactjs, jQuery, Chart.js, JUnit, Jackson       

 

프레임워크 = 라이브러리 + 설계도(가이드라인)

    정해진 프로그램의 틀에 맞게 사용자가 필요한 기능을 입력함

    ex) spring, django, node.js, vue.js, Angularjs

 

참고 : https://jerryjerryjerry.tistory.com/62

 

[Spring] Spring 이란?

* Spring 이란? - JAVA의 웹 프레임워크로 JAVA 언어를 기반으로 사용한다. JAVA로 다양한 어플리케이션을 만들기 위한 프로그래밍 틀이라 할 수 있다. - 옛날에 비교하면 지금은 JAVA의 활용도가 높아졌

jerryjerryjerry.tistory.com

 

 

로그4셸(Log4Shell) 취약점의 문제는 단순 스캔으로 취약한 요소들을 전부 파악할 수가 없지만 스프링4셸은 로그4셸보다 비교도 안 될 정도로 가시적이고 직접적이다.

 

스프링4셸 취약점에 대한 패치가 비교적 느리게 진행되는 까닭은 현재 공개된 익스플로잇 코드가 여러 가지 조건이 성립되어야만 작동

  - 애플리케이션이 JDK 9 이상 버전에서 구축된 아파치 톰캣(Apache Tomcat) 서버에 설치

  - 스프링 WebMVC와 스프링 WebFlux 요소들을 통해 스프링 빈즈 패키지가 사용되어야 함

  - 익스플로잇을 가능하게 하는 설정이 ‘디폴트 설정’이 아니기 때문에 취약한 스프링 버전을 사용했다고 하더라도

    애플리케이션이 취약한 상태가 아닐 수 있음