Attaques front-end Web3 : le nouveau paradis des Hackers

robot
Création du résumé en cours

Nous avons oublié de protéger la couche invisible

Lorsque la plupart des gens parlent de la sécurité Web3, ils pensent généralement aux contrats intelligents. C'est compréhensible. Après tout, ces extraits de code détiennent des actifs réels, définissent la logique des protocoles et protègent des milliards de dollars de fonds utilisateurs. Au fil des ans, les équipes de sécurité ont investi d'innombrables efforts à découvrir des vulnérabilités de réentrance, des problèmes de contrôle d'accès, des erreurs arithmétiques et des vulnérabilités subtiles qui n'apparaissent que sous des chemins d'exécution spécifiques. Mais dans toute cette obsession pour ce qui se passe sur la chaîne, nous avons négligé la première chose avec laquelle la grande majorité des utilisateurs interagissent réellement : le front-end.

Le front-end a toujours été considéré comme une coquille brillante, une interface qui aide les utilisateurs à dialoguer avec la blockchain. Mais cette "coquille" devient rapidement l'une des couches les plus abusées de tout l'écosystème. Bien que les contrats intelligents soient immuables et auditable, le front-end est variable, centralisé et alimenté par une infrastructure entièrement en dehors de la garantie de la blockchain. Cependant, ce sont eux qui construisent les charges utiles des transactions que les portefeuilles demandent aux utilisateurs de signer. Si cela ne vous fait pas peur, cela devrait vous faire peur.

L'interface de confiance signifie faire confiance à l'attaquant

Le véritable danger du front-end n'est pas nécessairement la complexité technique ; c'est plutôt la confiance mal placée. La plupart des utilisateurs ne savent pas ce qu'ils signent réellement lorsqu'ils confirment une transaction. Ils dépendent entièrement de ce que le front-end leur montre.

Un bouton « Swap » peut être en train de déclencher une approbation. Une interface de staking peut être en train de transmettre un appel délégué. À moins que le portefeuille ne décode les données dans un format lisible par l'homme, ce que de nombreux portefeuilles ne font toujours pas, l'utilisateur ne peut pas vérifier ce qu'il fait.

Cela rend l'intrusion frontale l'une des méthodes les plus efficaces pour voler des fonds dans le Web3. Les attaquants n'ont pas besoin de compromettre les contrats ou de trouver des vulnérabilités dans le protocole central. Tout ce qu'ils ont besoin, c'est d'une manière de manipuler le front-end, même temporairement, ils peuvent s'asseoir de manière invisible entre l'utilisateur et la blockchain. Chaque clic devient une opportunité d'intention de détournement.

Comment ces attaques se produisent-elles

La mise en œuvre de ces attaques n'a rien de particulier. Parfois, c'est aussi simple qu'un détournement DNS, où l'attaquant peut accéder aux enregistrements de domaine du projet et les rediriger vers des serveurs malveillants. Dans d'autres cas, l'attaquant injecte du code via des dépendances infectées, remplaçant la logique malveillante et modifiant les données de transaction avant de les transmettre au portefeuille. Dans certains cas, le front-end est directement compromis en accédant au tableau de bord cloud ou à la configuration CDN, permettant ainsi à l'attaquant de modifier en temps réel les scripts UI.

L'effet est toujours le même. Les utilisateurs accèdent à l'application comme d'habitude, connectent leur portefeuille et signent les transactions qu'ils considèrent comme sûres. Mais ce qu'ils signent est complètement différent, généralement l'approbation d'un contrat non fiable ou le transfert de tokens vers un portefeuille contrôlé par un attaquant. Et comme la blockchain exécute complètement selon la signature, il n'y a pas de bouton d'annulation.

Événements récents prouvant cela

Nous avons déjà vu quelques exemples douloureux à cet égard. L'un des exemples les plus célèbres est l'incident de Curve Finance en 2022, où les attaquants ont contrôlé le DNS de Curve et ont fourni aux utilisateurs un faux front. Le site Web semblait identique. Les invites de portefeuille semblaient également normales. Mais en arrière-plan, chaque transaction était routée vers le portefeuille des attaquants. En quelques heures seulement, près de 600 000 dollars ont été perdus.

Un autre exemple est BadgerDAO, qui a perdu plus de 100 millions de dollars après qu'un attaquant a injecté un JavaScript malveillant dans son interface. Ce code a discrètement modifié la charge utile des transactions de certains utilisateurs (en particulier des baleines), les incitant à cliquer eux-mêmes vers leur destruction.

Ce qui relie ces événements est que le contrat intelligent reste inchangé. La logique est solide, l'audit est propre, mais quand le frontend raconte une histoire différente, tout cela devient sans importance.

Pourquoi ce problème ne disparaîtra pas

La raison pour laquelle la sécurité frontend dans Web3 est particulièrement difficile réside dans le fait qu'elle appartient à une zone grise étrange. Elle est hors chaîne, donc la plupart des outils de sécurité en chaîne ne peuvent pas la surveiller. Elle est souvent négligée pendant les audits, surtout dans les projets qui privilégient la livraison plutôt que la sécurité. De plus, elle dépend fortement des infrastructures centralisées, telles que les DNS, le stockage cloud et les registres de paquets JavaScript, qui ne fournissent pas les mêmes garanties que la blockchain.

Pire encore, les outils autour de la validation côté client restent immatures. Contrairement au code bytecode des contrats qui peut être vérifié sur la chaîne, le code côté client change souvent, est rarement fixé ou haché, et est presque jamais publié de manière que les utilisateurs puissent vérifier. Cela crée un environnement parfait pour des attaques ciblées, en particulier pendant des périodes sensibles comme le lancement de tokens, les airdrops ou les mises à jour de l'interface utilisateur.

Que faut-il changer

Pour que le Web3 se développe en toute sécurité, la sécurité doit s'étendre au-delà des contrats intelligents. Les développeurs doivent traiter le front-end avec la même obsession et rigueur qu'ils le font pour le back-end. Cela signifie verrouiller les dépendances, éviter les scripts tiers inutiles, protéger la configuration DNS et considérer l'audit du front-end comme une partie intégrante de chaque publication majeure.

Les fournisseurs de portefeuilles devraient également jouer un rôle. Les utilisateurs doivent avoir une meilleure compréhension de ce qu'ils signent. Cela pourrait signifier un décodage amélioré, de meilleurs avertissements, voire des vérifications de l'authenticité en front-end. Actuellement, les gens ont trop confiance dans l'interface, tandis que les efforts pour vérifier son intégrité sont insuffisants.

Du point de vue de l'utilisateur, le conseil est sévère mais honnête : ne faites pas confiance aveuglément à une interface utilisateur. Si vous interagissez avec un protocole de grande valeur, ne vous contentez pas de vérifier le nom de domaine. Vérifiez le code source. Utilisez des extensions de navigateur pour suivre les contrats malveillants. Si quelque chose semble louche, ne signez pas.

Conclusion

Web3 ne concerne pas seulement l'exécution sans confiance. Il s'agit de toute la frontière de confiance, de son point de départ, de la manière dont elle se déplace et de son point d'arrivée. Maintenant, le front-end se trouve juste au milieu de cette frontière et est devenu un terrain de jeu pour quiconque est suffisamment intelligent pour exploiter l'écart entre ce que l'utilisateur voit et le contenu signé.

Votre contrat peut être parfait, mais si votre frontend est attaqué, le résultat est le même. Perte de fonds, confiance brisée, les utilisateurs veulent savoir comment tout cela a mal tourné. Il est temps que l'industrie cesse de considérer le frontend comme une réflexion après coup. Car pour les hackers, il est devenu leur première cible d'attaque.

CRV-6.11%
Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)