GlassWorm: 진짜 Zig 드롭퍼, 모든 VS Code 에디터에 침투
새로운 GlassWorm 캠페인은 Open VSX에서 위조된 WakaTime 확장 프로그램을 활용해 네이티브 Zig 바이너리를 배포한다. 이 코드는 자바스크립트 샌드박스를 우회하고 시스템을 스캔한 후, VS Code 자체부터 Cursor, Positron까지 모든 호환 IDE에 악성코드를 설치한다.
Aikido Security 연구팀은 정품 WakaTime을 모방한 code-wakatime-activity-tracker 확장 프로그램을 발견했다. 이 확장의 activate() 함수는 수정되어 있으며, 이 함수가 win.node(Windows용) 또는 mac.node(macOS용) 바이너리를 다운로드하여 전면적인 감염 체인을 트리거한다.
초기 로드 메커니즘
activate() 함수는 네이티브 애드온을 필요로 한다:
const bw = process.platform === "win32" ? "./bin/win.node" : "./bin/mac.node";
const { install } = require(bw);
install();
이 바이너리는 Node.js 네이티브 애드온(윈도우에서는 PE32+ DLL, 맥에서는 x86_64/arm64용 Mach-O)으로, Zig로 컴파일되었다. 운영체제 수준의 권한을 가진 노드 런타임에 직접 삽입되며, 자바스크립트 샌드박스를 회피한다. 맥 버전의 디버그 심볼은 /Users/davidioasd/Downloads/vsx_installer_zig 경로를 지적한다.
다음으로 바이너리는 IDE 경로를 탐색한다:
- 윈도우:
%LOCALAPPDATA%\Programs\Microsoft VS Code\bin\code.cmd %LOCALAPPDATA%\Programs\Cursor\resources\app\bin\cursor.cmd- VS Code 인사이더, Windsurf, VSCodium, Positron 등 유사 경로
맥에서는 동일한 에디터에 대한 /Applications/*.app 경로를 검색한다. 여러 IDE가 존재할 경우 모두 감염된다.
두 번째 단계: 자동 가져오기 위조
바이너리는 GitHub 릴리즈에서 .vsix 파일 floktokbok.autoimport를 다운로드한다(설치 수 500만 이상인 steoates.autoimport의 클론). 각 IDE는 CLI를 통해 설치된다:
cmd.exe /d /e:ON /v:OFF /c "<ide_path> --install-extension <vsix_path>"
설치 후 cleanupVsix() 함수가 흔적을 제거한다. 두 번째 드롭퍼는 러시아어 지역 설정을 건너뛰며, Solana 블록체인을 C2 통신에 사용한다(지갑 거래 내역에서 주소 추출). 비밀번호, 세션 토큰 등을 유출하고, RAT를 배포하며 크롬 정보 도용 악성코드를 설치해 쿠키 수집과 키로깅을 수행한다.
공격의 장단점:
- 장점: 네이티브 코드는 개발자 도구에서 보이지 않으며, Solana 기반 C2는 도메인 차단에 강하다.
- 단점: 재빌드 전까지 바이너리 해시가 고정되어 있으며, 윈도우와 맥만 대상이다.
GlassWorm의 진화 과정
이 캠페인은 2025년 3월부터 활성화되었으며, 처음에는 유니코드 페이로드를 포함한 npm 패키지에서 시작해, 점차 GitHub와 VS Code 마켓플레이스로 확대되었다. 핵심 변화는 자바스크립트가 아닌 Zig 기반 애드온을 사용하는 것. 이는 운영체제 수준 분석이 필요하게 만들었다. 수백 개의 프로젝트가 이미 감염되었다.
감염 증거 (Indicators of Compromise)
확장 프로그램:
specstudio.code-wakatime-activity-trackerfloktokbok.autoimport
SHA-256 바이너리:
- win.node:
2819ea44e22b9c47049e86894e544f3fd0de1d8afc7b545314bd3bc718bf2e02 - mac.node:
112d1b33dd9b0244525f51e59e6a79ac5ae452bf6e98c310e7b4fa7902e4db44
문자열: vsx_installer_zig, davidioasd
핵심 교훈
- 네이티브 Zig 애드온은 자바스크립트 분석을 회피한다. 확장 프로그램 내
.node및.dll파일을 주의 깊게 모니터링해야 한다. - 감염은 체인 방식이다. 한 개의 확장 프로그램이 감염되면, 머신 상의 모든 VS Code 파생 제품이 영향을 받는다.
- Solana 기반 C2: 도메인 차단은 무력화된다. 블록체인 모니터링이 필수적이다.
- 러시아어 지역 설정을 건너뛴다는 것은 표적이 명확하다는 신호다. 감지 시 즉시 비밀번호와 토큰을 재발급하라.
- 예방법: 출판사와 설치 수 확인; EDR 폴더에서 확장 프로그램 스캔 실시.
복구 단계
- 모든 IDE(예: VS Code, Cursor 등)에서 확장 프로그램을 점검한다.
- 의심되는 확장 프로그램 제거; SSH 키, 토큰(npm, GitHub PAT, AWS)을 재발급한다.
- 크롬에서 알 수 없는 확장 프로그램 제거하고, 모든 사이트에서 로그아웃한다.
- 확장 프로그램 허용 목록 구성 및 네이티브 애드온에 대한 EDR 적용.
— Editorial Team
아직 댓글이 없습니다.