무슨 일이 일어났나, 영향 범위 및 예방 방법 - axios 공급망 공격(supply chain attack)

원제 · What happened, are you affected & how to prevent - axios supply chain attack

21:023분 읽기Maximilian Schwarzmüller2026. 03. 31.컴퓨터/소프트웨어 · 경제 뉴스 · AI/미래기술

핵심 요약

Axios 공급망 공격은 관리자 계정 탈취 후 postinstall 스크립트로 시스템 자격 증명을 탈취하므로, pnpm의 최소 릴리스 기간 설정과 환경 변수 암호화 관리로 대응해야 한다.

하이라이트

  • 주간 다운로드 8천만 회 이상인 Axios의 1.14.1 및 0.30.4 버전이 관리자 계정 탈취를 통한 공급망 공격에 노출되었다.

  • 공격자는 plaincryptojs라는 악성 의존성 패키지를 추가하여 설치 직후 실행되는 postinstall 스크립트로 시스템 정보를 탈취했다.

  • 감염된 패키지는 설치된 시스템의 API 키, 비밀번호, 암호화 화폐 토큰 등 모든 자격 증명을 외부 서버로 유출한다.

  • pnpm이나 Bun 패키지 매니저의 'minimum release age' 설정을 통해 최근 몇 시간 내 배포된 잠재적 감염 버전의 설치를 차단할 수 있다.

  • Doppler와 같은 시크릿 관리 서비스를 사용해 .env 파일에 평문으로 저장된 민감 정보 노출을 방지하는 다중 방어 체계가 필요하다.

타임라인

  1. Axios 공급망 공격 발생 및 긴급 대응 지침

    공격의 심각성은 Axios의 광범위한 사용량에서 기인하며 macOS, Linux, Windows 사용자 모두가 타겟이 된다. 시스템 해킹 여부를 확인하기 위해 운영체제별 특정 명령어를 실행해야 하며, 피해 확인 시 모든 시크릿 값을 즉시 폐기해야 한다.

    • 주간 8천만 회 다운로드되는 인기 라이브러리인 Axios가 심각한 공급망 공격을 받았다.
    • 해당 버전 설치 시 운영체제와 상관없이 시스템 내 모든 API 키와 비밀번호가 도난당한 것으로 간주해야 한다.
    • 감염이 의심되는 경우 즉시 시스템 자격 증명을 교체하고 API 키를 비활성화하는 조치가 필수적이다.
  2. 공급망 공격의 메커니즘과 감염 경로

    공격자는 라이브러리 관리자의 계정을 탈취한 뒤 의존성 체인을 오염시킨다. 개발자가 라이브러리를 설치하거나 업데이트하는 순간 악성 코드가 시스템에 내려받아지며, 이는 대개 바이너리 생성이나 컴파일을 위해 존재하는 postinstall 기능을 악용하여 실행된다.

    • 공급망 공격은 애플리케이션 코드가 아닌 의존성 체인의 상류(upstream)를 겨냥하여 악성 코드를 주입한다.
    • 최근 몇 시간 내 npm install이나 update를 실행한 시스템은 해킹 위험이 매우 높다.
    • 패키지 설치 직후 자동으로 실행되는 postinstall 스크립트가 공격의 주요 통로로 활용된다.
  3. Axios 공격의 상세 분석 및 실행 방식

    감염된 Axios 버전 1.14.1과 0.30.4는 실제 소스 코드 수정 없이 오직 악성 의존성 추가만으로 공격을 수행했다. plaincryptojs 패키지는 오직 악성 스크립트 실행만을 목적으로 제작되었으며, 설치 즉시 외부 서버와 통신하여 정보를 유출하는 트로이 목마를 구동한다.

    • 공격자는 plaincryptojs라는 별도의 악성 패키지를 생성하여 Axios의 의존성으로 주입했다.
    • 악성 코드는 난독화되어 있거나 실행 시점에 외부 서버에서 트로이 목마를 다운로드하여 탐지를 회피한다.
    • 탈취된 정보에는 시스템 자격 증명뿐만 아니라 암호화 화폐 토큰과 같은 고가치 자산이 포함된다.
  4. 공격의 치밀함과 보안 프로세스의 한계

    공격 흔적이 GitHub 저장소에는 남지 않고 npm 릴리스에만 존재한다는 점은 공격자가 수명이 긴 npm 액세스 토큰을 획득했음을 시사한다. 이는 정해진 CI/CD 프로세스를 거치지 않고도 악성 버전 배포가 가능했음을 의미하며, 오픈 소스 생태계 전반의 보안 취약성을 드러낸다.

    • 이번 공격은 악성 패키지를 18시간 전에 미리 생성하고 40분 만에 두 버전을 감염시킬 정도로 계획적이었다.
    • Axios 팀이 npm의 '신뢰할 수 있는 배포(Trusted Publishing)'를 사용 중이었음에도 공격이 성공한 원인은 불분명하다.
    • 유사한 공격이 최근 Python 생태계의 lightllm 패키지 등 다양한 언어 환경에서 빈번하게 발생하고 있다.
  5. 공급망 공격 급증의 배경: AI와 공격 표면 확대

    신규 GitHub 저장소 수가 역대 최고치를 기록하는 상황에서 공격 효율성이 높아지고 있다. Claude Code나 Codex 같은 에이전트 도구가 스스로 스크립트를 작성하고 외부 라이브러리를 호출하는 과정에서 오염된 의존성이 자동으로 포함될 가능성도 새로운 보안 위협으로 부상하고 있다.

    • AI 기술의 발전으로 코드 생산량이 급증하며 공격자가 노릴 수 있는 대상과 범위가 확장되었다.
    • AI 도구를 활용해 악성 코드를 작성함으로써 공격 실행에 필요한 기술적 진입 장벽이 낮아졌다.
    • 오픈 소스 관리자들이 AI가 생성한 방대한 풀 리퀘스트를 검토하는 과정에서 악성 의존성 주입을 간과할 위험이 커졌다.
  6. 시스템 보호를 위한 실무적 예방 조치

    대부분의 공급망 공격은 발생 후 몇 시간 내에 발견되므로 배포 기간 임계값을 설정하는 것만으로도 상당한 보안 효과를 거둘 수 있다. 또한 다중 방어 계층을 구축하여 설령 패키지가 감염되더라도 탈취할 수 있는 민감 정보가 시스템에 남지 않도록 설계하는 것이 핵심이다.

    • pnpm이나 Bun에서 'minimum release age'를 3일 이상으로 설정하여 갓 배포된 감염 버전의 설치를 원천 차단해야 한다.
    • 환경 변수를 로컬 .env 파일 대신 Doppler와 같은 암호화된 시크릿 관리 서비스에 저장하여 유출 피해를 방지해야 한다.
    • 개발 환경을 로컬 PC와 격리된 Docker 컨테이너나 원격 VPS에 구축하여 악성 코드의 시스템 침투 범위를 제한해야 한다.

설명

There has been a HUGE supply chain attack on the axios (yes THAT axios) package. Presumably thousands of machines are affected. More details & steps to check if you're affected: https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan My courses: https://academind.com/courses Website: https://maximilian-schwarzmueller.com/ Socials: 👉 Twitch: https://www.twitch.tv/maxedapps 👉 X: https://x.com/maxedapps 👉 Udemy: https://www.udemy.com/user/maximilian-schwarzmuller/ 👉 LinkedIn: https://www.linkedin.com/in/maximilian-schwarzmueller/ Want to become a web developer or expand your web development knowledge? I have multiple bestselling online courses on React, Angular, NodeJS, Docker & much more! 👉 https://academind.com/courses

커뮤니티 글

모든 글 보기
이 영상에 대해 글쓰기