npm 패키지에서 발견된 악성 코드: 암호화폐 키와 CI 시크릿 탈취
요약
사이버보안 연구원들이 최소 19개의 악성 npm 패키지를 활용한 활성 공급망 웜 캠페인을 발견했습니다. 이 캠페인은 SANDWORM_MODE라는 이름으로 명명되었으며, 자격 증명 탈취와 암호화폐 키 도난을 가능하게 합니다.
발견된 악성 npm 패키지 목록
악성 패키지들은 npm 출판자 별칭 official334와 javaorg가 npm에 게시했으며, 포함된 패키지들은 다음과 같습니다:
claud-code@0.2.1cloude-code@0.2.1cloude@0.3.0crypto-locale@1.0.0crypto-reader-info@1.0.0detect-cache@1.0.0format-defaults@1.0.0hardhta@1.0.0locale-loader-pro@1.0.0naniod@1.0.0node-native-bridge@1.0.0opencraw@2026.2.17parse-compat@1.0.0rimarf@1.0.0scan-store@1.0.0secp256@1.0.0suport-color@1.0.1veim@2.46.2yarsg@18.0.1
또한 네 개의 슬리퍼 패키지(ethres, iru-caches, iruchache, uudi)가 식별되었는데, 이 패키지들은 현재 악성 기능을 포함하지 않습니다.
주요 공격 기능
1. 자격 증명 및 암호화폐 키 탈취
악성 코드는 시스템 정보, 액세스 토큰, 환경 시크릿, API 키를 탈취할 수 있습니다. 특히 암호화폐 지갑 관련 키를 노립니다.
2. GitHub API 탈취 및 DNS 폴백
GitHub API 탈취 기능이 포함되어 있으며, DNS 폴백 메커니즘도 구현되어 있습니다.
3. Hook 기반 지속성 및 SSH 전파
악성 코드는 시스템에 영구적으로 유지될 수 있으며, SSH를 통한 전파 기능도 갖추고 있습니다.
4. MCP 서버 주입 및 AI 코딩 도구 공격
가장 주목할 만한 기능은 McpInject 모듈로, AI 코딩 도구를 목표로 합니다. 이 모듈은 악성 모델 컨텍스트 프로토콜(MCP) 서버를 배포하고 AI 도구 설정에 주입합니다.
목표 AI 도구:
Claude Desktop
Cursor
VS Code Continue
Windsurf
탈취 가능한 정보:
~/.ssh/id_rsa~/.ssh/id_ed25519~/.aws/credentials~/.npmrc.env파일
탈취 가능한 LLM API 키:
Anthropic, Cohere, Fireworks AI, Google, Grok, Mistral, OpenAI, Replicate, Together
5. 파괴적인 Kill Switch
악성 코드는 GitHub와 npm에 대한 접근을 잃으면 홈 디렉터리를 삭제하는 kill switch 기능도 포함하고 있습니다. 현재는 기본적으로 비활성화되어 있지만, 포함된 것 자체가 위협적입니다.
2단계 공격 체인
공격은 두 단계로 구성됩니다:
1단계
자격 증명과 암호화폐 키를 캡처합니다.
2단계
48시간(추가로 최대 48시간의 지연 포함) 후 활성화되어 다음을 수행합니다:
- 비밀 관리자에서 자격 증명 추가 탈취
- 웜 같은 전파
- MCP 주입
- 완전한 데이터 유출
권장 대응 방안
- 즉시 패키지 제거: 위에 나열된 패키지를 설치했다면 즉시 제거하세요.
- 자격 증명 순환: npm, GitHub 토큰, CI 시크릿을 모두 교체하세요.
- package.json, lockfiles, .github/workflows/ 검토: 예상치 못한 변경 사항이 있는지 확인하세요.