악성 npm 패키지, 런타임 악성코드로 설치 스크립트 방어 우회

악성 npm 패키지, 런타임 악성코드로 설치 스크립트 방어 우회

npm 공급망 공격, 런타임 악성코드로 설치 스크립트 차단 우회

  • Checkmarx가 분석한 ‘indexed-btree’ npm 패키지 캠페인은 정상 라이브러리 ‘sorted-btree’를 사칭해 공급망을 노린다. 악성 로더를 설치 단계가 아닌 BTree.prototype.set 메서드에 숨겨 npm v12 설치 스크립트 차단을 회피한다.
  • 공격자는 indexed-btree를 호출할 때 특정 키 값을 사용하면 런타임에서 로더가 실행되도록 설계했다. 개발자는 npm install 시 경고를 보지 못한 채 애플리케이션 코드가 동작할 때마다 악성 코드가 활성화되는 구조를 사용하도록 유도된다.
  • 이 캠페인은 indexed-btree 외에 ordered-kv-index, btree-leaderboard, btree-range-store 등 최소 9개 연관 패키지를 활용한다. 모두 B-트리 기반 자료구조 라이브러리처럼 보이며, README와 함수명으로 정상 오픈소스 패키지로 위장해 채택을 유도한다.
  • Checkmarx는 indexed-btree가 주간 2,000,000회 이상 다운로드되는 인기 패키지로 집계된다고 밝혀 공급망 공격의 잠재 피해 규모를 경고한다. 패키지는 GitHub의 2026년 6월 npm 설치 스크립트 차단 조치 이후에도 유포됐으며, 이후 npm 레지스트리에서 삭제됐다.
  • 악성 로더는 시스템 정보와 파일 목록을 수집해 Slack·Telegram으로 전송하고, Ethereum Sepolia 스마트 콘트랙트를 폴링해 X25519 키 교환과 AES 복호화로 2단계 페이로드를 수신한다. 이는 개발자 PC와 CI 빌드 서버를 원격 제어 인프라로 전환해 조직 내부망 정찰을 가능하게 한다.
  • 이번 사례는 설치 단계 스크립트 차단만으로는 npm 공급망 공격을 막지 못하며, 코드 리뷰·의존성 거버넌스·런타임 통신 차단이 필수임을 보여준다. 한국의 공공·국방·금융 개발 환경도 오픈소스 의존도가 높아, CI 파이프라인과 레지스트리 신뢰 정책을 재점검해야 한다.

한국 정책 담당자는 공공 개발 프로젝트의 npm·오픈소스 사용 실태를 조사하고, 설치 스크립트 차단뿐 아니라 의존성 승인제·레지스트리 미러링·런타임 네트워크 통제 기준을 마련해 공급망 공격에 대비할 필요가 있다.

주요 용어: npm(자바스크립트 패키지 관리자), 공급망 공격(소프트웨어 제작·배포 경로를 악용하는 공격)

출처: BleepingComputer