
Microsoft, npm 계정 탈취를 통한 Mastra-AI npm 생태계 공급망 공격 식별 (80개 이상의 패키지 침해)
요약
Microsoft가 Mastra-AI npm 생태계를 대상으로 한 공급망 공격을 식별했습니다. 공격자는 계정 탈취를 통해 80개 이상의 패키지에 악성 팬텀 의존성을 주입하여 원격 페이로드를 실행했습니다.
핵심 포인트
- npm 계정 탈취를 통한 80개 이상의 패키지 침해 발생
- 타이포스쿼팅(easy-day-js)을 이용한 악성 의존성 주입
- TLS 검증 우회 및 숨겨진 프로세스를 통한 페이로드 실행
- mastra@1.13.0 버전으로 즉시 다운그레이드 권장
Microsoft는 npm 계정 탈취 (account takeover)를 통해 80개 이상의 패키지가 침해된 Mastra-AI npm 생태계에 대한 공급망 공격 (supply chain attack)을 식별했습니다. 공격자는 침해된 패키지에 팬텀 의존성 (phantom dependency)을 도입했습니다. 이 악성 의존성은 24시간 이내에 단 한 명의 익명 유지관리자에 의해 게시되었습니다.
침해된 mastra@1.13.1은 "dayjs"의 타이포스쿼팅 (typosquat)인 easy-day-js@^1.11.21 의존성을 추가하며, 이는 v1.11.22로 해결됩니다. 포스트 설치 스크립트 (post-install script)는 node setup.cjs를 실행하여 원격 페이로드 (remote payload)를 다운로드하고 실행합니다.
easy-day-js@1.11.22의 포스트 설치 스크립트 동작:
- TLS 우회: 인증서 오류 없이 공격자의 C2와 통신하기 위해 SSL 검증을 비활성화합니다 (NODE_TLS_REJECT_UNAUTHORIZED=0).
- 추적 파일 작성: 재감염을 방지하기 위해 ~/.pkg_history (감염된 머신 경로) 및 ~/.pkg_logs (XOR 인코딩된 마커)를 생성합니다.
- 숨겨진 페이로드 다운로드: 23[.]254[.]164[.]92:8000/update/49890878 에서 2단계 .js 파일을 가져옵니다.
- 보이지 않는 프로세스로 실행: C2 엔드포인트인 23[.]254[.]164[.]123:443을 인자로 전달하여 다운로드된 페이로드를 분리되어 숨겨진 상태(windowsHide=true)로 생성합니다.
- 흔적 제거: 초기 감염의 모든 증거를 제거하기 위해 setup.cjs를 삭제합니다.
이 공격은 mastra@1.13.1, mastra/pg, mastra/mcp, mastra/schema-compat, mastra/ai-sdk, mastra/rag 및 80개 이상의 다른 패키지에 영향을 미칩니다.
Microsoft Defender for Endpoint 고객은 제목에 Trojan:JS/ObfusNpmJs가 포함된 경고를 모니터링하고 조치해야 합니다. 고객은 또한 다음의 침해 지표 (IOCs)를 확인할 수 있습니다:
- ls ~/.pkg_history ~/.pkg_logs
- home/temp 디렉토리 내의 무작위 .js 파일
사용자는 즉시 이전 버전으로 다운그레이드하고, mastra@1.13.0을 명시적으로 사용하며, 락파일 (lockfiles)을 사용할 것을 권장합니다.
[IMG:1]
AI 자동 생성 콘텐츠
본 콘텐츠는 X 토픽: MCP의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기