- npm에 배포된 악성 Axios 버전에는 설치 중에 크로스 플랫폼 원격 액세스 트로이목마를 배포하는 숨겨진 종속성이 추가되었습니다.
- 공격자들은 손상된 관리자 계정과 기존 npm 토큰을 악용하여 axios@1.14.1, axios@0.30.4 및 plain-crypto-js@4.2.1 버전을 게시했습니다.
- RAT(원격 접근 트로이목마)는 비밀 정보를 유출하고, 저장소 및 클라우드 환경에 접근할 수 있으며, sfrclak.com, 142.11.206.73 등의 IP 주소와 특정 파일 시스템 흔적을 포함한 여러 침해 지표(IOC)를 가지고 있습니다.
- 보안팀은 개발자들에게 잠금 파일 감사, 자격 증명 순환, 공급망 워크플로 강화, 그리고 감염된 시스템을 완전히 손상된 것으로 간주할 것을 촉구합니다.

긴장된 몇 시간 동안, 전 세계에서 가장 널리 사용되는 자바스크립트 라이브러리 중 하나가 문제를 일으켰습니다. Axios악성 소프트웨어를 유포하는 예상치 못한 수단이 되었습니다. npm 생태계에 대한 공급망 공격 일상적인 종속성 업데이트가 수십만 대의 개발자 컴퓨터와 빌드 시스템에 대한 공격자의 잠재적인 백도어로 변질되었습니다.
여러 보안 회사와 구글 위협 인텔리전스 그룹의 조사관들은 악의적인 공격자가 어떻게 침투했는지 종합적으로 파악했습니다. 원격 액세스 트로이 목마 (RAT)를 npm의 특정 Axios 릴리스에 통합하는 것은 다음과 유사합니다. npm 공급망 웜.
Axios는 무엇이며, 이번 타협이 왜 그토록 중요한가
본질적으로 Axios는 다음과 같습니다. Node.js 및 브라우저용 프로미스 기반 HTTP 클라이언트수많은 프로젝트에서 보이지 않는 곳에서 "서버에서 메시지를 가져오세요" 또는 "이 양식을 API에 제출하세요"와 같은 일상적인 작업을 처리하며, 개발자가 직접 저수준 네트워킹 코드를 작성할 필요가 없습니다.
Axios는 브라우저와 Node.js 서버 모두에서 실행되기 때문에 중요한 역할을 하게 되었습니다. 최신 자바스크립트 스택의 기본적 의존성명시적으로 설치한 적이 없더라도 다음과 같은 상황에서 간접적으로 해당 프로그램에 의존하고 있을 수 있습니다.
- React, Vue 또는 Angular와 같은 프레임워크로 구축된 웹 애플리케이션에서 API 호출을 Axios로 래핑하는 방식을 사용하세요.
- Electron, React Native 및 이와 유사한 웹 기반 런타임 기술로 구축된 데스크톱 또는 모바일 앱을 실행합니다.
- 개발자가 HTTP 요청에 Axios를 선택한 소규모 SaaS 도구, 관리자 대시보드 또는 자체 호스팅 서비스와 상호 작용하세요.
그런 의미에서 Axios는 다소 다음과 같습니다. 집의 배관평소에는 잘 생각하지 않지만, 데이터 '전달'은 앱과 외부 세계 사이에서 데이터를 "넘쳐흐르게" 하는 역할을 합니다. 데이터 유출이 발생했을 때 비로소 그 존재를 알아차리게 되는데, 이번 공격이 바로 그런 상황을 소프트웨어 생태계 규모로 초래한 것입니다.
Axios npm 공격은 어떻게 전개되었는가
이번 사건은 두 가지 npm 릴리스와 관련이 있습니다. axios@1.14.1 axios@0.30.4공격자들은 프로젝트 주요 관리자 중 한 명의 탈취된 계정 정보를 이용하여 해당 프로젝트를 게시하는 데 성공했습니다. 악성 빌드가 npm에 직접 배포됩니다. 공개된 GitHub 소스 코드는 그대로 둔 채, 이러한 패턴은 다음에서도 설명되어 있습니다. 샤이훌루드 분석.
공격자는 Axios의 코드를 눈에 띄게 변경하는 대신, 겉보기에는 관련이 없어 보이는 새로운 종속성을 추가했습니다. plain-crypto-js@4.2.1이 패키지는 해당 운영을 위해 특별히 제작되었습니다. Axios의 소스 파일 어디에도 해당 내용이 임포트되지 않았습니다.이는 차이점을 면밀히 검토하는 사람이라면 누구나 알아챌 수 있는 위험 신호이지만, 레지스트리를 그대로 신뢰하는 자동화된 워크플로에서는 쉽게 간과될 수 있습니다.
두 가지 오염된 악시오스 버전은 합쳐서 엄청난 잠재적 파급 효과를 가져왔으며, 그 범위는 최대 200억 파운드에 달했습니다. npm에서 매주 약 100억 건의 다운로드가 발생합니다.Axios는 클라우드 환경 및 CI/CD 파이프라인의 약 80%에 설치되어 있는 것으로 추정되므로, 짧은 노출 기간조차도 심각한 시스템적 위험을 초래할 수 있습니다.
결정적으로, 영향을 받은 버전들은 전혀 나타나지 않았습니다. 공식 GitHub 태그 Axios 프로젝트의 경우, 이 세부 사항은 일반적인 릴리스 프로세스가 우회되었음을 강력하게 시사합니다. 공격자는 탈취한 npm 토큰을 이용하여 공개 소스 기록과는 별도로 패키지를 레지스트리에 직접 푸시했습니다.
악성 의존성과 RAT의 작동 방식
타협의 핵심은 설치 시점에 발생한 일에 있습니다. 실행된 모든 워크플로는 다음과 같습니다. npm install 그리고 끌어당겼다 axios@1.14.1, axios@0.30.4 or plain-crypto-js@4.2.1 스크립트가 활성화되면 숨겨진 설치 후 루틴이 실행됩니다.
악성 의존성 내부에는, 설치 후 스크립트(node setup.js) 자동으로 실행되었습니다. 해당 스크립트는 난독화된 드로퍼를 다운로드했고, 드로퍼는 플랫폼별로 맞춤 제작된 RAT 페이로드를 가져왔습니다. macOS, Windows 또는 LinuxRAT(원격 접근 트로이목마)는 공격자에게 감염된 시스템에 대한 대화형 원격 접근 권한을 부여했습니다.
일단 활성화되면 이 원격 접속 트로이목마는 시스템을 열거하고, 비밀 정보를 수집하고, 임의의 명령을 실행할 수 있습니다. 생각해 보세요. 클라우드 API 키, CI 배포 토큰, npm 인증 토큰, SSH 키, 저장소 액세스 토큰 및 기타 민감한 환경 변수 일반적으로 빌드 에이전트나 개발자 노트북에 주입됩니다.
공격자는 여기서부터 소스 코드 접근, 향후 릴리스 변조, 백도어 추가, 운영 인프라로의 횡적 침투 등 다양한 방향으로 공격을 전개할 수 있습니다. 암호화폐 관련 프로젝트(지갑, 거래소, DeFi 프런트엔드 등)를 개발하는 개발자에게 이러한 접근 권한은 직접적인 위협이 될 수 있습니다. 암호화폐 절도 또는 더 광범위한 금융 사기.
은밀한 전술: 왜 그 공모 사실을 알아채기 어려웠을까
악성코드 제작자들은 흔적을 최소화하고 최대한 일시적으로만 남기기 위해 상당한 노력을 기울였습니다. 연구원들에 따르면, 해당 드로퍼는 흔적을 깨끗이 지웠다 처형 직후.
즉, 만약 당신이 조사했다면 node_modules/plain-crypto-js/package.json 시간 내에 감염되었다면, 설치 후 스크립트도 없고 아무런 문제가 없는 완전히 무해한 매니페스트만 표시될 것입니다. setup.js명백한 범죄 혐의점은 발견되지 않았습니다. 일반적인 도구로는 다음과 같은 것들이 있습니다. npm audit 혹은 간단한 수동 디렉토리 검색으로는 이미 일어난 일을 알아낼 수 없을 것이다.
실제로 이러한 행태로 인해 수사관들은 외부 자료에 의존하게 되었습니다. 손상 지표 (IOC)단순한 npm 패키지 콘텐츠의 정적 스캔보다는 네트워크 원격 측정 데이터와 호스트 아티팩트를 활용했습니다. 공격 사실이 공개될 무렵에는 악성 버전이 이미 npm에서 삭제된 상태였기 때문에 정확한 실행 흐름을 재구성하는 것이 더욱 어려워졌습니다.
Axios 사건의 주요 침해 지표
악성코드가 흔적을 지우려 했지만, 보안팀은 환경의 영향을 판단하는 데 도움이 될 수 있는 구체적인 침해지표(IOC)를 공유했습니다. 가장 중요한 IOC는 다음과 같습니다.
에 네트워크 측다음과 같은 사람들과 소통해 보세요:
- 도메인 : sfrclakcom
- IP 주소: 142.11.206.73
두 지표 모두 주요 보안 업체에서 차단했지만, 과거 로그 및 SIEM 검색에서 여전히 유용한 지표로 남아 있습니다.
에 파일 시스템조사관들은 RAT와 관련된 유물들을 강조했습니다.
- 맥 OS :
/Library/Caches/com.apple.act.mond - Linux :
/tmp/ld.py - Windows: 아래 파일
%PROGRAMDATA%\wt그리고 임시 스크립트는 다음과 같습니다.%TEMP%\6202033.vbsor.ps1실행 중에 잠깐 동안만 존재할 수 있습니다.
npm 패키지 측면에서 보면, 손상된 빌드 및 알려진 체크섬 위치 :
- axios@1.14.1, SHA-256:
2553649f2322049666871cea80a5d0d6adc700ca - axios@0.30.4, SHA-256:
d6f3f62fd3b9f5432f5782b62d8cfd5247d5ee71 - plain-crypto-js@4.2.1, SHA-256:
07d889e2dadce6f3910dcbc253317d28ca61c766
Huntress와 같은 보안 회사들은 최소한 다음과 같은 사실을 확인했습니다. 135개의 시스템이 공격자의 명령 및 제어 서버에 접속했습니다. 상대적으로 짧은 노출 기간 동안 발생한 일이며, 구글 연구진은 이로 인해 "수십만 건"의 기밀 정보가 유출되었을 가능성이 있다고 경고했습니다.
이번 공격의 배후는 누구였는가? 배후 규명과 북한과의 연관성
구글의 위협 인텔리전스 그룹은 악시오스 해킹 사건이 특정 공격과 연관되어 있다고 공개적으로 밝혔습니다. 북한의 위협 행위자로 의심되는 인물 UNC1069로 추적되는 이 네트워크에 대해 구글 위협 분석팀의 수석 분석가인 존 헐퀴스트는 북한 해커들이 오랜 기간 동안 이러한 활동을 해왔다고 지적했습니다. 암호화폐를 훔치려는 공급망 공격 및 기타 자산.
구글과 다른 보안 업체들에 따르면, 악시오스 사건은 라자루스 같은 단체를 포함한 북한 그룹들이 벌이는 더 광범위한 공격 캠페인의 일부인 것으로 보이며, 이 캠페인은 특정 대상을 집중적으로 공격하는 것을 목표로 한다. 갈취, 금융 절도 및 데이터 유출 암호화폐, 핀테크, 클라우드 인프라와 같은 분야를 목표로 합니다.
전체적인 영향은 아직 불분명하지만, 매우 인기 있는 소프트웨어 패키지라는 점, 개발자 환경에 대한 접근 권한, 그리고 도난당한 데이터의 특성을 고려할 때 분석가들은 상당한 피해가 발생할 것으로 예상하고 있습니다. 후속 공격 공급망 침해, 랜섬웨어 공격, 직접적인 암호화폐 절도 등의 형태로 나타날 수 있습니다.
관리자 계정과 npm 워크플로가 어떻게 악용되었는지
오픈소스 커뮤니티에 가장 불안감을 주는 측면 중 하나는 공격자들이 공개 코드베이스를 건드리지 않고 악성 Axios 버전을 배포할 수 있었던 방식입니다. 핵심은 다음과 같았습니다. npm 관리자 계정이 해킹당했습니다.이 파일은 jasonsaayman이라는 이름으로 알려진 Axios의 주요 관리자 소유로 추정됩니다.
공격자들은 해당 npm 계정과 연결된 이메일 주소를 자신들이 통제하는 주소로 변경한 것으로 알려졌습니다. 이러한 조치를 통해 그들은 다음과 같은 이점을 얻을 수 있었습니다. 정당한 관리자를 차단하세요 그리고 마치 정식 업데이트인 것처럼 새로운 패키지 버전을 배포하면서도 공식 GitHub 저장소는 아무런 문제가 발생하지 않았습니다.
이번 작업을 통해 npm의 구조적 문제점도 드러났습니다: 지원 관련 문제 기존 인증 토큰, 그리고 필요성 공급망 관리 도구 그리고 더욱 엄격한 토큰 정책.
이 경우 보안 연구원들은 npm이 여전히 문제가 있다고 지적했습니다. 기존 토큰으로 기본 설정됨 게시를 위한 것이었지만, 최신 게시 방식이 구성되면 해당 토큰이 자동으로 취소되는 제어 장치가 없었습니다. 이러한 공존으로 인해 UNC1069가 악용할 수 있는 취약한 측면 통로가 생겼습니다.
노출 기간 및 조기 발견
Axios 해킹 사건은 오랜 기간에 걸쳐 서서히 진행된 것이 아니었습니다. 조사 결과 악성 버전은 다음과 같은 경로로 배포된 것으로 나타났습니다. npm에서 약 3시간 동안 이용 가능합니다. 시간대에 따라 일요일 늦은 밤부터 월요일 또는 화요일 새벽 사이입니다.
StepSecurity를 비롯한 여러 기업들은 공격자가 생태계에 악성 코드를 심어놓았다고 지적했습니다. 악성 종속성의 깨끗한 버전이 약 18시간 전에 출시되었습니다. 악성 변종을 Axios에 첨부했습니다. 이러한 조치는 패키지에 대한 악의 없는 이력을 구축하고 종속성이 갑자기 나타났을 때 자동 이상 탐지기가 작동하지 않도록 하기 위한 것으로 보입니다.
감염된 Axios 배포판이 배포되자마자, 트로이목마는 실행되는 각 시스템에서 광범위한 정찰 활동을 수행했습니다. 디렉터리 스캔, 실행 중인 프로세스 목록 표시, 디스크 열거 그리고 나서 그 정보를 공격자의 서버로 전송합니다. 이 모든 과정은 개발자에게는 평범한 종속성 설치처럼 보이는 동안 백그라운드에서 진행되었습니다.
관리자, npm, 그리고 여러 보안 업체들의 coordinated response 덕분에 악성 버전은 몇 시간 만에 제거되었습니다. 하지만 여러 연구원들과 구글 자체 팀에서 강조했듯이, 노출 기간이 짧다고 해서 위험도가 낮다는 의미는 아닙니다. 목표 대상이 주간 다운로드 수가 수천만 건에 달하는 라이브러리일 경우.
개발자, 암호화폐 프로젝트 및 최종 사용자에게 미치는 영향
실질적인 관점에서 볼 때, 악시오스 사건의 가장 직접적인 피해자는 다음과 같습니다. 개발자 및 빌드 환경 악성 버전을 설치한 경우입니다. 스크립트가 활성화된 상태에서 axios@1.14.1, axios@0.30.4 또는 plain-crypto-js@4.2.1을 가져오는 설치 또는 빌드를 실행한 사람은 시스템이 완전히 손상되었을 가능성이 있다고 가정해야 합니다.
암호화폐 분야의 프로젝트, 즉 지갑, 중앙 집중식 및 분산형 거래소, DeFi 대시보드, 거래 봇, Web3 프런트엔드 등의 경우 성공 여부가 특히 중요합니다. 이러한 시스템 중 상당수는 블록체인 게이트웨이, API 및 백엔드 서비스와 통신하기 위해 Axios에 의존합니다.또한 이들은 개인 키, API 자격 증명 및 사용자 데이터와 같은 민감한 비밀 정보를 관리하는 경우가 많습니다.
해당 프로젝트의 개발자 워크스테이션이나 CI 에이전트가 감염되면 공격자는 로컬에 저장된 비밀 정보뿐만 아니라 다른 정보까지도 획득할 수 있습니다. 리포지토리 및 배포 파이프라인에 대한 접근 권한그렇게 하면 향후 릴리스에 악성 코드를 삽입하거나, 최종 사용자를 간접적으로 공격하거나, 자금을 다른 곳으로 빼돌릴 수도 있습니다.
반면, 브라우저에서 완성된 애플리케이션을 실행하는 사용자는 상황이 더 낫습니다. RAT가 실행 중에 배포되었기 때문입니다. 설치 및 빌드 단계브라우저 실행 중에 발생하는 것이 아닙니다. 따라서 클라이언트 측 호출에 Axios를 사용하는 사이트를 방문하는 것만으로는 공격이 발생하지 않습니다. 위험은 해당 npm 패키지를 설치한 사용자에게 집중됩니다.
개발자들이 즉시 취해야 할 조치
보안 팀과 유지 관리자들은 다음과 같이 분명히 밝혔습니다. 시스템에 손상된 Axios 또는 plain-crypto-js 릴리스가 설치되었을 가능성이 있는 경우 해당 호스트를 위험군으로 취급해야 합니다. 조사가 완료될 때까지는 완전히 신뢰할 수 없음이는 단순히 버전 번호를 올리는 것 이상의 의미를 지닙니다.
연구원과 공급업체가 권장하는 구체적인 조치는 다음과 같습니다.
- 종속성 및 잠금 파일을 감사하십시오. 에 대한 검색
axios@1.14.1,axios@0.30.4plain-crypto-js@4.2.1inpackage-lock.json,pnpm-lock.yaml,yarn.lock및 CI 로그를 참조하십시오. 안전하게 고치는 방법. - 안전성이 검증된 버전으로 업그레이드하세요: Axios의 최신 릴리스(예: 관리자가 권장하는 바로 다음 패치된 태그)로 이동하고 잠금 파일이 다시 생성되었는지 확인하십시오.
- 자격증을 적극적으로 교체하세요: 영향을 받는 시스템이나 파이프라인에 있는 모든 비밀 정보(클라우드 API 키, npm 토큰, SSH 키, 배포 키, .env 변수 등)가 도난당했을 가능성이 있다고 가정하고 해당 정보를 주기적으로 교체하십시오.
- 손상된 시스템을 복구하세요: 가능한 경우 빌드 에이전트, CI 실행기 및 개발자 워크스테이션을 제자리에서 정리하려고 시도하기보다는 신뢰할 수 있는 이미지에서 다시 배포하십시오.
- 블록 C2 인프라: 추가
sfrclak.com142.11.206.73방화벽, DNS 차단 목록 및 EDR 규칙에 적용됩니다. - 유물을 찾아라: macOS, Windows 및 Linux 호스트에서 RAT와 관련된 파일 시스템 경로 및 임시 파일을 확인하십시오.
여러 보안 업체들이 악성 버전을 설치한 조직들에게 다음과 같은 조치를 권고했습니다. 기본적으로 타협을 전제로 한다다시 말해, 공격자가 접근 권한을 가졌다는 가정하에, 악성 소프트웨어가 아무런 피해를 입히지 않았기를 바라기보다는 체계적으로 사고 대응 단계를 진행해야 합니다.
소프트웨어 공급망 보안에 대한 더 폭넓은 교훈
즉각적인 대응을 넘어, 악시오스(Axios) 사태는 오픈소스 생태계 전반에서 신뢰, 신원 확인, 배포를 어떻게 다뤄야 하는지에 대한 논쟁을 다시 불러일으켰습니다. 이 사건은 다음과 같은 점을 보여줍니다. 단일 라이브러리 관리자 계정 수많은 조직의 보안 태세를 좌우하는 핵심 요소가 될 수 있습니다.
사후 분석 및 공급업체 분석을 통해 몇 가지 주요 주제가 도출되었습니다.
- 기존 토큰은 부담입니다. 기존 npm 토큰은 최신 OIDC 기반 워크플로와 함께 조용히 유지될 수 있습니다. 프로젝트는 더 안전한 방법이 도입되면 기존 토큰을 취소하는 명시적인 정책을 마련해야 합니다.
- 자동 업데이트는 양날의 검과 같습니다. 자동 종속성 업데이트는 개발 속도를 높이지만, 악의적인 릴리스가 누구도 알아차리기 전에 생태계 전체로 확산될 수 있다는 것을 의미하기도 합니다.
- 종속성 검사는 필수적이지만 충분조건은 아닙니다. 정적 검사 및
npm audit유용하지만, 다음과 같은 어려움을 겪습니다. 일시적인 행동 예를 들어 설치 후 자동으로 삭제되는 스크립트 같은 것들 말입니다. - 유지보수 담당자의 보안은 핵심 인프라입니다. 강력한 다단계 인증(MFA), 하드웨어 보안 키, 액세스 토큰의 신중한 관리, 그리고 누가 게시 권한을 가지고 있는지에 대한 정기적인 검토는 이제 좋은 코드를 작성하는 것만큼 중요합니다.
창업자, CTO, 그리고 엔지니어링 리더들에게 있어 Axios 타협안은 다음 사항을 상기시켜 줍니다. 공급망 위험은 전략적 문제입니다.단순히 기술적인 문제만이 아닙니다. 이는 제품 출시 속도, CI/CD 파이프라인 설계 방식, 그리고 오픈 소스의 편리함과 프로덕션 환경에서 실행되는 코드를 검증해야 하는 필요성 사이의 균형을 맞추는 방식에 영향을 미칩니다.
종합적으로 볼 때, npm에 대한 Axios의 공격은 단기간에 치밀하게 계획된 공격이 자바스크립트 생태계의 신뢰받는 구성 요소를 원격 접근 악성코드의 은밀한 통로로 변모시킬 수 있음을 보여줍니다. 공격자들이 최종 사용자뿐만 아니라 관리자와 배포 채널까지 표적으로 삼는 시대에, 소프트웨어 공급망의 건전성을 유지하려면 이제 게시 워크플로에 대한 더욱 엄격한 통제, 이상 징후에 대한 적극적인 모니터링, 그리고 과거에는 외부 네트워크 트래픽에만 적용했던 것과 같은 수준의 경계심을 종속성에도 적용하는 자세가 필수적입니다.