Claude Code 보안 심층 분석 ① — 왜 지금 이야기해야 하는가




이 글은 Claude Code 보안 심층 분석 시리즈의 첫 번째 편입니다. 전체 시리즈: [1편 조감도] → [2편 위협과 공격 표면] → [3편 탐지 전략] → [4편 통제와 한계] → [5편 놓치기 쉬운 것들]

Claude Code의 디렉토리 구조에 대한 상세 내용은 별도 포스트 「Claude Code .claude 디렉토리 완전 정복」을 참고하세요.


AI 코딩 도구가 보안 의제가 된 이유

2025년 하반기를 기점으로 AI 코딩 도구는 실험 단계를 넘어 실무 개발 파이프라인의 핵심 구성 요소로 자리 잡았다. GitHub Copilot, Cursor, Amazon CodeWhisperer, 그리고 Anthropic의 Claude Code까지, 개발자들은 이제 코드 생성, 리팩토링, 디버깅, 테스트 작성을 AI에 위임한다.

문제는 이 도구들이 단순한 자동완성을 넘어 **에이전트(Agent)**로 진화했다는 점이다. Claude Code는 터미널에서 직접 셸 명령을 실행하고, 파일을 읽고 쓰며, Git 커밋을 만들고, MCP(Model Context Protocol)를 통해 외부 서비스에 접근한다. 개발자와 동일한 권한으로 시스템 위에서 동작하는 자율적 에이전트가 된 것이다.

이 글에서는 Claude Code를 중심으로, 보안 관점에서 반드시 고려해야 할 위협의 전체 지형을 조감한다. 세부 내용은 이후 편에서 다루되, 이 1편만 읽어도 “무엇이 문제이고, 어디를 봐야 하는지”를 파악할 수 있도록 구성했다.

Claude Code는 다른 AI 도구와 무엇이 다른가

Claude Code가 보안 관점에서 특별한 이유는 그 권한의 깊이에 있다.

일반적인 AI 채팅(Claude.ai, ChatGPT)은 대화창 안에서만 동작한다. 사용자가 텍스트를 입력하고 텍스트를 받는다. 시스템에 대한 직접적 접근 권한이 없다.

반면 Claude Code는 개발자의 터미널에 설치되어 로컬 시스템에서 직접 동작한다. 구체적으로 다음을 수행할 수 있다.

  • 파일 시스템 전체 접근: 프로젝트 파일은 물론, 권한이 허용하는 범위 내에서 시스템의 모든 파일을 읽고 쓸 수 있다.
  • 셸 명령 실행: bash 명령을 직접 실행한다. rm, curl, git push 등 개발자가 할 수 있는 모든 것을 할 수 있다.
  • MCP 서버 연결: 외부 서비스(GitHub, Slack, DB, Jira 등)와 양방향 통신이 가능하다.
  • 서브에이전트 생성: 자체적으로 하위 에이전트를 생성하여 병렬 작업을 위임할 수 있다.
  • Git 조작: 커밋, 브랜치 생성, PR 생성까지 자동화할 수 있다.

이 모든 것이 개발자의 사용자 권한으로 실행된다. Claude Code에게 별도의 제한된 계정이 부여되는 것이 아니라, 개발자 본인의 권한을 그대로 상속받는다.

Shadow AI: 보이지 않는 채택

보안 팀이 직면하는 첫 번째 문제는 가시성의 부재다.

Claude Code는 npm install -g @anthropic-ai/claude-code 한 줄이면 설치된다. IT 부서의 승인이 필요 없다. MDM(Mobile Device Management)에 등록되지 않은 개인 기기에서도 실행된다. 개발자가 자신의 개인 Claude Pro 구독으로 회사 코드를 작업할 수 있다.

IBM의 2025 데이터 유출 보고서에 따르면, 조직의 86%가 AI 데이터 흐름에 대한 가시성을 갖추지 못한 상태다. AI가 어디에 연결되어 있고, 어떤 데이터가 노출되는지에 대한 인벤토리조차 없다는 뜻이다. 동시에 조직의 13%가 자사 AI 모델이나 애플리케이션과 관련된 침해를 보고했으며, 97%는 적절한 AI 접근 통제를 갖추지 못했다.

Claude Code의 맥락에서 이것이 의미하는 바는 명확하다. 보안 팀이 모르는 사이에, 개발자들은 이미 회사 소스코드를 Anthropic의 API로 전송하고 있을 가능성이 높다.

위협의 전체 지형: 다섯 개의 영역

지금까지의 논의와 최신 보안 연구를 종합하면, Claude Code와 관련된 보안 위협은 다섯 개 영역으로 분류할 수 있다.

영역 1: 데이터 유출

가장 직접적인 위험이다. Claude Code를 사용하면 소스코드, 설정 파일, 환경 변수가 프롬프트를 통해 Anthropic의 API로 전송된다. 기업의 소스코드가 외부 서버에 전달되는 것 자체가 많은 조직의 보안 정책에 위배된다.

특히 문제가 되는 것은 개발자들이 무심코 .env 파일의 내용이나 API 키를 프롬프트에 포함시키는 경우다. 한 업계 보고서에 따르면, AI를 사용하는 기업 직원의 77%가 회사 데이터를 AI 챗봇 쿼리에 붙여넣었고, 그 중 22%는 기밀 개인정보나 금융 데이터를 포함했다. Claude Code에서는 이 데이터 전송이 더 대규모로, 더 체계적으로 일어난다. 개발자가 직접 붙여넣지 않아도, Claude Code가 프로젝트의 파일을 자동으로 읽어서 컨텍스트로 포함시키기 때문이다.

2편에서 구체적 유출 경로와 메커니즘을 상세히 다룬다.

영역 2: 공급망 공격과 설정 파일 무기화

2025~2026년에 발견된 실제 CVE들이 이 위험을 증명한다.

Check Point Research는 Claude Code에서 세 가지 심각한 취약점을 발견했다. 프로젝트 레포지토리의 .claude/settings.json에 포함된 Hooks 설정으로 임의 코드 실행이 가능했고(CVE-2025-59356), .mcp.json의 MCP 서버 설정으로 보안 동의를 우회할 수 있었으며, ANTHROPIC_BASE_URL 환경변수 조작으로 API 키를 탈취할 수 있었다(CVE-2026-21852).

핵심은 설정 파일이 더 이상 수동적 데이터가 아니라 능동적 실행 경로를 제어한다는 점이다. 공격자가 악성 .claude/settings.json이나 .mcp.json을 레포지토리에 커밋하면, 그 레포를 클론한 모든 개발자의 머신에서 코드가 실행될 수 있다.

2편에서 각 CVE의 기술적 메커니즘과 공격 시나리오를 상세히 다룬다.

영역 3: 프롬프트 인젝션과 MCP 신뢰 체인

Claude Code는 프로젝트의 코드, 문서, 설정 파일을 읽어서 컨텍스트로 활용한다. 이때 코드 주석이나 문서 안에 숨겨진 악성 지시가 있으면, Claude Code가 이를 정상적인 지시로 인식하여 실행할 수 있다.

이것이 간접 프롬프트 인젝션(Indirect Prompt Injection)이며, OWASP LLM Top 10 2025에서 1순위 위협으로 지정된 문제다. LLM은 신뢰할 수 있는 지시와 신뢰할 수 없는 데이터를 구분할 수 없다. 시스템 프롬프트, 사용자 입력, 외부 문서, MCP 도구 메타데이터가 하나의 컨텍스트 윈도우에서 단일 토큰 스트림으로 처리되기 때문이다.

MCP 서버를 통한 에이전트 간 신뢰 체인 문제는 더 심각하다. 하나의 손상된 MCP 서버가 전체 연결된 에이전트 생태계를 공격 표면으로 전환할 수 있다.

2편에서 간접 프롬프트 인젝션의 실제 사례와 MCP 공격 벡터를 다룬다.

영역 4: 탐지와 통제의 구조적 한계

Claude Code는 클라이언트 측 도구다. 개발자의 로컬 머신에서 실행되며, 모든 설정과 데이터가 로컬에 저장된다. 이 구조적 특성이 보안 팀의 탐지와 통제를 근본적으로 어렵게 만든다.

.claude 디렉토리 기반 파일시스템 스캔, 네트워크 트래픽 모니터링(api.anthropic.com), 프로세스 탐지, Git 커밋 분석 등 여러 탐지 방법이 존재한다. Anthropic도 managed-settings.json을 통한 엔터프라이즈 정책 강제, SSO 연동, Analytics API 등의 관리 도구를 제공한다.

그러나 이 모든 통제 수단에는 명확한 한계가 있다. 관리형 기기가 아닌 BYOD에서는 managed-settings.json이 무력화되고, 회사 네트워크 밖에서는 네트워크 차단이 무의미하며, 개인 API 키를 사용하면 SSO 강제를 우회할 수 있다.

3편에서 구체적 탐지 방법과 스크립트를, 4편에서 통제의 가능과 불가능을 상세히 다룬다.

영역 5: 보이지 않는 리스크들

탐지와 통제 너머에도 고려해야 할 영역이 있다.

AI 생성 코드의 보안 품질 — 벤치마크에 따르면 AI 생성 코드의 보안 취약률은 45~62%에 달한다. Claude Code가 취약점을 수정하는 패치를 제안해도, 그 패치 자체가 새로운 취약점을 도입할 수 있다.

포렌식과 증거 보전 — Claude Code의 history.jsonlprojects/ 디렉토리는 침해 사고 시 핵심 포렌식 증거가 된다. 그러나 로컬 파일이라 개발자가 삭제할 수 있으므로, 별도의 증거 보전 절차가 필요하다.

라이선스 컴플라이언스 — AI 생성 코드가 학습 데이터의 오픈소스 코드와 유사할 경우, 의도치 않은 라이선스 위반이 발생할 수 있다.

비용 폭증 — API 키 탈취 시 공격자의 대량 API 호출로 과금이 급증할 수 있다. Workspaces 기능으로 키 하나가 여러 프로젝트에 접근하므로 피해가 확대된다.

5편에서 각 리스크의 구체적 시나리오와 대응 방안을 다룬다.

이 시리즈에서 다루는 것과 다루지 않는 것

다루는 것:

  • Claude Code의 구조에서 발생하는 보안 위협
  • .claude 디렉토리 기반 탐지 방법
  • 네트워크, 프로세스, Git 기반 탐지 방법
  • 엔터프라이즈 통제 수단의 가능과 한계
  • AI 생성 코드 품질, 포렌식, 컴플라이언스 리스크

다루지 않는 것:

  • Claude Code의 기본 사용법이나 개발 생산성 관련 내용
  • Anthropic의 Claude Code Security(취약점 스캐닝 도구)에 대한 분석
  • 다른 AI 코딩 도구(Copilot, Cursor 등)와의 상세 비교
  • LLM 모델 자체의 안전성(alignment, hallucination 등)

시리즈 로드맵

제목핵심 질문
1편 (본 글)왜 지금 이야기해야 하는가전체 그림은 어떻게 생겼는가?
2편어디서 무엇이 새는가구체적으로 어떤 위협이, 어떤 메커니즘으로 작동하는가?
3편탐지 전략사용 여부와 위험을 어떻게 발견하는가?
4편통제와 한계무엇을 막을 수 있고, 무엇을 막을 수 없는가?
5편놓치기 쉬운 것들탐지와 통제 너머에 무엇이 있는가?

마무리: 핵심 메시지

Claude Code 보안의 본질은 **”강력한 도구가 최소한의 거버넌스 하에 광범위하게 채택되고 있다”**는 데 있다. 기술적으로 뛰어난 도구일수록, 그 도구가 가진 권한과 접근 범위에 대한 보안 검토가 선행되어야 한다.

이 시리즈의 목표는 Claude Code 사용을 금지하자는 것이 아니다. 조직이 AI 코딩 도구의 보안 리스크를 정확히 이해하고, 현실적인 탐지와 통제 전략을 수립할 수 있도록 돕는 것이다.

다음 편에서는 각 위협 영역의 기술적 메커니즘을 구체적으로 파고든다.




댓글 남기기