클로드 코드 1122개 설정 파일서 인증정보 1379개 확인
조사 범위를 Git 기록과 공유 설정·대화 기록까지 넓히자 공개 저장소 1994곳에서 인증정보 2539개가 집계됐다. 파일을 지워도 이전 커밋과 포크에 값이 남을 수 있다.
토포AI로 이 기사 더 깊이 읽기
앤트로픽(Anthropic)의 코딩 도구 클로드 코드(Claude Code) 설정 파일 1122개에서 인증정보 1379개가 발견됐다. 개발자가 실행을 승인한 명령이 설정 파일에 저장된 뒤 공개 깃허브(GitHub) 저장소에 올라간 사례다.
Apiiro는 5일 공개한 조사 보고서에서 공개 저장소 10만3617곳의 설정 파일 10만4185개를 살펴봤다고 밝혔다. 조사 기간은 11월 1~3일이며, 파일 1122개(1.1%)에서 인증정보가 분류됐다.
노출 경로는 명령 실행 승인 과정과 맞닿아 있다. 사용자가 ‘동의하고 다시 묻지 않기’를 선택하면 클로드 코드는 승인한 명령을 프로젝트의 .claude/settings.local.json에 허용 규칙으로 저장하며, 명령에 비밀번호나 API 키가 들어 있으면 값도 함께 남을 수 있다.
클로드 코드 설정 문서는 이 파일이 프로젝트에서 사용자 개인에게만 적용되는 로컬 설정이라고 설명한다. Git 저장소 안에서 도구가 파일을 만들면 사용자의 전역 제외 목록에 등록하지만, 프로젝트의 .gitignore에는 자동으로 추가되지 않는다.
따라서 저장소가 되기 전에 파일이 만들어졌거나 다른 컴퓨터에 복제된 경우, 이미 Git이 추적 중인 파일은 전역 제외 설정만으로 공개를 막기 어렵다. 파일을 수동으로 만들었을 때도 프로젝트의 .gitignore에 직접 추가해야 한다.
발견된 1379개 가운데 636개는 서비스 제공업체의 키 형식에 맞는 인증키였고, 743개는 공개 호스트와 같은 줄에서 확인된 비밀번호나 토큰이었다. 데이터베이스 비밀번호 379개와 Supabase 서비스 역할 키 122개도 포함됐으며, SSH 접속 정보는 43개였다.
공개 설정 파일에서 인증정보가 발견된 조직은 63곳이었다. 통지를 받은 한 회사는 노출된 키가 당시에도 유효했다고 확인했다.
인증정보가 든 저장소에서는 설정 파일이 중앙값 기준 217일 전에 처음 커밋된 것으로 집계됐다. 상당수 파일이 공개 저장소에 올라간 뒤 상당 기간 남아 있었던 셈이다.
현재 파일에 없는 인증정보도 Git 과거 기록에서 734개 더 발견됐다. 이 값은 509개 저장소의 이전 파일 버전에서 나왔으며, 74개 저장소의 포크 211곳에도 같은 내용이 복제돼 있었다.
집계 범위를 공유 설정 파일과 에이전트 대화 기록, 인계 메모 등으로 넓히면 공개 저장소 1994곳에서 인증정보 2539개가 확인됐다. 처음 조사한 파일 1122개, 과거 기록에서 찾은 인증정보 734개, 전체 저장소 1994곳은 서로 다른 지표다.
일반 인증정보 탐지 도구도 일부 파일을 놓쳤다. gitleaks는 인증정보가 든 설정 파일 1122개 중 564개를, TruffleHog는 643개를 탐지했으며 두 도구 모두 표시하지 못한 파일은 215개였다.
탐지 공백은 비밀번호가 명령어 안에서 일반 단어처럼 보일 수 있기 때문이다. 도구가 서비스별 키 접두어나 무작위 문자열 형식을 주로 찾으면 mysql -p나 sshpass -p 뒤에 적힌 비밀번호는 일반 명령어의 일부로 지나갈 수 있다.
보리스 체르니(Boris Cherny) 클로드 코드 책임자는 7일 해커뉴스(Hacker News) 댓글에서 “이런 일을 막기 위해 무엇을 할 수 있을지 살펴보고 있다”고 말했다. 그는 클로드 코드에 과거 비밀정보 필터링 기능이 없었으며, 이번 파일은 사용자가 직접 만들고 버전 관리에 올린 것이라고 설명했다.
조사 결과 추적이 가능했던 인증정보 포함 저장소 1105곳 중 539곳에서는 클로드가 공동 작성자로 표시된 커밋이 해당 설정 파일을 수정했다. 이 기록만으로 클로드가 파일을 처음 만들거나 공개 저장소에 올렸다고 단정할 수는 없다.
Apiiro는 노출된 인증정보를 교체하고, 이미 Git이 추적하는 파일은 추적 대상에서 해제한 뒤 프로젝트의 .gitignore에 추가하라고 권고했다. 명령어에 비밀번호를 직접 넣는 대신 환경 변수로 불러오고, 전체 명령어 대신 필요한 명령 패턴만 허용하는 방법도 제안했다.
조사팀은 발견한 인증정보로 실제 접속하거나 호스트에 접속 시험을 하지는 않았다. 따라서 보고서의 인증정보는 서비스 키 형식에 맞거나 공개 호스트와 함께 발견된 값을 뜻하며, 모두 현재 유효하다는 의미는 아니다.

서지우 기자 




Comment 0
불러오는 중…