Dek: 공개 깃허브 저장소에 API 키가 널려 있다는 보고가 나왔다. 원인은 모델이 뚫린 것이 아니라, 개발자가 그대로 커밋한 설정 파일이다.
Claude Code secrets leak은 해킹이 아니다
Ars Technica의 11월 9일 보도는 이렇다. 공개 깃허브 저장소에서 Claude Code 설정 파일에 담긴 자격 증명 수천 건이 발견됐다. 같은 날 Cybernews도 AI 에이전트가 깃허브에 비밀을 흘린다는 제목으로 다뤘다.
중요한 전제가 있다. Anthropic이나 Claude Code가 뚫린 사건이 아니다. 사용자가 만든 설정 파일이 공개 저장소에 함께 올라간 사고다. 보안 업체 GitGuardian은 원인을 분석하면서 파일 이름으로 settings.local.json을 지목했고, 유출된 항목에 Docker Hub 자격 증명도 있다고 밝혔다.
Claude Code settings.local.json에 키가 들어가는 순간
경로는 단순하다. Claude Code는 셸 명령을 실행하기 전에 허락을 묻는다. 이때 "Yes, and don't ask again"을 고르면, 같은 명령을 다시 묻지 않도록 허용 규칙을 프로젝트 설정 파일에 적어 둔다.
문제는 그 규칙이 명령 문자열이라는 점이다. API 키가 들어간 curl 명령을 승인하면, 키가 그대로 설정 파일에 박힌다. 편의를 위해 만든 기능이 비밀을 파일로 옮겨 놓는 셈이다.
Claude Code 설정 파일이 공개 저장소까지 가는 이유
Claude Code는 그 파일을 자기 컴퓨터의 깃 추적에서 빼 두지만 저장소 쪽에 장치가 있는 것은 아니라서, 다른 컴퓨터에서 열어 본 오래된 복제본이나 이미 추적 중이던 파일은 그대로 커밋된다.
여기에 프로젝트 폴더 전체를 담는 git add -A 습관이 겹치고, GitGuardian은 COPY 명령이 작업 폴더를 통째로 담는 탓에 같은 비밀이 공개 Docker 이미지 레이어까지 이동했다고 설명했다.
AI agent secret leak은 팀 저장소에서 더 위험하다
개인 저장소라면 피해가 자기 계정에서 끝난다. 팀 저장소는 다르다. 설정 파일에는 허용 목록뿐 아니라 환경 값과 MCP 서버 정의가 함께 들어간다. 한 사람이 승인한 규칙이 팀 전체 저장소에 남고, 그 저장소를 포크한 사람에게까지 따라간다.
국내 개발팀도 예외가 아니다. 사내 깃허브를 쓰더라도 오픈소스 저장소나 외부 협업 저장소에 같은 파일이 올라가면 노출은 그 순간 시작된다.
Claude Code GitHub security 점검은 이 순서로
먼저 저장소에서 settings.local.json을 찾는다. 파일이 보이지 않아도 커밋 기록에 남아 있을 수 있으니 git log로 과거를 확인해야 한다.
순서를 헷갈리면 안 된다. 지금 저장소는 안전할까?
기록만 지우면 안 된다.
키를 먼저 폐기하고 새로 발급한 다음에야 기록 정리를 시작해야 한다. 공개된 순간 이미 복사됐을 수 있어서, 커밋을 지우는 것만으로는 부족하다. 마지막으로 저장소에 무시 규칙을 넣고 커밋 전 검사 도구를 붙이면 같은 사고를 한 번 더 막을 수 있다.
아직 확인되지 않은 것
유출된 키 가운데 실제로 살아 있던 비중은 공개되지 않았다. 수천 건이라는 규모만 확인됐다. Anthropic이 기본 무시 규칙을 넣을 계획인지도 아직 나오지 않았다.
Claude Code secrets leak을 남의 사고로 보기 쉽다. 하지만 다음 커밋에서 같은 일이 벌어질 수 있다는 사실은 변하지 않는다. 오늘 할 일은 하나다. 저장소를 열고, 키를 교체하고, 기록을 정리하는 것.






