본문 바로가기
카테고리 없음

Flashbots npm 패키지 사칭 악성코드 경고

by 인포섹 2025. 9. 9.

사이버 보안 연구원들이 이더리움(Ethereum) 기반의 인프라 서비스 제공업체로 신뢰받고 있는 Flashbots를 사칭한 악성 npm 패키지 4개를 발견했습니다. 이번 공격의 목표는 주로 Web3 개발자들의 암호화폐 지갑 자격 증명을 탈취하는 데 있으며, 악성 패키지들은 2023년 9월부터 배포되어왔습니다. The Hacker NewsFindSec 보도에 따르면, 이 패키지들은 거래 봇, 검증자(Validator), DeFi 애플리케이션 등을 관리하는 개발자들의 개인 키(Private Key)니모닉 시드 문구(Mnemonic Seed Phrase)를 외부 공격자 서버로 빼돌리는 기능을 갖추고 있었습니다.

공급망 공격의 특징과 심각성

이번 공격은 오픈소스 생태계의 신뢰성을 악용한 전형적인 공급망 공격(Supply Chain Attack)의 사례로, npm 패키지 관리자를 사용하는 수많은 개발자들을 겨냥했습니다. 공격자는 합법적인 라이브러리와 거의 동일한 기능을 제공하는 악성 패키지를 만들어 사용자들이 의심 없이 설치하도록 유도했습니다. 이를 통해 소프트웨어 공급망을 통해 공격 범위를 확장하고, 암호화폐 자산을 탈취하려는 의도를 드러냈습니다.

이러한 유형의 공격은 개발자들이 패키지를 설치하는 과정에서 작은 오타나 이름 혼동으로 인해 쉽게 피해를 입을 수 있다는 점에서 특히 위험합니다. 이번 사례는 Web3 개발 환경이 얼마나 공격자들에게 매력적인 목표인지를 잘 보여주며, 암호화폐 자산 보안이 단순한 사용자 차원의 문제가 아닌 개발자 생태계 전반의 과제임을 시사합니다.


@flashbotts/ethers-provider-bundle 분석

발견된 악성 패키지 중 가장 위험한 것으로 지목된 것은 @flashbotts/ethers-provider-bundle입니다. 이 패키지는 합법적인 @flashbots/ethers-provider-bundle 라이브러리를 모방했으며, 이더리움 블록체인에서 MEV(Maximal Extractable Value) 관련 작업을 수행하는 개발자들을 표적으로 삼았습니다. 이 악성 패키지는 정상 기능을 유지하면서 내부적으로 악성 행위를 수행하는 고급 사회공학 기법을 사용해 개발자가 이를 쉽게 식별하지 못하도록 설계되었습니다.

이 패키지는 개발 환경의 중요한 여러 단계에서 악성 행위를 실행합니다. 예를 들어, 프로바이더 생성 과정이나 트랜잭션 서명 과정에서 SMTP 프로토콜을 사용해 민감한 환경 변수를 외부로 전송하고, 서명되지 않은 트랜잭션을 변조해 공격자가 제어하는 지갑으로 자금을 리디렉션합니다. 또한 모든 탈취 데이터를 체계적으로 기록해 장기간 추적 및 활용할 수 있도록 했습니다.

여기서 사용된 타이포스쿼팅(Typosquatting) 기법은 패키지 이름에 알파벳 한 글자를 추가해 ‘flashbots’를 ‘flashbotts’로 만든 것입니다. 이는 개발자가 패키지를 설치할 때 흔히 발생할 수 있는 입력 오류를 악용한 것입니다. 패키지가 실제 라이브러리와 매우 유사한 기능을 제공하기 때문에 개발자는 정상적인 동작으로 착각하고 악성 코드가 장기간 탐지되지 않는 환경을 조성하게 됩니다.


공격자 소스 코드에서 발견된 베트남어 주석

보안 전문가들은 악성 패키지 소스 코드 내부에서 베트남어 주석문이 발견되었다고 밝혔습니다. 이는 단순한 언어적 흔적을 넘어 공격자의 지리적 배경을 드러내는 중요한 증거로 분석됩니다. 특히 이전에 발견된 NodeStealer와 같은 베트남발 멀웨어의 작성 패턴과 유사한 점이 확인되며, 이 공격이 베트남 기반 사이버 범죄 그룹과 연관됐을 가능성을 시사합니다.

이 주석문은 코드 기능 설명을 위한 일반적인 문구가 아니라, 내부 개발자들 간의 협업 메모로 사용된 것으로 파악됩니다. 이는 단일 해커가 아닌 조직화된 팀이 참여한 정교한 공급망 공격이었음을 뒷받침합니다. 이러한 언어적 지문은 앞으로 비슷한 공격을 추적하고 예방하기 위한 포렌식 증거로도 활용될 수 있습니다.


Telegram을 통한 데이터 유출 방식

악성 npm 패키지는 탈취한 데이터를 공격자에게 전달하기 위해 텔레그램(Telegram) 봇을 활용하는 고급 기법을 사용합니다. 연구원들은 "sdk-ethers"와 "gram-utilz" 같은 패키지들이 니모닉 시드 문구와 개인 키를 공격자가 운영하는 텔레그램 채널로 직접 전송하는 함수를 내장하고 있음을 밝혔습니다. 이러한 방식은 합법적인 API 호출을 이용해 마치 정상적인 메시지 트래픽처럼 위장하기 때문에 일반적인 보안 솔루션으로 탐지하기가 매우 어렵습니다.

"gram-utilz" 패키지는 임의의 데이터를 위협 행위자의 텔레그램 채팅으로 전송할 수 있는 모듈형 메커니즘을 제공합니다. 또 다른 악성 패키지들은 개발자가 실제 프로젝트에서 해당 패키지를 호출할 때만 데이터 전송 기능이 활성화되도록 설계돼 있어, 개발 환경에 침투하더라도 눈에 띄지 않게 잠복하다가 실제 배포 단계에서 악성 활동을 시작합니다. 이는 일상적인 개발 환경을 공격자에게 민감한 암호화 자산 정보를 직접 전달하는 통로로 바꾸는 매우 교묘한 방식입니다.


이번 사건의 시사점과 대응 방안

이번 사건은 오픈소스 생태계가 직면한 공급망 공격 위협의 심각성을 여실히 보여주며, Web3 개발자 및 기업 보안 담당자들에게 경각심을 일깨워주고 있습니다. 특히 패키지 이름 유사성 공격과 같은 단순하지만 효과적인 기법은 누구나 쉽게 피해를 입을 수 있는 점을 강조합니다. 앞으로 개발자들은 패키지 설치 시 공식 문서를 철저히 검증하고, 해시값 검증 및 코드 리뷰 등 보안 프로세스를 강화해야 합니다.

또한, 텔레그램 API를 통한 데이터 유출 사례는 메시징 플랫폼이 공격자들에게 새로운 무기가 되고 있음을 시사합니다. 보안업계는 플랫폼 제공자와 협력해 악성 봇을 탐지하고 차단할 수 있는 기술을 개발해야 하며, 프로젝트 운영자는 네트워크 트래픽 분석을 정교하게 수행해 정상 트래픽으로 위장한 악성 행위를 조기에 포착할 수 있어야 합니다.