Claude Code 확장 프로그램 침해: 보안 권고 및 기술 분석
사고 개요
공식 Claude Code VS Code 확장 프로그램의 손상된 버전(2.1.313)이 Cursor 마켓플레이스를 통해 배포되어, 영향을 받은 사용자들에게 지속적인 보안 침해가 발생했습니다. 악성 확장 프로그램 번들에는 리버스 SSH 터널을 생성하여 공격자가 피해자의 컴퓨터에 무단으로 원격 접속할 수 있도록 하는 백도어가 포함되어 있었습니다. Cursor는 이후 마켓플레이스에서 해당 버전을 삭제했으며, 사용자는 자신의 환경에 대해 철저한 보안 감사를 수행할 것을 권장합니다.
백도어 기술 분석
악성 페이로드는 extension.js 파일 내에 삽입된 즉시 실행 함수 표현식(IIFE)을 통해 실행됩니다. 이 코드는 확장 프로그램 모듈이 로드되자마자 실행되어, 공식 확장 프로그램 로직이 초기화되기 전에 사용자의 환경에 대한 접근 권한을 획득합니다. 공격은 지속성과 원격 접속을 보장하기 위해 다단계 프로세스를 따릅니다.
SSH 접속 및 지속성
악성코드는 피해자의 SSH 설정을 수정하여 장기적인 대화형 접속 권한을 얻으려고 시도합니다:
- 자격 증명 삽입: 공격자가 제어하는 Ed25519 공개 키(
svc-telemetry라는 주석 포함)를~/.ssh/authorized_keys파일에 추가합니다. - 리버스 터널링: 스크립트는 원격 포트 포워딩(
-R *:0:localhost:22)을 사용하여 공격자가 제어하는 서버(134.209.82.225)로 아웃바운드 SSH 연결을 설정합니다. 이를 통해 공격자는 설정된 터널을 통해 피해자의 컴퓨터에 접근할 수 있습니다. - 지속성 메커니즘: 백도어는 플랫폼별 지속성 요소를 설치하여 재부팅 후에도 생존을 보장합니다:
- macOS: 숨겨진 셸 스크립트를 실행하는 LaunchAgent(
~/Library/LaunchAgents/com.apple.sysmond.plist)를 설치합니다. - Linux: 사용자의 crontab에
@reboot항목을 추가합니다. - Windows:
SYSTEM예약 작업을 생성하거나 사용자의 시작 프로그램 폴더에 스크립트를 배치하려고 시도합니다.
- macOS: 숨겨진 셸 스크립트를 실행하는 LaunchAgent(
호스트 정찰
터널을 최종 확정하기 전에 악성코드는 호스트 정보를 공격자에게 전송합니다. 여기에는 호스트 이름, 사용자 이름, OS 세부 정보, 그리고 KEY, TOKEN, SECRET, PASS, AWS, GCP와 같은 패턴과 일치하는 환경 변수 이름 목록이 포함됩니다. 이러한 변수 이름을 수집함으로써 공격자는 민감한 클라우드 또는 API 자격 증명의 존재 여부에 따라 고가치 타겟의 우선순위를 정할 수 있습니다.
탐지 및 대응
보안 팀은 백도어 구성 요소가 독립적으로 지속되기 때문에 이 위협을 해결하기 위해 확장 프로그램을 삭제하는 것에만 의존해서는 안 됩니다.
대응 단계
- 활성 프로세스 종료:
134.209.82.225에 연결된 실행 중인ssh또는autossh프로세스를 모두 종료합니다. - 지속성 제거: macOS의 악성 LaunchAgent, Linux의 crontab 항목, 또는 Windows의 예약 작업/시작 프로그램 스크립트를 삭제합니다. 관련 숨겨진 파일(예:
~/.config/.smt및~/.config/.smtk)을 제거합니다. - SSH 키 정리:
~/.ssh/authorized_keys에서svc-telemetry공개 키를 제거합니다. - 자격 증명 교체: 무단 접속 가능성을 고려하여, 영향을 받은 컴퓨터의 환경 변수에 포함되어 있던 모든 API 키, 토큰 또는 비밀 정보를 교체하십시오.
탐지 신호
- 파일 무결성: IDE 도우미 프로세스(예:
Code Helper)가~/.ssh/authorized_keys를 수정하는지 모니터링합니다. - 프로세스 원격 측정:
/tmp/또는~/.config/의 ID 파일을 사용하면서 원격 포트 포워딩 플래그가 설정된ssh또는autossh프로세스를 찾습니다. - LaunchAgent 이상 징후:
com.apple.*레이블을 사용하여~/Library/LaunchAgents/내에 파일을 생성하거나 수정하는 Apple 이외의 프로세스를 표시합니다.
커뮤니티 통찰
보안 및 개발자 커뮤니티 내의 토론에서는 에디터 마켓플레이스의 신뢰 모델에 대한 우려가 강조되었습니다. 댓글 작성자들은 이번 사건이 "마켓플레이스 프록시"의 위험성과 확장 프로그램에 대한 강제된 패키지 무결성 또는 체크섬 검증의 부재를 보여준다고 지적했습니다.
"이런 종류의 일은 앞으로 더 심각해질 것입니다. 사람들은 다른 개발자들도 '자신과 같을 것'이라고 가정하지만, 국가 차원의 공격자들은 이미 AI를 사용하여 개발 도구를 망가뜨리거나 오픈 소스에 기여하는 방식으로 보안을 무력화하는 에이전트를 끊임없이 실행하고 있을 가능성이 높습니다." — Hacker News User
사용자는 authorized_keys 파일에서 svc-telemetry 주석 문자열을 확인하여 침해 여부를 검증할 것을 권장합니다. 이는 여전히 가장 신뢰할 수 있는 침해 지표입니다.
Sources
관련
- Dispatch
- Dispatch
- Dispatch
- 프로젝트
- 프로젝트