NPM 공급망 공격

NPM 공급망 공격: 최대 규모 사건 및 방지 방법

빠른 답변 : NPM 공급망 공격은 신뢰할 수 있는 관리자 계정이나 저장소를 손상시키는 방식으로 작동합니다. CI/CD 토큰을 이용해 개발자들이 이미 신뢰하는 패키지의 악성 버전을 게시하고, 해당 패키지의 설치 스크립트나 웜 로직이 나머지 작업을 처리하도록 하는 방식입니다. 2025년 8월부터 2026년 중반까지 이 패턴은 npm 레지스트리 역사상 가장 큰 규모의 패키지 공급망 공격을 야기했으며, 여기에는 chalk/debug 하이재킹 공격이 포함됩니다. 샤이훌루드 벌레그리고 국가 주도 악성코드가 일주일에 100억 번 다운로드되는 패키지에 숨겨져 있는 경우도 있습니다. 해결책은 코드가 배포된 후에 검사하는 것이 아닙니다. 악성 패키지가 설치되기 전에 차단하고 감시하는 것입니다. pipeline 이러한 공격들이 공통적으로 보이는 정확한 행동 양식 때문입니다.

모든 설치는 신뢰의 행위이며, 공격자들은 이를 알고 있습니다.

개발자가 실행합니다 npm 설치그 하나의 명령어 뒤에는 수백, 때로는 수천 개의 패키지로 이루어진 복잡한 의존성 트리가 숨겨져 있는데, 대부분은 개발자가 한 번도 만나보지 못할 사람들이 작성하고 유지 관리하는 것들입니다. 아무도 그 트리를 한 줄 한 줄 검토하지 않습니다. 그럴 시간도 없고요.

바로 그 신뢰가 공격의 목표입니다. 주간 다운로드 수가 2.6억 건에 달하는 npm 관리자 한 명을 피싱 공격하는 것이 포춘 500대 기업의 방화벽에서 제로데이 취약점을 찾는 것보다 비용이 훨씬 저렴합니다. npm 공급망 공격은 바로 이러한 비대칭성을 악용하며, 2025-2026년 공격 물결은 이러한 악용이 얼마나 광범위하게 확산되었는지를 보여줍니다. 고립된 타이포스쿼팅에서 자가 번식하는 벌레로 인간이 반응하기보다 훨씬 빠른 속도로 악성 패키지를 배포합니다.

npm 공급망 공격으로 간주되는 것은 무엇입니까?

npm 공급망 공격이란 공격자가 npm 배포판에 악성 코드를 삽입하는 모든 사건을 말합니다. pipeline 악성코드는 대상의 자체 코드베이스에 침투하는 대신, 일상적인 종속성 업데이트로 위장하여 침투합니다. 침투 경로는 일반적으로 다음 세 가지 중 하나입니다. 관리자의 탈취된 자격 증명, 탈취된 게시 또는 CI/CD 토큰 또는 손상된 빌드 pipeline 공격자를 대신하여 패키지를 배포하도록 속이는 것입니다. npm 패키지는 전이적 종속성을 자동으로 가져오기 때문에, 단 하나의 손상된 패키지가 해당 패키지를 직접적인 종속성으로 전혀 선언하지 않은 애플리케이션에까지 도달할 수 있습니다.

타임라인: 2025-2026년 최대 규모의 npm 공급망 공격

NPM 공급망 공격 타임라인
2025년부터 2026년까지 발생할 수 있는 최대 규모의 npm 공급망 공격 타임라인 2025년 8월부터 2026년 6월까지 발생한 8건의 npm 공급망 공격. 주황색은 자체 확산 웜 캠페인을, 회색은 자격 증명 또는 토큰 유출을 나타냅니다. 26년 2025월 XNUMX일 Nx/s1ngularity 타협 게시 토큰 도난 2025년 9월 8일 chalk/debug 하이재킹 피싱 공격당한 관리자 계정 2025년 9월 14일 샤이훌루드 벌레 최초의 자가 번식하는 벌레 2025년 11월 24일 샤이훌루드 2.0 더욱 회피적인 웜 변종 월 2026 Axios 국가 주도 악성 소프트웨어 국가 악성코드, 주당 100억 건 다운로드 4월 2026 SAP npm 타협 Enterprise-비늘벌레 무늬 2026 년 5 월 11 일 탄스택 CI/CD 타협 CI 토큰 도난, 84개 버전 2026년 1월 1일 레드햇 네임스페이스 침해 유효한 SLSA이지만 여전히 악성입니다. 자가 번식하는 벌레 자격 증명 또는 토큰 유출
2025년 8월부터 2026년 6월까지 발생한 8건의 npm 공급망 공격. 주황색은 자가 전파 웜 캠페인을 나타냅니다.

모든 npm 패키지 공급망 공격의 배후에 있는 패턴

세부 사항을 제외하면 위의 거의 모든 사건은 동일한 네 단계를 거칩니다.

  • 시스템이 아닌 정체성을 타협하세요. 피싱 공격을 당한 관리자, 유출된 npm 토큰, 도난당한 GitHub PAT 또는 탈취된 OIDC 토큰 CI/CD 러너 메모리. 공격자는 레지스트리를 파괴하는 것이 아닙니다. 다른 사람의 레지스트리 접근 키를 빌리는 것입니다.
  • 개발자들이 이미 신뢰하는 이름으로 출시하세요. 실제 패키지 이름이 제대로 작동한다면 타이포스쿼팅은 필요하지 않습니다. 바로 이 점 때문에 이러한 공격이 자동 업데이트에 매우 효과적입니다. pipelines: 업데이트 내용이 완전히 합법적으로 보이네요.
  • 누군가 리뷰하기 전에 실행하세요. 악성 설치 스크립트, 난독화된 페이로드 또는 특정 조건에서만 활성화되는 숨겨진 코드는 실행됩니다. npm 설치 이러한 검사는 개발자의 노트북에서 실행될 때, 예정된 보안 검사가 이를 발견하기 훨씬 전에 실행되는 경우가 많습니다.
  • 지속하고, 점점 더 확산시키십시오. Shai-Hulud와 그 후손들은 탈취한 자격 증명을 사용하여 다음 악성 패키지를 자동으로 게시함으로써 단일 침해를 종속성 그래프 전체에 걸친 연쇄 반응으로 전환시킵니다.

일반적인 방어 전략이 이를 놓치는 이유

대부분의 애플리케이션 보안 도구는 저장소에 이미 있는 내용, 즉 알려진 CVE, 정적 코드 패턴, 라이선스 문제 등을 분석하도록 설계되었습니다. 이는 필수적이지만, 이러한 유형의 공격에는 구조적으로 너무 늦게 대응합니다. 스캐너가 종속성을 감지할 때쯤이면 설치 스크립트가 이미 개발자 컴퓨터에서 실행되었을 수 있습니다. 기존의 안티바이러스 및 EDR은 운영 체제를 감시하는 것이지 패키지 레지스트리를 감시하는 것이 아니므로 "새로운 npm 릴리스"를 위험 단위로 인식하지 못합니다. TanStack 및 Red Hat 사례에서 볼 수 있듯이, 빌드 무결성 인증조차도 이러한 공격에 대응하기 어렵습니다. SLSA provenance 공격자가 서명자의 신원을 합법적으로 확보한 경우에도 소용이 없습니다. 서명은 유효하지만, 해당 패키지는 여전히 악성입니다.

이러한 npm 공급망 공격이 악용하는 허점은 악성코드에 대한 시그니처가 생성되기 전, 그리고 기존 스캐너가 검사할 만한 곳에서 패키지가 실행되기 전인 게시 및 설치 시점에 있습니다.

다음 npm 공급망 공격을 막는 방법

이러한 내용 중 일부는 모든 엔지니어링 팀이 오늘날 채택할 수 있는 프로세스 규율입니다.

  • 핀 종속성 및 commit 잠금 파일따라서 자동 업데이트가 악성 버전을 몰래 설치하는 것을 방지할 수 있습니다.
  • 설치 후 스크립트를 비활성화하거나 샌드박스 환경에서 실행하세요. 기본적으로 대부분의 패키지는 설치 시 임의의 코드를 실행할 필요가 없습니다.
  • npm 게시 계정에 하드웨어 기반 MFA를 적용합니다.이를 통해 chalk, debug 및 Qix의 계정을 해킹한 정확한 피싱 경로를 차단했습니다.
  • 범위 및 회전 CI/CD 토큰을 공격적으로또한, 실행기 메모리에 있는 OIDC 토큰을 구현 세부 사항이 아닌 보호할 가치가 있는 자격 증명으로 취급해야 합니다.
  • 잠금 해제-주입-재잠금 패턴을 주의 깊게 살펴보세요. in CI/CD분기 보호 규칙이 비활성화되었습니다. commit 버튼을 누르자 규칙이 다시 활성화되었고, 이 모든 일이 아주 짧은 시간 안에 일어났습니다. 이는 자주 등장하는 특징입니다. pipeline-급 공급망 손상.

프로세스 규율이 무너지는 곳

프로세스 규율은 위험 노출을 줄여줍니다. 하지만 악성 패키지가 게시되는 순간 바로 차단할 수는 없으며, 사람이 분류할 수 있는 속도보다 훨씬 빠르게 확산되는 웜을 막을 수도 없습니다. 바로 이러한 상황을 위해 Xygeni의 공급망 보안 솔루션이 설계되었습니다.

자이제니스 MEW(악성코드 조기경보) npm, PyPI, Maven에 게시된 새로운 패키지를 지속적으로 분석하여 악성코드가 시그니처를 생성하기 전에 탐지하고, 확인된 위협을 다시 시스템에 반영합니다. 자이제니스 자체 탐지 엔진. 종속성 방화벽 npm, PyPI, Maven, NuGet 및 RubyGems를 실시간으로 스캔하여 악성 설치가 개발자 컴퓨터나 빌드에 도달하기 전에 차단합니다. CI/CD 이상 감지 시계 pipelineTanStack 침해 사건과 같은 사고의 배후에 있는 행동 패턴, 특히 잠금 해제-주입-재잠금 시퀀스에 대한 정확한 분석과 전체 감사 추적을 제공합니다. 그리고 Xygeni는 AI 기반 분류 및 해결 타사 스캐너의 결과에도 적용되므로 팀은 이러한 격차를 해소하기 위해 기존 도구를 완전히 교체할 필요가 없습니다.

FAQ: npm 공급망 공격

npm 공급망 공격이란 무엇인가요?

이는 악성 코드가 대상 애플리케이션의 자체 코드를 통하지 않고 신뢰할 수 있는 npm 종속성을 통해 대상 애플리케이션에 도달하는 공격으로, 일반적으로 공격자가 유지 관리자의 계정, 게시 토큰 또는 기타 권한을 탈취했기 때문에 발생합니다. CI/CD pipeline의 정체성.

npm 공급망 공격 중 가장 큰 공격은 무엇이었습니까?

2025년 9월에 발생한 chalk/debug 하이재킹은 파급 효과 측면에서 가장 큰 규모 중 하나입니다. 단 하나의 관리자 계정이 피싱 공격을 받아 총 2.6억 건의 주간 다운로드를 기록하는 18개 패키지가 감염되었습니다. 하지만 기술적 혁신성 측면에서는 npm 역사상 최초의 자가 전파 웜인 Shai-Hulud가 더욱 중요한 전환점이 되었습니다.

npm 패키지 공급망 공격은 일반적으로 어떻게 시작되나요?

거의 항상 신분 도용과 관련이 있습니다. 피싱 공격을 당한 관리자, 유출된 게시 토큰 또는 도난당한 계정 등이 원인입니다. CI/CD npm 자체에 대한 기술적 침입이 아니라, 실행자의 메모리에서 가져온 OIDC 토큰과 같은 자격 증명을 사용합니다.

안티바이러스 또는 EDR이 npm 공급망 공격을 막을 수 있을까요?

신뢰할 수 없습니다. EDR은 운영 체제를 모니터링하지만 패키지 레지스트리를 이해하지 못하며, 안티바이러스는 시그니처 기반이므로 시그니처가 만들어지기 전에 유포된 악성코드에는 대응하지 못합니다. 이러한 유형의 공격을 막으려면 엔드포인트뿐만 아니라 유포 및 설치 시점부터 모니터링해야 합니다.

가요 SLSA provenance 또는 이를 방지하기 위해 인증을 구축할 수 있을까요?

그것은 다음을 증명합니다 pipeline 빌드 과정 자체는 변조되지 않았습니다. 하지만 TanStack과 Red Hat 사건에서처럼 악성 패키지에 유효한 인증 정보가 첨부된 경우에서 알 수 있듯이, 빌드를 트리거한 ID가 손상되지 않았다는 것을 증명하는 것은 아닙니다.

팀에서 악성 npm 패키지가 설치되기 전에 어떻게 감지할 수 있을까요?

악성코드 조기 경보 시스템과 종속성 방화벽이 설계된 방식대로, 저장소에 이미 있는 코드에 대한 사후 취약점 스캔에만 의존하는 것이 아니라, 새로 게시된 패키지에 대해 서명 전 악성코드 분석을 지속적으로 실행함으로써 악성코드를 탐지할 수 있습니다.

어디서 시작하나요

npm 공급망 공격은 둔화되지 않고 있으며, Shai-Hulud 이후의 추세는 자동화가 줄어들기는커녕 오히려 늘어나고 있음을 보여줍니다. 다음 공격에 가장 잘 대비할 수 있는 팀은 모든 npm 설치를 일상적인 이벤트로 취급하는 것을 멈추고 레지스트리를 감시하기 시작한 팀입니다. pipeline그리고 엔드포인트는 하나의 연결된 공격 표면으로 간주됩니다.

Xygeni의 개발자 플랜에는 MEW 및 종속성 방화벽 기능이 포함되어 있습니다. 최대 25개의 저장소를 무료로 확인할 수 있습니다. 이미 존재하는 종속성 트리를 살펴보기에 적합한 곳입니다.

sca-tools-software-composition-analysis-tools
소프트웨어 위험을 우선순위화하고, 해결하고, 보호하십시오.
무료 계정을 만드세요.
신용 카드가 필요하지 않습니다.

소프트웨어 개발 및 제공을 안전하게 보호하세요

Xygeni 제품군과 함께