2025.9.10 피싱 공격으로 주간 26억 다운로드 npm 패키지 18개 해킹

📌 사건 개요

  • 발생일시: 9월 8일(UTC) 오후 1시 16분경
  • 공격 방식: npm 개발자 계정(‘qix’, Josh Junon) 피싱 이메일 탈취
  • 피싱 수법: support@npmjs.help라는 가짜 주소로 “2단계 인증(2FA) 업데이트 필요” 안내 → 계정 접속 유도
  • 영향 패키지: 총 18개 핵심 자바스크립트 패키지 (예: chalk, debug, ansi-styles)
  • 다운로드 규모: 주간 총 26억 건 이상 (npm 역사상 최대 규모 파급력)

📌 악성코드 동작 방식

  • 목적: 브라우저 기반 암호화폐 거래 탈취
  • 특징:
    • 운영체제 감염 X, 브라우저와 API 레벨에서만 작동
    • 주요 암호화폐 지갑(메타마스크, 팬텀 등) API 호출 가로채 거래 조작
    • 사용자 화면에는 정상 주소 표시 → 실제 전송은 공격자 지갑 주소
  • 지원 블록체인: 이더리움, 비트코인, 솔라나, 트론, 라이트코인, 비트코인캐시 등
  • 피해 규모: 짧은 노출시간 덕에 실제 피해액 약 50달러(7만 원) 수준

📌 대응 현황

  • 탐지 및 공개: 보안업체 아이키도시큐리티가 5분 내 탐지, 1시간 내 공개
  • npm 측 조치:
    • 당일 오후 5시 17분(UTC) 침해 인정
    • 오후 7시 59분까지 영향받은 모든 악성 패키지 제거
    • 피해 개발자 계정 접근 차단, 일부 패키지 복구 작업 진행 중

📌 구조적 문제점

  • 최근 eslint-config-prettier(7월), Nx(8월) 공격과 유사 → 피싱 통한 계정 탈취 반복
  • npm 생태계의 구조적 취약성:
    • 패키지 관리자 계정 보안에 의존
    • 대규모 의존성으로 인해 단일 계정 침해가 글로벌 피해로 확산
  • 보안 전문가 권고:
    • 패키지 관리자 보안 인식 강화
    • 강력한 2FA 적용 및 피싱 대응 훈련
    • npm 자체의 모니터링·인증 체계 강화 필요

📌 의미

  • 단 2시간 반 노출에도 글로벌 소프트웨어 공급망 전반에 충격
  • 피해는 제한적이었지만, 잠재적 파급력은 역대 최대
  • 오픈소스 생태계 신뢰암호화폐 보안 양쪽에 심각한 경고로 작용