기술

Cursor, AI 학습용으로 보관한 코딩 대화에서 비밀번호 유출… 가짜 Claude Code 배포로 이어져

Adrian Kessler
Google에서 추가하기

Microsoft의 오픈소스 Visual Studio Code를 기반으로 한 AI 코드 편집기 Cursor가 최근 발생한 침해 사고의 발단은 대부분의 사용자가 미처 생각하지 못하는 곳에 있었다고 밝혔다. AI 모델 훈련을 위해 회사가 보관해 온 오래된 코딩 세션이 문제였다. 저장된 대화 일부에는 비밀번호와 API 키가 그대로 남아 있었다. 공격자는 이 정보를 이용해 Cursor 시스템 내부로 더 깊숙이 침투했고, 편집기 자체의 확장 프로그램 마켓플레이스에 Anthropic의 Claude Code 확장 프로그램을 사칭한 백도어 버전을 올렸다.

AI 비서에 비밀 정보를 입력하는 사람이라면 이 일련의 과정에서 핵심을 짚어야 한다. 채팅 창에 입력한 키는 세션이 끝난다고 사라지지 않는다. 도구가 대화 내용을 저장한다면 비밀 정보는 데이터셋에 계속 남고, 그 데이터셋에 접근하는 사람은 해당 키도 손에 넣게 된다.

Cursor의 사고 보고서에 따르면 문제는 모델 훈련과 추론을 위해 Cursor가 이용하던 외부 업체 Fireworks AI에서 시작됐다. 공격자는 Cursor가 Fireworks에 발급한 액세스 키를 확보했다. Cursor는 Fireworks가 이 키를 노출했다고 밝혔다. 공격자는 이를 이용해 두 회사가 공유하던 읽기 전용 스토리지 버킷의 데이터를 복사했다. 그 안에는 주로 2025년에 생성된 코딩 에이전트 실행 기록이 들어 있었다. 사용자가 Cursor가 데이터를 훈련에 활용하지 못하도록 하는 설정인 Privacy Mode를 켜지 않은 세션에서 나온 기록이었다. Cursor에 따르면 전체 사용자의 0.05% 미만의 기록이 노출됐으며, API 자격 증명이 유출된 고객은 0.01% 미만이었다.

남아 있던 자격 증명으로 공격자는 Cursor가 운영하는 여러 서비스형 소프트웨어 도구에 접근했다. 이후 보관된 비운영용 소스 코드, 고객 지원 이메일, 사용량 지표와 연락처 정보, 일부 AI 에이전트 대화 요약, 고객이 과거 Cursor 지원팀에 공유한 자격 증명까지 손에 넣었다고 BleepingComputer는 자세히 보도했다. 도난당한 자격 증명 하나로 Cursor 확장 프로그램 마켓플레이스의 캐시에 게시물을 올릴 수 있었다.

가짜 Claude Code가 마켓플레이스에 올라온 경위다. 변조된 버전 2.1.312와 2.1.313은 약 11시간 동안 공개돼 있었으며, Cursor는 해당 버전을 요청한 사용자 가운데 최대 5,000명이 악성 빌드를 내려받았을 수 있다고 추산했다. 이 프로그램은 공격자의 SSH 키를 심고 개발자 컴퓨터에 원격으로 계속 접근할 수 있도록 하는 코드를 실행했다. Cursor는 이 복제본을 Anthropic이 배포한 것이 아니며, 취약점도 Anthropic 제품에 있는 것이 아니라고 강조했다. Cursor가 확장 프로그램을 가져오는 오픈 마켓플레이스 Open VSX에도 악성코드는 올라오지 않았다.

보고서에는 여전히 밝혀지지 않은 부분이 있다. Cursor는 5,000대 가운데 실제로 작동하는 백도어가 설치된 컴퓨터가 몇 대인지 공개하지 않았다. BleepingComputer에 따르면 보안 연구원들은 코딩 오류를 발견했으며, SSH가 이미 활성화돼 있지 않은 Windows와 macOS 컴퓨터 다수에서는 이 오류 때문에 공격이 중단됐을 가능성이 크다. 따라서 SSH가 이미 켜져 있던 컴퓨터가 가장 큰 위험에 노출됐다. Cursor는 훈련 파트너에게 전달한 데이터에 자격 증명이 가려지지 않은 채 포함된 이유도 설명하지 않았다. 이는 사용자 데이터를 학습에 활용하는 모든 AI 코딩 도구가 새겨야 할 핵심 교훈이다. Privacy Mode를 켠 사용자는 보호받았지만, 기본 설정에서는 다른 모든 사용자의 세션이 훈련에 활용될 수 있었다.

Cursor만 표적이 된 것은 아니다. 보안업체 Wiz는 10월에 사고를 공개한 AI 개발 플랫폼이 최소 9곳이라고 집계했다. 공격자들이 유료 AI 모델을 사용할 수 있는 저장된 키를 노린 이 일련의 사건을 Wiz는 ‘Black October’라고 불렀다. Fireworks도 한 차례 이상 침해 사고를 공개했으며, Notion은 이를 통해 소수의 워크스페이스에서 AI 채팅 기록이 노출됐다고 밝혔다. 탈취된 액세스 권한은 재판매되거나 피해자에게 청구되는 AI 사용료를 발생시키는 데 악용된다. BleepingComputer의 보도에 따르면 클라우드 호스팅 업체 Railway에서는 도난당한 비밀 정보가 악용돼 약 74만 달러의 AI 요금이 부정하게 청구됐다.

Cursor는 모든 추론 트래픽을 Fireworks에서 다른 곳으로 이전하고, 내부 시스템의 모든 자격 증명을 교체했으며, 확장 프로그램 마켓플레이스를 재구축하고 운영 인프라도 새로 배포했다고 밝혔다. Privacy Mode를 사용한 고객과 Cursor 앱, 공식 업데이트는 영향을 받지 않았고, 릴리스 서명 키도 노출되지 않았다. 서비스는 전 세계에서 동일하게 운영되므로 대응 요령도 어디서나 같다. 10월 29일 Cursor 마켓플레이스에서 Claude Code 2.1.312 또는 2.1.313을 설치하거나 업데이트한 사용자는 회사가 안내한 복구 절차를 따라야 하며, 팀 관리자는 Cursor가 이메일로 보낸 키 목록을 확인해야 한다.

악성 확장 프로그램은 10월 29일 배포됐고, Cursor는 10월 30일 첫 보안 공지를 냈다. 회사가 확인한 공격자의 마지막 활동은 11월 1일 차단됐다. 전체 사고 보고서는 11월 13일 공개됐으며, 추가로 확인되는 내용이 있으면 영향을 받은 고객에게 직접 알리겠다고 회사는 밝혔다. 개발자에게 가장 안전한 원칙은 어떤 보안 패치보다도 단순하다. AI 채팅에 붙여 넣은 비밀번호는 이미 어딘가에 기록됐다고 간주해야 한다.

태그: , , , , ,

Google에서 추가하기

토론

댓글 0개가 있습니다.