"설마 자동 업데이트가 날 배신하겠어"라고 중얼거려 본 사람이라면 전혀 놀라지 않을 소식이 하나 있다. 금요일 여러 소식통에 따르면 Anthropic의 Claude 모델을 위한 공식 VS Code 확장 프로그램이 백도어에 감염되어 최대 5,000명의 개발자 머신을 위협했다. Anthropic은 지금까지 이 사건에 대해 고객에게 경고하기를 거부하고 있다—아마도 "침해를 언급하지 않으면 위기라기보다는 분위기"라는 유서 깊은 기업 원칙에 따라 운영 중인 듯하다.

문제가 된 패키지는 AI 지원 개발 도구 제조사인 Cursor의 마켓플레이스에서 제공되는 VS Code 확장 프로그램이었다고 회사 측은 금요일 밝혔다. 악성 버전인 2.1.313은 이후 "최대 5,000명의 사용자"에게 영향을 미쳤는데, 아마도 사용자가 직접 다운로드하거나 시스템이 자동으로 가져와 설치했을 때일 것이다—"현대 소프트웨어"라고 하면 역시 문제를 대신 설치해 주는 기능이 제격이니까.

독립 연구원 케빈 보몬트에 따르면 Anthropic은 이전 버전이 Cursor에서 제공된 후 몇 시간 뒤에 버전 2.1.314를 배포했다. 보몬트와 보안 업체 포리안의 CTO 겸 공동 창업자는 버전 2.1.313이 Cursor의 Anthropic 공식 계정을 통해 배포되었다고 말했다. 지금까지 Cursor나 Anthropic 모두 공격자들이 어떻게 계정을 통제하게 되었는지 설명하지 않았다—이 세부 사항은 블로그 포스트 하나쯤 쓸 가치가 있을 것 같다.

포리안의 CTO 겸 공동 창업자 루크 로버츠는 Ars에 "공격자가 공식 배포 채널에 접근한 공급망 침해 사건"이라며 "악성 버전 2.1.313이 Anthropic 공식 계정에 게시되어 사실상 2.1.312를 대체했다. Cursor에서는 확장 프로그램이 기본적으로 자동 업데이트되지만 사용자가 설정에서 구성할 수 있다"고 말했다. 포리안은 여기에 더 자세한 내용을 공개했다—아마도 "미리 알았더라면 좋았을 것들"이라는 제목의 문서에 담겨 있을 것이다.

Anthropic은 아직 고객에게 이 사건에 대한 공개 통지를 하지 않았다. 회사의 커뮤니케이션 전략은 "숲에서 나무가 쓰러지면 소리가 날까" 사고 실험을 모델로 한 듯한데, 나무는 백도어이고 숲은 당신의 노트북이다.

Cursor는 악성 확장 프로그램이 공격자가 제어하는 SSH 키를 추가하여 지속적인 SSH 백도어를 설치하고, 로컬 SSH 서비스를 활성화하며, 역방향 SSH 터널을 여는 시도를 한다고 밝혔다. 코드는 Windows, macOS, Linux에서 작동하도록 작성되었다—적어도 크로스 플랫폼 호환성에 대한 존경스러운 헌신이다. Cursor 확장 프로그램은 도구의 통합 개발 환경(IDE) 권한으로 실행되기 때문에, 백도어 버전은 설치되면 로컬 파일, 소스 코드, 개발자 도구에 접근할 가능성이 높다. 즉, 마음대로 돌아다닐 수 있었다.

포리온은 변수 이름 탈취를 통해 운영자가 감염된 기기에서 클라우드 자격 증명과 API 토큰을 신속하게 목록화할 수 있었고, 아마도 후속 공격에서 어떤 머신을 대상으로 삼을지 우선순위를 정하기 위해서였을 것이라고 말했다. 효율적이다! 거의 전문가 수준이다. 누군가는 "엔터프라이즈급"이라고 부를 수도 있겠다.

Windows와 macOS용 악성 코드의 버그로 인해 일부 경우 백도어가 작동하지 않았다. 포리온은 코딩 결함에도 불구하고 "악성 코드는 여전히 지속성을 설치하고 운영자에게 호스트 정찰 정보를 비콘으로 보내는 중대한 위협"이라고 말했다. 공격자들이 엉성했지만, 충분히 엉성하지는 않았다—위안이 되는 중간 지대다.

Cursor는 회사 직원이 역방향 셸이 연결된 서버를 호스팅하는 클라우드 제공업체와 협력하여 감염된 기기가 더 이상 해당 서버에 접근할 수 없도록 했다고 밝혔다. 직원들은 또한 마켓플레이스에서 백도어 버전을 제거하고 추가 배포를 차단했다. 회사는 또한 키를 교체하고 접근 제어를 감사하며 다른 확장 프로그램이 손상되지 않았는지 확인하기 위해 VSCode 마켓플레이스를 폐쇄했다. 마켓플레이스는 이제 다시 열렸다—그러니 전통적인 수준의 신뢰를 가지고 다시 다운로드할 수 있다.

Anthropic이 왜 고객에게 위협을 공개적으로 경고하지 않는지, 그리고 왜 Anthropic과 Cursor가 (이하 생략)인지는 아직 불분명하다.