피드로 돌아가기
Dev.toSecurity
원문 읽기
Spring Boot Actuator 설정 오류로 인한 JVM Heap Dump 및 환경 변수 노출 차단
Spring Boot Actuator in Production: The Endpoints I Left Open by Accident and How I Closed Them
AI 요약
Context
Spring Boot Actuator의 기본 설정이 개발 편의성에 치중되어 Production 환경의 보안 취약점을 유발함. 특히 Prometheus 연동 가이드 등에서 권장하는 exposure.include=* 설정이 인증 없는 엔드포인트 전면 개방이라는 치명적 리스크를 초래함.
Technical Solution
management.endpoints.web.exposure.include=*설정을 통한 무분별한 엔드포인트 노출 제거/actuator/env내 민감 정보 노출을 방지하기 위한 Heuristic 기반 마스킹의 한계 파악 및 접근 제어 적용- JVM 메모리 전체를 덤프하는
/actuator/heapdump및 내부 구조를 노출하는/actuator/beans에 대한 401/404 응답 강제 - Spring Security 계층을 추가하여 특정 관리자 권한 보유자만 Actuator 엔드포인트에 접근 가능한 2단계 방어 체계 구축
- Load Balancer를 위한
/actuator/health엔드포인트만 최소 권한으로 유지하는 선별적 노출 전략 채택
실천 포인트
- `curl`을 이용한 `/actuator` 인덱스 페이지의 엔드포인트 열거 여부 확인 - `/actuator/env`, `/actuator/heapdump`, `/actuator/beans` 호출 시 401 또는 404 상태 코드 반환 검증 - 민감 정보 변수명(예: MY_SIGNING_KEY)이 Spring의 자동 마스킹 대상에서 제외되는지 확인 - Health Check 목적 외의 모든 Actuator 엔드포인트에 대해 Spring Security 인증 필터 적용