← 목록
기타 2026-07-30 2KB 읽기 2분

메일 IdP 문자열 누수 방어 배선

개요

전 서비스 정본 IdP인 크라우니메일서버(mail.crowny.org:9610)에 문자열핸들 GC 미배선(exit43 위험) 발견 → 배선.

무엇을 했는지

  • /Users/ef/crowny-mail/크라우니메일서버.한선
  • 원장 리플레이(_원장리플레이()) 완료 직후, 시드/리플레이 분기 이후에 문자열보호() 1회 호출 추가
  • (리플레이가 만든 유저/메일 문자열까지 보호 범위에 포함되도록 리플레이 뒤에 배치)
  • 메인 accept 루프에 _메일요청카운트 전역 카운터 추가, 200요청마다 문자열GC() 호출
  • (top-level 루프 스칼라 재대입이라 "함수 내부 전역 bare 재대입 무한재귀" 함정 회피 — 클라우드관리.한선 기존 패턴과 동일 형태)

    컴파일/배포

    • ./hanseonc_high 크라우니메일서버.한선 > 크라우니메일서버.toau — STRICT 경고 0, exit 0
    • launchd(com.crowny.mail)가 프로세스 kill 즉시 새 .toau로 자가치유 재기동 확인

    검증

    • 재기동 후 kps 로그인 + /api/auth/verify 200 정상 (role=admin 확인)
    • 부하시험.sh /api/auth/verify 500req·동시20:
    | | 처리량 | p50 | p95 | 판정 | |---|---|---|---|---| | 수리 전 | 84.5 req/s | 197ms | 419ms | 티 | | 수리 후 | 154.8 req/s | 114ms | 164ms | 티 | (핸들% 게이지는 0/0 표시 — 부하시험.sh가 참조하는 통계 엔드포인트 미노출 추정, 별도 확인 필요)
    • 타 서비스(9611, 9770) 생존 확인, crownyc 프로세스 158개 그대로

    관련 파일

    • /Users/ef/crowny-mail/크라우니메일서버.한선
    • /Users/ef/crowny-mail/크라우니메일서버.toau
    • /Users/ef/crowny-services/도구/부하판정.한선
    • /Users/ef/crowny-services/도구/부하시험.sh

    잔여 이슈

    • 부하시험.sh의 핸들% 측정치가 항상 0으로 나옴 — 실제 문자열핸들 게이지를 어디서 읽는지 확인 필요(장기 소크 테스트로 별도 검증 권장, 200요청 단발 소크로는 GC 트리거가 1회뿐이라 누수 방지 효과가 명확히 드러나지 않음)
    • 200요청 임계값은 클라우드관리.한선 선례를 따른 값 — 메일 트래픽 패턴에 맞춰 추후 튜닝 여지