오리지널

당신의 지갑은 아직 안전한가요? 해커가 Permit, Uniswap Permit2 및 피싱에 승인된 서명을 사용하는 방법

이 기사는 기계로 번역되었습니다
원문 표시

예전에 그룹의 한 친구가 다음과 같은 문장을 공유했던 기억이 납니다. 혜택을 제공하는 사람이 누구인지 모른다면 혜택을 제공하는 사람은 바로 당신입니다. 나는 이 문장이 의미가 있다고 생각한다. 암호화폐 지갑 사용의 보안 측면에서도 마찬가지입니다. 수행 중인 작업이 무엇을 의미하는지 확실하지 않으면 모든 온체인 상호 작용이나 서명으로 인해 지갑의 자산이 손실될 위험이 있습니다.

얼마 전 Scam Sniffer는 2024년 상반기 피싱 보고서를 발표했습니다. 올해 상반기에 EVM 체인(즉, 이더 테더 체인)에서만 260,000명의 피해자가 피싱을 당했고 누적 손실액은 3억 1400만 달러에 달했습니다. 지난해(2023년) 피싱 공격으로 도난당한 2억9500만달러와 비교하면 올해 이 수치에 도달하는 데는 6개월밖에 걸리지 않았다. 아래 그림과 같습니다.

보고서에 따르면, 현재 대부분의 ERC20 토큰 도난은 Permit(오프라인 인증 서명 방법), 허용량 증가(인증 제한 증가 방법) 및 Uniswap Permit2와 같은 피싱 서명에서 발생합니다. 피싱 공격은 의심할 여지 없이 여전히 온체인 주요 보안 문제입니다. . 재해지역.

며칠 전 한 파트너가 문제를 신고했는데, 이 파트너가 두 달 전(6월 14일) 코인베이스 월렛에서 바이낸스로 3건의 자금을 이체했지만(이더 체인 기반 이체) 2건은 성공했습니다. 두 달이 지났는데 무슨 일이 일어났는지 궁금합니다.

그래서 Etherscan을 통해 온체인 Token 거래 기록을 살펴보았는데, 해당 전송(Transfer)이 한 번만 보였고, 나머지 두 건의 거래 기록은 보이지 않았습니다. 아래 그림과 같습니다.

6월 14일 모든 온체인 거래 기록을 추가로 확인한 결과 실제로 3개의 전송 기록이 있는 것으로 나타났으나, 마지막 2개에서는 거래가 실패한 것으로 나타났습니다. 아래 그림과 같습니다.

그런 다음 실패한(실패 상태) 거래 기록 중 하나를 클릭하여 살펴보았습니다. 표시된 오류 메시지는 "계약 실행 중 오류가 발생했습니다." 이론상 이러한 오류로 인해 지갑의 자산이 손실되지는 않습니다. . 공식 Etherscan 문서에 따르면 이러한 오류로 인해 보낸 사람이 보낸 자산(토큰)은 보낸 사람의 지갑 주소를 떠나지 않고 가스 수수료만 차감됩니다. 아래 그림과 같습니다.

따라서 이러한 문제를 해결하기 위해 확인해야 할 사항은 다음과 같다.

- 지갑에 있는 자금이 그날 실제로 이체되었거나 손실되었는지 확인합니다(예: 거래 실패 후 지갑으로 반환되지 않음).

- 자산이 이전 또는 분실된 것으로 확인된 경우 해당 웹사이트의 고객 서비스 직원에게 문의하여 지원을 받아야 할 수 있습니다. (이 경우 주로 송금인이나 화폐 인출 플랫폼에 문의해야 합니다. 즉, , 추가 확인을 위한 송금 출처, 수령 당사자의 플랫폼이나 지불 주소는 처리할 수 없습니다)

이 문제를 바탕으로 제가 일반적으로 제안하는 것은 일일 거래 중에는 거래 기록 시트를 만드는 것이 가장 좋습니다. 예를 들어 Excel 및 기타 도구를 사용하여 일일 거래(구매/판매)와 금전 지출(계좌 입력)을 기록할 수 있습니다. )./회계) 기록 등 그런 다음 문제가 발생하면 이 테이블을 온체인 거래 기록과 비교하고 확인할 수도 있습니다. 사실 저도 그런 양식을 가지고 있어서 거래를 할 때마다 자세하게 기록합니다(일부 기록에는 거래 경험 등도 포함됩니다).

이 시점에서 위의 문제는 기본적으로 명확한 것 같습니다. 하지만 온체인 거래 기록을 조회하는 과정에서 이 파트너의 지갑에 더 심각한 문제가 있다는 사실을 발견했습니다. 해커의 표적이 되었습니다!

무슨 일이야? 아래 그림과 같이 아래를 살펴보겠습니다.

먼저 위 그림의 빨간색 상자를 살펴보세요(실제 거래).

지갑 보유자는 방금 US$10,000의 스왑 작업을 수행하고 변환된 USDT를 0x8F(f103으로 끝남)로 시작하는 지갑으로 전송했습니다.

위 사진의 녹색박스를 보세요(낚시거래)

그 직후 해커는 여러 개의 가짜 거래를 생성했는데, 해커가 생성한 주소 지갑 역시 0x8F(f103으로 끝남)로 시작했다는 점에 유의해야 합니다.

이 지갑 주소를 더 비교해 보겠습니다.

다음은 지갑 소유자의 실제 주소입니다.

0x8F773C2E1bF81cbA8ee71CBb8d33249Be6e5f103

해커의 지갑 주소는 다음과 같습니다.

0x8F7cCF79d497feDa14eD09F55d2c511001E5f103

0x8F776d5623F778Ea061efcA240912f9643fdf103

이 시점에서 모든 사람이 문제를 보게 될 것입니다. 이 지갑의 처음 4자리와 마지막 4자리는 주의깊게 보지 않으면 눈치채지 못할 수도 있습니다. 거래기록에서 지갑 주소를 직접 복사해 돈을 이체한다는 것은 기본적으로 해커에게 직접 돈이 이체된다는 뜻이다.

따라서 이 파트너의 지갑은 실제로 피싱을 통해 이 파트너의 자산을 사취하려는 해커의 표적이 된 것이 확실합니다. 또한, 거래 해시 페이지의 데이터 표시를 통해 해당 거래 액션에도 100% 해커 주소인 Fake_Phishing이 태그 있음을 확인할 수 있습니다. 아래 그림과 같습니다.

추가 지식: Etherscan을 사용할 때 유효하지 않은 거래나 전송 기록이 없는 이유는 무엇입니까? 이더 브라우저를 중국어 간체 인터페이스로 설정하는 방법은 무엇입니까?

이는 공식 이더 브라우저가 기본적으로 유효하지 않은 거래와 전송 기록을 숨기기 때문입니다. 이러한 데이터를 확인해야 하는 경우 Etherscan의 설정 페이지를 통해 고급 기능을 활성화할 수 있습니다. 마찬가지로 중국어 간체 인터페이스를 사용하려는 경우 설정 페이지에서 선택할 수도 있습니다. 아래 그림과 같습니다. 또는 Oklink(중국어 간체 표시도 지원)와 같은 타사 멀티체인 브라우저 사용을 고려할 수도 있습니다.

지갑 사용 보안 문제는 실제로 특별한 주의가 필요한 문제이며, 특히 자산 규모가 큰 지갑(100만 달러 이상)의 경우 더욱 그렇습니다. 보안을 강화하기 위해 용도에 따라 다른 지갑에 자산을 할당하는 것이 좋습니다. 예를 들어, 내 지갑은 다음과 같은 수준으로 나뉩니다.

첫 번째 수준은 코인을 보관하는 데 사용되는 Apple 휴대폰으로 만든 콜드 지갑입니다. 인터넷과 연결이 끊어져 있어 거래/이체 작업을 수행하지 않습니다. 이 부분의 자산 이동은 적어도 고려하지 않습니다. 10년. 물론 콜드월렛을 통해 거래를 하고 싶다면 정식 채널을 통해 잘 알려진 하드웨어 지갑(트레저, 레저 등)을 구매하는 것도 고려해 볼 수 있다.

두 번째 레벨은 상대적으로 많은 양의 자금을 보관하는 핫월렛입니다. 저는 Trust Wallet을 사용하며 어떠한 dApp 인증도 하지 않습니다. Binance를 통한 출금이나 이체를 포함하여 제가 소유한 다른 지갑으로만 자금을 이체합니다.

세 번째 레벨은 수십 개의 작은 지갑으로 구성되며, 그 중 일부는 테스트용으로 사용되었으며(예: 제품을 경험하기 위한 다양한 새 프로젝트에 참여하거나 에어드랍 플레이하는 등), 일부는 이전에 모방 또는 Doge 코인을 구입하는 데 사용되었습니다. (그러나 지난 몇 년 동안 이 지역에서 더 이상 거래를 거의 하지 않았습니다.) 각 지갑에는 수백 달러에서 수천 달러에 이르는 소량의 자금이 들어 있습니다. 나는 이런 종류의 지갑에 대해 매일 승인/서명을 하는 것에 대해 좀 더 캐주얼하며, 도난당하더라도 문제가 되지 않습니다. 이 지갑은 사용과 관리가 조금 번거로워 보일 수도 있지만 주로 보안을 위한 지갑이에요~

즉, 지갑 사용에 대한 선호도는 사람마다 다를 수 있으며 이는 모두 개인 상황에 따라 다릅니다. 오래된 리크는 온체인 에 자산을 저장하는 것을 선호할 수 있지만, 이 분야에 막 입문한 대부분의 신규 사용자에게는 자산을 저장하기 위해 Binance 및 OKX와 같은 대규모 거래소를 직접 이용하는 것이 실제로 더 안전합니다(US$100,000 이하).

다음으로, 현재 가장 일반적인 낚시 방법 중 일부를 계속해서 정리하겠습니다.

1.피싱 공격 허용

우선 기본 지식을 대중화해야 합니다. 이더 에서 토큰을 전송할 때 일반적으로 토큰 스마트 계약의 Transfer 기능 또는 Transfer From 기능을 호출하여 실행합니다. 그 중 전송(Transfer From)은 자산 소유자가 승인된 작업을 수행하고 토큰을 다른 주소로 전송하는 것을 의미하며, 전송 원본(Transfer From)은 제3자가 해당 주소의 토큰을 다른 주소로 직접 전송하는 것을 의미합니다.

Permit 피싱 공격의 공격 과정은 다음과 같습니다.

첫째, 공격자는 피싱 링크나 피싱 웹사이트를 위조하여 사용자가 체인에 업로드하지 않고 지갑을 통해 로그인하도록 유도합니다.

둘째, 공격자는 인증을 완료하기 위해 Permit 함수를 호출한다.

그런 다음 공격자는 피싱 공격을 완료하기 위해 Transfer From 함수를 호출하여 피해자의 자산을 외부로 전송합니다.

이 피싱 수법의 특징 중 하나는 공격자가 서명 승인을 얻은 후 Permit 및 Transfer From 작업을 수행한다는 점입니다. 기본적으로 승인 기록은 피해자 주소의 온체인 거래 기록에서 볼 수 있지만, 공격자의 주소가 도착합니다.

일반적으로 이러한 유형의 서명 인증 공격은 일회성이며 반복적이거나 지속적인 피싱 리스크 일으키지 않습니다. 간단한 설명은 다음과 같습니다. 서명 피싱은 지갑의 니모닉 단어(또는 개인 키)를 훔칠 수 없습니다. 서명 피싱은 한 번만 사용할 수 있으며 해당 계정 체인의 해당 통화에 대해서만 사용할 수 있습니다(예: 승인한 경우). USDT인 경우 해커는 USDT만 훔칠 수 있습니다. 간단히 말해서, 한 번 피싱을 당하고 서명했다면 나중에 계속해서 실수로 서명하여 해커에게 이용당하지 않는 한 해커는 한 번만 사용할 수 있습니다.

(위 사진은 bocaibocai@wzxznl에서 가져왔습니다)

2.Uniswap Permit2 피싱 공격

이 피싱 수법은 위에서 언급한 Permit과 유사하며 둘 다 오프체인 시그니처 피싱에 속합니다. 소위 Uniswap Permit2는 Uniswap이 2022년에 출시한 스마트 계약입니다. 공식 성명에 따르면 이는 토큰 인증을 다양한 애플리케이션에서 공유하고 관리할 수 있도록 하는 토큰 승인 계약으로, 보다 통합되고 비용 효율적인 이점을 창출합니다. 더욱 안전한 사용자 경험을 제공합니다. 현재 많은 프로젝트가 Permit2와 통합되어 있습니다.

최근 bocaibocai(X@wzxznl)님이 쓴 여러 글을 읽고 피싱 공격 방법인 Uniswap Permit2에 대해 자세히 알게 되었습니다. 여기에서 간략하게 요약해 드리겠습니다.

특정 DEX에서 스왑 작업을 수행하려면 먼저 DEX에 대한 승인을 승인한 다음 스왑 트랜잭션을 수행해야 하는 전통적인 상호 작용 방법이 있습니다. 이 경우 일반적으로 두 가지 가스 비용이 발생하고 마찰 비용이 너무 높습니다. Big과 Permit2는 이 단계를 저장하여 사용자의 상호 작용 비용을 매우 효과적으로 줄이고 더 나은 사용자 경험을 제공할 수 있습니다.

즉, Permit2는 사용자와 dApp 사이의 중개자 역할을 합니다. 사용자는 Permit2 계약에 대한 토큰 권한을 승인하기만 하면 됩니다. Permit2 계약을 통합하는 모든 Dapp은 사용자의 상호 작용 비용을 줄이고 효율성을 향상시킵니다. dApps, 사용자 경험의 개선은 더 많은 사용자와 자금을 가져옵니다.

이는 윈윈(win-win) 상황이지만 양날의 검이 될 수도 있습니다. 전통적인 상호 작용 방법에서는 승인이든 자금 이체이든 운영 사용자를 위한 온체인 상호 작용입니다. Permit2는 사용자 작업을 온체인 체인 서명으로 전환하고 모든 온체인 작업은 중간 행위자(예: Permit2 계약 및 Permit2를 통합하는 프로젝트 당사자 등)에 의해 완료됩니다. 사용자의 역할은 사용자에서 중간 역할로 이전되었지만 사용자의 경우 오프체인 서명은 경계를 늦추는 가장 쉬운 링크입니다. 예를 들어 지갑을 사용하여 일부 dApp에 로그인할 때 연결하려면 서명이 필요하지만 대다수의 사람들은 서명 내용을 주의 깊게 확인하지만 서명 내용을 이해하지 못합니다(일반 사용자의 경우 서명 인터페이스는 코드 묶음처럼 보입니다). 그리고 이것이 가장 무서운 부분입니다.

또 다른 무서운 점은 얼마를 교환하고 싶어도 Uniswap의 Permit2 계약을 사용하면 기본적으로 전체 토큰 잔액 승인할 수 있다는 점입니다. MetaMask와 같은 지갑에서는 입력 금액을 맞춤 설정할 수 있지만 대부분의 사람들은 그렇게 생각합니다. 최대값이나 기본값을 직접 클릭하게 되며, Permit2의 기본값은 무제한입니다. 아래 그림과 같습니다.

이는 귀하가 Uniswap과 상호 작용하고 Permit2 계약에 대한 할당량을 승인한 한 이 피싱 사기의 리스크 에 노출될 수 있음을 의미합니다.

예를 들어, Xiao Li는 이전에 Uniswap을 사용했을 때 Uniswap Permit2에 무제한 USDT 할당량을 부여했습니다. 그러나 Xiao Li가 매일 지갑 작업을 수행하는 동안 해커가 설계한 Permit2 시그니처 피싱 트랩에 빠졌습니다. 서명 Li의 서명 후 Xiao Li의 서명을 사용하여 Permit2 계약의 허가 및 이전 작업을 수행하여 Xiao Li의 자산을 이전할 수 있습니다.

이 피싱 공격 방법의 구체적인 단계는 대략 다음과 같습니다.

첫째, 사용자의 지갑은 피싱을 당하기 전에 Uniswap을 사용했으며 Uniswap Permit2 계약에 대한 토큰 한도를 승인했습니다(위에서 언급한 대로 Permit2의 기본값은 무제한 한도 승인입니다).

둘째, 공격자는 피싱 링크나 피싱 웹 사이트 페이지를 위조하여 사용자가 피싱 링크나 웹 사이트를 통해 지갑에 서명하도록 유도하고, 공격자는 필요한 서명 정보를 얻을 수 있습니다(이 단계는 피싱 허용과 유사합니다).

그런 다음 공격자는 Permit2 계약의 Permit 함수를 호출하여 권한 부여를 완료합니다.

마지막으로 공격자는 Permit2 계약의 Transfer From 기능을 호출하여 피해자의 자산을 외부로 전송함으로써 피싱 공격을 완료합니다.

정상적인 상황에서 이 공격 방법은 주소로부터 더 많은 자산을 수신하게 되는데, 그 중 일부는 피싱에 특별히 사용되며(피해자의 지갑 주소와 동일하게 끝나는 주소를 위조하는 경우도 있음), 일부는 피싱 제공에 특화된 블랙 제품입니다. 서비스 주소(예: 일부 DaaS 제공업체 주소, 암호화된 지갑에 대한 현재 피싱은 완전한 블랙 산업 체인을 형성한 것으로 보입니다). 아래 그림과 같습니다.

그렇다면 Permit 및 Permit2와 같은 문제를 방지하는 방법은 무엇입니까?

첫째, 피싱 링크를 방지하기 위해 Scamsniffer(저는 이 플러그인을 내 Google Chrome에 사용하고 있습니다)와 같은 브라우저 보안 플러그인을 사용하는 것을 고려할 수 있습니다. 둘째, Revoke Cash와 같은 도구를 사용하여 정기적으로 확인하고 확인하는 것을 고려할 수 있습니다. 익숙하지 않거나 불필요한 승인이나 서명을 취소하세요. 아래 그림과 같습니다.

또는 Uniswap Permit2용으로 특별히 출시된 Scamsniffer 권한 관리 도구를 직접 사용하여 정기적인 확인을 수행하는 것도 고려할 수 있습니다. 비정상적인 승인이 있는 경우 적시에 승인을 취소하는 것이 좋습니다. 아래 그림과 같습니다.

물론, 가장 중요한 것은 자신의 보안 인식입니다. 출처를 알 수 없는 링크나 웹사이트에 무심코 접근하지 마세요. dApp 상호 작용 인증을 수행할 때 필요한 검사를 수행해야 합니다.

(위 사진은 bocaibocai@wzxznl에서 가져왔습니다)

추가 지식: 지갑 서명이 Permit 또는 Permit2에 속하는지 어떻게 식별합니까?

매일 다양한 서명을 수행할 때 아래 그림과 같이 인증 확인 인터페이스에 일부 코드가 표시됩니다.

위 그림에서는 Owner(승인자 주소),Spender(승인자 주소), Value(승인 수량), Nonce(임의의 숫자), Deadline(만료 시간)이 있습니다.

3. 피싱 공격 주장

이런 종류의 에어드랍 방법도 매우 일반적입니다. 예를 수령하다 도메인 이름 주소 에어드랍 있을 수 있습니다.

그리고 클릭하여 지정된 피싱 사이트에 접속하여 Claim 작업을 수행하면 지갑에 있는 자산이 해커에 의해 직접 전송될 수 있습니다.

그렇다면 이런 종류의 문제를 예방하는 방법은 무엇입니까?

우선, 뻥튀기적인 내용을 믿지 마세요(즉, 출처를 알 수 없는 무료 NFT, 에어드랍 등에 대한 링크를 무작위로 클릭하지 마세요). 둘째, 청구 작업을 수행할 때 방문하는 주소가 진짜인지 확인하십시오.

4. 유사 주소 전송 피싱

이번 사건은 올해 5월 3일 같은 주소로 고래 피싱공격을 당해 1,155WBTC(당시 약 7000만달러 상당)를 피싱 공격을 받은 사건이다.

슬로우 미스트 (SlowMist) 이 사건에 대해 이전에 자세히 분석했기 때문에 여기에서는 자세히 설명하지 않겠습니다. 관심 있는 친구들은 검색하고 검토할 수 있습니다.

이 낚시 방법은 실제로 비교적 간단해 보입니다.

우선, 해커들은 미리 대량 피싱 주소를 생성하게 되는데, 이러한 주소는 다소 혼란스럽습니다. 예를 들어 처음 4자리와 마지막 6자리가 피해자의 대상 전송 주소와 동일합니다.

둘째, 온체인 사용자 역학을 기반으로 배치 프로그램의 분산 배포 후 대상 전송 주소로 첫 번째와 마지막 숫자 주소가 동일한 피싱 공격이 시작됩니다.

그러다가 대상 사용자(피해자)가 송금한 후 해커는 즉시 충돌된 피싱 주소를 이용해 거래를 추적해 해당 사용자의 거래 기록에 피싱 주소가 나타나게 된다. 아래 그림과 같습니다.

그러다가 사용자는 지갑 내역에서 최근 이체 정보를 복사하는 데 익숙했기 때문에 이러한 피싱 거래를 보고 복사한 주소가 올바른지 신중하게 확인하지 않았으며 그 결과 1,155WBTC가 피싱 주소로 잘못 전송되었습니다.

그렇다면 이런 종류의 문제를 예방하는 방법은 무엇입니까?

우선, 자주 사용하는 주소를 지갑 주소록에 저장(또는 화이트리스트에 추가)할 수 있습니다. 다음 이체 시 지갑 주소록에서 대상 주소를 찾을 수 있습니다. 둘째, 주소가 맞는지 잘 확인해야 합니다. 단순히 앞자리나 뒷자리만 확인하지 말고, 고액송금을 하기 전에 소액송금을 테스트해보는 것이 좋습니다.

5. 공인서명피싱

실제로 위에서 언급한 Permit, Uniswap Permit2, Claim 역시 승인된 피싱의 범주에 속합니다. 승인에 관해서는 보다 일반적인 승인(즉, Uniswap이 내 지갑에 있는 USDT를 유용할 수 있음을 USDT 계약에 알리는 것과 동일한 승인), 허용량 증가(증가) 등 해커가 악용할 수 있는 방법이 많이 있습니다. 승인 한도) 등

공격 방법은 기본적으로 공격자가 피싱 링크나 피싱 사이트를 이용하거나, 해당 프로젝트의 공식 홈페이지를 직접 해킹해 트로이 목마를 설치한 뒤 사용자가 지갑을 클릭해 인증하도록 유도하는 방식이다.

물론 현재 상대적으로 흔한 피싱 공격 방법 5가지만을 나열해 보았는데, 현재 해커들의 공격 방법도 다양하고 무궁무진합니다. 악마는 도교만큼 높다는 속담처럼 오직 당신만이 생각할 수 없고 해커가 생각하지 못할 것은 없습니다. 지갑 사용의 보안은 무시할 수 없습니다.

이번 호의 내용은 여기에서 공유하겠습니다. 더 많은 기사는 Hua Li Hua Wai 홈페이지에서 보실 수 있습니다.

면책조항: 위 내용은 개인적인 관점 과 분석일 뿐이며, 학습 기록 및 의사소통용으로만 사용되며, 투자 조언을 구성하지 않습니다. 암호화 분야는 리스크 매우 높은 시장이며, 많은 프로젝트가 언제든지 원점으로 돌아갈 리스크 있습니다. 합리적으로 처리하고 책임을 지십시오.

면책조항: 상기 내용은 작자의 개인적인 의견입니다. 따라서 이는 Followin의 입장과 무관하며 Followin과 관련된 어떠한 투자 제안도 구성하지 않습니다.
라이크
2
즐겨찾기에 추가
1
코멘트