비밀은 삭제해도 만료되지 않는다: Git 기록 정리하기
요약: 저장소에 커밋된 API 키는 파일을 삭제한 뒤에도 기록에 계속 남습니다. 탐지, 교체, 기록 재작성까지 모두 필요하며, 삭제만으로 안전하다고 믿는 것은 착각입니다.
삭제 커밋의 함정
개발자가 커밋된 자격 증명을 발견하면 해당 줄을 삭제하고 수정 사항을 푸시하려는 경우가 많습니다. 그러나 비밀은 여전히 Git 기록에 남아 있어 저장소를 복제할 수 있는 사람이라면 누구나 되살릴 수 있습니다. 저장소가 한 번이라도 공개됐거나 미러링됐다면 푸시된 순간부터 비밀이 침해됐다고 가정해야 합니다.
노출된 비밀은 교체되기 전까지 사용 가능한 비밀이라는 가정만이 안전합니다.
실제 대응 순서
- 자격 증명을 즉시 교체하십시오. 단순 노출이 아니라 침해로 취급해야 합니다.
- 노출된 키를 폐기하고 노출 기간 동안 사용된 흔적이 있는지 감사하십시오.
- 도달 가능한 모든 커밋에서 비밀이 제거되도록 기록을 재작성하고 모든 미러를 강제로 새로 고치십시오.
- 다음 비밀이 기록에 들어가기 전에 잡을 수 있도록 커밋 전 검사와 CI 비밀 검사를 추가하십시오.
탐지는 지속적이어야 한다
비밀 노출은 한 번 정리하고 끝낼 문제가 아니라 계속 탐지해야 하는 문제입니다. 커밋 시점에만 검사하면 다른 경로로 푸시된 비밀을 놓치고, 과거 기록만 검사하면 내일 발생할 실수를 놓칩니다. 두 검사 모두 중요합니다.
KENSAI 검사는 어떤 키가 어디에서 접근 가능하며 노출이 얼마나 긴급한지 등 교체 우선순위를 정하는 데 필요한 맥락과 함께 노출된 자격 증명을 보여 줍니다.
실무에서 좋은 비밀 관리란 무엇인가
저장소에 한 번이라도 들어간 비밀은 이미 노출됐다고 취급하고, 노출되더라도 견딜 수 있도록 설계하십시오. 수명이 짧고 자동으로 교체되는 자격 증명을 사용하면 유출된 키가 수개월 동안 열린 문으로 남지 않고 스스로 만료되는 문제로 바뀝니다.
비밀이 기록되기 전에 차단하는 커밋 전 훅과 수신 전 훅으로 탐지를 개발 과정 앞단에 배치하고, 이를 빠져나간 비밀을 잡는 서버 측 검사도 함께 운영하십시오. 목표는 일회성 정리가 아니라 새로운 노출을 드물고 눈에 띄게 만들며 신속히 폐기할 수 있게 하는 상시 통제입니다.
핵심 요약
노출된 비밀을 삭제하는 것은 가장 덜 중요한 단계입니다. 먼저 교체하고, 그다음 기록에서 제거하며, 노출 기간이 반복되지 않고 짧아지도록 지속적인 탐지를 마련하십시오.
지속적인 보안 모니터링, 취약점 스캐닝, 컴플라이언스 대응용 증거 기록을 확보하세요.
무료 스캔 시작