Cointime

Download App
iOS & Android

SharkTeam: 일반적인 Web3 피싱 방법 분석 및 보안 예방 제안

Web3 피싱은 Web3 사용자를 대상으로 하는 일반적인 공격 방법으로 사용자의 지갑에 있는 암호화된 자산을 훔칠 목적으로 사용자의 인증 및 서명을 도용하거나 오작동을 유도하는 등 다양한 방법을 사용합니다.

최근에는 Web3 피싱 사건이 계속해서 발생하고 있으며 DaaS(Drainer as a Service)라는 블랙 산업 체인이 발전하여 심각한 보안 상황을 야기하고 있습니다.

이 기사에서 SharkTeam은 일반적인 Web3 피싱 방법을 체계적으로 분석하고 참고할 수 있는 보안 예방 조치를 제공하여 사용자가 피싱 사기를 더 잘 식별하고 암호화된 자산의 보안을 보호할 수 있도록 돕습니다.

1. 일반적인 낚시 기술 분석

1. 오프체인 서명 피싱 허용

허가는 ERC-20 표준에 따른 승인을 위한 확장 기능입니다. 간단히 말해, 다른 주소에 서명하고 승인하여 토큰을 이동할 수 있습니다. 원칙은 승인된 주소가 이 서명을 통해 귀하의 토큰을 사용할 수 있음을 나타내기 위해 서명한 다음 승인된 주소가 온체인 허가 상호작용을 위해 귀하의 서명을 보유하고 호출 승인을 획득하고 귀하에게 자산을 전송할 수 있다는 것입니다. 오프체인 서명 피싱 허용은 일반적으로 세 단계로 나뉩니다.

(1) 공격자는 사용자가 지갑을 통해 서명하도록 유도하기 위해 피싱 링크 또는 피싱 웹사이트를 위조합니다(계약 상호작용 없음, 온체인 없음).

서명 개체: DAI/USDC/WETH 및 기타 ERC20 토큰(여기서는 DAI)

보유자://서명주소

지출자://phisher 주소

임시값:0

만료:1988064000 //만료 시간

허용됨:사실

서명된 경우 피셔는 허가 기능이 필요한 DAI/USDC/WETH 및 기타 ERC20 토큰(여기서는 DAI)을 훔치는 데 사용되는 서명(r, s, v 값의 기간)을 얻습니다. 사용될).

(2) 공격자는 허가를 완료하기 위해 허가 함수를 호출한다.

https://etherscan.io/tx/0x1fe75ad73f19cc4c3b658889dae552bb90cf5cef402789d256ff7c3e091bb662

(3) 공격자는 transferFrom 함수를 호출하여 피해자의 자산을 이전하고 공격을 완료합니다.

먼저 transfer와 transferFrom의 차이점을 설명하겠습니다. ERC20을 직접 전송할 때 일반적으로 ERC20 계약에서 전송 기능을 호출하며, transferFrom은 일반적으로 지갑에 있는 ERC20을 다른 주소로 전송하도록 제3자에게 승인할 때 사용됩니다.

https://etherscan.io/tx/0x9c02340896e238fc667c1d84fec78af99b1642c986fe3a81602903af498eb938

추가 설명: 이러한 종류의 서명은 가스가 없는 오프체인 서명입니다. 공격자가 이를 획득한 후 온체인 상호작용에서 허가 및 전송을 수행하므로 승인 기록은 피해자의 온체인 기록에서 볼 수 없습니다. 주소에서 공격자의 주소를 볼 수 있습니다. 일반적으로 이 서명은 일회성으로 사용되며 반복적이거나 지속적인 피싱 위험을 일으키지 않습니다.

2. Permit2 오프체인 서명 피싱

Permit2는 사용자의 편의를 위해 Uniswap이 2022년 말 출시한 스마트 계약으로, 향후 점점 더 많은 프로젝트가 통합될 예정이므로 토큰 승인을 다양한 DApp에서 공유하고 관리할 수 있도록 하는 토큰 승인 계약입니다. Permit2를 사용하면 Permit2 계약은 DApp 생태계에서 보다 통합된 인증 관리 경험을 달성하고 사용자 거래 비용을 절약할 수 있습니다.

Permit2가 등장하기 전에 Uniswap의 토큰 교환에는 승인(Approve)과 교환(Swap)이 필요했으며, 이는 두 번의 작업과 두 번의 거래에 대한 가스 요금이 필요했습니다. Permit2 출시 후 사용자는 Uniswap의 Permit2 계약에 대한 모든 할당량을 한 번에 승인할 수 있으며, 이후의 각 상환에는 오프체인 서명만 필요합니다.

Permit2가 등장하기 전에 Uniswap의 토큰 교환에는 승인(Approve)과 교환(Swap)이 필요했으며, 이는 두 번의 작업과 두 번의 거래에 대한 가스 요금이 필요했습니다. Permit2 출시 후 사용자는 Uniswap의 Permit2 계약에 대한 모든 할당량을 한 번에 승인할 수 있으며, 이후의 각 상환에는 오프체인 서명만 필요합니다.

Permit2는 사용자 경험을 향상시키지만 Permit2 서명을 표적으로 삼는 피싱 공격이 이어집니다. Permit 오프체인 서명 피싱과 마찬가지로 Permit2도 오프체인 서명 피싱입니다. 이 공격은 주로 4단계로 나뉩니다.

(1) 전제 조건은 피싱 공격을 받기 전에 사용자의 지갑이 Uniswap을 사용했으며 Uniswap의 Permit2 계약에 대한 토큰 한도를 승인했다는 것입니다(Permit2를 사용하면 기본적으로 사용자가 전체 토큰 잔액을 승인할 수 있습니다).

https://etherscan.io/tx/0xd8f0333b9e0db7175c38c37e490379bde5c83a916bdaa2b9d46ee6bff4412e8f

(2) 공격자는 피싱 링크나 피싱 페이지를 위조하여 사용자의 서명을 유도합니다. 이는 Permit 체인을 통한 서명 피싱과 유사합니다.

(3) 공격자는 허가를 완료하기 위해 Permit2 계약의 허가 기능을 호출합니다.

https://etherscan.io/tx/0xd8c3f55dfbc8b368134e6236b296563f506827bd5dc4d6c0df39851fd219d658

(4) 공격자는 Permit2 컨트랙트의 transferFrom 함수를 호출하여 피해자의 자산을 이전하고 공격을 완료합니다.

https://etherscan.io/tx/0xf6461e003a55f8ecbe919a47b3c0dc6d0f068e48a941658329e35dc703138486

보충 설명: 공격자가 자산을 받는 주소는 일반적으로 여러 개가 있습니다. 일반적으로 가장 많은 금액을 받는 수신자 중 하나는 피싱을 구현하는 공격자이고 나머지는 서비스형 피싱(phishing-as-a)을 제공하는 블랙 주소입니다. - 서비스 DaaS 공급자) 주소(예: PinkDrainer, InfernoDrainer, AngelDrainer 등).

3. eth_sign 체인의 블라인드 사인 낚시

eth_sign은 모든 해시에 서명할 수 있는 개방형 서명 방법입니다. 공격자는 서명이 필요한 악성 데이터(예: 토큰 전송, 계약 호출, 권한 획득 등)를 구성하고 사용자가 eth_sign을 통해 서명하도록 유도하기만 하면 됩니다. 공격을 완료할 수 있습니다.

MetaMask는 eth_sign에 서명할 때 위험 경고를 표시합니다. imToken 및 OneKey와 같은 Web3 지갑은 이 기능을 비활성화했거나 위험 경고를 제공했습니다. 보안 인식 부족이나 필요로 인해 사용자가 공격당하는 것을 방지하기 위해 모든 지갑 제조업체는 이 방법을 비활성화하는 것이 좋습니다. 기술 축적.

4. personal_sign/signTypedData 온체인 서명 피싱

4. personal_sign/signTypedData 온체인 서명 피싱

personal_sign 및 signTypedData는 일반적으로 사용되는 서명 방법입니다. 일반적으로 사용자는 개시자, 도메인 이름, 서명 내용 등이 안전한지 주의 깊게 확인해야 하며, 위험할 경우 각별히 주의해야 합니다.

또한 위와 같이 personal_sign과 signTypedData를 "블라인드 시그니처"로 사용하게 되면 사용자는 일반 텍스트를 볼 수 없고 피싱조직에 쉽게 악용될 수 있어 피싱 위험도 높아지게 됩니다.

5. 허가된 피싱

공격자는 악성 웹사이트를 위조하거나 프로젝트 공식 웹사이트에 악성코드를 걸어 사용자가 setApprovalForAll, 승인, 승인증가, 허용량증가 등의 작업을 확인하도록 유도하고 사용자의 자산 운용 권한을 획득하여 도난을 저지릅니다.

(1)모두 승인 설정

PREMINT 말피싱 사건을 예로 들면, 프로젝트 홈페이지의 js 파일(https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js)에 악성코드가 주입되었습니다. Node.js 파일(https://s3-redwood-labs-premint-xyz.com/cdn.min.js?v=1658050292559)이 동적으로 생성되어 주입됩니다. 공격은 이 악성 스크립트에 의해 시작됩니다.

사용자가 제때에 위험을 발견하지 못했기 때문에 setApprovalForAll 작업을 확인하고 실수로 자산에 대한 작업 권한을 유출하여 자산을 도난당했습니다.

사용자가 제때 위험을 발견하지 못했기 때문에 setApprovalForAll 작업을 확인하고 실수로 자산에 대한 작업 권한을 유출하여 자산을 도난당했습니다.

(2)승인하다

setApprovalForAll과 마찬가지로 사용자가 승인 작업을 확인하여 자산에 대한 작업 권한이 유출되어 자산이 도난당했습니다.

잘못된 승인 승인:

https://etherscan.io/tx/0x4b0655a5b75a9c078653939101fffc1d08ff7e5c89b0695ca6db5998214353fa

공격자는 transferFrom:을 통해 자산을 전송합니다.

https://etherscan.io/tx/0x0dedf25777ff5483bf71e70e031aacbaf50124f7ebb6804beb17aee2c15c33e8

승인증가, 허용증가 기능의 공격원리는 이와 유사하다. 기본적으로 공격자가 피해자의 주소 토큰을 운용할 수 있는 상한선은 0이다. 그러나 이 두 기능에 의해 승인을 받은 후에 공격자는 피해자의 주소 토큰에 대한 한도를 증가시킨다. 토큰 운영 한도가 설정되면 토큰의 양이 전송될 수 있습니다.

(3) 승인 증가

승인오류 증가:

https://etherscan.io/tx/0x7ae694080e2ad007fd6fa25f9a22ca0bbbff4358b9bc84cc0a5ba7872118a223

공격자는 transferFrom:을 통해 자산을 전송합니다.

https://etherscan.io/tx/0x15bc5516ed7490041904f1a4c594c33740060e0f0271cb89fe9ed43c974a7a69

(4) 수당 증액

수당 승인 오류 증가:

https://etherscan.io/tx/0xbb4fe89c03d8321c5bfed612fb76f0756ac7e99c1efaf7c4d99d99f850d4de53

공격자는 transferFrom:을 통해 자산을 전송합니다.

https://etherscan.io/tx/0xb91d7b1440745aa07409be36666bc291ecc661e424b21b855698d488949b920f

6. 오염 피싱 해결

주소 오염 피싱(Address Pollution Phishing) 역시 최근 성행하고 있는 피싱 수법 중 하나이다. 공격자는 체인상의 거래를 감시한 후, 대상 사용자의 거래 내역 중 상대방 주소를 기반으로 악성 주소를 위조하는 경우가 많다. 숫자는 올바른 상대와 관련되어 있으며, 이러한 악의적인 위조 주소는 대상 사용자 주소로 소량 또는 가치 없는 토큰을 전송하는 데 사용됩니다.

대상 사용자가 개인적인 습관으로 인해 후속 거래에서 전송하기 위해 과거 거래 주문에서 상대방의 주소를 복사하는 경우 부주의로 인해 자산이 악의적인 주소로 실수로 전송될 가능성이 매우 높습니다.

2024년 5월 3일, 1155WBTC는 이 주소의 공해 피싱 수법으로 인해 7천만 달러 이상의 가치가 있는 피싱을 당했습니다.

올바른 주소: 0xd9A1b0B1e1aE382DbDc898Ea68012FfcB2853a91

악성 주소: 0xd9A1C3788D81257612E2581A6ea0aDa244853a91

일반 거래:

https://etherscan.io/tx/0xb18ab131d251f7429c56a2ae2b1b75ce104fe9e83315a0c71ccf2b20267683ac

주소 오염:

https://etherscan.io/tx/0x87c6e5d56fea35315ba283de8b6422ad390b6b9d8d399d9b93a9051a3e11bf73

잘못된 거래:

https://etherscan.io/tx/0x3374abc5a9c766ba709651399b6e6162de97ca986abc23f423a9d893c8f5f570

7. CREATE2를 사용하여 보안 탐지를 우회하는 보다 교묘한 피싱

현재 다양한 지갑과 보안 플러그인은 피싱 블랙리스트 및 일반적인 피싱 방법에 대한 시각적 위험 알림을 점차적으로 구현하고 있으며 서명 정보도 점점 더 완벽하게 표시하여 일반 사용자의 피싱 공격 식별 능력을 향상시켰습니다. 그러나 공격적 기술과 방어적 기술은 항상 서로 경쟁하며 끊임없이 발전하고 있으며, 더욱 은밀한 피싱 수법도 끊임없이 등장하고 있으므로 더욱 경계할 필요가 있습니다. CREATE2를 사용하여 지갑 및 보안 플러그인의 블랙리스트 감지를 우회하는 것은 최근 비교적 일반적인 방법입니다.

Create2는 사용자가 이더리움에서 스마트 계약을 생성할 수 있도록 하는 이더리움 '콘스탄티노플' 업그레이드 중에 도입된 opcode입니다. 원래 Create opcode는 작성자의 주소를 기반으로 새 주소를 생성하고 Create2를 사용하면 계약 배포 전에 주소를 계산할 수 있습니다. Create2는 이더리움 개발자를 위한 매우 강력한 도구로, 고급스럽고 유연한 계약 상호 작용, 매개변수 기반 계약 주소 사전 계산, 오프체인 트랜잭션 및 특정 분산 애플리케이션의 유연한 배포 및 적용을 가능하게 합니다.

Create2는 이점을 제공하지만 새로운 보안 위험도 가져옵니다. Create2는 지갑 블랙리스트 감지 및 보안 경고를 우회하여 악의적인 거래 기록 없이 새 주소를 생성하는 데 악용될 수 있습니다. 피해자가 악의적인 거래에 서명하면 공격자는 미리 계산된 주소에 계약을 배포하고 피해자의 자산을 해당 주소로 전송할 수 있으며 이는 되돌릴 수 없는 프로세스입니다.

이 공격의 특징은 다음과 같습니다.

(1) 계약 주소의 예측 생성을 허용하여 공격자가 계약을 배포하기 전에 사용자를 속여 권한을 부여하도록 허용합니다.

(2) 승인 당시 계약이 아직 배포되지 않았기 때문에 공격 주소는 새로운 주소이며 탐지 도구는 은폐성이 높은 과거 블랙리스트를 기반으로 조기 경고를 제공할 수 없습니다.

다음은 CREATE2를 이용한 피싱 예시이다.

https://etherscan.io/tx/0x83f6bfde97f2fe60d2a4a1f55f9c4ea476c9d87fa0fcd0c1c3592ad6a539ed14

이번 거래에서 피해자는 해당 주소의 sfrxETH를 거래 기록이 없는 새로운 컨트랙트 주소인 악성 주소(0x4D9f77)로 전송했다.

그런데 이 컨트랙트의 생성 트랜잭션을 열어보면 해당 컨트랙트가 생성과 동시에 피싱 공격을 완료하여 피해자의 주소에서 자산을 이체한 것을 확인할 수 있습니다.

https://etherscan.io/tx/0x77c79f9c865c64f76dc7f9dff978a0b8081dce72cab7c256ac52a764376f8e52

이 트랜잭션의 실행을 보면 CREATE2를 호출한 후 0x4d9f7773deb9cc44b34066f5e36a5ec98ac92d40이 생성된 것을 확인할 수 있습니다.

또한, PinkDrainer의 관련 주소를 분석해 보면, 이 주소는 CREATE2를 통해 매일 새로운 피싱용 계약 주소를 생성하고 있음을 알 수 있다.

https://etherscan.io/address/0x5d775caa7a0a56cd2d56a480b0f92e3900fe9722#internaltx

2. 서비스로서의 낚시

2. 서비스로서의 낚시

피싱 공격이 날로 만연해지고 있으며 막대한 불법 이익으로 인해 DaaS(Drainer as a Service)를 기반으로 하는 블랙 산업 체인이 점차 발전하고 있으며 그 중 Inferno/MS/Angel/Monkey/Venom/Pink/Pussy가 있습니다. /메두사 등 피싱 공격자들은 이러한 DaaS 서비스를 낮은 임계값으로 신속하게 구매하여 수천 개의 피싱 웹사이트, 사기 계정 등을 구축하여 이 업계에 돌진하는 재앙처럼 사용자 자산의 보안을 위협합니다.

다양한 웹사이트에 악성 스크립트를 삽입하는 악명 높은 피싱 조직인 Inferno Drainer를 예로 들어 보겠습니다. 예를 들어 seaport.js, coinbase.js, wallet-connect.js를 확산시켜 인기 있는 Web3 프로토콜 기능(Seaport, WalletConnect, Coinbase)으로 위장하여 사용자의 통합이나 클릭을 유도합니다. 사용자 자산을 공격자의 주소로 자동 전송합니다. 악성 Seaport 스크립트가 포함된 14,000개 이상의 웹사이트, 악성 WalletConnect 스크립트가 포함된 5,500개 이상의 웹사이트, 악성 Coinbase 스크립트가 포함된 550개 이상의 웹사이트, Inferno Drainer와 관련된 16,000개 이상의 악성 도메인, 100개 이상의 암호화폐 브랜드가 발견되었습니다. 체하는. 다음은 인페르노 드레이너(Inferno Drainer)와 관련된 피싱 사이트이다.

웹사이트의 헤드 부분에는 seaport.js와 wallet-connect.js라는 두 개의 악성 스크립트가 포함되어 있습니다. Inferno Drainer 피싱 웹사이트의 또 다른 일반적인 특징은 사용자가 마우스 오른쪽 버튼을 클릭해도 웹사이트 소스 코드를 열 수 없다는 점입니다. 이로 인해 이러한 피싱 웹사이트가 더욱 은폐됩니다.

서비스형 피싱(Phishing-as-a-Service) 프레임워크에서는 일반적으로 도난당한 자산의 20%가 자동으로 인페르노 드레이너(Inferno Drainer) 구성 주소로 이전되고 나머지 80%는 피싱 가해자가 보유합니다. 또한 Inferno Drainer는 피싱 웹사이트를 생성하고 호스팅하는 무료 서비스를 정기적으로 제공합니다. 때로는 피싱 서비스에서 사기당한 자금의 30%를 수수료로 요구하기도 합니다. 이러한 피싱 웹사이트는 피해자의 방문을 유도할 수는 있지만 생성 및 호스팅 능력이 부족한 사람들을 위한 것입니다. 웹 사이트를 호스팅할 수 있는 기술적 능력이 있거나 단순히 작업을 직접 수행하기를 원하지 않는 피싱 공격자가 설계했습니다.

그렇다면 이 DaaS 사기는 어떻게 작동합니까? Inferno Drainer의 암호화폐 사기 계획에 대한 단계별 설명은 다음과 같습니다.

(1) Inferno Drainer는 Inferno Multichain Drainer라는 텔레그램 채널을 통해 서비스를 홍보하며, 때로는 공격자가 Inferno Drainer의 웹 사이트를 통해 서비스에 액세스하기도 합니다.

(2) 공격자는 DaaS 서비스 기능을 통해 자신의 피싱 사이트를 구축, 생성하고 이를 X(트위터), 디스코드 등 소셜미디어를 통해 유포한다.

(3) 피해자는 지갑에 연결하기 위해 이러한 피싱 웹사이트에 포함된 QR 코드 또는 기타 방법을 스캔하도록 유도됩니다.

(4) 드레이너는 피해자의 가장 가치 있고 쉽게 양도할 수 있는 자산을 확인하고 악의적인 거래를 시작합니다.

(5) 피해자가 거래를 확인했습니다.

(6) 자산이 범죄자에게 이전됩니다. 도난당한 자산 중 20%는 Inferno Drainer 개발자에게, 80%는 피싱 공격자에게 전달되었습니다.

아래 그림은 DaaS 서비스 페이지로 Inferno Drainer가 고객에게 연결 수(피해자가 지갑을 피싱 웹 사이트에 연결한 경우), 성공적인 클릭 수(피해자가 거래를 확인한 경우) 및 값과 같은 통계를 보여줍니다. 도난당한 자산.

DaaS 서비스의 각 고객은 자체 드레이너 기능을 사용자 정의할 수 있습니다.

3. 안전 제안

(1) 우선, 사용자는 보상, 에어드랍 등 좋은 소식을 가장한 알 수 없는 링크를 클릭해서는 안 됩니다.

(2) 공식 소셜 미디어 계정을 도난당하는 사건이 증가하고 있으며 공식 정보도 피싱 정보일 수 있으며 공식 정보가 절대적으로 안전하다는 의미는 아닙니다.

(3) 지갑, DApp 및 기타 애플리케이션을 사용할 때 위조 사이트 및 가짜 앱을 선별하고 조심해야 합니다.

(4) 확인이 필요한 거래 또는 서명 메시지는 주의가 필요하며 대상, 내용 및 기타 정보를 교차 확인하도록 노력해야 합니다. 맹목적으로 서명하는 것을 거부하고 경계심을 유지하며 모든 것을 의심하고 작업의 모든 단계가 명확하고 안전한지 확인하십시오.

(5) 또한, 사용자는 본 글에서 언급한 일반적인 피싱 공격 방법을 이해하고 피싱 특성을 사전에 식별하는 방법을 배워야 합니다. 마스터 공통 서명, 인증 기능 및 해당 위험, 마스터 Interactive(상호작용 URL), 소유자(인증자 주소), 지출자(인증된 당사자 주소), Value(인증 번호), Nonce(난수), Deadline(만료 시간), 전송/ transferFrom(전송) 및 기타 필드 내용.

참고자료

https://x.com/evilcos/status/1661224434651529218

참고자료

https://x.com/evilcos/status/1661224434651529218

https://x.com/RevokeCash/status/1648694185942450177

https://web3caff.com/zh/archives/63069

https://www.group-ib.com/blog/inferno-drainer/

https://blocksec.com/blog/how-phishing-websites-bypass-wallet-security-alerts-strategies-unveiled

회사 소개

SharkTeam의 비전은 Web3 세계를 보호하는 것입니다. 이 팀은 블록체인 및 스마트 계약의 기본 이론에 능숙한 전 세계의 숙련된 보안 전문가와 수석 연구원으로 구성되어 있습니다. 위험 식별 및 차단, 스마트 계약 감사, KYT/AML, 온체인 분석 등을 포함한 서비스를 제공하며 지능형 지속 위협(Advanced Persistant Threat, Advanced Persistant Threat)에 효과적으로 대처할 수 있는 온체인 지능형 위험 식별 및 차단 플랫폼 ChainAegis를 만들었습니다. 지속적인 위협), APT). Polkadot, Moonbeam, Polygon, Sui, OKX, imToken, Collab.Land, TinTinLand 등 Web3 생태계의 다양한 분야의 주요 플레이어와 장기적인 협력 관계를 구축했습니다.

공식 홈페이지: https://www.sharkteam.org

트위터: https://twitter.com/sharkteamorg

텔레그램: https://t.me/sharkteamorg

디스코드: https://discord.gg/jGH9xXCjDZ

댓글

모든 댓글

Recommended for you