마이크로소프트 npm 패키지에 또다시 백도어가 삽입됐고, AI 에이전트가 이를 촉발했다.

발행: (2026년 6월 10일 AM 03:18 GMT+9)
6 분 소요
원문: Dev.to

출처: Dev.to

지난 주에 Microsoft의 암호화 서명된 npm 패키지 73개가 고급 자격 증명 탈취 악성코드에 의해 손상되었습니다. 이 악성코드는 개발자가 AI 코딩 에이전트에서 해당 패키지를 열자마자 실행됩니다. Claude Code, Gemini CLI, Cursor, VS Code—모두가 트리거됩니다. 같은 Microsoft 계정을 대상으로 두 달 만에 두 번째 공급망 공격이 발생한 것입니다.
“이 Miasma 웜의 천재성은 정당한 워크플로에 얼마나 잘 녹아들었는가에 있습니다. GitHub이나 npm의 소프트웨어 취약점을 이용하지 않습니다. 대신 현대 엔지니어링 생태계의 신뢰 모델을 악용합니다.”

  • 73개의 공식 Microsoft npm 패키지가 Miasma 웜(TeamPCP가 오픈소스로 공개한 Mini Shai‑Hulud 툴킷의 복제본)으로 오염되었습니다.
  • 악성코드는 73개 패키지 중 하나라도 AI 코딩 에이전트 안에서 열리면 자동으로 실행됩니다.
  • 페이로드(28 KB)는 AWS, Azure, GCP, Kubernetes, 90개 이상의 개발 도구 설정, 비밀번호 관리자 등에서 자격 증명을 수집한 뒤 클라우드 인프라를 통해 횡방향으로 확산됩니다.
  • 공격 경로: 도난당한 Microsoft 퍼블리셔 자격 증명 → 빌드 파이프라인 전체를 우회 → 유효한 SLSA 증명(attestation)을 포함한 악성 빌드가 배포됩니다.

각 감염 사례마다 고유하게 암호화된 페이로드가 제공되므로 해시 기반 IOC(지표)는 탐지에 무용지물입니다.
GitHub은 처음에 해당 패키지를 “서비스 약관 위반”으로 표시했으며, Microsoft는 48시간 뒤에야 악성 콘텐츠 가능성을 인정했습니다.
같은 Microsoft 계정은 2026년 5월에도 침해되었습니다(파이썬 SDK durabletask가 PyPI에 올라가 월 40만 건 다운로드). 그러나 완전하게 복구되지 않은 것으로 보입니다.

공급망 공격 전술이 한 단계 업그레이드되었습니다. 패키지가 정당한 빌드에서 왔다는 암호학적 신뢰를 제공하도록 설계된 SLSA 증명이 여기서는 오히려 공격에 이용되었습니다. 공격자는 정당한 Microsoft OIDC 토큰을 탈취하고, 실제 증명을 가진 악성 빌드를 배포했으며, 기존 스캐너는 이를 일상적인 신뢰 업데이트로 통과시켰습니다.

AI 에이전트가 개입하면서 상황이 더욱 악화되었습니다. 이전에는 개발자가 악성 코드를 직접 실행해야 했지만, 이제 IDE의 에이전트 레이어에서 패키지를 열기만 하면 충분합니다. 공급망 침해 공격 표면이 모든 AI 지원 워크플로까지 확대되었습니다.

같은 Microsoft 계정이 두 번이나 타격을 입은 점이 가장 우려되는 부분입니다. 이는 5월 침해 이후 자격 증명 회전이 완전하지 않았거나, 아직 설명되지 않은 두 번째 자격 증명 탈취가 있었음을 시사합니다.

만약 73개 패키지 중 하나라도 사용했다면:

  • 해당 머신을 침해된 것으로 간주하고, 클라우드 제공자 키, 비밀번호 관리자 마스터, 해당 환경에서 접근 가능한 모든 토큰을 포함한 전면적인 자격 증명 회전을 수행하십시오.

AI 코딩 에이전트를 사용한다면:

  • 최근 에이전트가 접근한 패키지를 감사하십시오. 에이전트 기반 워크플로도 CI/CD와 마찬가지로 공급망 검증이 필요합니다.

증명(provenance)만으로는 충분하지 않음: SLSA 레벨은 도움이 되지만, 여기서 보여지듯 퍼블리셔 자격 증명 탈취는 증명을 무력화합니다. 증명과 행동 분석, 샌드박스 패키지 평가를 결합하십시오.

횡방향 이동에 주의: Miasma는 연결된 개발자 머신 및 CI/CD 러너로 적극적으로 퍼집니다. 사고 대응 범위를 해당 패키지를 건드린 머신에만 국한하지 마십시오.

출처: Ars Technica — Dan Goodin, 2026년 6월 8일
✏️ KewBot(AI)으로 초안 작성, Drew가 편집 및 승인.

0 조회
Back to Blog

관련 글

더 보기 »

Eidentic 소개

Today we're releasing Eidentic, an open-source TypeScript SDK for building AI agents with self-improving memory and the production fundamentals built in — not b...

Typescript의 타입

Introdução Tipos são uma forma de definir a “forma” ou o contrato dos dados que estamos usando no código. Pensando em Javascript puro, ele é dinâmico: você pode...