GitHub 웹훅을 받으려면 Jenkins를 공개 인터넷에 노출해야 했지만, CI 서버는 가장 민감한 공격 표면입니다.
Go로 얇은 릴레이를 직접 작성해 공개 443에 두고, X-Hub-Signature-256을 상수시간 비교로 검증, 레포 allowlist는 ^…$ 앵커 강제 + 와일드카드 금지, delivery ID로 중복 제거 후 내부 Jenkins URL로만 전달하도록 했습니다.
공개 표면이 웹훅 등 4개 경로로 줄었고 관리 UI는 단 하나도 인터넷에 노출되지 않습니다.