Files
llm-wiki/raw/company-tech-blogs/security-woowahan-actuator-safe-usage.md
T

8.8 KiB

title, source_type, url, archive_url, status, confidence, tags, related_branches, related_projects, created, last_reviewed
title source_type url archive_url status confidence tags related_branches related_projects created last_reviewed
우아한형제들 — Security Actuator 안전하게 사용하기 company-tech-blog https://techblog.woowahan.com/9232/ raw medium
ca-security-baseline
actuator
management-endpoint
korean-tech-blog
woowahan
feature-management-actuator-security-contract
ca-skeleton-operational-contract
2026-05-22 2026-05-27

우아한형제들 — Security Actuator 안전하게 사용하기

Layer: raw/company-tech-blogs/ — 우아한형제들 기술블로그 (권현준, SOC팀 Application Security 담당, 2022-10-27). Spring Actuator 의 attack surface 분류 + 안전 설정 한국 도메인 사례. 공식 best practice 아님 — Spring 공식 docs 와 교차 확인 필수.

Parent / 활용 branch (필수)

Branch 이 자료가 정당화하는 결정
raw/branch-notes/feature-management-actuator-security-contract management port 분리 + prod allowlist (health/prometheus/info) + env/heapdump/threaddump/shutdown forbidden 의 한국 도메인 사례 근거
raw/project-notes/ca-skeleton-operational-contract Security Baseline (Actuator 관리면 노출 정책) Group G-B 비교 자료

컨텍스트 / 왜 저장했는지

ca-tmpl feature-management-actuator-security-contractmanagement port 분리 + prod allowlist + env/heapdump/threaddump/shutdown forbidden 결정에 대한 한국 도메인 사례 근거. Spring 공식 docs (default exposure) 를 보완하는 회사 단위 보안 운영 관점. 한국 기업이 실제 사고/공격 표면으로 어떤 endpoint 를 분류하는지 확인.

출처 / Source

  • 원본 URL: https://techblog.woowahan.com/9232/
  • 아카이브 URL: (미수집)
  • 저자 / 조직: 권현준 (우아한형제들 SOC팀 Application Security 담당)
  • 발행일: 2022-10-27
  • 마지막 확인일: 2026-05-27

핵심 인용 / Key quotes (verbatim)

[§기본 비활성화 권고] "기본 설정을 따르지 않겠다는 설정을 해주어야 합니다"

[§환경변수 유출 위험] "서비스에서 사용 중인 환경 변수를 볼 수 있게 되기 때문에, 의도치 않게 설정해둔 중요 정보가 유출"

[§Heapdump 위험] "현재 서비스가 점유 중인 heap메모리를 덤프 하여 그 데이터를 제공해 주는 기능"

[§포트 분리] "서비스를 운영하는 포트와 다른 포트로 설정하여 사용할 것을 추천"

[§기본 경로 변경] "알려진 기본 경로(/actuator/[endpoint]) 대신 다른 경로를 사용함으로써 외부 공격자의 스캐닝으로부터 보호"

[§Shutdown endpoint] "절대로 enable하지 않도록 각별히 신경을 써주어야 합니다"

[§JMX 비활성화] "사용하지 않음에도 enable 시켜두면 잠재적 위험이 될 수 있습니다"

[§인증/인가 제어] "인증되었으며 권한이 있는 사용자만이 접근가능하도록 제어"

Claims Extracted / 추출된 주장

Claim ID Claim (이 자료가 직접 말하는 것) Evidence quote Strength Applies to Does not prove
WW-ACT-C1 Actuator 기본 설정 (전부 활성화) 을 따르지 말고 명시적으로 비활성화 후 필요한 endpoint 만 활성화해야 함 (allowlist 방식) [§기본 비활성화 권고] "기본 설정을 따르지 않겠다는 설정을 해주어야 합니다" company-case-study Spring Boot Actuator 운영 정책 — 우아한형제들 SOC 권고 "기본 설정이 보안 결함이다" 라는 Spring 공식 입장이 아님 — 회사 사례
WW-ACT-C2 /actuator/env 노출 시 환경변수 (DB credentials, API key 등 중요 정보) 유출 위험 [§환경변수 유출 위험] "서비스에서 사용 중인 환경 변수를 볼 수 있게 되기 때문에, 의도치 않게 설정해둔 중요 정보가 유출" company-case-study env endpoint 활성화 환경 env 가 항상 sanitize 없이 모든 값을 노출한다는 뜻 아님 (Spring 의 sanitize 옵션 별도 확인)
WW-ACT-C3 /actuator/heapdump 는 heap 메모리 덤프 데이터 제공 → 메모리 내 평문 secret 노출 가능 [§Heapdump 위험] "현재 서비스가 점유 중인 heap메모리를 덤프 하여 그 데이터를 제공해 주는 기능" company-case-study heapdump endpoint 활성화 환경 heapdump 분석으로 모든 secret 이 항상 추출 가능하다는 뜻 아님 — 분석 기법 / GC 시점에 의존
WW-ACT-C4 서비스 운영 포트와 다른 포트 (management port) 로 Actuator 분리 사용 권고 (공격자 스캔 1차 방어) [§포트 분리] "서비스를 운영하는 포트와 다른 포트로 설정하여 사용할 것을 추천" company-case-study Spring Boot management.server.port 운영 결정 포트 분리만으로 완전 보호 안 됨 (인증 별도 필수) — 우아한형제들도 "1차" 라고 표현
WW-ACT-C5 /actuator/[endpoint] 알려진 기본 경로 대신 management.endpoints.web.base-path 변경하여 공격자 스캔 1차 방어 [§기본 경로 변경] "알려진 기본 경로(/actuator/[endpoint]) 대신 다른 경로를 사용함으로써 외부 공격자의 스캐닝으로부터 보호" company-case-study base-path 변경 정책 base-path 변경이 OWASP / Spring 공식 권고 라는 뜻 아님 — security through obscurity 일부
WW-ACT-C6 /actuator/shutdown절대로 enable 하지 말 것 [§Shutdown endpoint] "절대로 enable하지 않도록 각별히 신경을 써주어야 합니다" company-case-study shutdown endpoint 운영 정책 dev / staging 에서도 항상 금지인지 본 인용 범위 밖 (운영 prod 강조로 해석)
WW-ACT-C7 사용하지 않는 JMX 도 enable 시 잠재적 위험 [§JMX 비활성화] "사용하지 않음에도 enable 시켜두면 잠재적 위험이 될 수 있습니다" company-case-study Spring Boot Actuator JMX 노출 JMX 자체가 항상 위험하다는 일반 권고 아님 — "사용 안 하면 끄기"
WW-ACT-C8 Actuator 접근은 인증·권한 있는 사용자만 가능하도록 제어 필요 [§인증/인가 제어] "인증되었으며 권한이 있는 사용자만이 접근가능하도록 제어" company-case-study management endpoint 접근 통제 어떤 인증 메커니즘 (Basic / OAuth / mTLS) 이 권장되는지 본 인용에 없음

Usage Boundaries / 적용 경계

  • 이 자료가 직접 증명하는 것:
    • WW-ACT-C1~C8: 우아한형제들 SOC 팀의 Spring Actuator 운영 권고 (allowlist / env-heapdump-shutdown 위험 / 포트 분리 / base-path 변경 / JMX 비활성화 / 인증·인가)
  • 이 자료가 증명하지 않는 것:
    • 위 권고가 Spring 공식 best practice 라는 주장 — 별도 Spring Boot Reference §Actuator 인용 필요
    • 모든 Spring Boot 버전에서 동일 default 가 적용된다는 주장 — Spring docs 교차 확인 필요
    • 한국 외 다른 국가 / 도메인 사례도 동일한지
  • 내 프로젝트에 적용하려면 추가 확인이 필요한 것:
    • ca-tmpl 의 prod allowlist (health/prometheus/info) 가 Spring 공식 management.endpoints.web.exposure.include 권고와 정합한지
    • management.endpoints.web.base-path 변경의 trade-off (CD pipeline / 모니터링 도구 설정 영향)
    • 인증 메커니즘 결정 (Spring Security + Actuator role / mTLS)

메모 / Notes (내 프로젝트 해석)

본 섹션은 자료 직접 인용 아님. ca-tmpl 결정 컨텍스트 해석.

  • ca-tmpl 결정과의 정합성 (가설):
    • management port 9001 분리 ← 우아한형제들 "다른 포트 사용" 권고와 정합 (WW-ACT-C4).
    • prod allowlist (health/prometheus/info) ← "엔드포인트 화이트리스트 운영, 기본 비활성화 후 필요한 것만" 권고와 동일 방향 (WW-ACT-C1).
    • shutdown / heapdump / threaddump prod forbidden ← 동일하게 강조됨 (WW-ACT-C2, C3, C6).
    • base-path 변경 권고 는 ca-tmpl 에 현재 미반영 (선택적 보강 항목 후보, WW-ACT-C5).
  • 취급 주의: 회사 기술블로그 = 공식 best practice 아님 (CLAUDE.md §5). 패턴은 Spring 공식 docs (default exposure 정책) 와 교집합이지만 정의 자체는 공식 출처가 우선.
  • 시사점: ca-tmpl baseline 결정은 Spring 공식 + 한국 보안 운영 사례 (우아한형제들) 의 교집합 — 임의 결정 아님 (추정 정합, 공식 docs 별도 인용으로 보강 필요).