포스트모템: 2026년 3월 Axios 공급망 공격

발행: (2026년 3월 31일 PM 08:38 GMT+9)
3 분 소요
원문: Dev.to

Source: Dev.to

사건

2026년 3월 31일, 자바스크립트 생태계에서 핵심 HTTP 클라이언트인 Axios를 목표로 한 고위험 공급망 공격이 발생했습니다. 공격자는 유지관리자의 NPM 계정을 탈취해 악성 의존성 plain-crypto-js를 주입했으며, 이 패키지는 크로스‑플랫폼 원격 접근 트로이목마(RAT)를 배포했습니다.

상세 정보

영향을 받은 버전

  • axios@1.14.1
  • axios@0.30.4

악성 의존성

  • plain-crypto-js@4.2.1

페이로드

  • 크로스‑플랫폼 RAT (Linux, macOS, Windows)

C2 서버

  • sfrclak.com:8000

해결 기간

  • 약 3시간 동안 활동 (00:21 – 03:29 UTC)

공격자는 악성 로직을 서브‑의존성에 숨겨 표준 보안 감사를 우회했습니다. 일반 npm install을 통해 설치되면 페이로드는 호스트 머신을 다음과 같이 스캔합니다:

  • 환경 변수: .env 파일 및 현재 쉘에 설정된 변수들.
  • 인증 토큰: ~/.npmrc~/.aws/credentials.
  • SSH 키: ~/.ssh에 있는 보호되지 않은 개인 키.

데이터는 sfrclak.com 명령‑제어(C2) 서버로 POST 요청을 통해 유출되었습니다.

복구 프로토콜

  1. 네트워크 싱크홀링/etc/hosts에 C2 도메인을 127.0.0.1로 매핑하여 추가 유출을 차단하고 전화‑홈 기능을 비활성화합니다.

  2. Lockfile 감사 – 로컬 프로젝트 전체에서 악성 패키지 흔적을 검색합니다:

    find . -type f \( -name "package-lock.json" -o -name "yarn.lock" \) -print0 \
        | xargs -0 grep "plain-crypto-js"
  3. 환경 정화 – 전역 NPM 캐시를 비우고 도구 관리자(예: mise)를 업데이트하여 앞으로 검증된 버전만 사용하도록 합니다.

Pro‑Tip: 항상 npm audit을 실행하거나 Snyk과 같은 도구를 사용해 package.json에 직접 나타나지 않는 “숨겨진” 서브‑의존성을 모니터링하세요.

0 조회
Back to Blog

관련 글

더 보기 »

TurboQuant MoE 0.3.0

v0.3.0의 주요 기능 - True 3-bit PolarQuant: 물리적 비트‑패킹 8 × 3‑bit를 3바이트에 담아 기본 KV 스토리지의 압축률을 5.8×‑6.0× 달성하고 정확도는 <0.1 %.