공지사항

Security Insights & Trends

AI 개발자 주의! PyTorch Lightning 위장 악성 코드 분석 (Sonatype 리포트)

Raoul16 2026. 5. 8. 17:20

 

글로벌 보안 파트너 Sonatype의 PyTorch Lightning 위장 악성 코드 분석

 


안녕하세요,

그로메트릭 입니다. 🐸

 

최근 AI 연구 및 개발 현장에서 필수적인 프레임워크로 자리 잡은 PyTorch Lightning을 사칭한 악성 패키지들이 PyPI 리포지토리에서 잇달아 발견되었습니다.

글로벌 보안 파트너 Sonatype의 긴급 분석에 따르면, 공격자들은 개발자들이 흔히 저지르는 오타(Typosquatting)를 악용하여 정상적인 패키지인 것처럼 위장한 뒤 시스템 정보를 탈취하는 악성 코드를 유포했습니다.

 

이번 사고는 단순히 하나의 패키지 침해를 넘어, AI 개발 환경 자체가 공급망 공격의 핵심 타겟이 되고 있음을 극명하게 보여줍니다.

특히 AI 모델 개발 프로세스에서는 수많은 외부 라이브러리에 대한 의존성이 높기 때문에, 사람이 직접 패키지 하나하나를 검증하는 것에는 한계가 따를 수밖에 없습니다.

 

결국 급변하는 위협 속도에 대응하기 위해서는 의존성을 실시간으로 모니터링하고 차단하는 자동화된 공급망 보안체계가 필수적입니다.

이번 포스팅에서는 PyTorch Lightning 사칭 사건의 구체적인 수법과 이를 통해 본 AI 라이브러리 관리 전략을 Sonatype의 기술 분석 리포트와 함께 자세히 살펴봅니다.

 

*아래 글은 소나타입(Sonatype)의 공식 블로그 글을 번역하여 작성되었습니다.

 


요약

  • 인기 있는 PyTorch Lightning 패키지의 악성 버전 두 개가 게시자 계정이 해킹당한 후 PyPI에 업로드되었습니다.
  • Lightning 버전 2.6.2 및 2.6.3( sonatype-2026-002817 로 추적됨 ) 은 개발자 자격 증명을 수집하고 감염된 패키지 버전을 게시하는 악성 코드가 내장되어 있어 2026년 4월 30일에 배포되었습니다.
  • 이러한 악성 버전이 다운로드되었다면 이미 피해를 입혔을 가능성이 높습니다. 확실하지 않은 경우 빌드 프로세스에서 버전 2.6.1을 사용하고 있는지 확인하십시오.

널리 사용되는 pytorch-lightning 패키지가 악의적인 공격자에 의해 탈취되어 2026년 4월 30일에 두 가지 악성 버전(2.6.2 및 2.6.3)이 PyPI 레지스트리에 게시되었습니다. 이 패키지들은 개발자 자격 증명을 탈취하고, 탈취한 토큰으로 접근 가능한 저장소의 악성 버전을 재배포하도록 설계되었습니다.

이는 자격 증명을 탈취하고, 빠르게 확산되며, 오픈 소스 저장소를 마비시키도록 설계된 자가 증식형 오픈 소스 악성코드 공격의 또 다른 수위 상승 사례입니다.

 

PyTorch Lightning 사칭 사건의 전말

2026년 4월 30일, 라이트닝 패키지의 두 가지 버전이 PyPI에 연달아 게시되었습니다.

  • 라이트닝 2.6.2
  • 라이트닝 2.6.3 (불과 13분 후에 출시됨)

프로젝트 관리자 는 해당 사건에 대한 자세한 내용 을 담은 공지를 발표했습니다 . 두 버전 모두 동일한 게시자가 업로드했으며, 연구원들은 이것이 조직적인 공격의 일부라고 보고 있습니다. 두 버전 간에는 최소한의 차이만 있었지만, 동일한 악성 페이로드를 포함하고 있었습니다.

결정적으로, 버전 2.6.3은 수정 버전이 아니었습니다. 악성 기능은 그대로 유지하면서 탐지를 피하기 위해 메타데이터와 로더 동작만 약간 수정했습니다. 이 공격은 npm 패키지인 intercom-client 7.0.4뿐만 아니라 Composer의 intercom 및 intercom-php까지 하이재킹하는 데까지 확산되었습니다. 

 

공격 방식

해당 공격은 패키지를 임포트할 때 자동으로 발생합니다.

  • 수정된 __init__.py 파일 은 백그라운드 프로세스를 시작합니다.
  • 이 프로세스는 눈에 보이는 출력 없이 조용히 실행됩니다.
  • 사용자는 침해 사실을 전혀 알 수 없습니다.

즉, 패키지를 가져오기만 하면 악성코드가 활성화된다는 뜻입니다.

 

난독화된 멀티 클라우드 자격 증명 수집기

이 패키지에는 정적 분석을 회피하기 위해 16진수로 인코딩된 변수를 사용하는 대용량(11MB) 난독화된 JavaScript 파일이 포함되어 있으며, 번들로 제공되는 런타임 로더를 통해 실행됩니다.

해당 공격 대상은 다음과 같은 다양한 서비스입니다.

  • AWS(IMDS, STS, Secrets Manager).
  • Azure(AD, Key Vault, Service Fabric).
  • 구글 클라우드(OAuth, 메타데이터 서비스, KMS).
  • GitHub API.
  • 로컬 환경 변수 및 자격 증명 파일.

목표는 멀티 클라우드 및 개발자 환경 전반에서 자격 증명을 수집하는 것입니다.

 

보조 페이로드 실행

이 패키지에는 런타임 Bun ) 이 GitHub에 없는 경우 이를 다운로드하고 , 악성 JavaScript 페이로드를 실행하며 , 실행을 차단하지 않고 백그라운드에서 실행되는 Python 부트스트래퍼가 포함되어 있습니다 .

또한, 해당 악성코드는 공격자가 제어하는 ​​인프라에서 2단계 페이로드를 다운로드하고 실행하려고 시도하여 잠재적 피해를 증가시킵니다.

이 공격이 중요한 이유

1) 포장이 훼손된 것일 뿐, 가짜는 아닙니다.

기존의 타이포스쿼팅 공격과는 달리, 이번 사건은 널리 사용되는 합법적인 패키지의 변조된 버전과 관련이 있습니다.

이로 인해 위험성이 훨씬 더 커지는 이유는 다음과 같습니다.

  • 개발자들은 패키지 이름을 신뢰합니다.
  • 자동화 시스템은 기본적으로 이를 허용할 수 있습니다.
  • 탐지는 이상 징후에 이름을 붙이는 것이 아니라 행동 분석에 기반합니다.

2) 탐지를 피하기 위해 빠르게 재배포합니다.

이번 조사에서 가장 중요한 발견 중 하나는 공격자들이 얼마나 빠르게 악성 코드를 복제했는지입니다. 버전 2.6.2가 의심스러운 것으로 표시되었지만, 불과 몇 분 만에 동일한 악성 페이로드를 포함한 버전 2.6.3이 탐지를 피하기 위해 게시되었습니다.

이는 릴리스를 개별적으로 평가하는 보안 제어를 우회하기 위해 거의 동일한 버전을 신속하게 재배포하는 중요한 전술을 보여줍니다.

3) 최소한의 변화를 통한 신호 회피

공격자들은 버전 간에 미묘한 변경을 가했는데, 여기에는 로더 스크립트의 약간의 수정, 사소한 메타데이터 업데이트가 포함되며 기본 페이로드에는 의미 있는 차이가 없습니다.

이러한 작은 변화만으로도 특정 탐지 신호가 발생하지 않도록 방지할 수 있었으며, 이는 다음과 같은 필요성을 강조합니다.

  • 버전 간 상관관계.
  • 페이로드 재사용 감지.
  • 정적 휴리스틱 대신 행동 분석을 활용합니다.

손상된 패키지를 사용한 경우

이러한 버전을 설치하거나 사용한 조직은 해당 시스템이 손상된 것으로 간주해야 합니다.

해당 악성 패키지는 자격 증명을 탈취하도록 설계되었으며, 이미 추가 악성 프로그램을 다운로드했을 가능성이 있습니다. 이는 민감한 데이터가 노출될 수 있고, 추가적인 악성 행위가 이미 진행 중일 수 있음을 의미합니다.

 
해당 버전을 즉시 삭제하세요.
  • 라이트닝 2.6.2
  • 라이트닝 2.6.3
 시스템 침해 여부를 감사하는 시스템
  • 무단 프로세스가 있는지 확인하십시오.
  • 아웃바운드 네트워크 연결을 검토하세요.
  • 자격 증명 사용 현황을 점검합니다.
 자격 증명을 순환시키세요
  • 클라우드 공급자 키(AWS, Azure, GCP)
  • API 토큰 (GitHub, CI/CD 시스템)
  • 환경 변수에 저장된 비밀 정보
 2차적 영향 조사
  • 의심스러운 다운로드 또는 실행 내역이 있는지 로그를 검토하십시오.
  • 지속성 메커니즘을 파악하기 위해 엔드포인트를 분석합니다.
  • 엔드포인트 탐지 및 대응(EDR) 스캔을 수행합니다.

 

이러한 위협 유형에 앞서 나가는 방법

PyTorch Lightning 취약점은 공격자들이 오픈 소스 생태계에 대한 신뢰를 얼마나 빠르게 악용할 수 있는지를 보여줍니다. 파이프라인이 자동화될수록 침해와 그 영향 사이의 시간 간격은 계속해서 줄어들고 있습니다.

이번 사건은 몇 가지 모범 사례를 다시 한번 확인시켜 줍니다.

  • 종속성을 정상 작동하는 버전으로 고정하고 사용하기 전에 패키지 무결성을 확인하십시오.
  • 예기치 않은 하위 프로세스 실행, 가져오기 중 네트워크 호출, 크거나 난독화된 내장 파일과 같은 동작 이상 징후를 모니터링합니다.
  • 동일한 게시자로부터 빠르게 연이어 출시되는 버전을 표시하고 여러 버전에서 재사용되는 페이로드를 식별하여 버전 간 위협을 탐지합니다.
  • 자동화된 공급망 보안 도구를 사용하여 종속성을 지속적으로 모니터링하고, 정책을 시행하며, 악성 패키지를 조기에 탐지하십시오.

보안 팀은 정적인 검사에서 벗어나 상황 인식을 기반으로 한 행동 중심 분석으로 나아가야 하며, 개발자가 코드를 사용하기 전에 종속성 위험을 더 잘 파악할 수 있도록 지원해야 합니다. 실제로 이는 비정상적인 런타임 동작, 빠른 릴리스 또는 페이로드 재사용과 같은 신호를 의사 결정 과정 초기에 파악하는 것을 의미합니다.

Sonatype Guide 와 같은 도구 는 이러한 맥락을 제공하여 팀이 빌드에 들어가기 전에 위험도가 높은 구성 요소를 피할 수 있도록 도와줍니다.

소나타입은 이 상황을 지속적으로 모니터링하고 추가 정보가 나오는 대로 업데이트를 제공할 예정입니다.

 


출처

소나타입 블로그 : PyTorch Lightning Compromised With Two Malicious Package Versions Published