보안 릴리스 승인 기준

Nest Helmet CORS 위협 모델

보안 미들웨어를 추가했다는 사실만으로 안전해지지 않는다. CORS credential, CSP, dependency severity, secret 노출, rate limit, 배포 차단 기준이 실제 API와 프론트 도메인 구조에 맞아야 한다.

브라우저 경계 origin, credential, cookie 속성이 실제 프론트 도메인과 맞는지 먼저 좁힌다.
실행 차단면 CSP, rate limit, dependency scan으로 공격이 실행되는 면을 줄인다.
배포 승인 리포트와 secret 검색 결과가 깨끗할 때만 릴리스 게이트를 통과시킨다.
01

위협 경계 정의

브라우저 호출, 서버 간 호출, 관리자 API, 공개 API를 나눠 필요한 차단 조건을 정한다.

모든 route에 같은 정책이 맞지는 않다
02

CORS 검증

allowed origin, credentials, methods, headers가 실제 프론트 도메인과 쿠키 정책에 맞는지 확인한다.

credential과 wildcard는 함께 쓰면 위험하다
03

CSP와 보안 헤더

Helmet 기본값에 기대지 말고 script, connect, frame, img source를 앱 요구에 맞춘다.

CSP는 리포트 모드로 먼저 볼 수 있다
04

의존성 스캔

취약점 severity, exploit 가능성, reachable 여부, 패치 가능성을 기준으로 차단 여부를 정한다.

모든 경고가 같은 우선순위는 아니다
05

비밀값 추적

env, 로그, 에러 응답, source map에 token이나 내부 URL이 노출되지 않는지 확인한다.

빌드 산출물 검색이 필요하다
CORS
브라우저 출처 제어 허용 origin과 credential 정책을 정확히 맞춘다.
서버 간 호출 보호책은 아니다
CSP
스크립트 실행 제한 XSS 피해를 줄이기 위해 허용 source와 nonce/hash 전략을 둔다.
인라인 스크립트를 확인한다
Scan
취약 의존성 차단 critical/high 취약점과 실제 사용 경로를 기준으로 배포 차단을 결정한다.
예외에는 만료일을 둔다
Secret
민감정보 노출 방지 로그, 응답, 번들, sourcemap에서 비밀값을 제거한다.
마스킹 테스트를 한다

보안 확인

CORS 실패 허용되지 않은 origin과 credential 요청이 차단되는지 확인한다.
CSP 리포트 실제 페이지에서 필요한 source가 차단되지 않고 불필요한 source가 열리지 않는지 본다.
산출물 검색 배포 파일과 로그 샘플에 secret, token, 내부 URL이 없는지 확인한다.