Claude Code에게 내 노트북의 모든 비밀을 찾아달라고 했더니 63개를 찾아냄
Asked Claude Code to find every secret on my laptop and it found 63
핵심 요약
Claude Code를 홈 폴더에서 실행해 보안 취약점을 점검한 결과, 방치된 API 키와 토큰 등 63개의 비밀 정보가 노출됨을 확인했습니다.
- 보안 취약점 점검 — Claude Code를 활용해 로컬 환경 내 노출된 키와 토큰을 스캔함
- 권한 설정의 한계 — CLAUDE.md의 규칙은 강제력이 없어 파일 접근을 완벽히 차단하지 못함
- 보안 강화 조치 — 환경 변수 파일 제거 및 전용 관리 도구와 샌드박스 환경 도입
- 실제 보안 위협 — AI 에이전트가 로컬 파일에 자유롭게 접근할 수 있는 위험성을 경고함
지난주에 터진 litellm 건(누가 opencode.json에 키를 그대로 박아놓고 커밋한 게 화근이었지) 보고 나서, 내 에이전트는 도대체 뭘 볼 수 있는지 궁금해지더라고. 그래서 홈 폴더에서 claude code를 켜고 몇 가지 규칙을 걸어봤어.
- 키, 토큰, 비밀번호처럼 보이는 거 다 찾아내.
- 파일 경로랑 변수명만 알려줘. 값은 절대 출력하지 마.
- 아무것도 건드리지 말고 보고만 해.
한 4분 걸렸나? 63개 나오더라.
- 몇 년 동안 열어보지도 않은 옛날 사이드 프로젝트 .env 파일에서 31개.
- ~/.aws에 박혀있던 AWS 자격 증명. 2022년도 키인데 아직도 작동함.
- mcp 설정 env 블록에 평문으로 적혀있던 OpenAI 키랑 GitHub 토큰.
- ~/.npmrc랑 ~/.docker/config.json에 있던 npm, docker 토큰.
- curl로 테스트하다 셸 히스토리에 남은 API 키 4개.
- 그리고 나머지는 귀찮아서 분류도 안 한 잡다한 것들.
참고로 규칙은 잘 지키더라. 값은 하나도 안 찍혔어. 근데 나중에 기록 훑어보니까 좀 그렇더라고. 비밀인지 아닌지 판단하려면 어쨌든 내용을 '읽어야' 하잖아? 그러니까 결국 상당수가 컨텍스트 윈도우를 거쳐 간 셈이지. 게다가 권한 승인 요청 같은 것도 없었어. 애초에 자기가 열린 폴더 내의 파일을 읽는 건 에이전트한테는 그냥 기본 동작이니까.
(뭐, ~에서 실행한 내 잘못이긴 한데, 나만 이렇게 쓰는 거 아니잖아?)
그래서 CLAUDE.md에 "절대 .env 읽지 마"라고 적어두는 게 나한테는 별 의미가 없어. 그건 그냥 부탁이지, 잠금장치가 아니거든.
어쨌든 저녁 내내 정리 좀 했다. 중요한 건 다 새로 발급받고, 죽은 프로젝트 .env 파일들은 다 지우고, 살아있는 것들은 전부 infisical로 옮겼어. 이제 디스크에 .env 파일은 없어. 앱들은 infisical run -- npm run dev로 런타임에 시크릿을 가져오게 바꿨고, claude가 infisical CLI를 호출해서 털어가지 못하게 거부 규칙도 걸어뒀지. claude 자체가 쓰는 키들(GitHub, OpenAI)은 걔네가 만든 에이전트 볼트(agent vault) 기능을 써보려고. 에이전트 요청을 프록시해서 나갈 때 키를 붙여주는 방식이라, claude가 토큰을 직접 들고 있을 일이 없거든. 이건 아직 써보는 중이라 좀 더 지켜봐야 함.
다들 패닉 하라는 건 아냐. 그냥 홈 폴더에서 똑같이 돌려보고 숫자 몇 나오는지 공유 좀 해봐. 63개가 많은 건지 평균인 건지 도통 감이 안 잡히네.