화요일, 9월 22, 2026
HomeEconomic인공지능 코딩 도구 ZCode가 사용자 모르게 깃 이력을 클라우드로 유출한 사건

인공지능 코딩 도구 ZCode가 사용자 모르게 깃 이력을 클라우드로 유출한 사건

인공지능 기반 코딩 응용 프로그램인 ZCode가 사용자가 전혀 알지 못하는 사이에 전체 작업 공간과 깃(Git) 이력을 암호화하여 외부 서버로 전송하고 있다는 사실이 역공학 분석을 통해 밝혀졌습니다. 베이징에 본사를 둔 기업이 개발한 이 도구는 로그인 상태에서 작동하며, 사용자의 명시적인 허락 없이 대규모 파일을 외부 저장소로 업로드하는 동작을 수행했습니다. 특히 모델 학습 허용이나 저장소 색인 설정을 꺼두어도 이러한 정보 수집과 전송은 멈추지 않고 계속해서 이루어지는 것으로 나타났습니다. 이로 인해 개발자들이 무심코 입력한 비밀번호나 API 키 같은 민감한 정보가 고스란히 유출될 수 있다는 심각한 우려가 제기되고 있습니다. 오늘 글에서는 이번 정보 유출 사건의 구체적인 경위와 기술적 배경을 자세히 살펴보겠습니다. 독자분들께서도 현재 사용 중인 인공지능 도구들의 보안 상태를 다시 한번 점검하는 계기가 되기를 바랍니다.



=

인공지능 코딩 도구 ZCode가 사용자 모르게 깃 이력을 클라우드로 유출한 사건

인공지능 코딩 도구 ZCode가 사용자 모르게 깃 이력을 클라우드로 유출한 사건

1. 역공학 분석으로 드러난 비밀 업로드

1. 역공학 분석으로 드러난 비밀 업로드
1. 역공학 분석으로 드러난 비밀 업로드

개발자 페르스타는 최근 ZCode 응용 프로그램을 정밀하게 역공학 분석한 결과, 로그인 상태에서 전체 작업 공간과 깃 이력이 외부로 전송되는 현상을 발견했습니다. 이 프로그램은 사용자의 작업 내용을 암호화하여 알리바바 클라우드의 객체 저장소로 곧바로 전송하는 프로세스를 숨기고 있었습니다. 조사 대상이 되었던 삼백 메가바이트가 넘는 상용 작업 공간에서도 어김없이 암호화된 압축 파일이 생성되어 외부로 빠져나갔습니다. 놀랍게도 이 과정에서 수백 번에 달하는 업로드 시도 기록이 내부 로그에 고스란히 남아 있었다고 합니다. 대다수의 사용자는 자신의 소중한 소스코드가 이렇게 실시간으로 백업되고 있다는 사실을 전혀 눈치채지 못했습니다. 이러한 현상은 단순히 작업 파일만 복사하는 수준을 넘어섰으며, 사용자의 컴퓨터 환경 전반을 훑어보는 듯한 인상을 주었습니다. 프로그램은 사용자가 프롬프트를 입력하기 전과 작업이 끝나는 시점에 맞추어 주기적으로 정보를 가로챘습니다. 개발사 측은 인공지능 모델과의 원활한 연동을 장점으로 내세웠지만, 그 이면에서 이루어지는 과도한 정보 수집은 큰 논란을 불러일으켰습니다. 공개 가중치 모델을 사용한다는 사실이 주변에 연동된 도구들의 안전성까지 보장해 주지는 않는다는 점이 명백해졌습니다. 결국 개발자들은 편리함이라는 미명 아래 자신의 작업 내역을 고스란히 외부 서버에 내어주고 있었던 셈입니다.

💡 핵심 포인트
ZCode가 사용자의 동의 없이 작업 공간 전체를 암호화하여 외부 서버로 전송한다는 사실이 역공학 분석으로 밝혀졌습니다.

2. 전송된 데이터의 대부분을 차지하는 깃 이력

2. 전송된 데이터의 대부분을 차지하는 깃 이력
2. 전송된 데이터의 대부분을 차지하는 깃 이력

유출된 정보의 구체적인 내용을 살펴보면 전체 전송량의 대부분이 깃 디렉터리에서 비롯된 것으로 확인되었습니다. 세부 항목별 비중을 보면 깃의 대용량 파일 저장소 캐시와 객체 저장소 파일들이 전체 전송 데이터의 큰 몫을 차지했습니다. 현재 작업 중인 창에 떠 있는 코드뿐만 아니라 과거 커밋 과정에서 이미 삭제했던 API 키나 비밀번호까지 포함될 수 있다는 점이 가장 큰 문제입니다. 아직 세상에 공개되지 않은 비공개 브랜치 이름이나 내부 설정 파일들도 고스란히 전송 대상에 포함되었습니다. 이는 현재의 작업 상태만 보여주는 것이 아니라 프로젝트의 역사 전체가 타인의 손에 들어갈 수 있음을 의미합니다. 실제로 깃의 로그 기록과 설정 파일에는 내부 서버의 주소나 비공개 저장소의 경로 같은 민감한 정보가 가득 담겨 있기 마련입니다. 개발자가 실수로 커밋했다가 곧바로 지운 민감한 정보라 할지라도, 이 프로그램이 수집해 간 압축 파일 속에는 영구히 남아 있게 됩니다. 따라서 표면적으로는 안전해 보이는 프로젝트라 하더라도 과거의 이력 때문에 예상치 못한 보안 사고로 이어질 수 있습니다. 이러한 위험성은 단순히 소스코드가 유출되는 것 이상의 치명적인 기업 기밀 유출로 확산될 수 있습니다. 개발자 개인이 조심한다고 해서 막을 수 있는 문제가 아니기에 더욱 큰 충격을 주고 있습니다.

💡 핵심 포인트
유출된 정보의 대부분은 깃 이력과 객체 저장소 파일이었으며, 이 속에는 과거에 삭제한 민감한 정보까지 포함되어 있었습니다.

3. 복호화가 불가능한 일방향 암호화 구조

3. 복호화가 불가능한 일방향 암호화 구조
3. 복호화가 불가능한 일방향 암호화 구조

프로그램이 수집한 데이터는 클라이언트 측에서 임의로 열어볼 수 없도록 철저하게 암호화되어 전송되는 구조를 취하고 있었습니다. 클라이언트는 서버로부터 임시로 발급받은 공개 키를 이용해 작업 공간을 압축하고 대칭 키로 감싸는 봉투 암호화 방식을 사용했습니다. 이 과정에서 암호화를 해제하는 데 반드시 필요한 개인 키는 오직 개발사의 클라우드 서버에만 보관되어 있었습니다. 사용자 본인의 컴퓨터에 저장된 암호화 파일이라 할지라도 프로그램이나 사용자는 이를 스스로 복호화할 수 없는 상태였습니다. 연구원들이 직접 로컬 환경의 모든 개인 키를 동원해 복호화를 시도했으나 전부 실패할 정도로 보안 장치가 단단했습니다. 이러한 설계 방식은 사용자가 자신의 기기에서 어떤 정보가 오고 가는지 투명하게 확인하는 것을 원천적으로 차단하는 결과를 낳았습니다. 사용자는 단지 자신의 컴퓨터에서 무언가가 외부로 전송되고 있다는 사실만 어렴풋이 느낄 뿐, 정확히 어떤 내용이 넘어갔는지 알 수 없습니다. 서버만이 복호화 권한을 독점하고 있기 때문에 개발사 측이 원하기만 하면 언제든지 사용자의 과거 작업 내역을 들여다볼 수 있습니다. 이는 사용자의 프라이버시를 심각하게 침해하는 요소이며, 상용 프로그램의 투명성에 대한 근본적인 의문을 품게 만듭니다. 신뢰를 바탕으로 구축되어야 할 개발 환경에서 이러한 일방적 정보 독점은 큰 불안 요소가 아닐 수 없습니다.

💡 핵심 포인트
복호화에 필요한 개인 키가 서버에만 존재하여 사용자나 클라이언트는 전송된 암호문을 직접 열어볼 수 없는 구조였습니다.

4. 설정 스위치로도 막을 수 없는 정보 수집

많은 사용자들이 프로그램 설정 화면에서 관련 기능을 끄면 정보 수집이 멈출 것이라고 기대했지만 이는 사실이 아니었습니다. 모델 학습을 허용할지 결정하는 설정이나 저장소 색인 기능을 비활성화하더라도 스냅샷 캡처와 업로드 동작은 멈추지 않고 계속 작동했습니다. 프로그램은 사용자가 지정한 환경 설정과 무관하게 실행 시점부터 별도의 사이드카 프로세스를 가동하여 정보를 빼돌렸습니다. 이 과정에서 에이전트 도구 자체의 권한 설정이나 내부 루프는 이러한 호스트 수준의 전송 파이프라인을 전혀 통제할 수 없었습니다. 즉, 사용자가 인터페이스에서 아무리 보안 설정을 만져봐도 백그라운드에서 이루어지는 유출을 막을 도리가 없었던 것입니다. 이러한 사실은 프로그램의 사용자 인터페이스가 제공하는 설정들이 실제 작동 방식과 일치하지 않으며 사용자를 기만하고 있음을 보여줍니다. 에이전트 도구의 권한 범위 바깥에서 호스트 수준으로 작동하기 때문에 일반적인 보안 프로그램으로는 이를 감지하기조차 어렵습니다. 사용자는 자신이 통제할 수 있다고 믿었던 영역 외부에 또 다른 숨겨진 프로세스가 돌고 있다는 사실을 알기 어렵습니다. 결국 이러한 설계는 사용자의 주권과 선택권을 무시한 채 일방적으로 데이터를 수집하려는 의도가 담긴 것으로 해석될 수밖에 없습니다. 개발자들은 자신의 작업 환경을 온전히 믿고 맡길 수 있는 도구가 부재하다는 현실에 직면하게 되었습니다.

💡 핵심 포인트
사용자가 인터페이스에서 관련 설정을 모두 꺼두어도 백그라운드 프로세스를 통한 정보 수집과 업로드는 멈추지 않았습니다.

5. 체크포인트 잠금을 통한 유일한 차단 방법

현재로서는 파일시스템 수준에서 특정 디렉터리를 쓰기 금지로 설정하는 방법만이 이 무단 업로드를 막을 수 있는 유일한 대안으로 꼽힙니다. 프로그램이 작업 공간을 캡처하여 저장하려는 디렉터리를 아예 잠가버리면 데이터 생성이 불가능해지므로 외부 전송도 자연스럽게 차단됩니다. 하지만 이 방식을 적용할 경우 프로그램이 제공하는 핵심 기능 중 하나인 작업 되돌리기나 체크포인트 기능까지 함께 망가지게 됩니다. 즉, 사용자는 보안을 지키기 위해 프로그램의 유용한 편의 기능을 포기해야 하는 극단적인 선택을 강요받는 셈입니다. 이마저도 근본적인 해결책이라기보다는 임시방편에 불과하며, 프로그램의 업데이트에 따라 언제든 무력화될 수 있습니다. 이러한 강제 차단 방식은 정상적인 사용자 경험을 크게 해치며, 프로그램의 완성도에도 치명적인 흠집을 남깁니다. 개발 도구가 제공하는 편의성을 누리기 위해서 사용자의 민감한 작업 이력을 무조건 양보해야 한다는 것은 주객이 전도된 상황입니다. 개발사 측이 이러한 문제를 인지하고 공식적인 수정 버전을 배포하기 전까지는 일반 사용자들의 피해가 우려됩니다. 보안에 민감한 기업 환경이나 개인 프로젝트에서는 당장 해당 프로그램을 삭제하는 것이 가장 안전한 방법일 수 있습니다. 도구의 편리함 뒤에 숨겨진 위험성을 정확히 인지하고 스스로의 자산을 보호하는 지혜가 필요합니다.

💡 핵심 포인트
파일시스템에서 특정 디렉터리를 잠그면 업로드를 막을 수 있지만 프로그램의 되돌리기 기능까지 함께 중단되는 부작용이 있습니다.

6. 투명성이 결여된 도구에 대한 경계와 전망

이번 사건은 인공지능 기반 개발 도구들이 급속도로 보급되는 과정에서 발생할 수 있는 보안 허점을 적나라하게 보여주었습니다. 가중치가 공개된 모델을 사용한다는 점을 내세워 전체 생태계의 신뢰를 얻으려 했지만, 막상 주변 하네스는 완전히 비공개로 운영되었습니다. 이러한 밀실 행정식 프로그램 운영은 사용자들로 하여금 자신이 다루는 도구의 안전성을 의심하게 만드는 계기가 됩니다. 앞으로 인공지능 코딩 도구를 선택할 때는 단순히 모델의 성능이나 편리함뿐만 아니라 데이터 처리 과정의 투명성을 반드시 따져봐야 합니다. 개발자 커뮤니티 역시 소스 코드가 공개되지 않은 도구에 대해서는 더욱 엄격한 잣대를 들이대야 할 것입니다. 보안이 생명인 소프트웨어 개발 환경에서 사용자의 동의 없는 데이터 수집은 신뢰를 한 번에 무너뜨리는 치명적인 결함입니다. 앞으로 관련 기업들은 프라이버시 보호 정책을 더욱 강화하고 투명한 소스 코드 공개를 통해 사용자들의 불안을 해소해야 합니다. 그렇지 않다면 이번 사태처럼 철저한 역공학 분석을 통해 민낯이 드러나고 거센 역풍을 맞게 될 것입니다. 독자 여러분께서도 외부와 연결되는 모든 개발 도구를 사용할 때는 네트워크 트래픽을 주기적으로 점검하는 습관을 들여야 합니다. 스스로의 코드를 지키는 가장 확실한 방법은 철저한 의심과 검증에서 시작된다는 사실을 잊지 마시기 바랍니다.

💡 핵심 포인트
이번 사건은 비공개 코딩 도구의 위험성을 일깨워주었으며, 앞으로는 투명성과 데이터 처리 과정을 엄격하게 검증해야 합니다.

자주 묻는 질문

ZCode가 사용자 모르게 수집한 정보는 무엇인가요?
로그인 상태에서 전체 작업 공간, 깃 이력, 대용량 파일 캐시, 그리고 과거 커밋에서 삭제된 민감한 정보까지 암호화하여 전송했습니다.
프로그램 내의 설정을 끄면 정보 유출을 막을 수 있나요?
아니오, 모델 학습 허용이나 색인 설정을 꺼두어도 백그라운드에서 작동하는 사이드카 프로세스가 계속해서 정보를 수집하고 업로드합니다.
사용자가 직접 전송된 파일을 열어볼 수 없는 이유는 무엇인가요?
프로그램이 데이터를 암호화할 때 사용하는 개인 키가 개발사의 클라우드 서버에만 보관되어 있어 사용자나 클라이언트는 복호화가 불가능합니다.
일반 사용자가 이 무단 업로드를 막을 수 있는 방법이 있나요?
파일시스템 수준에서 체크포인트 디렉터리를 쓰기 금지로 설정하면 막을 수 있지만, 작업 되돌리기 같은 핵심 편의 기능도 함께 중단됩니다.

=

🔗 함께 읽으면 좋은 글: IRP퇴직연금 절세와 투자 수익 두 마리 토끼 잡는 실전 활용법

RELATED ARTICLES
- Advertisment -

Most Popular

Recent Comments