AI 기반 코드 편집기 Cursor의 사용자들을 대상으로 한 소프트웨어 공급망 공격 시도가 발생했습니다. 이는 Anthropic사의 Claude Code 확장 프로그램의 악성 버디션이 편집기 전용 마켓플레이스에 등록된 사태로, 발견되어 삭제되기까지 약 11시간 동안 유지되었습니다.
기술 데이터에 따르면, 이번 사건은 anthropic.claude-code 식별자를 사용하는 확장 프로그램의 2.1.312 및 2.1.313 버전과 관련이 있습니다. 보안 연구원 케빈 보몬트(Kevin Beaumont)는 악성코드가 제거되기 전 macOS와 Windows 운영체제 환경에서 작업하는 개발자의 기기 약 5,000대에 배포되었을 가능성이 있다고 추정했습니다.
공격 메커니즘 및 정탐 시도
공격자들은 편집기 내에 확장 프로그램 패키지가 로드되자마자 자동으로 실행되는 자바스크립트(JavaScript) 코드를 포함시키는 방식을 사용했습니다. 공격의 1단계는 호스트 시스템에 대한 민감한 정보를 수집하여 개발 환경을 정탐하는 데 집중되었으며, 다음의 정보들이 포함되었습니다.
- 기기 이름(Hostname), 사용자 이름, 운영체제 유형 및 아키텍처
- 현재 작업 디렉토리 경로(Working Directory)
- 버전 관리 도구 Git에 전역으로 등록된 이메일 주소
마이크로소프트가 관측한 내용을 포함한 분석 결과에 따르면, 이 코드는 이후 SSH 키를 설치하고, 피해자의 기기에서 로컬 SSH 서버를 활성화하며, 공격자들이 방화벽을 우회할 수 있도록 리버스 SSH 터널(Reverse SSH Tunnel)을 생성하려고 시도했습니다. 또한 시스템 재시작 후에도 공격이 유지되도록 보장하는 자동 실행 파일들을 심었습니다.
완전한 공격 실패 및 대응 조치
Cursor 운영진은 대부분의 경우 확장 프로그램이 대다수의 macOS 및 Windows 기기에서 기본적으로 가지고 있지 않은 관리자 권한(Admin/Root)을 요구하기 때문에, SSH 터널을 통한 시스템 제어 시도가 완전히 완료되지는 않았다고 확인했습니다. 이로 인해 공격자들은 원격 로그인 단계를 완료할 수 없었습니다.
한편, 앤스로픽의 엔지니어 펠릭스 리스베르크(Felix Rieseberg)는 해당 가짜 버전들이 자사에 의해 개발되거나 배포되지 않았으며, Visual Studio Marketplace, Open VSX, NPM 레지스트리 같은 다른 공식 마켓플레이스에도 출시되지 않았음을 분명히 밝혔습니다. 버전 번호의 혼선을 피하기 위해 앤스로픽은 공식 버전 번호를 즉시 2.1.314로 상향 조정했습니다.
봉쇄 조치 및 개발자들이 취해야 할 행동
Cursor 플랫폼은 즉시 의심스러운 확장 프로그램 두 개를 제거하고 검토를 위해 마켓플레이스를 일시 중단했습니다. 또한 재개장하기 전에 모든 보안 키를 순환시키고 마켓플레이스 환경을 재구축했으며, 공격자들이 사용한 제어 서버를 차단하기 위해 클라우드 호스팅 제공업체와 공조했습니다.
회사는 편집기에서 확장 프로그램을 제거하는 것만으로는 감염된 시스템을 완전히 정리하기에 충분하지 않을 수 있다고 강조했습니다. 악성 페이로드가 시스템 내부에 지속성을 확보하기 위해 독립적인 스크립트를 생성하기 때문입니다. Cursor는 침해 지표(IoCs)와 함께 스캔용 스크립트를 제공했으며, 감염이 의심되는 기기의 격리, 승인되지 않은 SSH 키 삭제, 실행 중인 터널 경로 중단, 그리고 악성코드의 흔적을 완전히 제거하기 위한 시스템 포맷 필요성 검토를 권장했습니다.