해커들이 일반 서버에서 벗어나 분산 시스템을 이용하여 개발자를 공격하고 암호화폐 자금을 탈취하고 있습니다. 그들은 기존의 명령 및 제어(C2) 서버를 분산형 서버로 완전히 대체하고 있습니다.
이번 공격에서 악성코드는 솔라나(Solana) 블록체인을 악용합니다. 솔라나(Solana) 거래의 메모 필드를 이용하여 암호화폐 지갑 데이터는 물론 하드웨어 지갑 복구 문구까지 탈취하는 은밀한 악성코드를 실행합니다.
메모 필드는 원래 간단한 거래 내역을 기록하기 위해 설계되었지만, 공격자들은 이제 이를 숨겨진 통신 수단으로 악용하고 있습니다. 이로써 공개 블록체인 기능이 악성코드 유포를 위한 은밀한 통로로 변질되고 있습니다.
솔라나의 메모처럼 분산형 메모는 공개적이고 영구적이며, 어느 한 주체에 의해 삭제될 수 없습니다. 또한 공격자는 악성코드를 변경하지 않고도 지침을 업데이트할 수 있습니다.
이번 공격은 적어도 2022년부터 활동해 온 글래스웜(GlassWorm) 악성코드의 새로운 변종으로 여겨집니다.
솔라나(Solana) 나 메모는 비밀 접선 해결사 역할을 합니다.
아이키도(Aikido) 보안 연구원들에 따르면, 이 공격은 세 단계 또는 세 개의 페이로드로 구성됩니다. 첫 번째 단계/페이로드는 단순히 진입점일 뿐입니다. 이 공격은 개발자가 npm, PyPI, GitHub 또는 Open VSX 마켓플레이스와 같은 오픈 소스 저장소에서 악성 패키지를 설치하는 것으로 시작됩니다.
악성코드는 시스템 로케일이 러시아어인지 확인하고, 러시아어인 경우 공격을 진행하지 않습니다. 이는 공격자들이 러시아에 기반을 두고 당국에 발각되는 것을 피하기 위한 조치로 보입니다. 설치가 완료되면 악성코드는 솔라나(Solana) 블록체인을 이용하여 공격자의 명령 및 제어(C2) 서버 IP 주소를 가져옵니다. 그리고 메모 필드에 C2 서버의 IP 주소가 포함된 특정 솔라나(Solana) 트랜잭션을 찾습니다.
악성코드는 C2 서버에 연결한 후 공격의 두 번째 단계를 시작합니다. 이 단계에서 악성코드는 시드 구문, 개인 키, 심지어 지갑 스크린샷과 같은 암호화 데이터를 찾습니다. 공격 대상은 MetaMask, Phantom, Coinbase, Exodus, Binance, 로닌(Ronin), Keplr 등과 같은 브라우저 확장 프로그램 지갑입니다.
이 악성 프로그램은 로그인 세션, 세션 토큰, 클라우드 액세스와 같은 브라우저 데이터도 찾습니다. 즉, 중앙 집중식 거래소 계정, npm, GitHub 및 AWS 계정에 접근할 수 있다는 의미입니다.
데이터를 수집한 후, 악성 프로그램은 이를 ZIP 파일로 압축하여 공격자의 서버로 전송합니다.

피싱 공격을 통해 하드웨어 지갑이 표적이 되고 있습니다.
마지막 페이로드는 두 부분으로 나뉩니다. 첫 번째 부분은 Ledger나 Trezor 같은 하드웨어 지갑을 찾는 .NET 바이너리입니다. 하드웨어 지갑을 발견하면 사용자가 복구 문구를 입력하도록 유도하는 가짜 오류 메시지를 표시합니다.
두 번째 부분은 브라우저 데이터를 훔치는 웹소켓 기반 자바스크립트 RAT(원격 접속 트로이목마)입니다. 또한 거래소와 같은 특정 사이트를 모니터링하고 실시간으로 쿠키를 탈취하는 가짜 크롬 확장 프로그램을 설치합니다. 이 악성코드는 구글 캘린더 이벤트를 통해 데드 드롭 리졸버로 다운로드됩니다. 이러한 접근 방식을 통해 공격자는 실제 서버를 숨기고 보안 필터를 우회하며 간접적인 전달 계층 역할을 할 수 있습니다.
두 번째 단계에서는 악성코드가 브라우저 데이터만 탈취하는 것과 달리, 이 RAT(원격 접속 트로이목마)는 실시간 제어 기능을 제공합니다. RAT는 지속적으로 활성화되어 브라우저를 모니터링합니다. 새로운 쿠키를 수집하고, 로그인한 Exchange 계정과 같은 활성 세션을 추적하며, 키 입력을 기록하고, 스크린샷을 찍습니다. 뿐만 아니라 공격자는 피해자의 컴퓨터에서 명령어를 실행할 수도 있습니다.
GlassWorm을 제거하는 것은 어렵습니다. 이 악성 프로그램은 스스로를 다시 다운로드할 수 있고 재부팅 후에도 살아남을 수 있습니다. 또한 DHT(분산 해시 테이블) 조회 및 솔라나(Solana) 메모와 같은 대체 방법을 사용하여 제어 서버를 찾습니다.
중앙 서버가 없고 데이터가 여러 컴퓨터에 분산되어 공유되기 때문에 방어자가 네트워크 수준에서 공격을 블록 하기가 어렵습니다.


