“Mini Shai-Hulud”로 명명된 정교한 웜이 npm 및 PyPI 레지스트리 전반에 걸쳐 170개 이상의 패키지를 감염시키는 광범위한 공급망 공격을 일으켰습니다. 이번 공격은 누적 다운로드 횟수가 5억 1,800만 건 이상인 프로젝트들에 영향을 미쳤으며, 보안 인증을 우회하는 새로운 기술을 도입했습니다.
StepSecurity의 연구원 Ashish Kurmi는 "공격자는 탈취한 OIDC 토큰을 사용하여 프로젝트 자체의 GitHub Actions 릴리스 파이프라인을 통해 악성 버전을 게시했습니다"라고 말했습니다. "극히 드문 상황으로, 감염된 패키지는 유효한 SLSA Build Level 3 출처 인증을 보유하고 있으며, 이는 유효하게 인증된 악성 패키지를 생성하는 최초의 문서화된 npm 웜입니다."
위협 행위자 TeamPCP의 소행으로 추정되는 이번 캠페인은 TanStack 패키지 42개, UiPath 패키지 65개, 그리고 Mistral AI, OpenSearch, Guardrails AI의 패키지들에 영향을 미쳤습니다. CVSS 점수 9.6으로 '심각' 등급을 받은 TanStack 감염(CVE-2026-45321)은 pull_request_target 설정 오류와 캐시 오염을 이용해 GitHub Actions 러너 프로세스 메모리에서 OIDC 토큰을 추출하는 체인 공격을 포함했습니다. 이를 통해 공격자는 npm 토큰을 훔치지 않고도 패키지를 게시할 수 있었습니다.
악성 패키지에 대해 유효한 SLSA 출처를 생성하는 공격자의 능력은 소프트웨어 공급망을 보호하기 위해 설계된 시스템 자체에 대한 신뢰를 약화시킵니다. 이번 사건은 GitHub와 같은 플랫폼과 npm과 같은 레지스트리가 CI/CD 파이프라인의 구조적 약점을 해결하도록 압박하고 있습니다. 재정적 및 운영적 위험이 이제 감염된 유지 관리자의 종속성을 사용하는 모든 프로젝트로 확대되어 잠재적으로 수십억 달러의 소프트웨어 가치에 영향을 미칠 수 있기 때문입니다.
클라우드 및 암호화폐 자격 증명을 탈취하는 다단계 페이로드
공격의 핵심은 "router_init.js"라는 이름의 난독화된 JavaScript 파일로 임베드된 다단계 자격 증명 탈취기입니다. 악성코드는 피해자의 환경을 광범위하게 프로파일링하여 클라우드 제공업체 자격 증명, 암호화폐 지갑, AI 도구, 메시징 앱 등 다양한 민감 정보를 훔칩니다. 보안 업체 SlowMist에 따르면, 이 웜은 CI/CD 키와 암호화폐 지갑 정보를 훔치도록 명시적으로 설계되었습니다.
데이터는 탐지를 피하기 위해 개인 정보 보호 중심의 Session 메시징 서비스를 사용하는 도메인(filev2.getsession[.]org)을 포함한 여러 채널을 통해 유출됩니다. 차선책으로, 탈취된 데이터는 공격자가 제어하는 GitHub 저장소에도 커밋됩니다. 또한 악성코드는 재부팅 후에도 생존하기 위해 VS Code와 같은 인기 코드 편집기에서 지속성을 확보합니다.
감염된 guardrails-ai 및 mistralai 패키지에서 발견된 파이썬 변형은 1Password 및 Bitwarden과 같은 비밀번호 관리자를 겨냥한 페이로드를 원격 서버에서 가져옵니다. 마이크로소프트의 분석에 따르면, 이 변형에는 이스라엘이나 이란에 있는 것으로 보이는 시스템의 모든 파일을 삭제할 확률이 6분의 1인 파괴적인 브랜치가 포함되어 있습니다.
탈취된 개발자 신원을 통해 확산되는 웜
Mini Shai-Hulud 웜을 특히 위험하게 만드는 것은 자가 증식 능력입니다. 악성코드는 훔친 GitHub OIDC 토큰을 사용하여 새로운 npm 게시 토큰을 생성함으로써, 감염된 개발자가 관리하는 다른 패키지의 악성 버전을 게시할 수 있게 합니다. 이 기술은 기존의 인증이나 2단계 인증의 필요성을 우회하여 빠르게 확산되는 위협을 만듭니다.
공격자들은 이 프로세스를 자동화하여 '듄' 시리즈를 참조한 "Shai-Hulud: Here We Go Again"이라는 설명이 포함된 400개 이상의 악성 저장소를 생성했습니다. 웜은 커밋 작성자를 합법적인 애플리케이션으로 위장하여 활동을 더욱 숨깁니다.
보안 연구원들은 모든 개발자에게 감염된 패키지 버전이 환경에 유입되었는지 확인하고, 노출 가능성이 있는 모든 자격 증명을 갱신하며, 보안 취약점에 대해 GitHub Actions OIDC 설정을 감사할 것을 권고합니다.
이 기사는 정보 제공 목적으로만 작성되었으며 투자 조언을 구성하지 않습니다.