Skip to content

Cursor 마켓 위장 Claude 확장, 5천대 백도어 위협

Anthropic 공식 계정으로 위장한 Claude Code 확장 2.1.312와 2.1.313 버전이 Cursor 마켓플레이스를 통해 자동 배포되어 약 5천대 개발자 시스템에 SSH 백도어를 설치했습니다. 한국 개발팀도 IDE 확장 자동 업데이트와 마켓플레이스 신뢰 구조를 전면 점검해야 합니다.

작성·편집 WhatsUpPick 편집팀8 분 소요
공유
Cursor 마켓 위장 Claude 확장, 5천대 백도어 위협

Anthropic의 공식 Claude Code 확장을 위장한 악성 버전이 Cursor VS Code 확장 마켓플레이스를 통해 개발자 PC에 자동 배포됐습니다. 보안 연구자 Kevin Beaumont와 보안 기업 Phorion의 보고에 따르면, 감염 버전은 2.1.312와 2.1.313이며, Cursor 측은 약 5,000대의 개발자 시스템이 영향을 받았다고 밝혔습니다. 확장 프로그램이 실행되자마자 지속형 SSH 백도어를 설치하고 정찰 정보를 외부로 전송한 이번 사건은 IDE 마켓플레이스 자체가 공급망 공격 통로가 될 수 있음을 보여줍니다.

1. 공식 계정에서 배포된 위장 확장과 자동 업데이트

이번 사건의 핵심은 공격자가 Cursor 마켓플레이스에 있는 Anthropic의 검증된 공식 계정을 이용해 변조된 Claude Code 확장을 게시했다는 점입니다. DoublePulsar에 게시된 Kevin Beaumont의 분석에 따르면, 해당 악성 확장은 Cursor에서 자동 업데이트 방식으로 사용자 PC에 설치됐습니다. 사용자는 별도로 파일을 내려받거나 실행하지 않아도 IDE가 확장을 업데이트하는 과정에서 악성 코드가 함께 로드됐습니다. Cursor는 이후 블로그를 통해 악의적으로 수정된 버전의 Anthropic Claude Code 확장이 자사 VS Code 확장 마켓플레이스에서 제공됐다고 인정했습니다. 다만 문구에서는 해당 악성 버전은 Anthropic이 개발한 것이 아니라고 설명했으며, Beaumont는 실제로는 Anthropic의 검증 계정으로 업로드됐다는 점에서 보안 침해에 따른 공급망 공격이라고 지적했습니다. Anthropic 측은 보안 침해가 Cursor 측에서 발생했다는 입장으로 전해졌습니다.

또 다른 쟁점은 대응 방식입니다. Beaumont에 따르면 Anthropic은 고객에게 별도 공지 없이 약 8시간 전에 문제 버전을 2.1.314로 교체했으며, 악성 버전 2.1.313은 OpenVSX와 Visual Studio Marketplace, Cursor 마켓플레이스에서 자취를 감췄습니다. 2.1.314 버전은 확장 프로그램 내 백도어 코드를 제거한 것으로 보이지만, 이미 감염된 시스템에 설치된 SSH 백도어와 이전에 수행된 정찰 활동을 되돌리지는 못합니다. 즉 마켓에서 악성 버전을 삭제하는 것만으로는 감염된 노트북과 데스크톱의 위험이 해소되지 않습니다. Phorion이 가장 먼저 엔드포인트에서 악성 활동을 포착해 분석 보고서를 공개했으며, 이후 Beaumont가 Microsoft Defender for Endpoint용 KQL 헌팅 쿼리를 공개해 조직들이 감염 여부를 확인할 수 있도록 했습니다. 보도에 따르면 Binance를 포함한 수천 곳의 고객사가 노트북에서 Claude Code와 Cursor를 함께 사용하고 있어 파급 범위에 대한 우려가 커지고 있습니다.

2. SSH 백도어의 작동 방식과 수집 정보

Phorion의 분석에 따르면, 변조된 확장 번들은 압축된 정상 확장 코드 앞에 악성 즉시 실행 함수(IIFE)가 삽입된 형태입니다. 정상 Claude Code와 VS Code 문자열, 일반적인 활성화 함수와 UI 코드는 그대로 유지되어 겉으로는 정상 확장처럼 보입니다. 하지만 Node.js가 확장 파일을 로드하자마자 악성 코드가 먼저 실행되며, 사용자가 확장과 상호작용하지 않아도 감염이 시작됩니다. 악성 코드는 표준 Node.js 모듈인 child_process와 fs, os, path, http, crypto를 불러와 macOS와 Linux, Windows를 대상으로 한 설치 로직을 수행합니다.

Cursor가 공개한 설명과 Phorion 분석을 종합하면 공격 단계는 정보 수집, SSH 키 등록과 터널 시도, 지속성 확보, 비콘 전송으로 나뉩니다. 먼저 악성 코드는 호스트명과 사용자명, 운영체제와 아키텍처, 홈 디렉터리 경로, 환경 변수 이름, 작업 디렉터리, 설정된 Git 이메일, 공인 IP 등을 수집합니다. 다음으로 공격자가 통제하는 Ed25519 공개키를 ~/.ssh/authorized_keys 파일에 추가하고 디렉터리는 0700, 파일은 0600 권한으로 설정합니다. 해당 키의 주석은 svc-telemetry로 되어 있으며, 기존 파일에 해당 문자열이 없으면 키를 추가합니다. 이후 로컬 SSH 서비스를 활성화하고 리버스 SSH 터널을 여는 것을 시도합니다. macOS에서는 LaunchAgent, Windows에서는 SYSTEM 권한 실행을 노리는 예약 작업과 Startup 스크립트 대체 수단으로 터널을 유지하며, 약 60초 간격으로 백그라운드 스크립트가 터널 재접속을 반복합니다. 마지막으로 수집한 호스트 정보와 백도어 상태를 8099번 포트의 /beacon 경로로 HTTP POST 전송합니다.

항목값
영향 받은 확장 버전2.1.312, 2.1.313 (Cursor 마켓에서 삭제됨)
교체·정화 버전2.1.314 (확장 내 백도어 제거, 감염 시스템 치료 아님)
Cursor 발표 영향 규모약 5,000대 개발자 시스템
수집 정보호스트명, 사용자명, OS·아키텍처, 홈 경로, 환경 변수명, 작업 디렉터리, Git 이메일, 공인 IP
지속성 방식authorized_keys 키 등록, macOS LaunchAgent, Windows 예약 작업·Startup 스크립트, 약 60초 재시도
외부 통신8099번 포트 /beacon 경로로 HTTP POST 비콘 전송

흥미롭게도 macOS에서는 공격 코드의 실수로 인바운드 접속 경로가 완전히 성립하지 않는 경우가 많습니다. Phorion에 따르면 악성 스크립트는 Remote Login 상태를 확인하기 위해 systemsetup -getremotelogin 명령을 사용하지만, 일반 사용자 권한에서는 해당 명령이 관리자 권한 오류를 내면서 종료 코드 0으로 끝납니다. 스크립트는 출력이 Off일 때만 SSH 활성화를 시도하도록 작성됐기 때문에, SSH가 꺼져 있는 일반 Mac에서는 활성화 단계를 건너뛰게 됩니다. 그럼에도 SSH 키와 지속성 파일은 그대로 남고 비콘 전송과 정찰은 수행되므로 위험이 사라지지 않습니다. 또한 보고서에 따르면 해당 단계에는 권한 상승 익스플로잇이 포함되어 있지 않아 비상호작용 sudo 명령은 일반적으로 실패하며, Cursor를 관리자 권한으로 실행한 매우 예외적인 경우가 아니면 리버스 터널 생성 자체도 실패할 수 있습니다. 그럼에도 수천 대 규모에서 키 잔류와 정찰 유출, 윈도우와 리눅스 환경에서의 상이한 동작 가능성을 고려하면 전수 점검이 필요합니다.

3. 한국 개발자·기업에게 주는 시사점

① IDE 확장을 소프트웨어 공급망으로 관리해야 합니다

이번 사건은 npm 패키지나 컨테이너 이미지가 아니라 개발자들이 매일 쓰는 IDE 확장이 자동 업데이트 경로로 악성화된 사례입니다. 확장은 IDE와 동일한 사용자 권한으로 실행되어 소스 코드와 로컬 파일, 개발자 도구 전반에 즉시 접근할 수 있다고 Phorion은 강조합니다. 한국 기업도 프론트엔드와 백엔드, AI 개발팀이 Cursor와 VS Code, OpenVSX 등 여러 마켓을 혼용하는 경우가 많아 특정 마켓만을 신뢰하는 정책으로는 부족합니다. 당장 전사 단말에서 Claude Code for VS Code 2.1.312와 2.1.313 설치 이력을 확인하고, authorized_keys 파일 내 svc-telemetry 문자열과 실제 키 지문, macOS LaunchAgent와 Windows 예약 작업, 8099번 포트 통신 기록을 함께 점검해야 합니다. 더 나아가 확장 허용 목록과 버전 고정, 자동 업데이트 차단, 신규 버전 지연 배포 정책을 마련하지 않으면 다음 공급망 사고에서도 같은 방식으로 당할 수 있습니다.

② 5천대 통보를 끝이 아닌 시작으로 보고 IR을 가동해야 합니다

Cursor가 밝힌 약 5,000대 영향은 Cursor가 파악한 배포 범위이며, 개별 기업 내부의 실제 감염과 키 잔류, 코드 유출 여부를 보장하지 않습니다. 특히 이번 악성 버전은 삭제됐을 뿐 감염 시스템 치료 기능을 제공하지 않으며, 2.1.314로 업데이트해도 ~/.ssh/authorized_keys에 추가된 키와 지속성 작업이 자동으로 제거되지 않습니다. 한국 보안팀은 단순히 확장을 최신화하는 데 그치지 말고 침해 대응 절차를 열어야 합니다. 감염 의심 단말은 네트워크 격리 후 SSH 키 교체와 authorized_keys 정리, 지속성 제거, Git 이메일과 환경 변수 등 유출 가능 정보 기반의 비밀키와 토큰 로테이션을 병행해야 합니다. Defender for Endpoint용으로 공개된 KQL 쿼리와 Phorion의 macOS·Windows·Linux별 차이점 분석을 활용해 플릿 전체를 헌팅하고, 외주사와 협력사 개발 PC까지 범위를 넓히는 것이 중요합니다. 개발 노트북이 소스 코드와 클라우드 자격 증명을 품고 있다는 점에서 이번 점검 비용은 향후 대형 유출 비용보다 훨씬 저렴합니다.

우리의 관점: 이번 사건은 마켓플레이스 검증 배지가 더 이상 안전 보증이 아니라는 점을 보여줍니다. 공격자는 Anthropic 자체를 뚫지 않고도 Cursor 마켓의 게시 경로 하나만으로 전 세계 개발자 노트북에 원격 접근 기반을 심었습니다. macOS의 구현 실수로 최악의 인바운드 접속은 피했지만, 정찰 데이터 유출과 키 잔류만으로도 2차 공격 재료는 충분합니다. 한국 기업에게 필요한 대응은 특정 제품 교체가 아니라 IDE 확장 서명 검증과 버전 통제, 단말 SSH 상태 모니터링을 기본 보안 통제로 승격하는 것입니다. AI 코딩 도구 도입 속도가 빠른 지금이야말로 개발 생산성과 공급망 통제를 함께 설계해야 할 시점입니다.

※ 위 시사점 섹션은 보도된 사실에 기반한 WhatsUpPick 편집팀의 독자적 분석·전망이며, 특정 제품 도입을 권유하는 것이 아닙니다.

참고 자료

공유

Comments