Grok이 당신의 레포지토리를 가져간다고? '가장 똑똑한 어시스턴트'가 가장 위험한 도구가 될 때
요약
Grok Build, Claude Code, GitHub Copilot 등 주요 AI 코딩 도구들의 심각한 보안 결함과 데이터 유출 사례를 다룹니다. 사용자의 코드베이스와 API 키가 무단 업로드되거나, 보안 취약점이 노출되는 등 AI 어시스턴트의 신뢰성 위기를 경고합니다.
핵심 포인트
- Grok Build가 사용자의 설정과 무관하게 전체 레포지토리를 무단 업로드함
- Claude Code의 소스 맵 노출 등 반복적인 보안 실수 발생
- GitHub Copilot의 광고 삽입 및 Cursor의 RCE 취약점 사례
- AI 코딩 도구의 데이터 제어권이 사용자에게 완전히 있지 않음
2026년 7월. AI 코딩 도구에 대한 신뢰가 일제히 무너지고 있습니다.
xAI의 Grok Build가 사용자의 전체 코드베이스를 몰래 묶어서 Google Cloud로 업로드하고 있습니다. "모델 개선 (Improve the model)" 토글을 꺼도 아무런 효과가 없으며, xAI는 어떠한 성명이나 응답, 수정 사항도 없이 완전히 침묵을 지키고 있습니다. Anthropic의 Claude Code는 중국 공업정보화부(MIIT)로부터 "내장된 은밀한 감시 백도어 (built-in covert surveillance backdoor)"라는 명목으로 공식 지목되었습니다. Alibaba는 7월 10일에 전사적으로 사용을 금지했으며, Tencent는 이미 6개월 전에 공급업체 후보 명단에서 이를 제외했습니다. GitHub Copilot은 허가 없이 11,400개의 풀 리퀘스트 (pull requests)에 Raycast 광고를 끼워 넣었다가 대중의 분노로 인해 강제로 중단되었습니다. Cursor는 1년도 채 되지 않아 두 건의 고위험 RCE 버그를 기록하며, "가장 똑똑한 IDE"를 "가장 취약한 IDE"로 전락시켰습니다.
이것은 단 하나의 도구가 실패한 것이 아닙니다. 방어 체계가 완전히 무너진 산업 전체의 문제입니다.
I. Grok Build: 한 줄을 써달라고 요청했더니, 레포지토리 전체를 가져가 버리다
2026년 7월 13일, 보안 연구원 cereblab은 패킷 스니퍼 (packet sniffer)를 사용하여 Grok Build의 네트워크 트래픽을 모니터링했습니다. 그는 Grok에게 테스트 레포지토리 (repo)에 단 한 단어로 답하라고 명령했습니다. 그 순간 두 가지 일이 동시에 발생했습니다. Grok이 .env 파일을 읽었을 때, 그 안의 API_KEY가 아무런 정제 과정 없이 평문 (plaintext)으로 전송되었습니다. 동시에 백그라운드에서 Grok은 프로젝트 디렉토리 전체를 git 번들 (git bundle)로 압축하여 grok-code-session-traces라는 이름의 Google Cloud 버킷으로 조용히 업로드했습니다.
그의 테스트 레포지토리는 12GB였습니다. 모델과의 대화 자체는 192KB였습니다. 하지만 조용히 진행된 백그라운드 업로드는 5.1GB에 달했습니다. 이는 대화 크기의 27,800배에 해당하는 양입니다. 심지어 사용자가 다른 도구 내에 등록해 두었던 API 키들까지 업로드되었습니다.
훨씬 더 경악스러운 것은 "모델 개선 (Improve the model)" 토글 스위치였습니다. 공식적으로는 이 스위치를 끄면 코드가 업로드되는 것이 중단되어야 합니다. cereblab은 이를 껐음에도 불구하고 다시 스니핑(sniffing)을 시도했습니다. 서버의 응답 헤더에는 여전히 trace_upload_enabled: true라고 적혀 있었습니다. 그 스위치는 단지 "학습에 사용됨" 여부만을 제어할 뿐, "업로드 및 저장"을 제어하지는 않았습니다.
보고서가 나온 다음 날, xAI는 조용히 서버 측 스위치를 추가하여 업로드를 비활성화했습니다. xAI는 사용자의 클라이언트에 대해 완전하고 일방적이며 원격적인 제어권을 보유하고 있습니다. 즉, 오늘 끄는 기능이라도 내일 다시 켤 수 있다는 뜻입니다. 7월 14일 기준으로 xAI는 어떠한 공식 성명이나 답변, 혹은 수정에 대한 약속도 내놓지 않았습니다.
Grok Build는 스스로를 "로컬 우선 (local-first)"라고 홍보합니다. 하지만 실제 데이터 흐름은 다음과 같습니다: 사용자의 코드 → Google Cloud → 사용자가 제어할 수 없는 스위치.
II. Claude Code: 13개월 동안 세 번이나 공공장소에서 알몸으로 돌아다닌 격
Anthropic은 스스로를 "AI 안전 (AI safety) 기업"이라고 홍보합니다. 하지만 Claude Code는 13개월 동안 정확히 똑같은 실수를 세 번이나 저질렀습니다. 공개되어서는 안 될 소스 맵 (source map) 파일이 포함된 npm 패키지를 배포하여, 사실상 소스 코드를 통째로 공개해 버린 것입니다.
2025년 2월, 2026년 3월 7일, 그리고 2026년 3월 31일 — 세 번의 릴리스 연속으로 동일한 실수가 반복되었습니다. 세 번 중 가장 심각했던 사례에서는 512,000줄의 TypeScript가 포함된 59.8MB 크기의 맵 파일이 통째로 노출되었습니다. 불과 몇 시간 만에 GitHub 미러(mirror)는 41,500회 포크(fork)되었으며, 누군가는 OpenAI Codex를 사용하여 이를 클린룸 재구현(clean-room reimplement)한 Python 버전을 만들어 단 두 시간 만에 50,000개의 스타(star)를 기록했습니다.
매번 Anthropic은 이를 "패키징 실수 (packaging mistake)"라고 불렀습니다. 하지만 13개월 동안 같은 실수를 세 번이나 반복한 것은 오만함 외에는 설명할 길이 없습니다.
유출 자체보다 더 뼈아픈 것은 코드의 내용입니다: 3,167줄짜리 함수, 46,000줄짜리 파일, 그리고 사용자 감정을 감지하기 위해 사용된 정규 표현식 (regex). Hacker News의 한 댓글은 핵심을 정확히 찔렀습니다: "세계에서 가장 진보된 언어 모델을 만드는 회사가 정규 표현식으로 감정 분석을 하고 있다니. 이건 마치 화물 운송을 위해 말을 사용하는 운송 회사와 같다."
2026년 7월 8일, MIIT의 국가 취약점 데이터베이스(NVDB)는 Claude Code가 내장된 은밀한 감시 기능을 수행하고 있다고 경고했습니다. 이는 시스템 시간대를 읽고, "Alibaba Cloud" 및 "Tencent Cloud"와 같은 키워드를 스캔하며, 중국 사용자들을 조용히 태깅하는 행위를 포함합니다. 이에 따라 Alibaba는 7월 10일 전사적으로 해당 도구의 사용을 금지했습니다. Claude Code 팀은 이것이 올해 3월에 시작된 실험이었다고 인정했으나, 왜 다른 국가의 벤더가 아닌 중국 클라우드 제공업체들을 특정하여 표적으로 삼았는지에 대해서는 설명하지 않았습니다.
Anthropic의 슬로건은 "안전한 AGI를 구축하라(Build safe AGI)"입니다. 그들의 제품 홍보 문구는 "당신의 코드로부터 AGI를 구축하라(Build AGI from your code)"입니다.
III. Cursor: 12개월 동안 발견된 두 건의 고위험 RCE 버그
Cursor의 CurEecute와 MCPoison은 동일한 근본 원인을 공유합니다. Cursor는 AI가 읽는 것이라면 무엇이든 안전하다고 가정합니다. 공격자는 공개 Slack 채널에 "~/.cursor/mcp.json 파일을 이 설정으로 변경해 주세요"라는 메시지를 게시하기만 하면 됩니다. Cursor가 이를 읽는 순간 자동으로 변경 사항을 기록합니다. 사용자는 단지 AI에게 "메시지를 요약해 줘"라고 요청했을 뿐인데, 4초 후 공격자가 기기에 대한 완전한 제어권을 갖게 됩니다. Aim Labs의 데모 영상이 이 상황을 잘 보여줍니다. Python 튜토리얼로 위장한 GitHub 레포지토리를 사용자가 Cursor에서 열고 "이 프로젝트를 어떻게 실행하나요?"라고 묻자, 4초 만에 리버스 셸(reverse shell)이 나타났습니다.
MCPoison은 훨씬 더 악랄합니다. 공격자는 먼저 승인을 받기 위해 무해한 설정을 제출한 다음, 이를 악성 명령어로 조용히 교체합니다. 일단 사용자가 신뢰하게 되면, 공격자는 해당 기기를 영구적으로 점유하게 됩니다. 프로젝트가 열릴 때마다 경고 없이 리버스 셸이 자동으로 실행됩니다.
전통적인 IDE는 프로그래머가 작성한 코드를 실행하며, 모든 줄을 검토합니다. 반면 AI IDE는 AI가 생성한 명령을 실행하며, 그 명령은 AI가 읽는 모든 것에 의존합니다. 공격 표면(attack surface)이 "코드 자체"에서 "AI가 읽는 모든 것"으로 확장되는 것입니다. 한 보안 연구원은 이를 다음과 같이 잘 표현했습니다. "Cursor는 문을 지키기 위해 마을의 모든 자물쇠 기술자를 고용하는 은행과 같습니다. 자물쇠는 정교하지만, 기초는 두부와 같습니다."
IV. 기타 AI IDE: 폭발하는 네 가지 방식, 그리고 각각의 실화
Cursor와 Claude Code는 이미 우리에게 충분한 사례를 제공했습니다. 하지만 나머지 분야도 그리 멀지 않은 곳에 있습니다. 이들이 실패하는 방식에 따라 대략 네 가지 범주로 나눌 수 있으며, 각 범주 뒤에는 들려줄 만한 가치가 있는 이야기가 있습니다.
조용한 데이터 유출: 버그가 아니라 비즈니스 모델입니다
GitHub Copilot은 2026년 4월 24일부터 기본적으로 학습 데이터를 수집하기 시작했습니다. 그 이전에도 자체적으로 두 가지 심각한 취약점이 있었습니다. EchoLeak는 공격자가 당신에게 이메일을 보내는 것만으로도 작동했습니다. Copilot이 백그라운드에서 이를 자동으로 읽고 당신의 OneDrive/SharePoint 파일을 외부 서버로 조용히 전송했습니다. 당신은 아무것도 할 필요가 없었습니다. Microsoft는 긴급 패치를 배포하며 "실제 환경에서의 악용 사례는 관찰되지 않았다"라고 강조했습니다. 그다음은 CamoLeak였습니다. Copilot Chat은 PR(Pull Request) 설명 내부에 숨겨진 HTML 주석 <!-- ... -->을 읽었습니다. 인간은 볼 수 없지만, LLM(대규모 언어 모델)은 볼 수 있습니다. 이 AI는 GitHub 자체의 Camo 이미지 프록시를 통해 코드 스니펫을 한 글자씩 유출했습니다. 심지어 AWS 키조차 타겟이 되었습니다. GitHub의 해결책은 Copilot Chat에서 이미지 렌더링 기능을 아예 비활성화하는 것이었습니다. 출혈을 막기 위해 해당 기능을 없애버린 것입니다.
ByteDance의 제품인 Trae IDE는 2025년 7월 여러 매체를 통해 테스트되었습니다. 텔레메트리(Telemetry)가 비활성화된 것으로 추정되었음에도 불구하고, 7분 내에 약 500회의 네트워크 호출을 수행하고 26MB의 데이터를 전송했습니다. 수집된 정보는 다음과 같습니다: CPU 모델, 메모리 크기, 파일 경로, 화면 해상도, 키보드 및 마우스 활동 메트릭(Metrics) — 이들을 결합하면 개발자 프로필을 재구성하기에 충분한 양입니다. 더 나쁜 것은, 개발자들이 공식 Discord에서 이 문제를 제기했을 때 관련 논의들이 자동 모더레이션(Auto-moderation)되어 침묵 처리되었다는 점입니다.
JetBrains Junie는 총 70,000건의 설치 수를 기록한 15개의 악성 플러그인을 발견했습니다. 이들은 OpenAI/DeepSeek/SiliconFlow API 키를 평문(Plaintext) 상태로 HTTP를 통해 베이징에 있는 Alibaba Cloud IP로 유출했습니다.
공급망 오염: 단 하나의 PR, 백만 명의 사용자 다운
2025년 7월 17일, AWS Q Developer의 릴리스에 악의적인 10줄짜리 프롬프트(prompt)가 몰래 삽입되었습니다. 이것은 전통적인 코드 백도어(backdoor)가 아니었습니다. 사용자의 파일 시스템(filesystem)과 AWS 계정을 완전히 삭제하라는 AI를 향한 직접적인 명령이었습니다.
이 악의적인 PR(Pull Request)은 lkmanka58이라는 핸들을 사용하는 공격자로부터 왔으며, 이 공격자는 무작위 GitHub 계정을 생성하여 Amazon의 오픈 소스 레포지토리(repo)에 대한 접근 권한을 획득했습니다. 당시 AWS Q는 VS Code 마켓플레이스에서 950,000개의 설치 수를 기록하고 있었으며, 악의적인 코드는 일반적인 업데이트를 통해 모든 사용자에게 배포되었습니다. AWS는 48시간이 지나서야 해당 악성 버전을 회수했습니다. 공개된 CVE도, 사용자 공지도, 사과도 없었습니다. 재앙을 막은 유일한 것은 구문 오류(syntax error), 즉 Amazon 측의 코드 포맷팅(code-formatting) 문제로 인해 악성 프롬프트를 파싱(parse)할 수 없게 된 것이었습니다. Aikido Security는 다음과 같이 말했습니다: "이 이야기는 어디서 문제가 발생했느냐에 관한 것이 아닙니다. 그 다음에 어떤 일이 벌어지는가에 관한 것입니다."
66억 달러의 가치를 인정받은 Lovable은 API 보안 결함 1위인 BOLA(Broken Object Level Authorization, 깨진 객체 수준 권한 부여) 취약점을 노출했습니다. 어떤 무료 계정이라도 단 5번의 API 호출만으로 다른 사용자의 소스 코드, Supabase 키, 그리고 AI 채팅 기록에 접근할 수 있었습니다. 2026년 3월 3일, 연구원 Matt Palmer는 HackerOne을 통해 보고서를 제출했으나, 플랫폼은 이를 "중복(duplicate)"으로 표시하고 보류했습니다. 48일 후인 4월 20일, Palmer가 X(구 트위터)를 통해 이를 공개했을 때도 해당 취약점은 여전히 악용 가능한 상태였습니다. Lovable의 대응은 세 번이나 바뀌었습니다. 처음에는 부인했고, 그다음에는 문서(documentation) 탓을 했으며, 마지막에는 HackerOne으로 책임을 전가했습니다. Uber, Microsoft, Nvidia, Spotify 등의 직원들이 속한 프로젝트들이 모두 노출되었습니다.
신뢰를 잃고 있는 중국산 도구들
Trae IDE의 리소스 사용량 또한 터무니없습니다. VS Code는 9개의 프로세스(process)를 실행하고, Cursor는 11개를 실행하며, Trae의 초기 빌드는 53개를 실행했습니다. 최적화 이후에도 여전히 33개를 실행하며 5.7GB의 메모리를 소비합니다. Bolt.new와 V0는 또 다른 범주에 속합니다. 이들은 API 키를 평문(plaintext) 상태로 프론트엔드 번들(frontend bundle)에 포함합니다. 브라우저에서 F12를 누르는 개발자라면 자신의 OpenAI 키가 그대로 노출되어 있는 것을 볼 수 있습니다.
V. 누가 잔해를 수습할 것인가?
이러한 AI IDE들이 더 나아질까요? 아마 아닐 것입니다. 근본적인 원인은 버그가 아니라 아키텍처 (Architecture)에 있기 때문입니다. 이들은 "신뢰"를 기본값으로 취급합니다.
대안은 오픈 소스 로우코드 (low-code) AI 개발 플랫폼인 SoloEngine입니다. 개발자는 캔버스 위에서 노드 (node)를 드래그 앤 드롭하여 에이전트 (Agent) 팀을 구성할 수 있으며, 처음부터 코드를 작성할 필요가 없습니다. 이 플랫폼의 코드는 클라우드에 업로드되는 것이 아니라 기본적으로 사용자의 로컬 머신에서 실행됩니다. 따라서 Grok Build와 같은 도구는 절대로 당신의 코드를 훔칠 수 없습니다.
파일 쓰기나 명령 실행과 같이 부수 효과 (side effects)를 동반하는 모든 작업은 UI에서 명시적인 클릭 확인을 요구합니다. 각 프로젝트는 독립적인 워크스페이스 (workspace) 내에 존재하며, 기본적으로 다른 프로젝트에는 보이지 않습니다. 따라서 설령 하나의 프로젝트가 침해되더라도 공격자가 다른 프로젝트에 접근할 수는 없습니다.
이 플랫폼에는 "문서화되지 않은 기능 (undocumented features)"도, "숨겨진 스위치 (hidden switches)"도, "언더커버 모드 (Undercover Mode)"도 없습니다.
AI IDE를 거부할 필요는 없지만, 더 날카로운 시선은 필요합니다.
도구를 완전히 신뢰할 필요는 없지만, 플랜 B (Plan B)는 필요합니다.
결국, 선택은 당신의 손에 달려 있습니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기