GitHub, 공급망 공격 대응을 위해 npm 보안 변경 발표

발행: (2026년 6월 11일 AM 04:41 GMT+9)
6 분 소요

출처: Bleeping Computer

GitHub은 다음 달에 출시될 npm v12가 ‘npm install’ 명령으로 트리거되는 동작을 악용한 공급망 공격을 차단하기 위해 여러 보안 중심 변경 사항을 도입한다고 발표했습니다.

‘npm install’ 은 프로젝트의 의존성을 다운로드하고 설치하며, 패키지에 정의된 설치 관련 스크립트를 실행하는 명령입니다.

개발자는 프로젝트를 클론하거나 업데이트를 풀받은 뒤, 혹은 CI/CD 빌드 과정에서 이 명령을 실행합니다. 공격자는 패키지 설치 중 자동으로 코드가 실행될 수 있다는 점을 노려 이 명령을 표적로 삼습니다.

image

이번 발표의 핵심은 ‘npm install’ 중에 자동으로 실행되던 코드 실행 및 레지스트리 외 의존성 소스가 이제 기본적으로 신뢰되지 않고, 명시적인 승인이 필요하도록 바뀐다는 점입니다.

구체적으로, GitHub이 발표한 변경 사항은 다음과 같습니다:

  • 버전 12부터 npm install 은 의존성의 preinstall, install, postinstall 스크립트를 명시적으로 승인되지 않은 경우 실행하지 않습니다. 이는 node-gyp를 통해 트리거되는 네이티브 모듈 빌드와 Git, 로컬 파일, 링크된 의존성의 prepare 스크립트에도 적용됩니다.

    • npm install 은 명시적으로 허용되지 않은 경우 Git 저장소(직접 또는 전이적)에서 의존성을 가져오지 않습니다. GitHub은 이를 통해 Git 의존성의 .npmrc 파일이 사용되는 Git 실행 파일을 변경하는 코드 실행 경로를 차단한다고 설명합니다(설치 스크립트가 비활성화된 경우에도 적용).

    • HTTPS tarball과 같은 원격 URL에서 설치되는 의존성도 명시적으로 허용되지 않은 경우 해결되지 않습니다. 이는 직접 및 전이적 의존성 모두에 적용됩니다.

이러한 변경은 의존성 설치 스크립트의 자동 실행, Git 기반 의존성의 자동 해석, 원격 URL 의존성의 자동 해석을 차단함으로써 공급망 공격을 크게 감소시킬 수 있습니다.

새로운 기본값은 최근 공급망 공격에서 사용된 여러 공격 기법을 방해했을 가능성이 높습니다.

예를 들어, 악성 preinstall/postinstall 스크립트 캠페인(예: eslint-config-prettier 타깃), Toptal의 Picasso 패키지, 수십 개의 데이터 탈취 npm 패키지(https://www.bleepingcomputer.com/news/security/infostealer-campaign-compromises-10-npm-packages-targets-devs/), 그리고 Git 의존성 남용Shai‑Hulud 공격(https://www.bleepingcomputer.com/news/security/shai-hulud-attack-ships-signed-malicious-tanstack-mistral-npm-packages/)에서 문서화된 사례들입니다.

이러한 동작을 정상적인 워크플로에 의존하고 있는 프로젝트는 npm v12로 업그레이드하기 전에 명시적으로 옵션을 선택해야 합니다.

GitHub은 개발자들이 npm 11.16.0 이상으로 먼저 업그레이드할 것을 권장합니다. 이 버전에서는 버전 12에서 중단될 모든 동작에 대해 경고를 표시합니다.

이를 통해 평소 설치 루틴을 실행하면서 경고를 검토하고, 업그레이드 전에 명시적인 승인이 필요한 의존성이나 워크플로를 식별할 수 있습니다.

버전 12로 업그레이드한 뒤에는 명시적으로 승인된 스크립트와 의존성 소스만 자동으로 작동합니다.

개발자들이 이번 변경에 대한 의견을 공유할 수 있도록 커뮤니티 토론이 열렸습니다.

article image

공격자보다 먼저 모든 레이어를 테스트하세요

보안 팀은 성공적인 공격의 **54%**만을 기록하고, **14%**만을 경보합니다. 나머지는 환경을 무시하고 이동합니다.

Picus 백서에서는 침해 및 공격 시뮬레이션이 SIEM 및 EDR 규칙을 어떻게 테스트하여 위협이 탐지되지 않고 넘어가는 것을 방지하는지 보여줍니다.

백서 받기

0 조회
Back to Blog

관련 글

더 보기 »