Back to Blog

"ROP"이 Web3 피싱 사기에서 어떻게 사용되는가: 상세 분석

MetaSleuth
April 25, 2024
3 min read

우리는 점점 더 널리 퍼지고 있는 새로운 유형의 피싱 방법을 발견했습니다. 피싱 컨트랙트를 배포하는 대신(보안 벤더가 이를 식별할 수 있음), 사기꾼들은 일부 합법적인 컨트랙트를 악용하여 공격을 수행하고 있습니다.

이 블로그에서는 사기꾼들이 사용하는 방법을 보여주고, 피싱을 피하는 방법에 대한 제안을 제공합니다.

개요

일반적으로 사기꾼들은 피싱 컨트랙트를 배포하여 피해자로부터 토큰을 탈취합니다. 구체적으로, 그들의 피싱 컨트랙트에는 의심스러운 payable 및 multi-call 함수가 포함되어 있습니다. 피싱 웹사이트를 방문한 사용자는 이러한 컨트랙트에 ETH를 전송하거나 토큰을 승인하게 됩니다. 그러나 보안 벤더와 지갑은 이러한 피싱 컨트랙트를 탐지하고 표시할 수 있어, 해당 컨트랙트로의 트랜잭션을 차단하게 됩니다.

하지만 우리는 사기꾼들이 피싱 목적으로 평판 있는 Web3 프로젝트가 배포한 합법적인 컨트랙트를 악용한다는 것을 발견했습니다. 이러한 합법적인 컨트랙트는 피싱으로 분류되거나 차단될 수 없습니다. 우리는 이를 Web3 피싱 웹사이트에서의 "ROP"라고 명명했는데, 이는 새로운 컨트랙트를 배포하지 않고 기존의 합법적인 컨트랙트를 피싱에 재사용하기 때문입니다. 이는 전통적인 소프트웨어 보안 분야의 ROP 공격(또는 코드 재사용 공격)과 유사합니다.

구체적으로, Return-oriented programming(ROP)은 공격자가 기존 라이브러리의 코드 조각을 활용할 수 있게 하는 컴퓨터 보안 익스플로잇 기법입니다. Web3 피싱에서 "ROP"는 사기 목적으로 합법적인 프로젝트가 배포한 컨트랙트를 활용하는 것을 의미합니다. 이 현상은 트위터 계정 @MevRefund의 게시물에 의해 처음 보고되었습니다.

전통적인 Web3 피싱 컨트랙트의 작동 방식

Web3 피싱 초기 단계에서 사기꾼들은 외부 소유 계정(EOA)을 설정하고 사용자들을 유인하여 ETH를 전송하거나 다른 토큰을 이 계정에 승인하도록 했습니다. 그러나 이러한 행동은 이제 지갑에 의해 쉽게 탐지되고 사용자들에 의해 발견됩니다. 그 결과, 사기꾼들은 피싱 컨트랙트 배포로 전환했습니다. ETH 피싱의 경우, 사기꾼들은 일반적으로 'Claim' 또는 'Security Update'와 같은 의심스러운 이름의 payable 함수를 사용합니다. 이러한 매력적인 함수 이름은 사용자들이 피싱 트랜잭션에 서명하고 ETH를 전송하도록 유도합니다.

ERC20 및 ERC721 토큰 피싱의 경우, 사기꾼들은 사용자들이 피싱 컨트랙트에 토큰을 승인하도록 유인합니다. 이후 피싱 컨트랙트의 Multicall 함수가 호출되어 사용자의 토큰을 전송합니다. 특히, Multicall 함수는 단일 호출로 여러 특정 내부 트랜잭션을 실행하도록 설계되었습니다. NFT 제로 오더 구매, ERC20 승인 피싱, ERC20 permit 피싱 등 서로 다른 피싱 방식은 각각 다른 피싱 트랜잭션을 사용합니다. 이를 통해 트랜잭션 매개변수를 구성하고 Multicall을 활용하여 해당 피싱 방식에 맞는 특정 피싱 트랜잭션을 실행할 수 있습니다.

현재 많은 인기 있는 Web3 지갑들은 피싱 계정 블랙리스트를 구축했습니다. 이들은 사용자에게 적극적으로 알리고 해당 사기 계정으로의 트랜잭션을 차단합니다.

Web3 피싱에서의 "ROP"

피싱 계정 블랙리스트 메커니즘을 우회하기 위해, 사기꾼들은 블랙리스트에 추가될 수 없는 일부 계정으로 눈을 돌렸습니다. 구체적으로, 그들은 합법적인 프로젝트가 배포한 Multicall 컨트랙트를 악용하여 복잡한 트랜잭션을 실행하는 기능을 활용합니다. 이러한 합법적인 컨트랙트는 피싱 계정으로 표시될 수 없기 때문에, 사기꾼들은 사용자들이 이 컨트랙트에 토큰을 승인하도록 유도합니다. 이러한 합법적인 컨트랙트는 누구나 호출할 수 있으므로(접근 제어 없음), 사기꾼들은 즉시 이를 악용하여 사용자의 토큰을 전송할 수 있습니다. 다음 그림은 전체 과정을 보여줍니다.

그림 1: "ROP"의 전체 과정
그림 1: "ROP"의 전체 과정

예를 들어, 잘 알려진 피싱 범죄 조직인 Angel DrainerUniswap V3: Multicall 2를 활용하여 89건의 피싱 트랜잭션을 실행했습니다. 합법적인 multi-call 컨트랙트는 원래 어떠한 자산도 보유하지 않도록 설계되었다는 점에 유의하십시오. 따라서 설계상 누구나 호출할 수 있습니다. 그러나 사기꾼들은 자신들의 피싱 컨트랙트를 배포하지 않고 이 컨트랙트를 악용하여 피싱 공격을 수행했습니다.

제안

우리는 사용자들이 주의를 기울이고 어떤 행동을 취하기 전에 트랜잭션 세부 사항을 신중하게 검토할 것을 권장합니다, 특히 승인 트랜잭션에 유의하십시오. 항상 승인 내역을 확인하고 의심스러운 항목은 취소하십시오.

Go Deeper with MetaSleuth Investigation

Extend your crypto compliance capabilities with Blocksec's MetaSleuth Investigation, the first platform for tracing funds, mapping transaction networks and revealing hidden on-chain relationships.

Move from detection to resolution faster with clear visual insights and evidence-ready workflows across the digital assets ecosystem.

MetaSleuth Investigation