Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2

**Cet article est écrit par ; Beosin ; chercheur indépendant invité spécial Spinach Spinach ! (twitter@wzxznl) Article co-écrit avec ; Beosin ; chercheur en sécurité ; Sivan ; *

Hackers, c'est une existence qui effraie tout le monde dans l'écosystème Web3. Pour le côté projet, lorsque les pirates du monde entier peuvent vous regarder, la nature open source du code fait que le côté projet a peur d'écrire une mauvaise ligne de code quand développer En laissant des échappatoires, une fois qu'un incident de sécurité se produit, les conséquences seront difficiles à supporter.

**Pour les particuliers, si vous ne comprenez pas ce que vous faites, chaque interaction ou signature en chaîne que vous effectuez peut potentiellement vous faire voler vos actifs. ** Par conséquent, les problèmes de sécurité ont toujours été l'un des problèmes les plus gênants dans le monde du cryptage, et en raison des caractéristiques de la blockchain, une fois les actifs volés, il n'y a presque aucun moyen de les récupérer, il est donc particulièrement important d'avoir connaissances en matière de sécurité dans le monde du chiffrement.

Tout récemment, le bon ami de **Beosin;, Spinach, a découvert une nouvelle méthode de phishing qui a été active au cours des deux derniers mois, tant que la signature est volée, la méthode est extrêmement cachée et difficile à empêcher, et utilisé;Uniswap; Toutes les adresses interactives peuvent être exposées à des risques. Cet article ; Beosin ; et le chercheur indépendant Pincai mènent conjointement la vulgarisation scientifique sur cette technique de phishing caractéristique et tentent d'éviter davantage de pertes d'actifs pour tout le monde. **

Ce qui suit est un récit de l'expérience personnelle d'épinard :

processus

Récemment, un ami (provisoirement appelé Xiao;A) a trouvé Spinach après le vol des actifs de son portefeuille. Contrairement à la manière habituelle de vol, Xiao;A; n'a pas divulgué la clé privée ni interagi avec le contrat du site Web de phishing. Alors Spinach a commencé à enquêter sur le vol d'actifs.

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-038b1c54ab-dd1a6f-62a40f)

Dans le navigateur de la chaîne de blocs, vous pouvez voir que le petit ;A; portefeuille volé ; USDT ; est transféré via le ;Transfert de ; Token ; Lors du transfert de fonds, la fonction "Transfert" du contrat intelligent "Token" est en fait appelée. ;Transfert de; signifie qu'un tiers transfère le ;Token; d'une adresse à une autre adresse. **Cela signifie également que l'actif volé a été transféré depuis une autre adresse ; jeton ; plutôt que de divulguer la clé privée du portefeuille.

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-f70470495e-dd1a6f-62a40f)

En interrogeant les détails de la transaction, nous pouvons trouver quelques indices clés :

L'adresse avec numéro de queue;f;d5;1; transfère les actifs de petit;A; à l'adresse avec numéro de queue;a;0;c;8;

Cette opération interagit avec le;Permis;2;contrat de;Uniswap;

Alors voici le doute, comment l'adresse se terminant par ;f;d5;1 ; a-t-elle obtenu l'autorisation de cet actif ? Pourquoi est-ce lié à "Uniswap" ? ![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-6f340f9560-dd1a6f-62a40f)

Tout d'abord, nous devons savoir que pour appeler avec succès la fonction "Transférer de ;", le principe est que l'appelant doit disposer de l'autorité de quota "Token", c'est-à-dire "approuver". Je crois que tous ceux qui ont Lorsque nous utilisons des "Dapp", une fois que le transfert d'actifs est impliqué, nous devons d'abord effectuer une opération d'autorisation (approbation), afin que le contrat "Dapp" ait le droit de transférer nos biens.

Pour résoudre cette énigme, nous devons continuer à creuser, et la réponse se trouve dans l'enregistrement d'interaction de l'adresse se terminant par ;f;d5;1;, à cette adresse, ;Transfer From;transfer small;A; Before l'actif, vous pouvez voir que l'adresse a également effectué une opération "Permit", et l'objet d'interaction de ces deux opérations est le contrat "Permit;2" de "Uniswap;, puis cette fonction "Permit" et "Uniswap Permit" ;2;Quelle est la situation ?

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-e1a4e655fc-dd1a6f-62a40f)

Le contrat Uniswap Permit;2; est; Uniswap; à la fin de; 2022; le nouveau contrat intelligent lancé, selon le communiqué officiel, il s'agit d'un contrat d'approbation de jeton qui permet de partager et de gérer l'autorisation de jeton dans différentes applications, Créer une expérience utilisateur plus unifiée, rentable et sécurisée.

Et à l'avenir, alors que de plus en plus de projets s'intègrent avec Permit ; 2, Permit ; 2 ; peut être standardisé dans toutes les applications ; Token ; approuvé. Permit;2 améliorera l'expérience utilisateur en réduisant les coûts de transaction tout en augmentant la sécurité des contrats intelligents.

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-1e0f8ad948-dd1a6f-62a40f)

Comprenons d'abord pourquoi "Uniswap" veut lancer "Permit;2;, supposons un scénario, quand on veut "Swap" sur un certain "Dex", la méthode d'interaction traditionnelle est qu'il faut autoriser (approuver) Give this "Dex, puis "Swap", qui nous coûte généralement deux frais "Gas", et le coût de friction est trop élevé pour les utilisateurs. Je pense que tout le monde a vécu une telle expérience. ![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-aaf8898d3b-dd1a6f-62a40f)

Source de l'image :

Le lancement de "Permit ; 2" va probablement changer l'ensemble des règles du jeu écologique "Dapp". En termes simples, la méthode traditionnelle consiste à autoriser chaque fois que vous interagissez avec un "Dapp" pour le transfert d'actifs, et Permit 2 Cette étape peut être omise, ce qui peut réduire efficacement le coût d'interaction de l'utilisateur et apporter une meilleure expérience utilisateur.

La solution est;Permit;2;en tant qu'intermédiaire entre l'utilisateur et le;Dapp;, l'utilisateur n'a qu'à autoriser l'autorisation du;Token;au;Permit;2;contrat, tous intégrés;Permit;2;contrat ;Dapp; Ce montant autorisé peut être partagé. Pour les utilisateurs, cela réduit les coûts d'interaction et améliore l'expérience utilisateur. Pour "Dapp", l'amélioration de l'expérience utilisateur apporte plus d'utilisateurs et de fonds. C'est une situation gagnant-gagnant, mais en même temps temps, cela peut aussi être une arme à double tranchant, et le problème réside dans la façon dont ;Permit;2; interagit.

Dans le mode d'interaction traditionnel, qu'il s'agisse d'autorisation ou de transfert de fonds, il s'agit d'une interaction sur la chaîne pour l'utilisateur de l'opération. Et ;Permit;2; transforme l'opération de l'utilisateur en une signature hors chaîne, et toutes les opérations de la chaîne sont effectuées par des rôles intermédiaires (tels que;Permit;2;contrats et parties de projet qui intègrent ;Permit;2;, etc. ), l'avantage apporté par ce schéma est que parce que le rôle d'interaction sur la chaîne est transféré de l'utilisateur au rôle intermédiaire, même si l'utilisateur n'a pas "ETH" dans le portefeuille, il peut utiliser d'autres "Token" pour payer la redevance "Gaz" ou se faire rembourser intégralement par le rôle intermédiaire, cela dépend du choix des rôles intermédiaires. ![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-2cd8736230-dd1a6f-62a40f)

Source de l'image :

Bien que l'émergence de "Permit;2" puisse changer les futures règles du jeu "Dapp", on peut voir qu'il s'agit d'une épée à double tranchant. Pour les utilisateurs, les signatures hors chaîne sont le moyen le plus simple de mettre fin à leurs défenses. , comme lorsque nous nous connectons à certains "Dapp" avec un portefeuille, nous avons besoin d'une signature pour nous connecter, et la plupart des gens ne vérifient pas attentivement le contenu de la signature et ne comprennent pas le contenu de la signature, et c'est l'endroit le plus effrayant.

Compris;Permis;2;Contrat, revenons au petit;A; événement, nous comprenons pourquoi les actifs sont volés et interagissent avec;Permis;2;Contrat, puis laissons Spinach reproduire cela;Permis; 2. Méthode de phishing par signature, tout d'abord , une condition préalable cruciale est que le portefeuille faisant l'objet d'un hameçonnage doit avoir le "Token" autorisé à "Uniswap" ; le "Permit;2; ;Dapp; ou ;Swap; sur Uniswap;, tous doivent être autorisés à le ;Permit; 2 ; contrat (l'épinard dans l'image ci-dessous utilise un plug-in de sécurité). ![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-9b7f868543-dd1a6f-62a40f)

Un autre point effrayant est que peu importe le montant que vous voulez "Swap", le contrat "Permit;2" d'Uniswap; vous permettra d'autoriser le "Token" par défaut, bien que le "MetaMask" vous permettra de définir l'entrée montant, mais je crois que la plupart des gens cliqueront directement sur la valeur maximale ou par défaut, et la valeur par défaut de ; Autoriser ; 2 ; est un montant illimité....

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-ffa3793098-dd1a6f-62a40f)

Cela signifie également que tant que vous avez interagi avec "Uniswap" et autorisé le montant du contrat "Permit; 2" après 2023, vous serez exposé au risque de cette arnaque par phishing.

Étant donné que l'accent est mis sur la fonction ;Permit; qui a interagi avec le contrat ;Permit;2; dans l'adresse se terminant par ;f;d5;1;, cette fonction utilise simplement votre portefeuille pour vous autoriser à ;Permit; 2; Le " Token" du contrat est transféré à une autre adresse, c'est-à-dire que tant que vous obtenez votre signature, le pirate peut obtenir l'autorité "Token" dans votre portefeuille et transférer vos actifs.

Analyse détaillée de l'événement

permis ; Fonction :

Signature volée ? Méfiez-vous du hameçonnage de signature Uniswap Permit2 Vous pouvez considérer la fonction "Permis" comme un moyen de signer des contrats en ligne. Cette fonction vous permet (PermitSingle) de pré-signer un "contrat" qui permet à quelqu'un d'autre (dépenseur) de dépenser certains de vos jetons à un moment donné dans le futur.

Dans le même temps, vous devez également fournir une signature (signature), tout comme la signature d'un contrat papier, pour prouver que ce "contrat" est bien signé par vous.

Alors, comment fonctionne cette fonction ?

  1. Tout d'abord, il vérifiera si l'heure actuelle dépasse la période de validité de votre signature (sigDeadline). Tout comme le contrat que vous avez signé a une date d'expiration, si l'heure actuelle dépasse la date d'expiration, alors ce "contrat" ne peut plus être utilisé et le programme s'arrêtera directement.
  2. Ensuite, il vérifie que votre signature est bien la vôtre. Le programme utilisera une méthode spéciale (signature.verify) pour vérifier la signature afin de s'assurer que la signature est vraiment signée par vous et n'a pas été falsifiée par d'autres.
  3. Enfin, si les vérifications réussissent, le programme mettra à jour l'enregistrement pour noter que vous avez autorisé d'autres personnes à utiliser certains de vos jetons.

L'accent est mis principalement sur la fonction ;verify; et la fonction _updateApproval;.

vérification ; fonction :

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-3ee250fd3e-dd1a6f-62a40f)

On peut voir que la fonction de vérification ; obtiendra les trois données ; v, r, s ; à partir du paramètre d'informations de signature, v, r, s ; est la valeur de la signature de la transaction, et elles peuvent être utilisées pour restaurer l'adresse de la signature de la transaction, comme indiqué dans la figure ci-dessus On peut voir à partir du code qu'après que le contrat a restauré l'adresse de la signature de la transaction, il la compare avec l'adresse du propriétaire du jeton entrant. Si elles sont identiques, la vérification réussit, et l'appel à la fonction _updateApproval; se poursuit. S'ils sont différents, la transaction est annulée.

_updateApproval ; Fonction :

![Signature volée ? Méfiez-vous du hameçonnage de signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-8d0a677dda-dd1a6f-62a40f) ! [Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-02f0900d04-dd1a6f-62a40f)

Lorsque la vérification de la signature est réussie, la fonction _updateApproval; sera appelée pour mettre à jour la valeur d'autorisation, ce qui signifie que vos autorisations ont été transférées. À ce stade, il est pratique d'appeler la fonction ;transferfrom; pour transférer le jeton à l'adresse spécifiée après avoir été autorisé, comme indiqué dans le code ci-dessous.

![Signature volée ? Méfiez-vous du hameçonnage de signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-e0bae3f39f-dd1a6f-62a40f) ! [Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-2398bc3dfc-dd1a6f-62a40f)

Bon, après avoir expliqué la fonction "permis", jetons un coup d'œil à la vraie transaction sur la chaîne. Nous pouvons découvrir les détails de cette interaction :

propriétaire; est petit;A;adresse du portefeuille de A; (numéro de queue;308;a)

Détails ; vous pouvez voir l'autorisation ; le jeton ; l'adresse du contrat (USDT) et le montant et d'autres informations

Spender ; est l'adresse du pirate informatique avec le numéro de queue ;f;d5;1 ;

sigDeadline; est l'heure effective de la signature, et;signature; est l'information de signature de small;A;

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-0fe8c4f796-dd1a6f-62a40f)

Et en regardant les enregistrements d'interaction de xiao A ; nous constaterons que **xiao A ; a utilisé le "Uniswap" auparavant et a cliqué sur le montant d'autorisation par défaut, qui est presque illimité. **

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-b2bb67f992-dd1a6f-62a40f)

Un simple examen est que ** est petit ; A ; a été autorisé à "Uniswap Permit" dans le processus d'utilisation de "Uniswap" avant ; 2 ; illimité ; USDT ; montant, mais petit ; A ; accidentellement lors de l'exécution d'opérations de portefeuille ;Permit;2; signature piège de phishing conçu par des pirates, le pirate a obtenu la signature de small;A; et a utilisé la signature de small;A; dans le;Permit;2;contract;Permit;and;Transfer From; Les deux opérations a transféré les actifs du petit ;

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-7f888a69c7-dd1a6f-62a40f)

source:

Et dans les enregistrements d'interaction, on peut constater que presque la plupart d'entre eux sont des adresses de phishing marquées (Fake_Phishing), et les gens sont constamment dupés.

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-cda4078c48-dd1a6f-62a40f)

source:;

Comment empêcher?

Considérant que le contrat "Uniswap Permit ; 2" pourrait devenir plus populaire à l'avenir, et qu'il y aura davantage de contrats d'intégration de projet "Permit ; 2 ;" pour le partage d'autorisations, nous pouvons penser à des méthodes de prévention efficaces comme suit :

1 Comprendre et reconnaître le contenu de la signature :

Le format de signature de Permit ; comprend généralement : Propriétaire, Dépenseur, valeur, nonce ; et Format. (Télécharger un plugin de sécurité est une bonne option)

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-a97994563c-dd1a6f-62a40f)

Nous recommandons à tous les lecteurs et amis le plug-in anti-phishing "Beosin" suivant, qui peut identifier la plupart des sites Web de phishing dans le domaine Web3 et protéger le portefeuille et la sécurité des actifs de chacun.

![Signature volée ? Méfiez-vous du hameçonnage par signature Uniswap Permit2] (https://img.gateio.im/social/moments-7f230462a9-3d767d0921-dd1a6f-62a40f)

Téléchargement du plug-in anti-hameçonnage :

2 Le portefeuille d'actifs et le portefeuille interactif sont utilisés séparément :

Si vous avez une grande quantité d'actifs, il est recommandé de mettre tous les actifs dans un portefeuille froid et de mettre une petite quantité de fonds dans le portefeuille interactif de la chaîne, ce qui peut réduire considérablement la perte en cas d'escroquerie par hameçonnage.

3 N'autorisez pas trop de montant pour;Permettre;2;Contracter ou annuler l'autorisation :

Lorsque vous "Swap" sur "Uniswap", vous n'autorisez que le montant avec lequel vous souhaitez interagir, de sorte que bien que chaque interaction nécessite une nouvelle autorisation, il y aura des coûts d'interaction, mais vous pouvez éviter de souffrir de "Permit;2; Sign Pêche. Si vous avez déjà autorisé le quota, vous pouvez trouver le plug-in de sécurité correspondant pour annuler l'autorisation.

**4 Identifiez la nature du jeton, s'il prend en charge ; autoriser ; fonction : **

À l'avenir, de plus en plus de jetons "ERC;20" pourront utiliser ce protocole d'extension pour réaliser la fonction "permis". Pour vous, vous devez faire attention à savoir si le jeton que vous détenez prend en charge cette fonction. Si oui, alors pour le token Redoublez de prudence dans les transactions ou les manipulations, et vérifiez strictement si chaque signature inconnue est la signature de la fonction "permit".

5 S'il y a des jetons stockés sur d'autres plates-formes après avoir été trompés, il est nécessaire de formuler un plan de sauvetage complet :

Lorsque vous constatez que vous avez été victime d'une fraude et que vos jetons ont été transférés par des pirates, mais que vous avez encore des jetons stockés sur d'autres plates-formes par le biais de méthodes telles que le nantissement, etc., vous devez les retirer et les transférer vers une adresse sûre. cette fois, vous devez savoir que les pirates peuvent vous surveiller tout le temps Le solde du jeton de l'adresse, car il a votre signature, tant que le jeton apparaît sur votre adresse volée, le pirate peut le transférer directement. À ce stade, il est nécessaire de formuler un processus complet de sauvetage de jetons. Les deux processus d'extraction de jetons et de transfert de jetons doivent être exécutés ensemble. Les transactions de pirates ne peuvent pas y être insérées. Vous pouvez utiliser le transfert "MEV", qui nécessite une certaine blockchain. connaissances et compétences en matière de code. , Vous pouvez également rechercher une société de sécurité professionnelle telle que; Beosin; équipe pour utiliser le script préemptif de transaction à réaliser.

Je pense qu'il y aura de plus en plus de phishing basé sur "Permit;2 ;" à l'avenir, **cette méthode de phishing par signature est extrêmement cachée et difficile à prévenir, et avec l'application plus large de "Permit;2; Il y aura de plus en plus d'adresses en dessous. J'espère que vous devant l'écran pourrez le diffuser à plus de personnes après avoir lu cet article, afin d'éviter que davantage de personnes ne soient volées. **

Référence:

Voir l'original
Le contenu est fourni à titre de référence uniquement, il ne s'agit pas d'une sollicitation ou d'une offre. Aucun conseil en investissement, fiscalité ou juridique n'est fourni. Consultez l'Avertissement pour plus de détails sur les risques.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate.io app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)