Anthropic의 Cursor 확장 프로그램, 약 12시간 백도어에 노출
사건 개요
Anthropic의 공식 계정을 통해 Cursor에서 배포된 VS Code 확장 프로그램이 공급망 공격으로 변조된 사실이 드러났다. 악성 버전은 2.1.313이며, 약 12시간 동안 배포됐다. 이 기간 최대 5,000명의 개발자가 영향을 받았을 가능성이 있다. Cursor는 기본적으로 확장 프로그램 자동 업데이트를 활성화하므로, 사용자가 직접 해당 버전을 선택하지 않았더라도 설치됐을 수 있다.
악성 코드의 동작
보안 연구자들에 따르면 2.1.313은 Anthropic의 공식 배포 계정에서 공개돼 기존 버전 2.1.312를 사실상 대체했다. 이후 Anthropic은 2.1.314를 배포했다. 하지만 공격자가 공식 계정에 어떻게 접근했는지는 Anthropic과 Cursor 모두 설명하지 않았다.
악성 코드는 호스트명, 사용자명, 운영체제, 아키텍처, 홈 디렉터리 경로, 환경 변수 이름, 작업 디렉터리, 설정된 Git 이메일, 공인 IP 주소 등을 수집하려 했다. 또한 공격자가 제어하는 SSH 공개 키를 authorized_keys에 추가하고, 로컬 SSH 서비스를 활성화하며, 역방향 SSH 터널을 여는 기능도 포함됐다.
접속을 지속하기 위해 macOS에서는 LaunchAgent를, Windows에서는 예약 작업을 사용하려 했다. Windows에서는 시작 스크립트도 대체 수단으로 활용하려 했으며, 백그라운드 프로세스는 약 60초마다 터널 연결을 재시도한 것으로 전해졌다. Cursor 확장 프로그램은 IDE 권한으로 실행될 수 있기 때문에, 설치 이후 로컬 파일과 소스 코드, 개발 도구에 접근할 가능성이 있었다.
코드 결함이 위험을 없애지는 않는다
악성 코드에는 구현 오류가 있어 일부 Windows와 macOS 환경에서는 백도어가 정상 작동하지 않았다. 특히 Cursor가 비정상적으로 높은 관리자 권한으로 실행되지 않았다면 SSH 기반 지속성 확보 단계가 실패할 가능성이 컸다. 그러나 이는 안전을 의미하지 않는다. 악성 코드는 여전히 지속적인 접근을 시도했고, 감염된 호스트의 정보를 공격자에게 전송했다.
Phorian은 환경 변수 이름을 수집하면 공격자가 클라우드 자격 증명이나 API 토큰이 있을 가능성이 높은 장치를 빠르게 분류할 수 있다고 지적했다. 실제 비밀 정보가 탈취됐다는 사실까지 확인된 것은 아니지만, 개발자 장비를 민감한 자산으로 취급해야 할 이유는 충분하다.
대응과 점검 사항
Cursor는 역방향 셸이 연결된 서버의 클라우드 제공업체와 협력해 감염 장치가 해당 서버에 접근하지 못하도록 조치했다고 밝혔다. 또한 악성 버전을 마켓플레이스에서 제거하고, 키 교체와 접근 통제 감사, 다른 확장 프로그램의 침해 여부 확인을 위해 VS Code Marketplace를 일시적으로 폐쇄했다가 다시 열었다.
목요일 미국 동부시간 오전 5시 27분부터 오후 4시 35분 사이에 해당 확장 프로그램을 설치하거나 업데이트한 사용자는 영향을 받은 것으로 간주하고 조사해야 한다. 최근 설치한 사용자도 확장 프로그램 버전, SSH의 authorized_keys, LaunchAgent, Windows 예약 작업, 비정상적인 외부 연결을 확인해야 한다. 필요하다면 클라우드 자격 증명과 API 토큰도 교체해야 한다. Cursor와 Phorian은 추가 분석에 사용할 침해 지표를 공개했다.
이번 사건은 AI 코딩 도구의 보안이 모델의 출력만으로 결정되지 않는다는 점을 보여준다. 검증된 게시자라는 표시가 있어도 버전 고정, 자동 업데이트 감시, 최소 권한 실행, 배포 계정 보호가 필요하다. Anthropic이 고객에게 공개 경고를 하지 않은 점과 공식 계정 침해 경로를 설명하지 않은 점은 여전히 중요한 미해결 문제다.
출처: Ars Technica AI
댓글
로그인 상태 확인 중…
댓글 불러오는 중…