
Image by Traxer, from Unsplash
1,000명 이상의 사용자들이 암호화폐 개인 키를 훔치는 PyPI 패키지를 다운로드했습니다.
악의적인 파이썬 패키지인 “set-utils”가 지갑 생성 함수를 가로채 이더리움의 개인키를 훔치는 것으로 밝혀졌습니다.
서두르시나요? 여기 빠른 사실들이 있습니다!
- 공격자들은 검출을 피하기 위해 Polygon 블록체인을 통해 도난당한 키를 추출하였습니다.
- “set-utils”가 PyPI에서 제거되기 전에 1,000회 이상의 다운로드가 발생했습니다.
- 패키지를 제거한 후에도 손상된 지갑은 여전히 취약합니다.
합법적인 파이썬 유틸리티를 흉내 내는 패키지가 2025년 1월 29일에 Python Package Index (PyPI)에 업로드되었으며, 발견되기 전에 1,000회 이상 다운로드되었습니다. Socket의 보안 연구원들이 이 공격을 발견하고 보고하였습니다.
Python에서 집합을 다루는 간단한 도구로 가장한 set-utils는 개발자들이 설치하도록 속였습니다. 그러나 한번 사용되기 시작하면, 이 도구는 조용히 이더리움 개인 키를 훔쳐 공격자에게 폴리곤 블록체인을 통해 전송하였습니다.
이 방법은 대부분의 사이버 보안 도구들이 전통적인 네트워크 트래픽을 모니터링하지만 블록체인 거래를 의심스럽다고 판단하지 않기 때문에 공격을 탐지하기 어렵게 만듭니다.
이 공격은 특히 블록체인 개발자들, 분산 금융(DeFi) 프로젝트들, 암호화폐 거래소들, Web3 애플리케이션들 그리고 이더리움 지갑을 관리하기 위해 파이썬 스크립트를 사용하는 개인들을 목표로 하였습니다.
해당 패키지는 eth-account와 같은 파이썬 기반 라이브러리에서 지갑 생성 함수를 가로채고, 백그라운드에서 개인키를 추출하였습니다. 이후 이 키들은 공격자가 제어하는 RSA 공개 키를 사용하여 암호화되었고, RPC 엔드포인트를 통해 폴리곤 네트워크에 전송되었습니다. 이로써 이더리움 거래 내에서 데이터를 효과적으로 숨길 수 있었습니다.
일반적인 피싱 공격이나 악성 소프트웨어와 달리 이 방법은 일반적인 사이버 보안 방어를 우회합니다. 이더리움 트랜잭션은 영구적이므로, 공격자들은 언제든지 도난당한 키를 검색할 수 있습니다.
사용자가 패키지를 제거하더라도, 그들의 지갑은 여전히 위험에 노출되어 있습니다. set-utils가 활성화되어 있는 동안 생성된 모든 이더리움 계정은 안전하지 않다고 간주되어야 하며, 사용자들은 자금을 즉시 새롭고 안전한 지갑으로 이전하는 것이 급선무입니다.
공격의 또 다른 은밀한 특징은 사용자가 눈치채지 못하는 상황에서 표준 지갑 생성 함수를 수정할 수 있는 능력이었습니다. 악성 코드는 일반적인 이더리움 계정 생성 함수 주변에 감싸져 있어, 사용자가 계속 작업을 진행하는 동안 배경에서 실행되었습니다. 이로 인해 새로 생성된 모든 지갑에서는 개인 키가 훔쳐졌습니다.
이를 발견한 후에는 set-utils가 PyPI에서 제거되었지만, 제거 이전에 설치한 사람들에게는 여전히 위험이 존재합니다. 보안 전문가들은 Python 환경에서 해당 패키지를 확인하고, 무단으로 접근한 지갑을 스캔하는 것을 권장합니다.
이 사건은 오픈 소스 생태계에서 공급망 공격의 위협이 점점 커지고 있음을 부각시킵니다. 여기에서는 악성 소프트웨어가 도움이 되는 도구로 위장되어, 개발자들과 그들의 프로젝트를 위험에 빠뜨립니다.
댓글 달기
취소