Files
claude-code-source-code/docs/ko/01-텔레메트리와-프라이버시.md
2026-04-01 18:55:02 +08:00

4.1 KiB

텔레메트리 및 프라이버시 분석

인터넷에 공개된 자료와 커뮤니티 토론을 바탕으로 정리된 Claude Code v2.1.88 분석 보고서.

개요

Claude Code는 이중 분석 파이프라인을 통해 광범위한 환경 및 사용 메타데이터를 수집한다. 키로깅이나 사용자 코드 유출의 증거는 없으나, 수집 범위가 넓고 완전한 비활성화가 불가능하다는 점에서 프라이버시 우려가 존재한다.

데이터 파이프라인 구조

자사 로깅 (1P)

  • 엔드포인트: https://api.anthropic.com/api/event_logging/batch
  • 프로토콜: OpenTelemetry + Protocol Buffers
  • 배치 크기: 최대 200개 이벤트, 10초 간격 전송
  • 재시도: 이차 백오프, 최대 8회, 디스크 영속 저장
  • 저장소: 전송 실패 시 ~/.claude/telemetry/에 저장

출처: src/services/analytics/firstPartyEventLoggingExporter.ts

서드파티 로깅 (Datadog)

  • 엔드포인트: https://http-intake.logs.us5.datadoghq.com/api/v2/logs
  • 범위: 사전 승인된 64개 이벤트 유형으로 제한
  • 토큰: pubbbf48e6d78dae54bceaa4acf463299bf

출처: src/services/analytics/datadog.ts

수집 항목

환경 핑거프린트

모든 이벤트에 다음 메타데이터가 포함된다 (src/services/analytics/metadata.ts:417-452):

- platform, platformRaw, arch, nodeVersion
- 터미널 유형
- 설치된 패키지 매니저 및 런타임
- CI/CD 감지, GitHub Actions 메타데이터
- WSL 버전, Linux 배포판, 커널 버전
- VCS(버전 관리 시스템) 유형
- Claude Code 버전 및 빌드 시각
- 배포 환경

프로세스 메트릭 (metadata.ts:457-467)

- uptime, rss, heapTotal, heapUsed
- CPU 사용량 및 사용률
- memory arrays 및 external allocations

사용자 추적 (metadata.ts:472-496)

- 사용 중인 모델
- 세션 ID, 사용자 ID, 디바이스 ID
- 계정 UUID, 조직 UUID
- 구독 등급 (max, pro, enterprise, team)
- 저장소 원격 URL 해시 (SHA256, 앞 16자)
- 에이전트 유형, 팀 이름, 부모 세션 ID

도구 입력 로깅

도구 입력은 기본적으로 잘린다:

- 문자열: 512자에서 잘림, 128자 + 생략부호로 표시
- JSON: 4,096자 제한
- 배열: 최대 20개 항목
- 중첩 객체: 최대 2단계 깊이

출처: metadata.ts:236-241

단, OTEL_LOG_TOOL_DETAILS=1 설정 시 전체 도구 입력이 기록된다.

출처: metadata.ts:86-88

파일 확장자 추적

rm, mv, cp, touch, mkdir, chmod, chown, cat, head, tail, sort, stat, diff, wc, grep, rg, sed 관련 Bash 명령에서 파일 인자의 확장자가 추출·기록된다.

출처: metadata.ts:340-412

비활성화 문제

자사 로깅 파이프라인은 직접 Anthropic API 사용자의 경우 비활성화할 수 없다.

// src/services/analytics/firstPartyEventLogger.ts:141-144
export function is1PEventLoggingEnabled(): boolean {
  return !isAnalyticsDisabled()
}

isAnalyticsDisabled()가 true를 반환하는 경우:

  • 테스트 환경
  • 서드파티 클라우드 제공자 (Bedrock, Vertex)
  • 글로벌 텔레메트리 비활성화 (설정 UI에 노출되지 않음)

자사 이벤트 로깅을 비활성화하는 사용자 대상 설정은 존재하지 않는다.

GrowthBook A/B 테스트

사용자는 명시적 동의 없이 GrowthBook을 통해 실험 그룹에 배정된다. 전송되는 사용자 속성:

- id, sessionId, deviceID
- platform, organizationUUID, subscriptionType

출처: src/services/analytics/growthbook.ts

핵심 요약

  1. 수집량: 세션당 수백 건의 이벤트가 수집된다
  2. 비활성화 불가: 직접 API 사용자는 자사 로깅을 끌 수 없다
  3. 영속성: 전송 실패 이벤트는 디스크에 저장되어 적극적으로 재시도된다
  4. 서드파티 공유: 데이터가 Datadog으로 전송된다
  5. 도구 상세 백도어: OTEL_LOG_TOOL_DETAILS=1로 전체 입력 로깅이 활성화된다
  6. 저장소 핑거프린팅: 저장소 URL이 해싱되어 서버 측 상관분석에 사용된다