PyTorch Lightning AI 학습 라이브러리에 발견된 'Shai-Hulud' 테마의 악성코드
요약
딥러닝 라이브러리 'lightning'의 특정 버전(2.6.2 및 2.6.3)이 공급망 공격에 의해 침해되었습니다. 이 악성코드는 `pip install lightning` 명령 실행만으로 활성화되며, 모듈 임포트 시 가비문 JavaScript 페이로드를 통해 인증 정보, 토큰, 클라우드 비밀 등을 탈취하고 GitHub 저장소를 독살하려 합니다. 공격은 'Shai-Hulud' 테마를 사용하며, 이전 캠페인과 동일한 위협 행위자가 주도한 것으로 추정됩니다. 공격자는 PyPI에서 침투하여 JavaScript 페이로드를 통해 npm 생태계까지 웜(worm) 형태로 전파하는 복합적인 방식을 사용합니다.
핵심 포인트
- 공격 대상: PyTorch Lightning 라이브러리 'lightning'의 버전 2.6.2 및 2.6.3. 취약점 유형: 공급망 공격 (Supply Chain Attack). `pip install` 실행만으로 악성 페이로드 활성화. 탈취 목표: 인증 정보, 환경 변수, 클라우드 비밀 등 민감한 자격 증명 탈취 및 GitHub 저장소 독살. 전파 메커니즘: PyPI에서 진입하여 JavaScript 기반의 웜(worm) 형태로 npm 생태계까지 확산 가능. 대응 조치: 해당 패키지 사용 프로젝트는 즉시 스캔하고, 모든 GitHub 토큰 및 클라우드 API 키를 교체해야 합니다.
PyTorch Lightning AI 학습 라이브러리에 발견된 'Shai-Hulud' 테마의 악성코드
널리 사용되는 딥러닝 프레임워크인 PyPI 패키지 'lightning'이 2026 년 4 월 30 일 공개된 버전 2.6.2 와 2.6.3 에 영향을 미치는 공급망 공격으로 인해 침해되었습니다. 이미지 분류기, LLM 미세 조정, 확산 모델 실행, 또는 시계열 예측 모델을 개발하는 팀들은 종종 의존성 트리에 'lightning'을 포함하고 있습니다.
pip install lightning 명령만으로도 악성이 활성화됩니다. 악성 버전에는 모듈 임포트 시 자동으로 실행되는 가비문 (obfuscated) JavaScript 페이로드가 포함된 숨겨진 _runtime 디렉토리가 있습니다. 이 공격은 인증 정보, 인증 토큰, 환경 변수 및 클라우드 비밀을 탈취하는 동시에 GitHub 저장소를 독살 (poison) 하려고 시도합니다. 공격은 'Shai-Hulud' 테마를 포함하며, EveryBoiWeBuildIsaWormBoi 라는 이름의 공개 저장소를 생성합니다.
우리는 이 공격이 이전 미니 Shai-Hulud 캠페인을 주도한 동일한 위협 행위자의 작업이라고 믿습니다. IOC 구조는 해당 작전과 일치합니다: 악성 커밋 메시지는 동일한 Dune 테마 네이밍 규칙을 따르며, 이번 캠페인은 원래 Mini Shai-Hulud 공격과 구별하기 위해 EveryBoiWeBuildIsAWormyBoi 라는 접두어를 사용합니다.
영향 받은 패키지
-
lightning
버전2.6.2 -
lightning
버전2.6.3
Semgrep 고객님을 위한 안내
Semgrep 는 해당 취약점을 포괄하는 공지사항과 규칙을 제공하여 프로젝트에서 확인하실 수 있습니다.
프로젝트에 대해 최근 스캔을 수행하지 않으셨다면 새 스캔을 실행하세요.
https://semgrep.dev/orgs/-/advisories 페이지를 확인하여 최근 해당 패키지 버전을 설치한 프로젝트가 있는지 확인하세요.
__dependency filter__에서 매칭 결과를 확인하세요. "No matching dependencies"라고 표시되면 모든 프로젝트에서 악성 의존성을 적극적으로 사용하지 않습니다. 매칭이 발생했다면, 아래에 있는 완화 조치 및 침해 지표 (IOC) 에 대한 추가 조언이 있습니다.
매칭이 발생한 경우: 또한 아래 IOC 에 나열된 주입 파일 (.claude/ 와 .vscode/ 디렉토리에 예상치 못한 내용이 포함된 경우) 을 저장소로 감사 (audit) 하세요. 그리고 영향 받은 환경에 존재할 수 있는 GitHub 토큰, 클라우드 인증 정보 또는 API 키를 모두 교체하세요.
교차 생태계 확산: PyPI 에서 npm 으로
Mini Shai-Hulud 가 직접 npm 을 대상으로 한 것과 달리, 이번 공격의 진입점은 PyPI 입니다. 악성 페이로드는 여전히 JavaScript 이며, 웜 전파는 npm 을 통해 발생합니다.
실행 중일 때, 악성이 npm publish 인증 정보를 찾으면 해당 토큰으로 게시할 수 있는 모든 패키지에 setup.mjs 드롭퍼와 router_runtime.js 를 주입하고, scripts.preinstall 를 드롭퍼 실행을 위해 설정하며, 패치 버전을 높이고 다시 게시합니다. 그리고 그 중 하나의 패키지를 설치하는 하류 개발자는 자신의 머신에서 전체 악성코드를 실행하게 되며, 토큰이 탈취되고 패키지가 웜 (worm) 으로 전파됩니다.
작동 원리
탈취 구성 요소는 이전 캠페인의 "Mini Shai-Hulud" 메커니즘과 설계를 공유하며, 개별 경로가 차단되더라도 도난된 데이터가 나가기 위해 4 개의 병렬 채널을 사용합니다.
AI 자동 생성 콘텐츠
본 콘텐츠는 HN AI Posts의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기