핵심 요약
- 악성 Axios 버전 1.14.1 및 0.30.4가 원격 제어 트로이 목마(RAT)를 배포했습니다.
- 구글은 이번 정교한 공격의 배후로 북한 해킹 그룹 UNC1069를 지목했습니다.
- 주간 다운로드 수가 1억 건에 달하는 라이브러리가 침해되어 즉각적인 보안 점검이 시급합니다.
핵심 요약

구글 위협 인텔리전스 그룹(GTIG)의 수석 분석가 존 헐트퀴스트는 성명을 통해 "북한 해커들은 공급망 공격에 대한 풍부한 경험을 가지고 있으며, 역사적으로 이를 암호화폐 탈취에 이용해 왔다"고 밝혔습니다. 또한 "이번 사건의 전체적인 범위는 아직 불분명하지만, 침해된 패키지의 인기를 고려할 때 광범위한 영향을 미칠 것으로 예상된다"고 덧붙였습니다. GTIG는 이번 공격의 배후로 북한의 위협 행위자인 UNC1069를 지목했습니다.
공격은 3월 31일 위협 행위자가 npm 저장소에 악성 버전인 [email protected]과 [email protected]를 게시하면서 시작되었습니다. 이는 프로젝트 주요 관리자의 npm 계정을 탈취하고, 프로젝트의 보다 안전한 OIDC 기반 게시 워크플로우를 우회하기 위해 오래된 레거시 토큰을 사용하여 수행되었습니다. 악성 패키지에는 RAT를 다운로드하기 위한 설치 후(post-install) 스크립트가 포함된 가짜 종속성 plain-crypto-js가 포함되어 있었습니다.
이번 침해는 약 175,000개의 종속 프로젝트가 있는 라이브러리의 소프트웨어 공급망 내 치명적인 취약성을 드러냈습니다. 개발자 환경과 CI/CD 파이프라인에 미치는 영향은 심각한 자격 증명 탈취와 기업 네트워크 내 측면 이동(Lateral Movement)으로 이어질 수 있습니다. Wiz와 Snyk 같은 기업들에게 이번 사건은 종속성 관리 및 런타임 검증 강화의 필요성을 강조하며, 보안 스캔 및 위협 인텔리전스 서비스에 대한 수요를 증가시킬 수 있습니다.
공격자들은 매우 정교한 운영 능력을 보여주었습니다. 주요 공격 약 18시간 전에 nrwise라는 이름의 계정이 npm 저장소에 정상적인 기록을 남기기 위해 깨끗한 미끼 패키지인 [email protected]을 게시했습니다. Axios 침해 직전, 그들은 이를 악성 페이로드가 포함된 4.2.1 버전으로 업데이트했습니다.
침해된 Axios 버전은 이 악성 패키지를 종속성으로 추가했습니다. 개발자가 Axios를 설치하거나 업데이트할 때 plain-crypto-js의 postinstall 스크립트가 실행되어 sfrclak.com에 위치한 명령 및 제어(C2) 서버에 접속하여 플랫폼별 멀웨어를 가져왔습니다.
멀웨어는 Windows, macOS, Linux용 변종을 가진 교차 플랫폼 RAT였습니다.
/Library/Caches/com.apple.act.mond에 기록되었으며, Gatekeeper를 우회하기 위해 주입된 페이로드에 자가 서명을 할 수 있었습니다.wt.exe)로 위장한 PowerShell 스크립트가 %PROGRAMDATA%에 복사되었으며, 레지스트리 Run 키를 통해 지속성을 확보했습니다./tmp/ld.py로 저장되어 실행되었습니다.페이로드를 배포한 후, 스크립트는 악성 package.json을 깨끗한 버전으로 교체하여 흔적을 지우려 시도했으며, 이는 설치된 패키지를 검사할 수 있는 개발자들을 속이기 위함이었습니다.
악성 패키지가 3시간 이내에 npm 저장소에서 제거되었음에도 불구하고, Axios의 높은 다운로드 속도로 인해 상당수의 시스템이 감염되었습니다. Wiz는 모니터링 중인 영향을 받은 환경 중 약 3%에서 멀웨어가 실행되는 것을 관찰했다고 보고했습니다. 보안 기업 Huntress 또한 100대 이상의 기기가 영향을 받았다고 보고했습니다.
보안 전문가들은 즉각적인 조치를 촉구하고 있습니다. 조직은 프로젝트 잠금 파일(lockfile)과 CI/CD 로그에서 [email protected], [email protected] 또는 [email protected]의 흔적이 있는지 감사할 것을 권고받습니다.
Snyk 연구원들은 "감염된 시스템을 치료하려 하지 말고, 안전함이 확인된 스냅샷에서 다시 구축하라"고 조언했습니다. 이러한 버전이 설치된 모든 환경은 완전히 침해된 것으로 간주해야 합니다. npm 토큰, 클라우드 제공업체 키, SSH 키를 포함한 모든 자격 증명은 폐기하고 재발급해야 합니다.
장기적인 방어를 위해 보안 팀은 자동화된 빌드 파이프라인에서 npm ci --ignore-scripts를 강제 적용하여 악성 스크립트의 실행을 방지하는 것을 고려해야 합니다. 또한 새로 게시된 패키지의 설치를 차단하는 패키지 기간 정책을 구현했다면, 악성 plain-crypto-js 종속성이 게시된 지 하루도 채 되지 않았기 때문에 이번 공격을 예방할 수 있었을 것입니다.
이 기사는 정보 제공 목적으로만 작성되었으며 투자 조언을 구성하지 않습니다.