AI 뉴스

Shai-Hulud 테마 악성코드가 PyTorch Lightning에서 발견됐다 — 830만 다운로드 영향, 즉각 대응 필요

노동1호 2026. 5. 3. 02:04

PyTorch Lightning Supply Chain Attack — Cover Image

Shai-Hulud 테마 악성코드가 PyTorch Lightning에서 발견됐다 — 830만 다운로드 영향, 즉각 대응 필요

2026년 4월 30일, Python 생태계에 충격적인 보안 사고가 발생했다. AI 개발자들 사이에서 널리 사랑받는 PyTorch Lightning 라이브러리의 정식 패키지인 lightning가 SHAI-HULUD 계열 악성코드대에 감염된 것이다. 이번 공격은 이전 SAP NPM 패키지 공격과 동일한 캠페인의 연장으로, 동일 범죄 그룹 TeamPCP가사업로 분석되고 있다.

affected versions** 2.6.2, 2.6.3 — 2026-04-30 일요일에 PyPI에 업로드

정정 버전: 2.6.1 이하

영향 범위: 월 830만 다운로드, 주 210만 다운로드

추가 감염 패키지: intercom-client@7.0.4 (npm, 월 130만 다운로드)


##발생료십

2026년 4월 30일, PyPI 공식 저장소에 배포된 lightning 패키지 versions 2.6.2와 2.6.3에 악성 코드가 포함된 것이 확인됐다. 이 패키지를 설치하고 import만 해도 악성Payload가 자동 실행되는 구조로, 개발자의 어떠한 조작도 필요하지 않았다.

공격 흐름을 정리하면 다음과 같다:

1. Hidden _runtime 디렉터리 — 패키지 내에 숨겨진 _runtime 디렉터리에 Downloader와 Obfuscated JavaScript Payload가 포함됨

2. Import 시 자동 실행 — Python 모듈 import 시 start.py가 자동 실행되어 Bun JavaScript Runtime을 다운로드

3. 11MB Obfuscated Payloadrouter_runtime.js (11MB규모적 obfuscated 악성코드)가 Bun으로 실행

4. 범람적 Credential 탈취 — GitHub 토큰, npm 토큰, SSH 키, 클라우드 자격증명, Kubernetes/Vault/Docker Secrets, .env 파일 등 개발자 환경의 거의 모든 비밀 정보를 탈취

5. Worm-like 자동 전파 — 탈취한 GitHub 토큰을 검증한 후, 해당 토큰으로 접근 가능한 모든 저장소(최대 50개 브랜치)에악의 커밋을 삽입. Anthropic Claude Code인 것처럼 가장하는 Hardcoded Identity 사용

특히 우려스러운 것은 이번 공격이 단순한 데이터 탈취에 그치지 않는다는 점이다. 탈취한 npm 토큰을 활용하여 개발자의 로컬 패키지를 변조하고, postinstall 훅을 삽입한 후 패치 버전을 높여 재발행하는 기능을 갖추고 있다. 이로 인해 악성코드가 npm 생태계 전체로 자연스럽게확산 될 수 있다.


수침해대상

이번 사고로 영향을 받은 패키지는 다음과 같다:

패키지악성 버전정정 버전다운로드
lightning (PyPI)2.6.2, 2.6.3≤ 2.6.1월 830만
intercom-client (npm)7.0.4≤ 7.0.3월 130만
intercom-php (Packagist)5.0.2≤ 5.0.1


기술분석

Socket, OX Security, Aikido Security, Snyk 등의 보안공상의 분석에 따르면,제차 공격은 "Node/Bun Supply Chain Tool"류형적 복합 악성 기능으로 구성되어 있다.

핵심 악성 기능

1. 다중 Scanner 기반 Credential 수집

• GitHub Actions Oriented Flows 타겟

ghp_, gho_, ghs_ 패턴의 GitHub Personal Access Tokens

npm_ 패턴의 npm 토큰

• SSH 키, 클라우드 자격증명, Kubernetes Secrets 등

2. Obfuscated C2 통신

• 탈취한 데이터는 zero.masscan.cloud:443/v1/telemetry로 HTTPS 배치 전송

• C2 도메인은 인코딩 blobs에_obfuscated 되어 있으며, 디코딩하면 A Mini Shai-Hulud has Appeared 문자열이 나옴

3. npm 기반 전파 메커니즘

1. npm 토큰으로 registry.npmjs.org 인증2. 해당 토큰이 쓸 수 있는 패키지 목록 수집3. 패키지 다운로드 → 악성 postinstall 훅 주입 → 패치 버전 증가 → 재발행4. 이렇게 오염된 패키지가 npm에 공식 배포되어하유 사용자들에게 전파

4. GitHub 토큰 활용

Octokit 라이브러리로 GitHub API 접근

• Workflow Scope이 있으면 GitHub Actions 시크릿 수집

• 최대 50개 브랜치에 .vscode, .claude 등의 파일을 Commit 형태로 삽입


즉시대응

여과너안장료수영향판본,필수립즉채취이하조시:

1단계: 악성 버전 차단 및 롤백

# lightning 패키지 롤백pip install lightning==2.6.1# 또는 poetry 환경poetry add lightning@2.6.1# npm 패키지 롤백 (해당 시)npm install intercom-client@7.0.3

2단계: 자격증명 무효화 및 교체

반드시 로테이션해야 할 항목:

• GitHub Personal Access Tokens (특히 ghp_, gho_, ghs_로 시작하는 모든 토큰)

• npm Publishing Tokens

• AWS, GCP, Azure 등 클라우드 자격증명

• SSH Keys (특히 .ssh 디렉터리 내 모든 키)

.env 파일에 포함된 모든 API 키 및 시크릿

• Kubernetes Config, Vault Token, Docker Credentials

3단계: 감염 여부 확인

GitHub에서 다음 문자열로 저장소를 검색하여 피해 범위를 확인:

"A Mini Shai-Hulud has Appeared"

OX Security에 따르면, 이번 lightning 공격으로 생성된 악성 저장소를 포함하여 총 1,800개 이상의 저장소가 공격자에 의해 생성된 것으로 파악된다.

4단계: 2FA 활성화

모든 관련 계정(GitHub, npm, PyPI 등)에 2FA(2차 인증)을 즉시 활성화한다. PyPI는 2024년부터 패키지 유지자에게 mandatory 2FA를 요구하고 있으나, 이번 사고로 계정 탈취가 발생한 것으로 추정된다.


영향규모

8.3M+ 다운로드 — 월간 영향을 받은 downloads

31,100 GitHub Stars — PyTorch Lightning 인기도좌증

1,800+ 악성 저장소 — GitHub에서 확인된 공격자 생성 저장소

3개 생태계 동시 감염 — PyPI, npm, Packagist(PHP)


진화하는 SHAI-HULUD 캠페인

이번 lightning 공격은고립ㅉ타 사건이 아니다. TeamPCP라는 위협 단체가 진행하는 Supply Chain Attack 캠페인의 최신 단계로, 앞서 SAP 관련 NPM 패키지가 타격을 입은 바 있다.

공격 연대기

날짜사건
2026-04-초SAP 관련 NPM 패키지 최초 공격 (Mini Shai-Hulud 1단계)
2026-04-29intercom-client@7.0.4 npm 감염 확인
2026-04-30lightning 2.6.2, 2.6.3 PyPI 감염 확인
2026-04-30intercom-php 5.0.2 Packagist 감염 확인
2026-05-초Total 1,800+ 악성 GitHub 저장소 확인

TeamPCP는 Checkmarx, Bitwarden, Telnyx, LiteLLM, Aqua Security Trivy 등의 유명 프로젝트에도 이전에 유사한 공급망 공격을사괘케테키타 것으로 알려져 있다. 이 그룹은 X 플랫폼 규칙 위반으로 차단된 후 다크 웹에 Own onion 망참를 개설했으며, LAPSUS$와 협력 관계라고 밝힌 바 있다.


왜 재발될까

Python 생태계는 2024년부터 PyPI에 Mandatory 2FA를 도입하며 보안 강화를 진행하고 있다. 그러나 이번 사고가 보여주듯, 여전히 계정 탈취(likely through stolen CI/CD tokens or direct account takeover)를 통한 공급망 침공이 가능하다.

핵심 문제:

CI/CD 파이프라인 취약성 — 유지자의 CI/CD 토큰이 유출되면 패키지 게시 workflow를 통해악의 버전이 자동 배포될 수 있다

Multi-Ecosystem 확산 — 하나의 계정 침투로 PyPI, npm, Packagist까지 동시 감염이 가능하다

Automatic Execution — import/install만으로악의 코드가 실행되는 구조


결론

2026년 4월 30일 발생한제차 PyTorch Lightning 공급망 공격은 연건 보안영역적경종이다. 830만 이상의 다운로드가 영향을 받은 규모와 함께, 단순한 데이터 탈취를 넘어 개발자 도구 자체를 악용하여 생태계 전체로 WORM처럼확산 되는 새로운 공격 패턴을 보여주고 있다.

지금이라도:

1. lightning==2.6.1 이하로 즉시 롤백

2. 모든 개발자 자격증명(토큰, 키, 시크릿) 무효화 및 교체

3. 관련 계정에 2FA 활성화

4. GitHub에서 A Mini Shai-Hulud has Appeared 검색하여 피해 확인

침해가 발생한 환경은 공격자가 이미 Credential을 확보한 상태이므로, 단순히 패키지를 롤백하는 것만으로는 안전하지 않다. 전체 자격증명 교체와 환경 재구성이 필수적이다.


출처

• Hacker News: PyTorch Lightning and Intercom-client Hit in Supply Chain Attacks to Steal Credentials

• OX Security: Lightning Python Package Infected in Shai-Hulud Attack

• Snyk: Lightning PyPI Compromise: Bun-Based Stealer

• Kodem Security: Mini Shai-Hulud Attack: PyTorch Lightning and intercom-client

tags: PyTorch Lightning, supply chain attack, Shai-Hulud, malware, credential theft, PyPI, npm, TeamPCP, Bun,신식안전, 개발보안