🔐 편리함 뒤에 숨은 구멍 : Claude MCP + Cursor 보안 리스크이해하고 사용하기

User avatar placeholder
Written by 노퇴근

5월 13, 2025

보안 설정 하나로 MVP 전체가 털릴 수도 있습니다

요즘 Claude나 Cursor처럼 AI 도구 한두 개만 잘 엮으면 MVP는 금방 뚝딱 만들어진다. GPT가 말 예쁘게 다듬어주고, Claude는 질문에 감동적으로 대답하고, Cursor IDE는 생각을 코드로 바꿔준다.

20년차 개발자 형님도 “이야, 세상 진짜 좋아졌네.” 라고 이야기한다. 비 개발자인 나도 mvp 서버 뚝딱 만드는거보면, c언어로 개발한 형님의 입장에서 볼때는 억울할뿐이다. 그런데, 우리가 AI와 주고받은 대화나 코드가 어디에 저장되는지, 어디로 전송되는지는 잘 모른다.

Claude는 기본적으로 30일간 로그를 보관하고, Cursor는 기본 설정 상태에서 전체 리포지토리 정보가 외부로 전송될 수 있다. 그럼에도 대부분은 이 편리함에 안심하고, 보안 설정에는 무심하다.

하지만 보안 사고의 대부분은 해킹이 아니라, “설정하지 않아서 생기는 문제”다.

1. 관찰하기 : 실제 유출은 기술보다 ‘설정 실수’에서 발생한다

Claude와 Cursor는 AI 업무 자동화에서 매우 유용하지만, 기본 설정 그대로 사용할 경우 정보 유출 위험이 상존한다.

✅ 핵심 문제

  • Claude API는 기본적으로 30일간 프롬프트 및 응답 데이터를 저장
  • Cursor IDE는 Privacy Mode OFF 상태에서 작업 로그와 코드 조각이 외부 서버로 전송
  • 사용자는 이를 인지하지 못한 채 민감한 데이터를 입력하는 경우가 많음

    📌 유출 사례 시나리오 1

    Claude에 API Key를 포함한 요청을 보낸 경우 → 로그에 그대로 저장됨

    ✅ 상황

    사용자가 Claude에게 다음과 같이 직접 API 사용법을 물어보는 상황:

    이 API 키로 사용자 리스트 가져오려면 어떻게 해야 해?  
    API Key: sk-test-51a23abc456defg789

    ⚙ 작동 원리

    • Claude API(MCP)는 기본적으로 프롬프트와 응답 로그를 30일간 저장함.
    • 별도 계약(Enterprise 요금제) 또는 설정 없이 사용하면, 해당 서버에 보관됨
    • Claude 시스템 상, Anthropic 내부 운영팀은 해당 로그에 접근 가능 (엔터프라이즈 플랜 아닌 경우)

    🧨 발생 경로

    1. 프롬프트에 포함된 API Key → Claude에 전송됨
    2. Claude API 서버가 해당 내용을 자동 기록
    3. 로그는 30일 동안 보관되며, 내부 감사·디버깅 시 열람 가능
    4. 외부 침해 없이도 내부 감사 또는 오류 디버깅 시 노출될 수 있음

    📊 위험도 평가

    항목위험 수준
    유출 범위API Key 1건 → 전체 서버 접근 가능성
    내부 노출 가능성Anthropic 내부 운영팀 접근 가능
    외부 노출 가능성낮음 (직접적 해킹은 없지만 보안 약함)
    실수 가능성높음 (개발자, 기획자, 마케터 모두 GPT에 묻는 습관 있음)

    📌 유출 사례 시나리오 2

    Cursor에서 Privacy Mode OFF → 전체 코드 자동 업로드

    ✅ 상황

    • Claude 연동 프롬프트 작성
    • .env, config.json, api_keys.py 등이 포함된 리포지토리를 인덱싱

    ⚙ 작동 원리

    • Privacy Mode OFF 상태에서는 작업 기록이 Cursor 로그 + Fireworks 등 외부 서버로 전송됨
    • 리포지토리 인덱싱 시 전체 구조가 청크 단위로 외부 업로드됨
    • 필터링 없이 .env, 민감 파일 포함 가능

    🧨 발생 경로

    1. 민감 파일 포함 리포지토리를 인덱싱
    2. Cursor가 자동으로 분석 및 저장
    3. 3rd-party 서버에 코드 구조와 설정값 일부가 전송됨
    4. 외부 서버 로그 보관 기간에 따라 최대 30일 이상 저장됨

    📊 위험도 평가

    항목위험 수준
    유출 범위프로젝트 전체 구조 + 민감 설정값
    내부 노출 가능성Cursor 팀 또는 연동된 외부 플랫폼 접근 가능
    외부 노출 가능성중간자 공격 또는 API 연동 이슈 시 발생 가능
    실수 가능성매우 높음 (초기 상태가 기본적으로 ON이며 알림 부족)

    2. 연결하기 : Claude + Cursor + 사용자 습관이 만드는 3중 리스크

    실제 정보 유출은 단일 도구 문제가 아니라, Claude API + Cursor IDE + 사용자 행동이 맞물릴 때 발생한다.

    세 가지 구성요소의 동시 노출은 예기치 않은 보안 취약점을 만든다.


    구성 요소
    주요 리스크
    Claude MCP– 기본 30일 로그 저장
    – Tool 등록 시 위험한 명령 가능
    – 설정 미흡 시 전송 기록 제거 안 됨
    Cursor IDE– Privacy Mode OFF 상태 시 로그 저장 + 외부 전송
    – 전체 리포지토리 인덱싱 시 보안 파일 포함 위험
    사용자 습관– 회의 중 프롬프트 화면 공유
    – 캡처 이미지 통한 API 키 유출
    – 슬랙/노션에 민감 코드 조각 공유

    🎯 핵심 인사이트

    툴 보안 → IDE 설정 → 사람 습관이 세 가지가 동시에 느슨해질 때, 실제 보안 사고는 조용히 일어난다.

    3. 원리 발견하기: 가장 많이 발생하는 실수들

    실제 유출은 대부분 “습관”에서 비롯된다

    잘못된 습관발생 가능 리스크
    Claude에 API Key 직접 입력서버 접근권한 유출
    Cursor Privacy Mode OFF전체 프로젝트 로그 전송
    github에 .env 업로드서비스 전체 노출
    프롬프트에 실제 URL/경로 입력경쟁사에 서비스 구조 유출

    4. 보안 안전 실천하기 : Claude MCP + Cursor 보안 체크리스트

    Claude API

    • Enterprise 플랜에서 Zero-Retention 설정 요청
    • 프론트엔드에서 직접 호출하지 말고 백엔드에서만 API 호출
    • 프롬프트에 API 키, URL, 제품명 직접 입력 금지 → <<KEY>>, <<URL>> 사용

    MCP Tool

    • 등록 시 JSON 스키마 필수 적용
    • 결과는 Sandbox에서 먼저 실행
    • 툴 권한은 읽기/쓰기 분리하여 설정

    Cursor IDE

    • Privacy Mode ON 필수
    • 인덱싱 시 README 수준까지만 허용
    • .cursorignore에 다음 포함:
    .env  
    credentials.json  
    secret.py

    조직 보안 정책

    • 핵심 문서는 Git-crypt 또는 Age로 암호화 저장
    • 외부 협업자는 NDA 체결 + 접근 권한 최소화
    • 분기별 Red-Team 보안 점검 운영
    Image placeholder

    본 블로그외에도 sns 채널에서 다양한 정보를 확인해볼 수 있습니다.

    Leave a Comment

    목차