
솔라나 피싱 방지 가이드: 위험을 어떻게 식별하고 예방할 수 있을까?
글: Go+ Security
최근 Solana의 시가총액이 급등하며 일시적으로 BNB를 넘어 세계 3위에 올랐고, 이로 인한 막대한 부의 효과는 많은 활성 사용자들을 끌어모았으며, 더불어 EVM 체인에서 활동하던 다수의 Wallet Drainer(지갑 피싱) 조직들이 Solana로 이동해 대규모로 피싱 사이트 및 에어드랍 사기 공격을 전개하고 있습니다. 이미 다수의 사용자들이 큰 자산 손실을 입었습니다. 최근 GoPlus 보안 팀은 여러 건의 Solana 피싱 사건을 분석한 결과, 사기 조직들이 현재 일부 Solana 지갑의 보안 인프라가 미흡한 점을 악용하여 에어드랍 유도 수법과 소셜 계정 탈취를 신속하게 업그레이드하고 있음을 확인했습니다. 이에 따라 GoPlus는 아래와 같이 일반적인 Solana 피싱 공격 수법을 정리하여 사용자가 이러한 피싱 사건을 효과적으로 방지하고 자산 손실을 줄일 수 있도록 도움을 주고자 합니다.
공격 유형
최근 발생한 몇 건의 피싱 사건에서 GoPlus는 대부분의 피싱 조직이「에어드랍 수령 유도」, 「가짜 프로젝트 웹사이트」, 「무료 경품 추첨」, 「NFT 에어드랍으로 유도」 등의 방식을 사용한다는 것을 발견했습니다. 이러한 방법들은 EVM에서 흔히 볼 수 있는 피싱 유도 방식들과 거의 동일하지만, 주요 차이점은 사기범들이 Solana와 EVM의 메커니즘 차이를 이용하여 다른 방식의「토큰 또는 권한 이전」을 통해 피싱 활동을 수행한다는 점입니다. 다음은 우리가 관찰한 다양한 자산 이전 공격 방식들입니다.

네이티브 토큰 SOL 이전 유도
이 공격 방식은 가장 단순합니다. 사기 조직은 사용자의 지갑 연결 후 프론트엔드에서 현재 지갑의 모든 $SOL 잔액을 계산하고, SystemProgram.transfer 기능을 활용해 토큰 이전을 즉시 완료합니다. 예를 들어 어떤 피싱 사이트는 스왑(Swap) 인터페이스 UI를 표시하며, 사용자는 저렴한 가격에 특정 토큰을 구매할 수 있다고 오인하게 됩니다.

하지만 실제로 실행되는 것은 단순한 $SOL 이전뿐입니다.

다중 토큰 이전 유도
네이티브 토큰 $SOL을 훔치는 것 외에도, 사기범들은 한 번의 트랜잭션 서명 안에서 사용자의 지갑에 보유된 모든 토큰 자산을 동시에 훔칠 수 있습니다. Solana에서는 각 트랜잭션이 여러 개의 Instruction(명령어)로 구성될 수 있으며, 각 instruction은 독립된 작업(예: 송금, 프로그램 상호작용, 계정 생성 등)을 수행할 수 있습니다. 이는 피싱 조직이 동일한 트랜잭션 내에 여러 개의 작업 명령어를 삽입할 수 있다는 의미입니다. 예를 들어 사용자가 세 가지 다른 토큰을 보유하고 있다면, 피싱 사이트는 코드에 해당 세 토큰 각각의 송금 명령어를 동일한 트랜잭션에 포함시키기만 하면 됩니다. 이를 통해 특정 하나의 자산만을 노리는 것이 아니라, 한번에 전체 지갑을 털어가는 일회성 공격이 가능해집니다. 앞선 유형과 마찬가지로 해커는 다양한 수단을 통해 사용자가 버튼을 클릭해 트랜잭션을 승인하도록 속입니다. 이러한 유형의 트랜잭션은 원래의 $SOL뿐만 아니라 NFT 자산과 기타 토큰 자산까지 모두 일괄적으로 이전합니다. 이 경우 사기 조직은 주로 Solana SPL 토큰의 createTransferCheckedInstruction을 활용하여 비네이티브 자산의 이전 명령어를 구성합니다.

Phantom 거래 시뮬레이션

Backpack 거래 시뮬레이션
토큰 계정 소유권 이전 유도
직접적인 토큰 이전 외에도, GoPlus는 일부 피싱 사이트가 createSetAuthorityInstruction을 사용해 instruction을 트랜잭션에 삽입하는 사례를 발견했습니다. 이 작업은 계정 내 토큰의 소유권을 다른 계정으로 이전하는 것으로, Solana의 계정 모델은 EVM과 다릅니다. 각 계정 주소는 각 토큰마다 별도의 Token Account를 가지며, 이 Token Account는 현재 소유주(owner)를 포함해 해당 토큰의 잔액 및 관련 정보를 기록합니다. createSetAuthorityInstruction은 해당 토큰의 소유권을 다른 계정으로 직접 이전할 수 있으며, 실제 최종 결과는 마치 해당 토큰을 모두 그 계정으로 이전한 것과 동일합니다. 우리는 이를 Phantom과 Backpack 지갑에서 실험했으며, 다행히 두 지갑 모두 특별한 경고와 알림을 제공하고 있었습니다.


사용자가 Ignore and proceed anyway 옵션을 클릭하더라도 여전히 거래 시뮬레이션을 통해 잔액 변화를 확인할 수 있습니다.

주의
위 세 가지 유형의 공격은 현재 대부분의 주요 Solana 지갑들이 거래 시뮬레이션 기능을 통해 결과를 예측할 수 있어, 사용자가 매번 거래 내용을 꼼꼼히 살펴보면 비교적 쉽게 일부 피싱 위험을 회피할 수 있습니다. 이는 Solana 공식 JSON RPC 인터페이스가 자체적으로「거래 시뮬레이션」 기능을 제공하기 때문입니다. 그러나 피싱 기술이 진화함에 따라, 더욱 은밀하고 알아차리기 어려운 새로운 수법들도 등장하고 있습니다.
토큰 권한 승인 유도 사기
EVM 사용자들에게는 토큰 권한 승인(Allowance)이 익숙한 작업이지만, Solana에서는 이 메커니즘이 다릅니다. Solana 네트워크에서 사기범들은 사용자가 EVM의 권한 승인 메커니즘을 오해하는 점을 이용해 사기를 벌입니다. 피싱 사이트는 사용자가 정상적인 상호작용을 하는 것처럼 유도하지만, 실제로는 뒤에서 createApproveCheckedInstruction 을 통해 권한 승인 트랜잭션 Delegate를 실행합니다. 이 수법의 핵심은 자산을 직접 이전하지 않고, 공격자에게 사용자 자산의 통제 권한을 부여한다는 점입니다. 이러한 공격은 종종 매력적인 인터페이스(예: 투표, 스테이킹 등) 뒤에 숨어 있으며, 사용자는 전혀 모르는 사이에 계정의 권한 설정이 변경됩니다.
일旦 攻击者获得了用户资产的控制权限,他们便可以随时操纵这些资产,包括转移或交易。这种类型的攻击往往不易被及时发现,因为它并没有立即产生资产转移。这类的攻击也往往影响面最广,因为攻击者会等到上当用户足够多、金额足够大的时候才开始实施代币转移。用户需要特别注意,任何请求更改授权设置的操作都应引起警惕,尤其是在不熟悉的网站或应用上。通过交易模拟能够看到授权变化,因此不仅需要关注直接的代币余额变化,也要小心授权的变化导致的钓鱼风险。


Durable Nonce를 이용한 거래 서명 사기
Durable Nonce는 Solana 블록체인의 기능 중 하나로, 만료되지 않고 지속적으로 유지되는 nonce 값을 저장하기 위한 특수 계정을 생성할 수 있게 해줍니다. Solana에서 모든 거래는 유효성과 고유성을 보장하기 위해 최근 블록 해시(recent blockhash)를 포함해야 합니다. 일반적으로 이 블록 해시는 약 150개의 블록 이후 만료되어 더 이상 처리되지 않습니다. 하지만 Durable Nonce 메커니즘은 만료되지 않는 nonce 값을 제공함으로써, 장기간 유효한 거래를 만들 수 있도록 합니다.
피싱 사기에서 사기범들은 Durable Nonce 기능을 악용해 사용자가 정상적인 거래처럼 보이는 악성 작업이 포함된 거래에 서명하도록 유도할 수 있습니다. Durable Nonce를 사용하면 거래가 블록 해시 만료로 인해 무효화되지 않아, 사기범들에게 더 긴 시간 창을 제공합니다. 예를 들어, 사기범은 에어드랍 참여나 이벤트 참여처럼 보이는 정상적인 거래를 설계하지만, 실제로는 사용자의 자산을 자신에게 이전하는 명령어를 포함시킵니다. 사용자는 이를 모르고 거래에 서명하지만, 블록체인 상에는 해당 거래가 기록되지 않아 아무 일도 일어나지 않은 것처럼 보입니다. 이는 공격자가 거래 서명만 획득했을 뿐, 거래 자체를 블록체인에 전송하지 않았기 때문이며, 이후 언제든지 해당 거래를 블록체인에 방송할 수 있습니다. 그러나 거래가 실제로 발생했는지 여부와 관계없이, 이러한 서명 유형은 거래 시뮬레이션 결과 판단에 영향을 주지 않으며, 주요 지갑들은 여전히 거래를 시뮬레이션하고 결과를 파악할 수 있으므로, 기존의 거래 시뮬레이션 기반 판단은 여전히 유효한 방법론입니다.
그러나 우리는 여전히 매우 은밀하고 복잡한 공격 방법을 발견했습니다. 바로「瞒天过海」하는 방식입니다.
스마트 컨트랙트 업그레이드를 통한 거래 시뮬레이션 회피
이 공격은 Durable Nonce와 Solana 스마트 컨트랙트의 고유한 특성인 업그레이드 가능성을 결합한 것입니다. 이 공격 수법의 위험성은 컨트랙트의 업그레이드 가능성이 더해져 더욱 커집니다. Durable Nonce는 장기간 유효한 nonce 값을 저장하는 계정을 만들어, 거래가 더 긴 시간 동안 유효하게 유지되도록 합니다. 즉, 사용자가 서명한 거래를 즉시 블록체인에 전송하지 않아도 나중에 언제든지 방송하고 실행할 수 있습니다. 공격자는 먼저 사용자가 정상적인 컨트랙트 거래에 서명하도록 유도합니다. 이 거래는 서명 당시에는 전혀 해롭지 않아 보이며, 주류 지갑이나 거래 시뮬레이션 도구조차도 사전에 경고하기 어렵습니다. 사용자가 서명을 완료하면 공격자는 Durable Nonce를 포함한 서명을 확보합니다. 이후 공격자는 서명된 거래를 즉시 방송하지 않고, Solana의 컨트랙트 업그레이드 기능을 이용해 원래 정상적이었던 컨트랙트를 악성 버전으로 변경합니다. 이 악성 컨트랙트는 자산 이전 등의 작업을 수행할 수 있으며, 업그레이드 후 공격자는 이전에 받은 서명을 사용해 거래를 블록체인에 방송함으로써 목표를 달성합니다. 이 공격은 극도로 은밀하며 사용자에게 큰 위험을 초래합니다. 경험 많은 사용자라도 거래 서명 시 잠재적 리스크를 식별하기 어렵기 때문입니다. 이러한 공격을 방지하기 위해 사용자는 컨트랙트의 신뢰성과 역사에 대해 철저히 검토하고, 낯선 출처나 새로 설립된 컨트랙트와의 상호작용을 피해야 합니다. 또한 모든 Solana 지갑들이 이러한 공격 방식에 주목해 사용자에게 적절한 경고와 자산 보호 기능을 제공해주기를 바랍니다.
예방 조치
Solana 네트워크 내 피싱 공격에 대응하기 위해 다음과 같은 종합적인 예방 조치를 통해 리스크를 최소화할 수 있습니다.
-
보안 의식 강화: 암호화폐 관련 거래에서는 항상 높은 경계심을 유지하세요. Solana 피싱 공격의 일반적인 수법(예: 토큰 이전 유도, 토큰 계정 소유권 이전, 거래 서명 사기 등)을 숙지하세요.
-
거래 세부사항 철저히 확인: 거래를 진행하기 전 반드시 거래 내용을 꼼꼼히 점검하세요. 특히 Durable Nonce를 사용하거나 컨트랙트와 상호작용하는 거래의 경우 더욱 주의하세요.
-
거래 시뮬레이션 기능 활용: 지갑이 제공하는 거래 시뮬레이션 기능을 활용해 결과를 면밀히 검토하세요. 다만 이 방법도 완벽하지 않으며, 일부 시뮬레이션 회피 공격에는 효과가 없을 수 있음을 유념하세요.
-
권한 변경 주의: 거래 후 토큰 잔액이 변하지 않았더라도 권한 설정 변경에 주의하세요. 특히 익숙하지 않은 사이트나 앱에서는 권한 변경 요청에 특히 경계하세요.
-
불필요한 권한 정기 취소: Solana Revoke 등의 도구를 활용해 불필요한 권한을 정기적으로 취소하여 자산 보안을 강화하세요.
-
지식 지속 업데이트: 블록체인 및 암호화폐 관련 지식을 정기적으로 업데이트하고, 새롭게 등장하는 피싱 수법과 예방 전략을 숙지하세요.
-
소프트웨어 최신 상태 유지: 사용 중인 지갑 및 관련 소프트웨어는 항상 최신 버전을 유지하여 최신 보안 기능과 패치를 적용받으세요.
-
개인키 백업 및 보호: 개인키와 중요한 정보를 안전하게 보관하고, 안전하지 않은 장소에서 저장하거나 공유하지 마세요.
동시에 GoPlus 보안 팀은 Solana 공용 블록체인과 생태계가 사용자 보안에 깊이 관심을 갖고, 사용자 보안 인프라 구축을 가속화하여 더 안전한 거래 환경을 제공하고, 궁극적으로 생태계의 안정과 번영을 실현할 것을 촉구합니다.
TechFlow 공식 커뮤니티에 오신 것을 환영합니다
Telegram 구독 그룹:https://t.me/TechFlowDaily
트위터 공식 계정:https://x.com/TechFlowPost
트위터 영어 계정:https://x.com/BlockFlow_News
![암호 조간: 일본 금융 거물 SBI 와 Solana 재단, 전략적 파트너십 체결, 트럼프 미국 상원에 [Clarity Act] 신속 통과 촉구](https://upload.techflowpost.com/upload/materials/articles/20260701/20260701104056138403.jpg?x-oss-process=image/resize,p_50/quality,q_80)













