Claude Code 설정 파일이 GitHub에 비밀정보를 노출한 이유
들어가며
AI 코딩 에이전트는 단순히 코드를 제안하는 도구를 넘어 개발자를 대신해 셸 명령을 실행하고 있다. 생산성은 높아지지만, 권한과 실행 규칙을 저장하는 로컬 파일이 새로운 정보 유출 경로가 될 수 있다. 보안 연구기관 Apiiro는 Claude Code 설정 파일이 공개 GitHub 저장소에 업로드된 사례를 조사했고, 그중 일부에서 데이터베이스 비밀번호, API 토큰, 비밀 키, root 로그인 정보가 발견됐다고 밝혔다.
어떻게 유출됐나
Claude Code는 사용자가 자동 셸 명령을 승인할 때 해당 권한 규칙을 저장할 수 있다. 사용자가 “예, 다시 묻지 않기”에 해당하는 선택을 하면 이 규칙이 로컬의 .claude/settings.local.json에 기록된다. 어떤 경우에는 명령 패턴만 저장되지만, 다른 경우에는 원래 명령 전체가 그대로 기록된다. 명령줄에 비밀번호나 토큰이 직접 포함돼 있다면 민감한 정보도 함께 파일에 남는다.
파일이 안전한 개발자 컴퓨터 안에만 존재한다면 위험은 상대적으로 제한적이다. 하지만 소스 관리에 포함되면 문제가 커진다. Anthropic 문서에 따르면 이 설정 파일은 일반적으로 개발자의 전역 .gitignore에 포함된다. 그러나 전역 규칙은 저장소별 보호 장치와 다르다. 프로젝트를 다른 컴퓨터로 복제하거나, 폴더를 나중에 Git 저장소로 만들거나, 파일을 수동으로 스테이징하면 보호가 작동하지 않을 수 있다. Apiiro는 사용자가 명시적으로 작업을 시작하지 않은 상황에서도 Claude Code가 설정 파일 변경을 커밋한 사례가 있었다고 지적했다.
핵심 조사 결과
- 공개 GitHub에 업로드된 Claude Code 로컬 설정 파일 사례가 10만 건을 넘었다.
- 이 가운데 약 1,100건은 63개 조직과 관련됐고, API 토큰·데이터베이스 비밀번호·비밀 키 등을 포함했다.
- 원래 저장소에서 파일을 삭제해도 GitHub 포크에 정보가 남을 수 있다.
- 발견된 비밀정보 중 약 215건은 널리 사용되는 gitleaks와 TruffleHog에서 탐지되지 않았다.
- 관련 우려는 2025년 8월 Claude Code 버그 보고서에서도 제기됐지만, 보고서들은 60일 동안 활동이 없어 종료됐다.
왜 중요한가
이번 사건은 단순한 .gitignore 설정 누락 이상의 문제를 보여준다. AI 에이전트 환경에서는 권한 승인, 명령 실행, 로컬 상태 저장, 버전 관리 반영이 한 번의 대화에서 이어질 수 있다. 전통적인 개발 과정에서는 개발자가 설정 파일을 직접 수정하고 커밋하는 순간 위험을 인식할 기회가 있었다. 반면 에이전트는 작업 과정에서 보조 파일을 생성하거나 변경할 수 있고, 개발자는 최종 코드만 확인하다가 이를 놓칠 수 있다.
Claude Code 측은 재발 방지 방법을 검토하고 있다고 밝혔으며, 자동 모드와 비밀정보 스캐너 사용을 권고했다. 제품에 스캔 기능을 내장하는 방안도 고려 중이다. 그러나 자동 모드에서도 민감한 명령이 설정 파일에 저장될 수 있고, 기존 스캐너 역시 모든 비밀정보를 탐지하지는 못한다.
따라서 개발자는 프로젝트 자체의 .gitignore에 .claude/settings.local.json을 명시적으로 추가하고, 커밋 전에 스테이징된 변경 사항을 확인해야 한다. 비밀번호나 토큰이 노출됐다면 즉시 폐기하고 재발급해야 한다. 현재 파일을 삭제하는 것만으로는 부족하며, 커밋 기록과 포크에 남은 복사본도 점검해야 한다.
더 큰 교훈은 AI 코딩 에이전트의 보안이 악성 프롬프트나 권한 상승만 다뤄서는 안 된다는 점이다. 로컬 상태 파일, 권한 규칙, 자동 커밋, 자격 증명 수명주기를 안전한 기본값으로 관리해야 한다.
출처: Ars Technica AI
댓글
로그인 상태 확인 중…
댓글 불러오는 중…