코드와 협업 도구에 숨은 자격증명 찾는 방법
저장소와 협업 도구에서 자격증명 노출을 예방하고, 찾고, 검증해 교체하는 순서를 정리했습니다.


목차(6)
2026년 10월 3일 수정. 기존 글에는 ‘오탐이 없다’, ‘코드베이스를 학습한다’, ‘자동으로 규제 요구 사항을 충족한다’는 검증되지 않은 제품 설명이 있었습니다. 이를 삭제하고 노출 예방, 탐지, 대응을 각각 어떻게 점검할지 다시 정리했습니다.
자격증명이 실제로 놓이는 곳부터 확인하세요
저장소, CI 설정, 구성 파일, 컨테이너 이미지, 클라우드 저장 공간, 협업 도구 중 운영 자료가 만들어지거나 복사되는 곳을 나열하세요. 오래된 커밋과 보관된 프로젝트도 포함합니다. 스캐너는 접근 권한이 있는 소스만 볼 수 있으므로 연결한 곳과 검사하지 못하는 곳을 기록해야 합니다.
연동과 자격증명마다 담당자를 정하세요. 파일을 커밋한 사람은 조사 단서지만 실제 서비스 담당자와 다를 수 있습니다. 발급 서비스, 권한, 만료일, 키를 쓰는 작업을 함께 기록합니다.
푸시 전에 새 노출을 막으세요
시크릿은 적절한 관리 도구에 보관하고 실행할 때 주입하세요. 제공자가 지원하면 단기 자격증명과 최소 권한을 사용합니다. .env 같은 로컬 설정 파일을 저장소 무시 규칙에 넣되, 이미 커밋된 파일은 무시 규칙을 추가해도 기록에서 사라지지 않습니다.
로컬 훅은 커밋 전에 개발자에게 경고하고, Git 제공자의 푸시 차단은 지원하는 유형이 저장소에 들어오는 것을 막습니다. CI 검사도 별도의 관문이 됩니다. 각 통제의 지원 범위와 우회 가능성이 다르므로 요금제·키 유형·설정을 제공자 문서와 대조하세요.
예방 단계에서 놓친 곳을 검사하세요
최신 파일만 보지 말고 저장소의 과거 커밋을 검사하세요. 사고 중 키가 붙여넣어졌을 수 있는 채팅과 문서, 구성 정보가 복사된 이미지와 저장 공간도 확인합니다. 배포 후 계속 바뀌는 소스는 정기적으로 검사해야 합니다.
패턴에 걸린 문자열은 조사 단서입니다. 예제 값일 수도 있고, 반대로 탐지 규칙이 모르는 형식의 실제 키일 수도 있습니다. 안전한 발급 서비스 검증을 지원하는 유형은 현재 작동하는지 확인하고, 나머지는 담당자가 맥락을 살펴야 합니다. 어떤 스캐너도 오탐 0이나 완전한 탐지 범위를 보장하지 않습니다.
탐지 결과를 조치로 연결하세요
키가 발견된 위치와 접근 가능한 사람을 확인합니다. 유효성, 권한, 발급 서비스 로그의 이상 사용도 살펴보세요. 노출됐을 가능성이 있다면 발급 서비스에서 교체하거나 폐기합니다. 노출된 사본을 지운 뒤 기존 키가 거부되고 새 키를 쓰는 작업이 정상인지 확인하세요.
발급 서비스에서의 조치가 확인될 때까지 결과를 닫지 마세요. 코드에서 한 줄을 지우거나 탐지 알림을 닫거나 대시보드 상태를 바꿔도 키가 무효화되지는 않습니다. 여러 시스템이 키를 공유한다면 교체할 작업을 미리 확인하되, 키가 살아 있는 시간은 줄여야 합니다.
단계별로 도구를 고르세요
Git 제공자의 검사와 오픈 소스 스캐너는 저장소 점검의 출발점이 될 수 있습니다. 지원 패턴, 과거 기록 검사, 푸시 차단, 규칙 조정, 운영 부담을 비교하세요. 관리형 서비스는 운영 부담을 줄이거나 연결 소스와 발급 서비스 검증을 더할 수 있지만 제품마다 실제 지원 범위가 다릅니다.
Cremit Platform은 지원하는 연결 저장소, 저장 공간, 협업 도구, 컨테이너 이미지를 검사합니다. 탐지 규칙은 1,000종이 넘는 자격증명 유형을 다루고 지원 유형은 발급 서비스에 유효성을 확인합니다. 탐지 결과에 담당자를 지정하고 조치 상태를 관리할 수 있습니다. 로컬 pre-commit 훅, 일반 개인정보 분류, CI 실행 환경 감시, 자동 키 교체 기능은 아닙니다. 보안·규제 대응 정책과 증적은 조직에서 별도로 마련해야 합니다.
출처
OWASP, Secrets Management Cheat Sheet: https://cheatsheetseries.owasp.org/cheatsheets/Secrets_Management_Cheat_Sheet.html
GitHub 문서, 시크릿 검사 범위: https://docs.github.com/en/code-security/reference/secret-security/secret-scanning-scope
GitHub 문서, 푸시 차단: https://docs.github.com/en/code-security/how-tos/secure-your-secrets/prevent-future-leaks/enable-push-protection
이어서 읽기
MCP 서버의 API 키는 헤더가 아닌 대화창을 거쳐 전달됩니다
공식 MCP 레지스트리의 원격 서버마다 initialize 요청을 한 번씩 보냈습니다. 응답한 22,027곳 중 71.3%가 헤더 인증 없이 세션을 허용했고, 도구 인자로 전달되는 자격증명 필드는 3,705개였습니다. 그중 마스킹 대상으로 지정된 필드는 3개뿐이었습니다.
목록에 없을 뿐, 비공개는 아닙니다
2026년 9월 공개 표면 33곳에서 유효한 자격증명 23,912개를 확인했습니다. 7,468건은 권한 범위를 분류했고, 1,277건에는 다른 키의 발급 권한이 있었습니다. 실제 재발급 여부는 시험하지 않았습니다.
탐지 건수와 살아 있는 키 수를 따로 세는 법
발견 위치, 고유 자격증명, 마지막 유효성 상태는 다른 숫자입니다. 범위와 확인 시각을 정한 뒤 보고하는 방법을 설명합니다.
다음 글을 메일로 받아보세요
Cremit의 월간 자격증명 보안 브리프. 한 통에 핵심만 담습니다.