Le 17 janvier 2024, selon les données de surveillance de la plateforme de risques de sécurité EagleEye de Beosin, Socket Protocol a subi une attaque par injection d'appel, entraînant un vol important de fonds auprès des utilisateurs autorisés. Actuellement, l'attaquant a converti les fonds volés en ETH et les a stockés à l'adresse de l'attaquant.

Après l'attaque, Socket a officiellement reconnu la faille de sécurité et a rapidement suspendu les contrats concernés.

Simultanément, MetaMask a publié sur la plateforme X un message indiquant que les utilisateurs de MetaMask Bridge ne sont pas affectés par la vulnérabilité Socket. MetaMask a souligné son architecture unique dans la conception de contrats de pont inter-chaînes pour atténuer de telles attaques.

Analyse de la vulnérabilité

La cause principale de cet incident est une invocation d'appel non sécurisée dans la fonction performAction du contrat Socket. Malgré l'absence de contrôles sur les paramètres fromToken et toToken, la fonction limite efficacement les adresses de jetons à WETH, excluant les autres adresses ERC20, empêchant ainsi indirectement la falsification de ces paramètres.

Cependant, un défaut critique de la fonction réside dans l'absence de restrictions sur le paramètre amount. Si l'appelant fournit un montant de 0, la condition de vérification de la fonction sera toujours réussie sans qu'il soit nécessaire d'appeler les fonctions de dépôt et de retrait de WETH. Cela permet d'injecter des données anormales via l'appel, ce qui conduit à l'exploitation de la vulnérabilité.

Processus d'attaque

Pour comprendre la vulnérabilité, explorons comment l’attaquant a exécuté l’attaque :

  1. Création de contrat malveillant :

  • L’attaquant a initialement créé un contrat malveillant pour lancer l’attaque.

    2. Requêtes et contrôles d'autorisation :

    • Par la suite, l’attaquant a effectué plusieurs requêtes sur les soldes WETH à partir de différentes adresses.

    • De plus, l’attaquant a vérifié la quantité autorisée pour le contrat Socket: Gateway associé à chaque adresse.

    • Suite à cela, l’attaquant a appelé le contrat Socket: Gateway.

      3. Appel de fonction PerformAction avec signature transferfrom :

      • Dans l'appel à la fonction performAction, l'attaquant a spécifié le paramètre swapExtraData comme 0x23b872dd…

      • Ces données correspondent à la signature de fonction de transferfrom, indiquant une invocation directe de la fonction transferfrom du jeton.

4. Appel de fonction PerformAction avec signature transferfrom :

  • Dans l'appel à la fonction performAction, l'attaquant a spécifié le paramètre swapExtraData comme 0x23b872dd…

  • Ces données correspondent à la signature de fonction de transferfrom, indiquant une invocation directe de la fonction transferfrom du jeton.

5. Transfert WETH par l'attaquant :

  • Au travers de nombreuses opérations, l’attaquant a transféré du WETH d’innombrables utilisateurs vers sa propre adresse.

6. Transfert d'USDT autorisé de manière similaire :

  • L'attaquant a utilisé une méthode similaire pour transférer les USDT autorisés au contrat vers sa propre adresse.

7. Implication d'autres jetons :

  • L'attaque s'est étendue à d'autres jetons tels que WBTC, DAI et MATIC.

Au moment de la rédaction de cet article, environ 3,3 millions de dollars ont été volés, dont une partie a été échangée contre des ETH et stockée à l’adresse du pirate. Beosin Trace continue de surveiller les fonds volés.

Socket, dans une mise à jour sur la plateforme X, indique que les opérations ont été rétablies, que les contrats concernés ont été suspendus et que la situation est sous contrôle total. L'interopérabilité avec le pontage Bungee et la plupart des ponts frontaux des partenaires a été rétablie. Une analyse détaillée de l'événement et les étapes ultérieures seront annoncées prochainement.

Socket émet un rappel : « Méfiez-vous des faux comptes Socket qui tentent de faire du phishing dans vos réponses. Veuillez vérifier soigneusement le compte avant d'entreprendre toute action. »

Cet incident nous rappelle qu'il faut donner la priorité à la sécurité. À l'aube de 2024, de nombreux événements de sécurité se sont déjà produits. Beosin, une société leader mondiale dans le domaine de la sécurité blockchain, propose une gamme complète de produits et services de sécurité blockchain couvrant les audits de sécurité du code avant le lancement du projet, la surveillance des risques de sécurité en temps réel, les alertes et la prévention, la récupération des actifs de cryptomonnaie, la conformité de sécurité KYT/AML, et bien plus encore. Nous nous engageons à développer en toute sécurité l'écosystème Web3. Si besoin, n'hésitez pas à nous contacter.

Contact

Si vous avez besoin de services de sécurité blockchain, n'hésitez pas à nous contacter :

Site officiel Beosin EagleEye Twitter Telegram Linkedin