
Le 16 janvier 2024, Socket Tech a été attaqué et perdu environ 3,3 millions de dollars américains.L’attaquant a profité des lacunes de la session de vérification des données dans un contrat de socket pour voler les fonds utilisateur du contrat autorisé grâce à une entrée de données malveillante.Cette attaque a porté des pertes à 230 adresses, et la plus grande perte d’adresse était d’environ 656 000 dollars américains.
Introduction de fond
Socket est un protocole interopérable desservant la sécurité transversale, des données efficaces et une transmission d’actifs.Le contrat de passerelle de socket est le point d’accès pour toute l’interaction avec la couche de liquidité de socket. .
Trois jours avant l’attaque de piratage, l’administrateur du contrat de socket a exécuté la commande addroute et a ajouté une nouvelle route vers le système.Le but d’ajouter des itinéraires est d’étendre la fonction de la passerelle de socket, mais a introduit par inadvertance une échappatoire clé.
Le chiffre suivant est un enregistrement d’ajout de routage via l’administrateur du contrat
>
Contour
1. À 15:03 le 16 janvier, l’heure de Pékin, le portefeuille de l’attaquant a été transféré aux fonds utilisés par l’attaque.
>
2. Ces fonds sont utilisés pour créer et exécuter deux contrats pour utiliser les lacunes de Socket.Le premier contrat s’adresse à l’USDC (capture d’écran comme suit) à l’adresse de l’adresse de Socketgateway; 127 victimes ont été trompées d’environ 2,5 millions de dollars.
>
3. Ensuite, le deuxième contrat vise le WETH, USDT, WBTC, DAI et MATIC dans l’adresse de la victime.En conséquence, les 104 autres victimes ont perdu les actifs suivants:
-42.47526105 Weth
-347,005,65 USDT
-2,88962154 WBTC
-13 821.01 Dai
-165,356,99 Matic
4. L’attaquant convertit USDC et USDT en ETH.
>
Vulnérabilité
Les vulnérabilités utilisées par l’attaquant existent dans la nouvelle adresse d’adresse de routage supplémentaire.
La fonction d’origine de la fonction PerformAction dans cette adresse est d’aider la fonction de l’emballage et du déballage.Cependant, une vulnérabilité clé apparaît dans cette fonction: les utilisateurs appellent directement les données externes via Swapextradata dans le .Call () sans vérification, ce qui signifie que les attaquants peuvent exécuter des fonctions malveillantes arbitraires.
>
Dans cet incident, l’attaquant a fait une entrée swapextradata malveillante pour déclencher la fonction de transfrom.L’appel malveillant a profité de l’autorisation par l’utilisateur du contrat Socketgateway et leur a volé des fonds.
Bien que le contrat garantira que le solde de l’utilisateur changera correctement après que les informations sont appelées en vérifiant le contrôle du solde pour s’assurer que le solde de l’utilisateur changera, mais la fonction ne considère pas que l’attaquant définit le montant à 0.
>
Restaurer le processus d’attaque
1. Utilisez un contrat d’attaque pour appeler le 0x00000196 () dans le contrat de passerelle Socket.
>
2. Fallback () utilise la signature hexagonale 196 pour appeler les échappatoires.
>
3. Dans la capture d’écran ci-dessous, nous pouvons voir la fausse entrée utilisée par l’attaquant.
>
4. Ensuite, vous appellerez enveloppétokenwapperImpl.PerformAction () pour Swap.
>
5. Sans aucune vérification, le faux swapextradata est accepté et exécuté par FromToken (weth).
>
6. L’attaquant exécute à plusieurs reprises le processus ci-dessus jusqu’à ce que les actifs de la victime soient épuisés.Après l’apparition de la transaction malveillante, le socket a rapidement appelé DisableRoute, bloquant le routage des lacunes auparavant, empêchant la plus large gamme d’attaques.
7. Le 23 janvier, Socket a annoncé qu’il avait récupéré 1032 ETHS et a annoncé le 25e qu’elle compenserait toutes les pertes.Cet événement est résolu.
>
Résumé des événements
Dans un contrat de routage autorisé par les utilisateurs illimités, les attaques de calldata malveillantes ne sont pas rares.Des attaques similaires incluent le pont de la dexabilité et de Hector.Le 17 février 2023, l’échange décentralisé dexable a été attaqué et a perdu plus de 1,5 million de dollars américains.Les services publics de vulnérabilité entrent le calciatif calvial à la fonction Fill () de la dexabilité pour voler les actifs des utilisateurs.Le 2 juin 2023, le protocole du réseau Hector a été attaqué.L’attaquant a déployé un faux contrat de l’USDC et a passé le calcul malveillant pour transférer 652 000 réels USDC du contrat de la victime.
La plate-forme en polymère blockchain utilise généralement une série de ponts et de contrats de routage pour améliorer la liquidité et réduire les pertes.Cependant, cet emballage compliqué peut apporter plus de problèmes à la sécurité.Nous sommes ravis de voir que l’incident de la prise peut être résolu, et Certik continuera de s’engager à fournir un audit complet et des tests pour la plate-forme, en réduisant divers risques agrégés et en améliorant le niveau de sécurité de la confiance communautaire et de l’ensemble de l’industrie.