
Axios NPM 해킹 사건 2026: 개발자가 알아야 할 모든 것
2026년 3월 31일 axios npm 패키지가 해킹당했습니다. 공격 타임라인, RAT 악성코드 동작 원리, 감염 확인 방법과 대응 조치를 정리합니다.
Axios NPM 해킹 사건 2026: 개발자가 알아야 할 모든 것
npm install을 실행한 지 89초 만에 첫 번째 컴퓨터가 해커의 손에 넘어갔습니다.
2026년 3월 31일, 전 세계 JavaScript 생태계의 핵심 라이브러리 axios가 해킹당했습니다. 주간 다운로드 1억 회가 넘는 이 HTTP 클라이언트 라이브러리에 원격 접근 트로이목마(RAT)가 심어졌고, 약 3시간 동안 npm install을 실행한 모든 환경이 감염 위험에 노출됐습니다.
계약서 한 장에 며칠을 쓸 필요 없습니다. AiDocx는 초안부터 서명까지 커피 한 잔 안에 끝납니다. 하지만 그 전에, 이번 사건이 왜 모든 개발팀에게 중요한지 먼저 살펴보겠습니다.
Axios, 왜 이게 큰 문제인가
Axios는 웹 개발자라면 한 번쯤은 써본 HTTP 클라이언트입니다. React, Next.js, Vue, Express, NestJS — 프론트엔드부터 백엔드까지, 거의 모든 JavaScript 프로젝트의 package.json에 들어 있습니다.
npm 주간 다운로드 1억 회. 이 숫자가 의미하는 건, 이 라이브러리 하나가 뚫리면 전 세계 수백만 개의 프로젝트가 동시에 위험해진다는 것입니다.
한국에서도 대부분의 스타트업과 IT 기업이 axios를 사용하고 있습니다. 카카오, 네이버, 토스 같은 대기업부터 1인 개발자의 사이드 프로젝트까지 — 사실상 JavaScript를 쓰는 모든 곳이 영향권 안에 있었습니다.
공격 타임라인: 치밀한 18시간의 준비
이번 공격은 즉흥적이지 않았습니다. 최소 18시간 전부터 사전 준비가 이루어졌습니다.
1단계: 악성 패키지 사전 배치 (공격 18시간 전)
공격자는 [email protected]이라는 가짜 npm 패키지를 미리 등록했습니다. 실제 인기 라이브러리인 crypto-js와 이름이 비슷해 의심을 피할 수 있도록 설계됐습니다. 이 패키지 안에 RAT 페이로드가 숨어 있었습니다.
2단계: 메인테이너 계정 탈취
axios의 리드 메인테이너 Jason의 npm 계정이 탈취됐습니다. 2단계 인증(2FA)이 걸려 있었음에도 불구하고, 공격자는 복구 코드(recovery code)를 이용해 계정에 접근한 것으로 추정됩니다.
계정을 탈취한 공격자는 이메일을 ProtonMail로 변경하고, GitHub Actions CI/CD를 완전히 우회한 채 npm CLI로 직접 패키지를 퍼블리시했습니다.
3단계: 양쪽 브랜치 동시 공격
- 0분:
[email protected]퍼블리시 (1.x 브랜치) - +39분:
[email protected]퍼블리시 (0.x 브랜치)
1.x를 쓰든 0.x를 쓰든, 두 브랜치 모두 39분 안에 오염됐습니다.
4단계: 89초 만에 첫 감염
보안 기업 Huntress의 SOC(보안관제센터)에서 악성 패키지 퍼블리시 89초 만에 첫 번째 감염 호스트를 탐지했습니다. npm의 의존성 해석 속도가 얼마나 빠른지 보여주는 충격적인 수치입니다.
5단계: 약 3시간 후 삭제
StepSecurity가 최초로 이상을 감지하고 경보를 발령했습니다. npm에서 악성 버전이 삭제되기까지 약 3시간이 걸렸고, 그 사이 수백 대의 기기가 이미 감염된 상태였습니다.

악성코드 동작 원리: 설치되면 끝
이번 공격이 특히 무서운 이유는 악성코드의 정교함에 있습니다.
감염 메커니즘
악성 axios 버전은 [email protected]을 의존성으로 추가합니다. 이 패키지는 axios 코드에서 실제로 import되지 않습니다. 유일한 목적은 postinstall 스크립트를 실행해 RAT를 설치하는 것입니다.
OS별 맞춤 공격
악성코드는 운영체제를 감지하고 각 플랫폼에 최적화된 페이로드를 실행합니다.
Windows: PowerShell 기반 RAT. 레지스트리에 영구 상주하며 문서, 바탕화면, OneDrive 폴더를 스캔합니다. PowerShell.exe를 wt.exe(Windows Terminal)로 위장해 프로세스 탐지를 회피합니다.
Linux: Python 기반 RAT. 의도적으로 영구 상주 기능이 없습니다. CI/CD 파이프라인을 노린 설계입니다. 환경 변수에 저장된 시크릿, 토큰, API 키를 탈취합니다. 컨테이너는 재부팅되지 않으니 영구 상주가 필요 없다는 판단입니다.
macOS: 별도 변종 RAT. 개발자 워크스테이션의 자격증명 수집에 특화됐습니다.
자기 은폐
실행 후 악성코드는 자기 자신을 삭제하고, package.json을 정상 버전으로 교체합니다. C2 서버와의 통신은 npmjs.com 트래픽으로 위장합니다. 감염 후 node_modules를 열어봐도 아무런 흔적이 남아있지 않습니다.

한국 개발 환경에서의 시사점
한국 IT 환경은 이번 공격에 특히 취약한 구조를 가지고 있습니다.
CI/CD 파이프라인 의존도 높음: GitHub Actions, Jenkins, GitLab CI를 통한 자동 배포가 보편화돼 있어, npm install 한 번이면 프로덕션 서버까지 감염이 전파될 수 있습니다.
모노레포 구조의 리스크: 많은 한국 스타트업이 Turborepo, Nx 같은 모노레포를 사용합니다. 하나의 npm install이 프론트엔드, 백엔드, 관리자 패널까지 한꺼번에 감염시킬 수 있습니다.
package-lock.json 관리 소홀: package-lock.json을 .gitignore에 넣어놓는 프로젝트가 아직 많습니다. lock 파일이 없으면 매번 최신 버전을 받아오기 때문에 이런 공격에 그대로 노출됩니다.
지금 당장 확인해야 할 것
1. lock 파일에서 감염 버전 확인
package-lock.json이나 yarn.lock에서 [email protected] 또는 [email protected]가 있는지 확인하세요.
2. 악성 패키지 존재 여부
node_modules/plain-crypto-js 디렉토리가 있으면 감염된 것입니다.
3. 안전한 버전으로 다운그레이드
[email protected] 또는 [email protected]으로 즉시 변경하세요.
4. 스크립트 차단 후 재설치
node_modules와 lock 파일을 삭제한 뒤, npm install --ignore-scripts로 재설치합니다.
5. 네트워크 로그 점검
방화벽이나 프록시 로그에서 sfrclack.com:8000으로의 통신이 있었는지 확인합니다.
6. 모든 인증 정보 교체
감염이 확인되면 npm 토큰, SSH 키, AWS/GCP 클라우드 키, CI/CD 시크릿, DB 접속 정보를 모두 교체하세요.

오픈소스 신뢰 모델의 한계
이번 사건은 오픈소스 생태계의 구조적 문제를 드러냅니다. 메인테이너 한 명의 계정이 뚫리면, 그 라이브러리에 의존하는 수억 개의 프로젝트가 한꺼번에 위험해집니다.
2FA를 걸어놔도 복구 코드로 우회당하고, postinstall 스크립트라는 정상 기능이 공격 벡터가 됩니다. "npm이 끝장난 거 아니냐?"라는 개발자 커뮤니티의 반응이 과장만은 아닙니다.
장기적인 방어 전략
- 정확한 버전 고정 —
^나~대신 exact version 사용 - postinstall 스크립트 비활성화 —
.npmrc에ignore-scripts=true설정 - CI/CD에 npm audit 필수 포함
- 의존성 최소화 — 패키지 하나가 공격 표면 하나
- 서플라이 체인 모니터링 도구 도입 — Socket, StepSecurity, Aikido 등
문서 보안, 선택이 아니라 필수인 이유
axios 해킹 사건이 보여주는 교훈은 명확합니다. 도구가 안전하지 않으면, 그 도구로 만든 모든 것이 안전하지 않습니다.
이건 코드만의 문제가 아닙니다. 매일 팀이 주고받는 계약서, NDA, 투자 자료, 제안서 — 이 문서들이 보안이 검증되지 않은 플랫폼에서 오가고 있다면, axios와 같은 사고가 언제든 반복될 수 있습니다.
AiDocX는 문서 보안을 나중에 덧붙이는 것이 아니라, 처음부터 설계의 핵심으로 삼았습니다:
- 엔드투엔드 암호화 — 모든 문서는 전송 중, 저장 중 모두 암호화
- 세밀한 접근 제어 — 문서별로 열람, 다운로드, 인쇄 권한을 개별 설정
- 실시간 열람 추적 — 누가, 언제, 어디서, 얼마나 오래 문서를 봤는지 기록
- 동적 워터마킹 — 열람자 정보가 문서에 자동 삽입되어 무단 유출 억제
- 전자서명 + 감사 추적 — 법적 효력이 있는 전자서명과 완전한 이력 관리
- AI 문서 생성 — 계약서, NDA, 사업 문서를 몇 분 만에 생성, 모두 보안 플랫폼 안에서
오픈소스 생태계가 신뢰를 재건하는 동안, 비즈니스의 핵심 문서들은 처음부터 보안이 내장된 플랫폼에서 관리되어야 합니다.
FAQ
우리 프로젝트가 영향받았는지 어떻게 확인하나요?
package-lock.json이나 yarn.lock에서 [email protected] 또는 [email protected]를 검색하세요. 2026년 3월 31일 3시간 노출 기간 중 npm install을 실행했다면 감염 가능성이 있습니다.
2FA가 걸려 있었는데 어떻게 뚫렸나요?
메인테이너가 2FA를 사용하고 있었지만, 공격자가 복구 코드(recovery code)를 이용해 접근한 것으로 추정됩니다. 정확한 경위는 아직 조사 중입니다.
지금 axios를 써도 안전한가요?
네 — 악성 버전은 npm에서 이미 삭제됐습니다. [email protected] 또는 [email protected]으로 업데이트하고 lock 파일을 확인하세요.
어떤 데이터가 유출될 수 있나요?
RAT은 파일 시스템(문서, 바탕화면, OneDrive), 환경 변수, SSH 키, 클라우드 자격증명을 수집합니다. 감염됐다면 해당 기기의 모든 인증 정보가 노출됐다고 가정하고 교체해야 합니다.
서플라이 체인 공격을 예방하려면?
정확한 버전 고정, postinstall 스크립트 비활성화, CI/CD에 npm audit 포함, 의존성 최소화, Socket이나 StepSecurity 같은 모니터링 도구 도입을 권장합니다.
AiDocX 블로그 더보기
AI 법률 상담 기록 작성법: 변호사·법무팀 필수 양식 + 자동 작성 가이드
변호사, 법무팀, 법률사무소를 위한 법률 상담 기록 표준 양식. IRAC 형식 무료 템플릿 + AI 자동 작성 프롬프트. 수임 기록부터 법률의견서까지 10분 완성.
AI 부동산 상담 일지 작성법: 공인중개사 필수 양식 + 자동 작성 가이드
공인중개사, 부동산 중개법인을 위한 부동산 상담 일지 표준 양식. 매매·임대·전세 상담 기록 무료 템플릿 + AI 자동 작성법. 중개대상물 확인설명서 연동.
AI 아동복지 사례 기록 작성법: 사회복지사 필수 양식 + 자동 작성 가이드
아동보호전문기관, 지역아동센터, 드림스타트 사회복지사를 위한 아동복지 사례 기록 표준 양식. 초기 사정·서비스 계획·경과 기록 무료 템플릿 + AI 자동 작성.