- 9월 8일, 인기 npm 패키지들의 악성코드 삽입이 탐지됨
- 영향을 받은 패키지는 총 18개로, 전 세계적으로 주당 20억 건 이상의 다운로드를 기록함
- 공격자는 웹사이트 방문자의 브라우저에서 암호화폐 및 Web3 작업을 은밀히 가로채고, 지갑 내 승인 및 자금 흐름을 공격자 계정으로 전환하는 코드 포함
- 주요 패키지 파일(index.js)에 난독화된 자바스크립트 코드가 추가된 것으로 확인됨
- 얽힌 사건은 대상 패키지 업데이트와 동시에 시작, 현재 커뮤니티가 대응 중임
사건 개요
- 9월 8일 13:16 UTC 기준, Aikido의 보안 모니터링 피드에서 npm에 악성코드가 포함된 여러 패키지가 업로드되는 현상 포착
- 이 패키지들은 npm에서 매우 인기 많으며, 한 주에 20억 건 이상의 다운로드 수를 기록함
공격 방식 및 내용
- 악성 업데이트 이후, 해당 패키지를 사용하는 웹사이트의 방문자 브라우저에서 자바스크립트 악성코드가 비밀리에 실행되는 구조 확인
- 이 코드의 목적은 암호화폐 및 웹3 활동 감시, 지갑 상호작용 변조, 결제 대상 주소의 무단 변경임
- 사용자는 화면상 특별한 변화 없이 자금과 승인 권한이 공격자가 지정한 암호화폐 주소로 전송될 수 있음
악성 코드 상세 분석
- 대표적으로,
is-arrayish등에서 index.js 파일이 변조되어 난독화된 복잡한 자바스크립트가 삽입됨 - 코드 내에서는
window.ethereum인터페이스를 활용해 지갑 계정 정보를 확인하고, 공격 코드 발동 조건 확인 절차를 거침 - 내부적으로 다수의 암호화폐 주소(비트코인, 이더리움 등)와 함수 로직이 포함되어 있으며, 지갑 주소 및 트랜잭션 세부 정보를 공격자 주소로 치환하는 기능 구현
- 이를 통해 실 사용자의 암호화폐 자산이 모르는 사이 유출 및 무단 이전될 위험성 발생
현재 상황 및 커뮤니티 대응
- 문제의 악성 패키지 버전은 주요 npm 저장소에서 신속히 제거되고 있음
- IT/오픈소스 커뮤니티에서는 관련 패키지의 사용 중지 및 업그레이드 안내, 추가 감염 탐지 및 조치 활동을 활발하게 진행 중임
- 이번 해킹 사고로 인해, 패키지 공급망 보안, 코드 난독화 탐지, Web3 브라우저 확장 보호에 대한 경각심이 크게 증가하는 계기가 되고 있음