# Shai Hulud가 두 번째 공급망 공격을 개시

> Clean Markdown view of GeekNews topic #24597. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24597](https://news.hada.io/topic?id=24597)
- GeekNews Markdown: [https://news.hada.io/topic/24597.md](https://news.hada.io/topic/24597.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2025-11-25T11:33:17+09:00
- Updated: 2025-11-25T11:33:17+09:00
- Original source: [aikido.dev](https://www.aikido.dev/blog/shai-hulud-strikes-again-hitting-zapier-ensdomains)
- Points: 1
- Comments: 1

## Topic Body

- **Shai Hulud 2.0**이 npm 생태계를 다시 공격하며 **Zapier, ENS Domains, AsyncAPI, PostHog, Postman** 등 주요 프로젝트의 패키지를 감염  
- 악성코드는 설치 과정 중 자동 실행되어 **개발자 시스템과 클라우드 환경의 비밀정보 탈취**  
- 감염된 시스템에서 **TruffleHog**를 이용해 API 키, 토큰, 비밀번호 등을 찾아 **공개 GitHub 저장소**에 업로드  
- 이번 공격은 이전보다 확장되어 **최대 100개 패키지 감염**, 인증 실패 시 **홈 디렉터리 파일 삭제 기능** 포함  
- npm 생태계의 신뢰 체계를 위협하는 대규모 공급망 공격으로, **모든 개발팀의 비밀정보 점검 및 교체 필요성** 부각  

---

### Shai-Hulud 캠페인 개요
- Shai-Hulud는 **npm 생태계에서 자가 복제되는 웜 형태의 악성코드**로, 감염된 개발 환경을 통해 빠르게 확산  
  - 감염 시 **TruffleHog**를 사용해 API 키, 토큰 등 노출된 비밀정보를 검색  
  - 수집된 정보는 **공개 GitHub 저장소**로 전송되며, 이후 새로운 악성 패키지를 npm에 게시해 확산  
- 공격자는 이번 공격을 **“Second Coming”** 이라 명명  
- npm이 **12월 9일 구형 토큰 폐기**를 예고한 시점에 맞춰 공격이 재개됨  

### 공격 타임라인
- 8월 27일: S1ngularity 캠페인 보고서 공개  
- 9월 16일: 첫 번째 Shai-Hulud 공격 발생  
- 9월 18일: 기술 분석 및 페이로드 동작 보고  
- 11월 24일: npm 토큰 폐기 직전 **두 번째 공격(Second Coming)** 발생  

### 공격 방식의 변화
- 이번 공격은 **`setup_bun.js`** 파일을 통해 **Bun 런타임**을 설치하고, 이후 **`bun_environment.js`** 를 실행  
- **무작위 이름의 GitHub 저장소**를 생성해 탈취 데이터를 업로드  
- 감염 대상 패키지 수가 **20개에서 100개로 증가**  
- GitHub 또는 npm 인증 실패 시 **사용자 홈 디렉터리 전체 삭제 기능** 포함  

### 감염된 패키지
- 총 **492개 npm 패키지**가 감염되었으며, 월간 다운로드 수는 **1억 3,200만 회**에 달함  
- 주요 피해 프로젝트: **Zapier, ENS Domains, AsyncAPI, PostHog, Postman, Browserbase**  
- 예시 패키지: `@zapier/zapier-sdk`, `@ensdomains/ensjs`, `@asyncapi/cli`, `posthog-js`, `@postman/pm-bin-linux-x64` 등  

### 비밀정보 유출
- 악성코드는 **“Sha1-Hulud: The Second Coming”** 설명이 포함된 GitHub 저장소에 비밀정보를 업로드  
- 현재까지 **26,300개 이상의 저장소**가 노출된 것으로 확인  

### 공격자의 실수
- 일부 패키지에는 **`setup_bun.js`만 포함되고 `bun_environment.js`가 누락**되어 웜이 완전 실행되지 않음  
- 이로 인해 **공격 확산 범위가 제한됨**  

### 감염 경로 및 최초 감염 지점
- 최초 감염은 **2025년 11월 24일 03:16:26 GMT+0**에 `go-template` 및 **AsyncAPI 관련 36개 패키지**에서 시작  
- 이후 **PostHog(04:11:55)** , **Postman(05:09:25)** 순으로 확산  
- AsyncAPI CLI 저장소에서 **악성 브랜치 생성 후 배포된 코드**가 확인됨  

### 잠재적 영향
- 설치 시 자동 실행되어 **개발자 로컬 환경, 빌드 시스템, 클라우드 자격증명**에 접근 가능  
- 탈취된 비밀정보를 통해 **추가 계정 침해 및 악성 패키지 게시** 가능성  
- npm 생태계의 **신뢰 기반 공급망 보안에 심각한 위협**  

### 보안 대응 권고
- **Zapier 및 ENS 관련 npm 의존성 전수 점검**  
- **GitHub, npm, 클라우드, CI/CD 비밀정보 전면 교체**  
- GitHub에서 “**Sha1-Hulud: The Second Coming**” 설명이 있는 저장소 탐색  
- CI 환경에서 npm **`postinstall` 스크립트 비활성화**  
- **패키지 버전 고정 및 MFA 활성화**, **Safe-Chain** 등 도구로 악성 패키지 차단  

### 결론
- Shai-Hulud 2.0은 **npm 공급망을 겨냥한 대규모 재공격**으로,  
  **수백 개의 인기 패키지와 수천 개의 GitHub 저장소**가 영향을 받음  
- 모든 개발팀은 **의존성 검증, 비밀정보 교체, 자동 설치 스크립트 차단**을 즉시 수행해야 함

## Comments



### Comment 46763

- Author: neo
- Created: 2025-11-25T11:33:18+09:00
- Points: 1

###### [Hacker News 의견](https://news.ycombinator.com/item?id=46035533) 
- **Bubblewrap(bwrap)** 을 언급할 만함. 이 도구는 npm/node 환경에서 발생할 수 있는 대부분의 공격 벡터를 제거하거나, 최소한 **임의 코드 실행 시 피해를 제한**할 수 있음  
  완벽한 해결책은 아니지만, 간단한 래퍼 스크립트와 함께 쓰면 rootless Podman 컨테이너보다 훨씬 낫다고 생각함  
  [Bubblewrap GitHub 링크](https://github.com/containers/bubblewrap)

- Python으로 작성된 스크립트를 공유함. 이 스크립트는 내 저장소 중 **pnpm이나 npm lock 파일에 손상된 패키지가 포함되어 있는지** 확인해줌  
  [스크립트 링크](https://chatgpt.com/s/t_6924b232a8f88191a146a510c6631143)

- 처음엔 중복(Dup)으로 보였지만, 실제로는 다른 기사였음  
  [관련 링크](https://news.ycombinator.com/item?id=46032539)
  - 관련 댓글들을 하나로 **병합**했다고 설명함. 링크가 다르더라도 토론 주제가 실질적으로 같으면 병합 기준에 부합함. 두 번째 링크에 추가 정보가 있어서 원문 상단에 함께 표시했다고 함
  - 이 기사에는 **추가 정보**가 꽤 많다고 언급함
  - 같은 링크의 재제출에는 “Dup”, 다른 링크지만 같은 사건에 대한 글에는 “See also”를 쓰라고 제안함
  - 중복이 아니라, 같은 사건을 다루지만 **내용이 다른 기사**라고 강조함
  - 참고용으로 [Shai-Hulud Returns: Over 300 NPM Packages Infected](https://news.ycombinator.com/item?id=46032539) (helixguard.ai)을 함께 제시함

- 중복 토론은 [여기서 진행 중](https://news.ycombinator.com/item?id=46032539)이라고 안내함

- 제목에 **오타**가 있다고 지적함. 현재 HN 제목은  
  > SHA1-Hulud the Second Comming – Postman, Zapier, PostHog All Compromised via NPM  
  이지만, 올바른 표기는 **Shai-Hulud**임
  - 하지만 실제로 비밀정보가 업로드된 저장소 이름은 `Sha1-Hulud: The Second Coming`이라서 혼동이 생긴 듯함
  - 웜 자체가 GitHub에 `sha1-hulud`라는 이름으로 비밀을 게시하고 있음  
    [관련 GitHub 검색 링크](https://github.com/search?q=sha1-hulud&type=repositories)
  - “coming”의 철자도 **m이 하나만 있어야 함**이라며, 혹시 의도된 말장난인지 묻는 의견도 있음
  - 다운보트 이유를 모르겠다고 하며, 실제 공격은 SHA1 알고리즘과 관련이 없고, 이름도 그런 **패러디 의도는 아님**이라고 설명함
