공격자가 Arweave의 WeaveDB npm 패키지를 트로이 목마로 변조하여 악성코드를 배포했습니다.

- Rust 기반 정보 탈취형 악성코드인 IronWorm은 Arweave 생태계의 36개 npm 패키지 속에 숨어 있었습니다.
- 이 악성코드는 자체적으로 복제된 후 9개 조직에 걸쳐 과거 날짜로 위조된 악성 커밋을 푸시했습니다.
- 영향을 받은 패키지를 설치한 개발자는 노출된 모든 비밀키를 즉시 교체해야 합니다.
공격자는 Arweave 생태계와 연결된 36개의 npm 패키지 내에 정보 탈취 악성코드를 심었습니다. 이는 개발자 자격 증명, SSH 키, Exodus 암호화폐 지갑 파일을 표적으로 삼았습니다. 보안 기업 JFrog은 이 공격이 손상된 유지 관리자 계정으로 거슬러 올라간다고 밝혔습니다.
악성코드의 이름은 IronWorm이며, Rust로 작성되었습니다. 개발자가 npm 패키지를 설치하는 순간 활성화됩니다. 실행되면 JFrog의 연구팀이 발견한 바와 같이 감염된 컴퓨터에서 86개의 환경 변수와 20개의 자격 증명 파일을 스캔합니다. AWS 토큰, Anthropic 및 OpenAI API 키, npm 인증 자격 증명, 암호화폐 지갑 데이터를 노립니다.
Arweave 프로젝트 패키지에 숨겨진 Rust 악성코드 포함
공격자는 Arweave/WeaveDB 분산형 데이터베이스 프로젝트의 일부인 asteroid-dao GitHub 그룹에 속한 “asteroiddao”라는 npm 계정을 침해했습니다.
“asteroiddao” 계정과 관련된 모든 패키지는 짧은 시간 내에 다시 게시되었으며, 각 새 버전에는 tools/ 디렉토리에 위치한 976KB 크기의 Linux 파일이 포함되어 있었습니다.
이 파일은 preinstall 후크를 통해 package.json, 자동으로 실행되도록 설정되어 있어 npm이 설치를 시작하기도 전에 실행되었습니다. 피해자가 해야 할 일은 단순히 npm install.
JFrog의 팀은 파일을 분해하여 표준 압축 해제 도구를 속이도록 설계된 방식으로 패킹되어 있음을 발견했습니다. 내부에는 개별 문자열이 암호화된 대형 Rust 프로그램이 있었는데, 각 문자열이 별도로 잠겨 있어 분석이 훨씬 더 어려워졌습니다.
이러한 문자열이 최종적으로 디코딩되었을 때, GitHub API 엔드포인트, 자격 증명 파일 경로, 실제 GitHub 사용자 ID와 연결된 가짜 봇 계정, 다른 패키지 레지스트리에 악성 코드를 삽입하기 위한 템플릿이 드러났습니다.

탈취된 GitHub 토큰을 통해 악성코드가 커밋을 푸시하고 더 많은 저장소를 감염시킴
자격 증명을 수집한 후 IronWorm은 이를 사용하여 피해자가 접근할 수 있는 저장소에 커밋을 푸시했습니다. 이러한 커밋은 다른 패키지에 동일한 악성 바이너리를 심었고, 이는 npm에 게시되어 체인의 다음 개발자를 침해할 수 있었습니다.
JFrog은 57개의 GitHub 조직에 걸쳐 날짜를 조작한 악성 커밋을 발견했습니다. 이 커밋들은 작성자 이름으로 “claude”와 이메일 [email protected]를 사용했습니다. 타임스탬프는 각 저장소의 가장 최근 정당한 커밋과 일치하도록 위조되었습니다. 하나의 커밋은 13년 전으로 거슬러 올라가는 것으로 보였지만, GitHub Actions 로그는 모든 푸시가 발견된 지 며칠 이내에 발생했음을 확인했습니다.
영향을 받은 조직에는 asteroid-dao, weavedb, ArweaveOasis 및 개발자 “ocrybit”과 관련된 여러 개인 계정이 포함되었습니다.
IronWorm은 감염된 기계에 숨기 위해 eBPF 커널 루트킷도 배포했습니다. 운영자와의 통신은 Tor 네트워크를 통해 라우팅되었습니다. Rust 컴파일러는 루트킷의 소스 코드를 바이너리에 그대로 남겨두었는데, 이는 분석을 용이하게 만든 운영상의 실수였습니다.
특이한 점은 운영자가 자신의 암호화폐 지갑 복구 구문을 악성코드에 하드코딩했다는 것입니다. JFrog은 이것이 테스트 중 공격자의 자격 증명이 탈취되지 않도록 하기 위한 안전 장치라고 결론지었습니다.
npm을 향한 악성코드 공격 지속
애플리케이션 보안 기업 Ox Security 은 이 공격이 npm의 더 많은 패키지로 확산되기 전에 조기에 발견되었다고 밝혔습니다.
악성 버전은 하루 만에 사용 중지(deprecated)로 표시되었으며, 대부분의 날짜 조작 커밋은 곧 GitHub에서 제거되었습니다.
5월 14일, 해커는 주 다운로드 수가 822,000회 이상인 node-ipc 패키지의 비활성 유지 관리자 계정을 악용했습니다. 이 악용은 유지 관리자의 만료된 이메일 도메인을 다시 등록하고 npm 비밀번호를 재설정함으로써 이루어졌습니다. 자격 증명 탈취 페이로드를 탑재한 3개의 손상된 변형 버전이 개발자 비밀 90개 이상의 카테고리를 대상으로 했습니다.
보안 기업 Endor Labs와 StepSecurity는 동일한 기간 동안 유사한 레지스트리 중독 및 GitHub Actions 감염을 수행한 JavaScript 기반 악성코드인 binding.gyp을 사용한 동시이지만 별개의 공격을 식별했습니다.
영향을 받은 WeaveDB 패키지 중 하나를 설치한 개발자는 모든 자격 증명을 회전하고, 잠금 파일에서 예기치 않은 버전 변경 사항을 확인하며, npm 및 GitHub 계정에서 2단계 인증을 활성화해야 합니다.
이 글을 읽고 계신다면, 이미 앞서 나가고 있습니다. 뉴스레터로 그 위치를 유지하세요.
자주 묻는 질문
IronWorm이란 무엇이며 어떻게 확산됩니까?
IronWorm은 `npm install` 실행 시 preinstall 훅을 통해 실행되는 Rust 기반 정보 탈취형 악성코드입니다. 자격 증명을 획득하면 도난당한 GitHub 및 npm 토큰을 사용하여 피해자의 저장소에 악성 커밋을 푸시합니다.
어떤 npm 패키지들이 IronWorm 공격으로 인해 피해를 입었습니까?
공격으로 "asteroiddao" npm 계정 아래 게시된 Arweave/WeaveDB 생태계와 관련된 36개 패키지가 침해되었습니다.
IronWorm은 어떤 자격 증명을 탈취합니까?
이 악성코드는 86개의 환경 변수와 20개의 자격 증명 파일을 대상으로 합니다. 여기에는 AWS 토큰, OpenAI 및 Anthropic API 키, npm 인증 비밀키, SSH 키, Exodus 암호화폐 지갑 파일 등이 포함됩니다.
면책 조항. 제공된 정보는 투자 조언이 아닙니다. Cryptopolitan.com은 이 페이지에 제공된 정보를 기반으로 이루어진 모든 투자에 대해 책임을 지지 않습니다. 어떤 투자 결정을 내리기 전에 독립적인 조사나 자격을 갖춘 전문가와의 상담을 강력히 권장합니다.

란다 모세스
란다 모세스는 Cryptopolitan의 편집자이자 기자로, 기술, AI, 로봇공학, 암호화폐, 사기 및 해킹을 담당합니다. 그녀는 2017년부터 암호화폐 분야에서 활동해 왔으며, 포워드 프로토콜, 아마직스, 크립토소니아크에서 역할을 수행했습니다. 란다는 브래드포드 대학교에서 전기전자공학을 전공했습니다.
















