스택 트레이스 노출

스택 트레이스 노출

설명

런타임 스택 트레이스나 panic 덤프를 HTTP 응답에 그대로 기록하면 내부 패키지 구조, 파일 경로, 런타임 문맥이 노출될 수 있습니다.

잠재적 영향

  • 공격자가 내부 구조를 파악해 후속 공격을 정교화할 수 있습니다.
  • 일부 런타임 값이나 경로 정보가 민감 정보로 노출될 수 있습니다.

해결 방법

  • 상세 스택 트레이스는 보호된 서버 로그에만 기록하고 민감한 값을 제거하세요.
  • 사용자 응답에는 일반화된 오류 메시지만 반환하세요.
  • 로그 접근 권한과 보관 기간도 제한하세요.

예시

변경 전

go
w.Write(debug.Stack())

변경 후

go
log.Print(string(debug.Stack()))
http.Error(w, "internal server error", http.StatusInternalServerError)

설명:

  • 변경 전: 런타임 스택 트레이스나 panic 덤프를 HTTP 응답에 그대로 기록하면 공격자가 내부 패키지 구조, 파일 경로, 프레임워크 구성, 일부 민감한 런타임 문맥을 수집할 수 있습니다.
  • 변경 후: 상세 스택 트레이스는 서버 로그에만 기록하고 사용자 응답에는 일반화된 오류 메시지만 반환합니다.

참조