즈푸(Zhipu)는 9월 28일 오전 공지를 통해 ZCode의 저장소 스냅샷 업로드 경로를 제거하고 관련 클라우드 데이터를 삭제했다고 밝혔다. 오픈소스 버전도 동시에 3.14.3으로 업데이트됐다. 회사 측의 새로운 설명은 "사용자가 직접 실행하지 않으면 클라우드로 가지 않는다"는 것으로, 사용자의 명시적인 조작 없이는 코드가 로컬을 벗어나지 않는다는 의미다.
같은 공지에는 보상안도 담겼다. 사용자 1인당 주간 리셋 카드 4장과 5시간 리셋 카드 4장이 지급되며, 유효기간은 한 달이다. 9월 28일부터 10월 7일 사이에는 전체 사용자를 대상으로 1억 토큰 분량의 쿠폰 10만 건을 배포한다. 수령 조건과 배분 방식에 대해서는 공지에서 구체적으로 밝히지 않았다.
문제는 Repo Wiki 기능에 있었다
사고 원인에 대해 즈푸는 기존 설명을 그대로 유지했다. ZCode의 '코드 저장소 인덱싱' 기능 안에 있는 'Repo Wiki' 단계에서 위키 페이지를 생성할 때 저장소 데이터 업로드가 발생할 수 있었다는 것이다. 데이터는 클라우드에서 페이지 생성이 끝나는 즉시 파기되며 별도로 보관하지 않는다고 설명했다. 이 기능은 출시 초기 기본값이 '켜짐'이었고, 그로 인해 일부 사용자가 영향을 받았다는 것이다.
이 설명은 9월 18일 처음 나왔을 때부터 개발자들의 반박을 받았다. 당시 테크 블로거 Ferstar가 분석한 샘플에서는 스냅샷 한 건이 313MB였고, 그중 86.6%가 .git 디렉터리였다. 즉 업로드된 것은 현재 코드뿐 아니라 전체 커밋 이력과 LFS 캐시까지 포함됐다는 뜻이다. 개발자들이 더 문제 삼은 부분은, 화면상의 토글이 서버 측에서 데이터를 모델 학습에 쓸지 여부만 제어할 뿐, 로컬 패키징과 업로드 자체는 그 설정과 무관하게 계속됐다는 점이었다.
사과에서 감사까지, 사흘 간격
시간순으로 정리하면 즈푸의 이번 대응은 세 단계로 나뉜다.
9월 18일, 사과문을 발표하며 조만간 코드 저장소를 오픈소스로 공개하고 제3자 검토를 요청하겠다고 약속했다. 같은 날 전체 사용자에게 주간 쿼터 리셋을 한 차례 지급했다.
9월 21일, ZCode가 정식으로 오픈소스로 공개됐다. Eastmoney 등 매체 보도에 따르면 즈푸는 중국정보통신연구원(CAICT)과 NSFOCUS에 보안 감사를 의뢰했다. CAICT의 기술 평가는 zcode-prod라는 이름의 알리바바 클라우드 OSS 버킷이 '클라우드 데이터 제로' 상태이며, v3.14.0 클라이언트에서는 이미 Repo Wiki 기능이 제거됐다고 결론지었다. NSFOCUS는 해당 버킷과 그 안의 모든 데이터 객체가 삭제됐음을 확인했고, 클라이언트 내에서 로컬 저장소 스냅샷이나 파일 유출을 일으킬 수 있는 기능은 발견되지 않았다고 밝혔다. 즈푸 또한 커뮤니티가 지적한 코드 데이터는 보관한 적이 없으며 모델 학습에 사용한 적도 없다고 재차 강조했다.
9월 28일, 즉 이번 공지로, 버전은 3.14.3까지 올라갔고 보상안이 시행됐다.
노출, 사과, 오픈소스화, 감사, 보상까지 열흘 만에 마무리한 것은 느린 속도가 아니다. 오픈소스화로 외부에서 스냅샷 모듈의 코드를 직접 확인할 수 있게 됐고, 감사 역시 독립된 두 기관이 각각 결론을 내놓아 일방적인 '수정 완료' 선언보다는 검증하기 쉬운 편이다.
아직 밝혀지지 않은 부분
공지와 감사 결과가 다루는 것은 '현재' 상태, 즉 버킷이 비었고 업로드 경로가 제거됐다는 점까지다. 시간을 거슬러 올라가는 몇 가지 질문에는 공개된 자료만으로는 답을 찾을 수 없다.
영향을 받은 사용자와 저장소 수는 즈푸가 밝히지 않았다. ZCode 사용자 수는 8월 중순 100만 명을 넘었고, 보도에 따르면 9월 중순에는 약 200만 명으로 두 배가 됐다고 한다. Repo Wiki가 기본값으로 켜져 있던 기간에 해당하는 사용자가 얼마나 되는지는 외부에서 추산할 방법이 없다. 데이터가 실제로 OSS에 얼마나 오래 머물렀는지, 삭제되기 전에 다른 시스템이 이를 읽은 적이 있는지도 답이 나오지 않았다. 감사 보고서 전문도 공개되지 않았으며, 보도된 것은 결론 부분뿐이다.
여전히 ZCode를 쓰는 개발자라면 취해야 할 조치는 달라지지 않았다. 3.14.3으로 업그레이드하고, 로컬에 남아 있는 스냅샷 디렉터리를 정리하고, Git 이력에 한 번이라도 등장한 키와 토큰은 전부 교체하는 것이 안전하다. 이미 외부로 유출된 것에 대해서는 '이미 삭제했다'는 약속이 서비스 제공자 쪽 조치를 보증할 뿐이다.
이번에 지급되는 보상은 리셋 카드와 토큰으로, ZCode를 계속 쓰는 사람에게만 의미가 있다. 이번 사태로 이미 도구를 삭제한 기업 사용자들이 원하는 것은 쿼터가 아니라 감사 보고서 전문이다.
참고 출처: 즈푸 ZCode 공식 공지, IT Home, Sina Tech, CocoLoop, Eastmoney; 보상안의 카드 수량과 토큰 배분 기간, 오픈소스 버전 번호, 중국정보통신연구원과 NSFOCUS의 감사 결론 표현을 확인했다.