피드로 돌아가기
InfoQInfoQ
Security

주간 1억 다운로드 Axios 침해, 공급망 공격의 치명적 교훈

Axios npm Package Compromised in Supply Chain Attack

Daniel Curtis2026년 4월 2일3intermediate

Context

Axios 패키지 관리자 계정 탈취를 통한 Remote Access Trojan 삽입 사고 발생. 특정 버전의 의존성 트리에 악성 패키지를 심어 개발 환경을 공격하는 Supply Chain Attack 구조. 버전 범위 지정 방식인 Caret range 사용 시 악성 코드가 자동 설치되는 취약점 노출.

Technical Solution

  • Socket의 자동화된 Malware Scanner를 통해 악성 전이 의존성 plain-crypto-js@4.2.1를 6분 만에 탐지
  • 정상 라이브러리를 모방한 Typosquatting 기법으로 기초 패키지를 배포한 후 Axios 릴리스 시점에 맞춰 악성 코드를 주입하는 좌표 공격 수행
  • GitHub Release Tag와 npm Registry 간의 배포 불일치를 확인하여 비정상적인 배포 워크플로우 식별
  • 장기 유효 npm Token과 Trusted Publishing 설정의 취약점을 공격 벡터로 분석
  • ~/.npmrc 설정에서 ignore-scripts=true 옵션을 통해 설치 스크립트 실행을 차단하는 완화 전략 제시
  • Bun 및 pnpm과 같이 기본적으로 설치 스크립트를 실행하지 않는 패키지 매니저의 보안 이점 확인

Impact

  • 주간 다운로드 100 million 회 이상의 라이브러리 대상 공격
  • 악성 패키지 탐지까지 소요 시간 6분
  • 두 버전의 Axios 패키지가 39분 간격으로 동시 오염

Key Takeaway

의존성 최소화(Dependency Minimalism)가 단순한 최적화를 넘어 보안 포스처를 강화하는 핵심 설계 원칙임을 시사함. 불확정적인 버전 범위 지정보다는 Strict Pinning을 통한 결정론적 빌드 환경 구축이 필수적임.


패키지 버전의 Caret(^) 범위를 제거하고 Exact Version으로 고정하며, 설치 스크립트 실행을 제한하는 설정을 적용할 것

원문 읽기