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 |
|
|
|
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-contract 의 management 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)
- ca-tmpl 의 prod allowlist (health/prometheus/info) 가 Spring 공식
메모 / 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).
- management port 9001 분리 ← 우아한형제들 "다른 포트 사용" 권고와 정합 (
- 취급 주의: 회사 기술블로그 = 공식 best practice 아님 (CLAUDE.md §5). 패턴은 Spring 공식 docs (default exposure 정책) 와 교집합이지만 정의 자체는 공식 출처가 우선.
- 시사점: ca-tmpl baseline 결정은 Spring 공식 + 한국 보안 운영 사례 (우아한형제들) 의 교집합 — 임의 결정 아님 (추정 정합, 공식 docs 별도 인용으로 보강 필요).
Related / 관련
- 같은 주제 다른 raw:
- raw/company-tech-blogs/security-toss-actuator-healthcheck (health endpoint 단일 focus 보완)
- 인용하는 branch:
- 인용하는 project:
- 인용한 wiki 요약: (미작성)