L’interopérabilité entre les différentes blockchains est aujourd’hui devenue une nécessité absolue dans l’écosystème des crypto monnaies. C’est ici que les bridges cross-chain entrent en jeu. Ces protocoles qui permettent des interactions entre différentes blockchains, ouvrant ainsi la porte à une multitude de possibilités, dont le transfert de tokens est la plus connue.
Toutefois, aussi innovants soient-ils, ces bridges ne sont pas exempts de vulnérabilités.
Et autant vous dire que la sécurité des bridges est d’une importance capitale, car ces protocoles gèrent souvent des quantités considérables. Les failles de sécurité peuvent donc avoir des conséquences désastreuses, non seulement pour les utilisateurs individuels, mais aussi pour l’écosystème crypto dans son ensemble.
Dans cet article, nous allons explorer en profondeur les vulnérabilités qui menacent la sécurité des bridges crypto et les mesures qui peuvent être prises pour les atténuer.
Les enjeux de la sécurité des Bridges
Comme vous le savez, les bridges agissent comme des passerelles virtuelles entre les différentes blockchains, afin de faciliter le transfert de tokens d’une chaîne à une autre. En raison de cette fonction clé, ils accumulent souvent plusieurs millions de dollars sous forme de crypto monnaies, ce qui les rend particulièrement attractifs pour les hackers. De plus, la complexité inhérente à ces systèmes, qui impliquent de nombreux composants, offre un large éventail de points d’entrée pour des attaques potentielles.
Selon diverses estimations, les attaques contre les bridges ont été responsables d’une part significative des pertes totales en crypto monnaies au cours des dernières années. Par exemple, en 2022, les attaques de bridges ont contribué à environ 36% des pertes totales, ce qui souligne l’urgence de renforcer la sécurité de ces systèmes.
Pour illustrer l’ampleur des risques, prenons l’exemple du hack du bridge Wormhole qui a eu lieu en février 2022. Ce piratage a entraîné la perte de plus de 326 millions de dollars, soit près de 120 000 wETH à l’époque. C’était d’ailleurs devenu le deuxième plus gros hack DeFi de toute l’histoire des crypto monnaies. Pour la petite info, un an plus tard, en février 2023, les équipes de chez Oasis app ont réussi à récupérer près de 225 millions de dollars détenus par le hacker.
Vulnérabilité 1 : les faiblesses de la validation On-Chain des bridges crypto
L’une des principales vulnérabilités des bridges crypto réside dans le processus de validation des transactions sur la chaîne ou « on-chain », c’est-à-dire au sein même de la blockchain. Ce mécanisme est essentiel pour assurer la légitimité des transactions, mais il présente aussi des failles.
La validation on-chain repose sur des smart contracts qui exécutent automatiquement des actions en fonction de certaines conditions. Prenons l’exemple d’un utilisateur qui souhaite envoyer des tokens d’un réseau A vers un réseau B. Dès lors qu’il déposera ses actifs sur un bridge, un contrat intelligent se chargera ensuite de verrouiller ces tokens sur le réseau d’origine (A) et d’émettre un nombre équivalent de tokens enveloppés (wrapped tokens) sur le réseau de destination (B). Bien qu’il existe plusieurs méthodes pour le transfert de jetons, cette dernière est la plus réputée.
Toutefois, bien que ces contrats soient censés être infaillibles, des erreurs de programmation ou des failles de sécurité peuvent les rendre vulnérables à des manipulations malveillantes.
En effet, les jetons enveloppés, tels que les Wrapped Bitcoin (WBTC), sont souvent utilisés dans les bridges pour faciliter le transfert de valeur entre différentes blockchains. Cependant, ces jetons peuvent être la cible d’attaques visant à exploiter des failles au moment de leur conception ou de leur implémentation. Ces derniers peuvent par exemple déployer un contrat malveillant qui exploiterait la totalité des jetons au moment de leur transfert.
Vulnérabilité 2 : Les dangers de la validation Hors-Chaîne (Off-Chain) des bridges crypto
Bien que moins commune dans l’écosystème DeFi, la validation hors-chaîne, ou « off-chain », n’est pas sans risques non plus. Cette méthode de validation, utilisée par certains bridges, implique des “serveurs backend” qui interagissent avec la blockchain, et ces serveurs peuvent être vulnérables à divers types d’attaques.
Tout d’abord, vous devez savoir que les serveurs backend doivent valider plusieurs aspects des transactions, y compris la structure de l’événement émis par la transaction et l’adresse du contrat émetteur. Un manquement dans cette vérification peut ouvrir la porte à des attaques plus subtiles. Par exemple, un attaquant pourrait déployer un contrat malveillant qui émet un événement de dépôt similaire à un événement légitime (vrai dépôt réalisé par un utilisateur).
De fait, si le serveur backend ne vérifie pas correctement l’adresse émettrice, il pourrait considérer cette transaction comme valide et signer le message. L’attaquant serait alors en mesure de contourner les mécanismes de sécurité et de retirer des fonds de la chaîne cible.
Vous l’aurez compris, les serveurs backend jouent un rôle crucial dans la validation hors-chaîne. Cependant, ces serveurs peuvent être compromis, ce qui peut entraîner des manipulations de transactions ou même des vols de fonds.
Vulnérabilité 3 : Mauvaise manipulation des fonds
Sachez que la gestion des jetons varie selon leur nature. Sur Ethereum, par exemple, le jeton natif est l’ETH, tandis que les jetons utilitaires suivent généralement la norme ERC-20. Pour transférer de l’ETH vers une autre blockchain, l’utilisateur doit le déposer dans un “ bridge contract”. Par la suite, l’ETH est attaché à une transaction et son montant est ensuite récupérable sur la blockchain de destination, et ce, uniquement après avoir lu la fonction « msg.value« .
Cependant, le dépôt de jetons ERC-20 est plus complexe. Il nécessite une étape préliminaire où l’utilisateur doit autoriser le contrat de bridge à accéder à ses jetons. Une fois cette autorisation accordée, les jetons seront soit « burn » (détruits), via la commande “burnFrom()”, soit transférés via la commande “transferFrom()”.
Deux méthodes sont couramment employées pour distinguer ces cas : une structure conditionnelle “if-else” ou deux fonctions distinctes. Une mauvaise gestion à ce niveau peut entraîner des pertes financières pour les utilisateurs.
Vulnérabilité 4 – Appels externes
Lors du dépôt de jetons sur un bridge quelconque, l’adresse du jeton est souvent fournie en tant qu’argument à la fonction de dépôt. C’est-à-dire que l’adresse du jeton sert de point de référence pour le contrat intelligent du bridge, permettant ainsi d’identifier et de gérer correctement les actifs déposés.
Cela peut être risqué, car des appels externes non fiables (demande d’autorisation vers un contrat malveillant) peuvent survenir. Toutefois, pour minimiser ce risque, une liste blanche des jetons pris en charge est souvent mise en place. De fait, les adresses qui ne figurent pas sur cette liste ne sont tout simplement pas autorisées par le protocole.
Sans la mise en place de cette liste blanche, vous comprenez que ces risques sont bel et bien présents, compromettant ainsi les fonds des utilisateurs.
Comment renforcer la sécurité des bridges crypto ?
Vous l’aurez compris, la sécurité des bridges crypto est un enjeu majeur qui nécessite une attention particulière. Pour minimiser les risques et protéger les actifs des utilisateurs, plusieurs mesures peuvent être prises.
Pourquoi ne pas commencer par des audits ? En effet, les audits de sécurité sont des évaluations approfondies réalisées par des experts en cybersécurité. Ces audits examinent le code source, les smart contracts et les protocoles de communication pour identifier toute faille potentielle. Il est crucial de réaliser ces audits à différentes étapes du développement du bridge, et pas seulement lors de sa mise en service. De plus, des “stress test” réguliers peuvent simuler des attaques pour évaluer la robustesse du système.
Par ailleurs, en cas de faille de sécurité, un plan de récupération bien élaboré peut limiter les dommages. Ce plan doit inclure des étapes pour isoler le problème, informer les utilisateurs et récupérer les fonds perdus, si possible.
Ce qu’il faut retenir
Vous l’aurez compris, la sécurité des bridges cryptographiques est un sujet complexe qui doit être abordé avec rigueur. Comme nous l’avons vu, les risques varient selon la nature des jetons impliqués et les méthodes de dépôt utilisées.
La mauvaise manipulation des fonds ainsi que les risques liés à la validation off-chain et on-chain sont des aspects cruciaux qui peuvent compromettre la sécurité des transactions. Il est donc essentiel pour les utilisateurs et les développeurs de comprendre ces mécanismes et de prendre les mesures nécessaires pour minimiser les risques.