- NPM 레지스트리에서 1,000개 이상의 구성요소가 몇 시간 만에 동일한 방식으로 감염되어 악성 코드가 포함된 새 버전이 배포됨
- 악성 패키지는 Bun 런타임 설치 스크립트로 위장해
setup_bun.js와 난독화된bun_environment.js를 추가, 실행 시 TruffleHog을 이용해 로컬 자격 증명 탈취 - 수집된 AWS/GCP/Azure·GitHub·NPM 토큰 등 민감 정보는
SHA1HULUD라는 GitHub Action 러너를 통해 외부로 전송됨 - 악성 스크립트는
npm publish를 자동 실행해 웜 형태의 자기 복제를 수행, 결과적으로 27,000개 이상의 GitHub 저장소가 감염됨 - 오픈소스 생태계 전반에 걸친 공급망 보안 위협이 다시 부각된 사례로 평가됨
공격 개요
- 2025년 11월 24일 HelixGuard는 NPM 레지스트리에서 1,000개 이상의 패키지가 몇 시간 내 동일한 수법으로 감염된 것을 탐지
- 새 버전들은 Bun 런타임을 추가하는 것처럼 위장하며
preinstall: node setup_bun.js스크립트를 포함 - 함께 배포된
bun_environment.js파일은 난독화된 악성 코드로, 실행 시 TruffleHog을 내려받아 실행함
- 새 버전들은 Bun 런타임을 추가하는 것처럼 위장하며
- TruffleHog은 로컬 환경에서 NPM 토큰, AWS/GCP/Azure 자격 증명, 환경 변수 등을 스캔해 탈취
- 탈취된 정보는 GitHub Action 러너
SHA1HULUD를 생성하고,Sha1-Hulud: The Second Coming.이라는 설명을 가진 GitHub 저장소를 통해 외부로 유출 - HelixGuard는 이 공격이 2025년 9월 발생한 “Shai-Hulud” 사건과 동일 공격자일 가능성을 시사함
악성 코드 동작 분석
- 예시로
@asyncapi/specs패키지를 분석한 결과, NPM에 배포된 버전은 감염되었으나 GitHub 원본 저장소는 안전함 - 공격자는
package.json을 수정해setup_bun.js를 추가하고, 해당 스크립트가bun_environment.js를 호출하도록 구성 -
bun_environment.js는 10MB 이상 크기의 고도 난독화된 자바스크립트 파일로, 주요 기능은 다음과 같음- 환경 변수에서 클라우드 자격 증명 및 토큰 수집
- TruffleHog을 이용한 비밀키 스캔
- GitHub Actions를 통한 데이터 유출
- 또한
package.json을 수정해 감염 코드를 삽입하고,npm publish를 자동 실행하여 웜 형태의 전파를 수행
GitHub 감염 및 데이터 유출
- 악성 스크립트는
.github/workflows/formatter_123456789.yml파일을 생성하고,SHA1HULUD러너를 등록 - 해당 워크플로는 저장소의 비밀키를 이중 Base64 인코딩한
actionsSecrets.json파일로 패키징 - 이후
Sha1-Hulud: The Second Coming.설명을 가진 무작위 이름의 GitHub 저장소를 생성해 데이터를 업로드 - HelixGuard는 27,000개 이상의 GitHub 저장소가 감염된 것으로 확인
- 탈취된 비밀 정보에는
AWS_ACCESS_KEY_ID,SLACK_WEBHOOK_URL,CODECOV_TOKEN,WEBFLOW_TOKEN등 다양한 서비스 자격 증명이 포함됨
감염된 패키지 목록
- HelixGuard는 수백 개의 NPM 패키지가 감염된 것으로 보고
- 대표적으로
@asyncapi,@ensdomains,@posthog,@zapier,@postman,@voiceflow등 주요 조직의 패키지가 포함 - 각 패키지는 다수의 버전(예:
@asyncapi/specs@6.8.2,@postman/csv-parse@4.0.5)이 감염됨
- 대표적으로
- 감염된 패키지들은 대부분 정상적인 오픈소스 프로젝트를 위장하고 있으며, 자동 배포 과정에서 악성 코드가 삽입된 형태
보안적 시사점
- 이번 공격은 공급망 보안의 취약점을 악용해 대규모 오픈소스 생태계를 감염시킨 사례
- NPM·GitHub·클라우드 자격 증명 등 개발 인프라 전반의 보안 관리 강화 필요성이 드러남
- HelixGuard는 감염된 패키지의 설치를 즉시 중단하고, 관련 토큰 및 자격 증명을 즉시 폐기할 것을 권고함