Axios npm 계정 침해로 versions 1.14.1 및 0.30.4가 188분간 유포되어 8,300만 주간 다운로드 환경에 cross-platform RAT 설치
The Axios Supply Chain Attack Explained: How a Compromised npm Account Put 83 Million Projects at Risk
AI 요약
Context
Axios는 millions of package.json files에서 표준 의존성으로 사용되며 8,300만 주간 다운로드를 기록하는 JavaScript HTTP client이다. 공격자는 @jasonsaayman 계정의 npm 자격 증명을 탈취하여 직접 악성 버전을 게시했으며 project의 GitHub Actions CI/CD pipeline을 완전히 우회했다.
Technical Solution
- [package-lock.json 또는 yarn.lock] → [npm ci 실행]으로 lockfile에 고정된 이전 clean version 사용
- [npm install/update command] → [npm ci --ignore-scripts flag 적용]으로 postinstall hook 실행 차단
- [pipelines] → [npm config set ignore-scripts true 설정]으로 전역 수준 스크립트 실행 방지
- [CI/CD environment] → [의존성 게시 전 hash 검증]으로 registry 버전과 source code 정합성 확인
- [automation systems] → [dependency tree auditing 도구 적용]으로 injected 의존성 감지
Impact
node_modules에 188분간 설치된 환경은 fully compromised 상태이며 C2 server 연결이 estabelecida 되었다. additional packages(@qqbrowser/openclaw-qbot, @shadanai/openclaw)에서도 동일한 malicious plain-crypto-js payload이 발견되어 time window 독립적 노출이 확인되었다.
Key Takeaway
공격자가 registry에 직접 게시하는 방식은 lockfile을 사용하는 build system에 영향을 주지 않으며 --ignore-scripts flag는 postinstall hook 기반 공격을 완전 차단한다.
실천 포인트
CI/CD pipeline에서 npm ci 실행 시 --ignore-scripts flag를 기본 적용하면 postinstall hook 기반 supply chain attack을 완전 차단하고 lockfile 정합성 검증과 결합 시 registry 유포 악성 버전의 영향을 원천 방지