Spring Boot Actuator vulnerability

Spring Boot Actuator는 운영중인 애플리케이션의 운영 상태에 대한 훌륭한 Insight를 제공합니다.
모니터링을 통해 여러 관리, 성능 및 리소스 사용에 대한 실시간 관찰이 가능합니다.
많은 웹앱들이 Actuator를 이런 편안함때문에 사용중이지만, 잘못된 설정으로 인한 보안 취약점이 발생합니다.

대표적으로 발생하는 취약점중 하나입니다. RCE로 이어지는 아주 치명적인 취약점인데 Gateway 엔드포인트가 인증없이 노출된 경우에 취약성이 있다고 볼 수 있습니다.
Gateway 엔드포인트를 GET Method로 호출했을때, 200으로 응답을 하고 Predicate가 Response body에 포함된 경우 취약점이 있다고 알 수 있습니다.
RewritePath의 GenKey에 코드 인젝션을 함으로써 RCE를 성공적으로 실행 가능합니다.
위 엔드포인트 말고도 Heapdump, env 엔드포인트들이 기본적으로 열려있는 곳들이 정말 많습니다. 위 엔드포인트에서는 민감한 Session, request pattern등등 공격자가 이용을 할 수 있을만한 정보를 제공하는 요소들이 많습니다.
위 공격을 방어하기 위해서는 Spring Boot Actuator 엔드포인트들이 적절한 인증 및 권한 부여가 되어있는지 확인해야합니다.
위 인증과 엑세스를 제한하기 위해서는 Spring Security와 application.properties를 설정함으로써 가능합니다.
Management.endpoint.heapdump.enabled=false와 같은 방식으로 방어가 가능합니다.
혹은 Java Configuration으로 민김한 엔드포인트를 Exclude를 하던지, 아니면 자체 구축한 방화벽을 사용하는등의 방안이 있습니다.