저자: OneKey 중국어 출처: X, @OneKeyCN
시험을 통해 직접 확인해보세요. 생각: 거래를 시작하지 않는 한, 사이트에 가입하고 "연결 및 로그인"하여 자산을 잃지 않을까요?
고개를 끄덕이신다면, 아마 21세 정도 되셨을 겁니다.
스캠 스니퍼가 발표한 '24년 3월 피싱 보고서*에 따르면 피싱 자산의 90%가 ERC-20 토큰이었습니다. 주요 피싱 방법은 허가/허가2 피싱 서명입니다.
올해 3월 중순에만 평균 자산 가치가 약 200만 달러에 달하는 4건의 도난 거래가 발생했으며, 이 중 3건은 Permit 피싱 서명에 의해 도난당한 Pendle PT 프라이머리 토큰이었습니다.
피해자 입장에서는 어느 날 갑자기 자산이 이체된 것을 발견하고 확인해보니 개인키가 도난당했다고 생각했지만, 실수로 오프라인 서명을 한 것이어서 아무것도 할 수 없는 공포 영화와도 같은 상황입니다.
이 모든 것은 피할 수 있는 일이었습니다.
퍼밋/퍼밋2 요약
시간 관계상 여기서는 EIP-2612의 퍼밋 또는 유니스왑 도입에 대해서는 자세히 설명하지 않겠습니다. Permit2의 도입에 대한 암호화 "교과서적인 지식"을 소개합니다. (
여러분이 깨달아야 할 것은 시대가 변했고 '큰 눈을 가진' 서명이 쉽지 않다는 것입니다.
이것을 대충 해석하면, 이제 상당수의 ERC-20 토큰 라이선스가 '중개자'를 통해 관리될 것입니다.
과거에는 토큰 크레딧이 각 디앱 컨트랙트에 하나씩 할당되었습니다. 그리고 그럴 때마다 가스 비용이 발생했습니다.
이제 Permit / Permit2 기술(이미 상당수의 dApp에서 사용 중)을 사용하면 '중개자'인 Permit / Permit2에 토큰을 승인하기만 하면 됩니다.
이 기술을 통합하는 모든 dApp은 이 정도의 승인을 요청할 수 있으며, 반복적으로 승인을 위해 가스를 사용하는 대신 가입하고 (대량으로라도) 승인하는 간단한 문제일 뿐입니다.
양날의 검
이러한 유형의 서명 업그레이드는 애플리케이션 간 작업의 편의성과 비용 절감 측면에서 다양한 이점을 제공합니다. 하지만 몇 가지 함정도 있습니다.
위험은 지난 상승장에서 암호화폐 사용자들이 "디앱에 로그인하고 연결하려면 서명이 필요하다"는 습관에 익숙해져 안전하다고 생각하여 기존의 평범한 서명을 무방비 상태로 사용했다는 것입니다.
사용자도 모르는 사이에 최신 버전의 서명을 (무턱대고) 구분하지 않으면 피싱될 수 있습니다. 이는 사용자 보안 인식과 지갑과 같은 다양한 인프라에 새로운 도전 과제를 제기합니다.
해커 입장에서는 '칼로 물 베기'에 더 좋은 방법입니다.
공격자는 간단히 피싱 계약을 배포하고 사용자로부터 Permit 승인 서명을 받은 다음 자산을 훔치는 거래를 제출할 수 있습니다(또는 사용자가 잊을 때까지 며칠을 기다릴 수도 있습니다). 또한 Permit2를 사용하면 해커가 승인된 모든 토큰에 대량으로 액세스할 수 있습니다.
예를 들어, SlowMist의 설립자 Yu Yin(https://x.com/evilcos/status/1771338665052287307)이 최근 공유한 사례에서 사용자는 자신도 모르게(그리고 확인하려는 노력도 하지 않고) 서약 중에 관련 토큰의 권한에 대한 서명 피싱을 당했습니다. 자신도 모르고 (그리고 확인에 주의를 기울이지 않은 채) 해커는 토큰을 지갑에 제시했을 때 즉시 자산을 훔쳤고 많은 돈을 잃었습니다.
위장 수단을 보면 피싱도 조금 더 쉬워진 것 같습니다. '지갑을 연결'하여 에어드랍을 확인할 수 있는 '에어드랍 확인' 사이트를 만들었을 수도 있습니다. 또는 특정 인기 이벤트/프로젝트를 위해 로그인할 수 있는 도구 사이트를 만들 수도 있습니다. 기믹은 끝이 없습니다. 그리고 이를 사용하는 과정에서 허가 / 허가2 유형의 서명을 유도했을 것입니다.
앞으로 이더가 계정 추상화(EIP-3074는 다음 펙트라 하드포크 업그레이드에 공식적으로 포함됨)를 진행함에 따라 전체 주소 제어를 컨트랙트에 직접 승인하여 컨트랙트 주소가 사용자의 지갑 주소를 직접 조작할 수 있도록 할 수도 있습니다. 이는 편리하지만 새로운 피싱 위험을 초래할 수 있습니다.
물론 이는 나중에 고려해야 할 사항입니다.
이런 피싱을 예방하려면 어떻게 해야 할까요? 후회하지 않는 약이 있을까요?
퍼밋/퍼밋2 피싱 예방 방법에 대한 수많은 트윗과 기사가 작성되었습니다. 여기에 다시 한 번 정리해 보았는데, 그만한 가치가 있습니다.
1. 맹목적으로 서명하지 마세요
현실 세계에서 법적 구속력이 있는 계약서와 마찬가지로, 그 누구도 함부로 서명을 해주지는 않을 것입니다.
위장한 피싱 사이트를 식별하는 것은 암호화 보안의 기본 조작에 해당합니다. 해커가 버튼의 의도를 위장하여 사용자가 서명하도록 속이는 낯선 동글 사이트의 '로그인 요청'도 마찬가지로 주의해야 합니다.
우리 모두가 사용하는 작은 여우는 허가/허가2 서명을 인식할 수 있으므로, 상호작용하는 dAPP이 이러한 유형의 서명을 표시한다면 관련 토큰을 승인하는 것이 아닌지 다시 한 번 확인하는 것이 좋습니다. 일반적인 서명 메시지라면 특별한 유형의 서명이 팝업될 가능성은 거의 없습니다.
퍼밋 클래스 외에도 증가 허용, 멀티디앱 콤보 연산, 심지어 0x로 시작하는 완전히 읽을 수 없는 서명 등 다양한 서명이 있으며, 모두 잠재적으로 자산의 보안을 위협할 수 있습니다.
요약하자면, 팝업되는 서명의 내용과 결과에 대해 잘 모르겠다면 특히 지갑에 많은 자산을 보유하고 있다면 주의하셔야 합니다.
2. 젖은 신발과 마른 신발 분리
항상 강가를 걷는다면 신발이 젖어 있을 수 없습니다.
작은 사이트에서 '위험 경고를 무시'하고 흙탕물을 뒤집어쓰는 것을 좋아하는 사람이라면, 정말 정기적으로 '고위험 행동'을 해야 한다면 자산을 분리하는 것이 좋습니다.
작은 지갑은 상호작용에 자주 사용되며 많은 양의 자산을 보유하지 않습니다. 쉽게 비유하자면, 가벼운 쇼핑을 하러 외출할 때 생활용품을 가지고 다니지 않으며 지갑에는 소액의 돈만 보관하는 것과 같은 이치입니다.
그리고 가끔씩 자산을 변경하고, 새 지갑을 만들고, 승인과 서명을 취소하여 최대한 노출을 줄입니다.
자산이 많은 지갑의 경우 웹사이트에 '연결'만 하지 마세요. 또는 하드웨어 지갑에 차갑게 보관하고 필요할 때만 꺼내서 상호작용할 수 있도록 특별히 전송하세요. 이는 오래된 피싱 예방 방법입니다.
3. 승인 확인
집중적으로 사용하지 않는다면 처음 Permit / Permit2 토큰 금액을 승인할 때 온디맨드 승인을 선택하는 것이 좋습니다. 즉, 기본 최대(무제한) 금액이 아닌 사용한 만큼만 승인하는 것입니다.
이미 무제한 Permit/퍼밋2 크레딧을 승인한 분들을 위한 구제책도 마련되어 있습니다. http://Revoke.Cash 에서 토큰 승인 노출을 확인하실 수 있으며, 허가/허가2에 승인된 토큰의 양을 명확하게 확인할 수 있습니다.
이 도구는 서명 취소도 지원하며, 해커가 자산을 훔치기 위해 관련 서명을 활성화하기 전에 취소할 서명을 찾을 수도 있습니다.
퍼밋 유형의 서명은 오프라인 서명이며, 사용되기 전까지는 체인에 흔적이 남지 않는다는 점에 유의해야 합니다(해커는 종종 훔친 서명을 서버에 저장합니다).
인증 및 서명을 도구로 정기적으로 확인하는 습관을 들이는 것이 좋습니다.
결론
불운하게도 이 함정에 걸렸다면 SlowMist와 같은 전문 보안 팀의 도움을 받아 자산을 이전하고 적시에 상황을 수습하여 피해를 최소화하는 것이 좋습니다. 또는 기술적 수단을 사용하여 자산을 복구할 수도 있습니다.
이러한 대표적인 피싱은 명확한 분업과 전리품으로 전문적이고 산업화되는 경향이 있다는 점에 주목할 필요가 있습니다. 전문 드레인 해킹 팀에 의해 자산이 전송되고 세탁된 경우, 자산을 되찾지 못할 가능성이 높습니다! 따라서 예방의 문제이기도 하며, 그들이 이득을 취할 수 있는 기회를 주지 않는 것이 중요합니다.