기타 Hacker News · 46분 전

중국 AI 코딩 앱, 개발자 컴퓨터의 깃 히스토리 통째로 무단 백업하다 덜미

핵심 요약
  • 중국 지푸(Zhipu)의 AI 코딩 앱 ZCode가 로그인 시 작업 공간과 깃 히스토리를 통째로 패키징해 알리바바 클라우드로 자동 업로드하고 있었습니다.
  • 암호화에 사용된 개인키가 서버에만 있어 사용자 본인은 열 수 없고 오직 서버만 해독할 수 있는 구조였습니다.
  • 업로드 데이터의 86% 이상이 깃 히스토리로 구성되어 과거 삭제된 비밀 키나 내부 브랜치 정보까지 통째로 유출되는 셈입니다.
요약 중국의 대표적인 AI 기업 지푸(Zhipu)의 공식 코딩 데스크톱 앱 'ZCode'가 사용자의 전체 깃(Git) 히스토리를 몰래 패키징해 알리바바 클라우드(Aliyun OSS)로 업로드하고 있다는 분석 글이 공개되어 충격을 주고 있습니다. 작성자는 디스크 용량을 정리하던 중 ~/.zcode 디렉터리가 700MB 이상을 차지하고 있는 것을 발견하고 조사에 착수했습니다. 그 결과 v2/checkpoints/ 폴더 안에서 313MB 용량의 암호화 파일(.enc)과 상태 메타데이터 파일을 찾아냈습니다. 클라이언트가 작성자의 상용 프로젝트에서 node_modules 등을 제외한 345MB 분량의 코드를 풀 스냅샷(baseline)으로 압축해 알리바바 OSS로 업로드를 시도하다 564회나 실패해 대기 폴더에 남아있던 상태였습니다. 클라이언트의 app.asar를 리버스 엔지니어링해 확인한 동작 과정은 더욱 심각했습니다. ZCode 클라이언트는 먼저 zcode.z.ai 서버에 업로드 자격 증명과 해당 회차에 쓰일 RSA 공개키를 요청합니다. 이후 로컬에서 작업 영역을 tar.gz로 묶은 뒤 AES-256-CTR로 대칭키 암호화하고, 이 대칭키를 서버가 준 RSA 공개키로 감싸(RSA-OAEP-SHA256) 알리바바 클라우드 OSS로 직접 폼 전송(POST)합니다. 특히 암호화에 쓰인 공개키만 서버에서 동적으로 내려올 뿐, 복호화에 필요한 개인키는 전적으로 클라우드 서버에만 존재합니다. 즉, 내 컴퓨터 하드디스크에 생성된 수백 메가바이트짜리 암호화 파일을 사용자 자신은 물론 클라이언트 앱조차 열어볼 수 없으며, 오직 지푸의 서버만이 해독할 수 있도록 설계되어 있었습니다. 이는 일반적인 로컬 롤백이나 기기간 동기화 목적이 아니라 서버가 마음대로 코드를 열어보기 위한 구조라는 지적입니다. 패키징 목록을 분석한 결과 업로드 파일 전체 용량의 86.6%가 .git 디렉터리였습니다. 대용량 바이너리를 담은 LFS 캐시가 56.8%, 전체 커밋 이력을 담은 .git/objects가 29.6%, 로컬 브랜치 이력인 reflogs가 0.2%를 차지했습니다. 이는 현재 작업 중인 코드뿐만 아니라 과거 커밋에서 삭제했던 API 키나 비밀번호, 외부에 공개되지 않은 비공개 로컬 브랜치명, 사내 내부 GitLab 주소와 저장소 경로까지 깃 저장소의 모든 과거 이력이 통째로 중국 클라우드로 넘어간다는 것을 의미합니다. 개발자 커뮤니티에서는 중국산 AI 코딩 도구가 백그라운드에서 프로젝트 전체 기록을 유출하고 있었다는 점에 경악을 금치 못하고 있습니다.
Sponsored · 광고