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