• 자바스크립트의 가장 인기 있는 라이브러리 중 하나가 해커에게 침해당했습니다. — Axios npm 패키지가 크로스 플랫폼 RAT를 배포하는 공급망 공격을 받다

    탈취된 유지 관리자 계정을 이용해 자바스크립트에서 가장 인기 있는 라이브러리 중 하나에 대한 두 가지 악성 버전이 게시되었습니다.

    article image

    StepSecurity에 따르면, 공격자가 3월 30일 주요 Axios 유지 관리자의 npm 계정을 장악한 뒤, 널리 사용되는 자바스크립트 HTTP 클라이언트 라이브러리 두 가지의 악성 버전을 게시하는 데 이를 이용했습니다. 이 오염된 릴리스인 axios@1.14.1axios@0.30.4는 macOS, Windows, Linux 등 다양한 개발자 환경의 머신에 크로스 플랫폼 원격 접근 트로이 목마(RAT)를 은밀하게 설치하는 숨겨진 종속성을 주입했습니다. Axios는 npm에서 매주 약 1억 건이 다운로드되는 핵심 라이브러리입니다.

    두 악성 버전 모두 패키지 매니페스트에 단 하나의 새로운 종속성, 즉 plain-crypto-js@4.2.1을 추가했습니다. 이는 합법적인 암호화 라이브러리인 crypto-js를 위장한 목적형 트로이 목마입니다. 해당 패키지는 Axios 소스 코드의 어느 부분에서도 가져오거나 참조된 적이 없습니다. 이 패키지의 유일한 기능은 postinstall 스크립트를 실행하여 sfrclak.com에 있는 명령 및 제어(C2) 서버에 접속하고, 플랫폼별 RAT 페이로드를 다운로드한 후, 자신의 실행 흔적을 모두 파괴하는 것이었습니다.

    이 공격은 약 18시간에 걸쳐 진행되었습니다. 먼저, 공격자는 npm 계정을 이용해 3월 30일 05:57 UTC에 plain-crypto-js의 깨끗한 미끼 버전을 게시하여 게시 이력을 확보했습니다. 이후 악성 페이로드 버전이 23:59 UTC에 이어졌습니다. 장악된 Axios 유지 관리자 계정인 jasonsaayman은 3월 31일 00:21 UTC에 axios@1.14.1을 게시했고, 불과 39분 후인 01:00 UTC에는 axios@0.30.4를 게시하며, 현대적인 1.x 버전과 레거시 0.x 릴리스 브랜치 모두를 커버했습니다.

    Notepad++ 업데이트 서버, 표적 공격으로 탈취

    article image

    StepSecurity의 런타임 분석 결과에 따르면, 이 로퍼(dropper)는 npm install이 시작된 지 불과 1.1초 만에 C2 서버로 첫 아웃바운드 연결을 시도했습니다. 구체적인 침해 경로는 다음과 같습니다.

    • macOS: RAT 바이너리가 Apple 시스템 프로세스를 모방하여 /Library/Caches/com.apple.act.mond에 작성되었습니다.
    • Windows: 악성 코드가 PowerShell을 %PROGRAMDATA%\wt.exe로 복사하고 숨겨진 스크립트를 실행했습니다.
    • Linux: /tmp/ld.py 경로로 Python 기반 RAT를 다운로드했습니다.

    실행 후, setup.js는 스스로를 삭제하고, 악성 postinstall 훅이 담긴 자신의 package.json 파일을 제거한 뒤, 다른 버전 번호를 보고하는 사전에 준비된 깨끗한 스텁(stub)으로 대체했습니다. 따라서 나중에 설치된 패키지를 포렌식 검사로 아무리 분석해도 아무것도 의심스러운 흔적을 찾을 수 없습니다.

    악성 버전들은 npm이 이를 게시 취소하고 plain-crypto-js에 보안 보류(security hold)를 설정하기까지 약 2~3시간 동안 활성화된 상태였습니다. 주목할 점은, 이 오염된 두 버전 모두 Axios의 GitHub 리포지토리 태그에서는 발견되지 않았다는 사실로, 이는 해당 버전들이 프로젝트의 일반적인 CI/CD 파이프라인 외부에서 npm 레지스트리에 직접 게시되었음을 명확히 보여줍니다.

    StepSecurity, Snyk, Wiz, Vercel 등 보안 업계 주요 기업들은 모두 악성 패키지가 실행된 모든 시스템을 완전히 침해된 것으로 간주하고, 모든 자격 증명(credential)을 즉시 재설정할 것을 권고하는 경고를 발표했습니다. 해당 사건에 대한 GitHub 추적 이슈는 axios/axios#10604입니다.

    최신 뉴스, 분석 및 리뷰를 피드에서 받아보려면 Google News에서 Tom's Hardware를 팔로우하거나 즐겨찾는 출처로 추가하십시오.

    [출처:] https://www.tomshardware.com/tech-industry/cyber-security/axios-npm-package-compromised-in-supply-chain-attack-that-deployed-a-cross-platform-rat