Un expert en sécurité informatique reçoit 2 millions de dollars pour avoir corrigé une faille majeure sur Optimism,
qui aurait permis une création illégale et continue de jetons ETH

La solution Ethereum de seconde couche, Optimism, a corrigé une faille majeure qui aurait permis une création illégale et continue de jetons ETH. L'annonce a été faite par la société sur son compte Twitter où elle a remercié le hacker répondant au pseudonyme Saurik pour avoir passé autant de temps à enquêter sur son réseau, ce qui lui a permis de trouver cette faille puis de la corriger.

Le 2 février, l'équipe d'Optimism a été alertée par Jay Freeman (qui répond au pseudo Saurik, connu pour son travail sur Cydia, une alternative à l'App Store pour les appareils iOS jailbreakés, et Orchid où il a mis en place tous les contrats intelligents d'Orchid, y compris celui utilisé pour les nanopaiements) de l'existence d'un bogue critique dans le fork Geth d'Optimism.

Dans un billet technique, Jay a décrit précisément comment cette vulnérabilité pourrait conduire à la duplication infinie de la deuxième cryptomonnaie en matière de valeur. Il a expliqué que tout développeur de la chaîne Ethereum pourrait automatiquement utiliser l'un de ses forks pour créer de nouveaux jetons. Plus précisément, une régénération continue est déclenchée en exécutant une commande d'opcode SELF-DESTRUCT sur un contrat intelligent qui détenait autrefois des jetons ETH.

Comme suite à la résolution rapide du bogue, Optimism a rapidement récompensé le lanceur d'alerte Jay Freeman, d'un montant de 2 millions de dollars. La récente récompense fait de la prime de Freeman l'une des plus élevées jamais enregistrées. Cependant, une récompense raisonnable si l'on considère combien aurait pu être perdu si une partie malveillante avait compris le problème. De plus, le bonus incite les développeurs à signaler les incohérences de code au lieu de les exploiter à des fins égoïstes.


Jay Freeman a déclaré : « Le 02-02-2022, j'ai signalé un problème de sécurité critique à Optimism - une "solution de mise à l'échelle L2" pour Ethereum - qui permettrait à un attaquant de répliquer de l'argent sur n'importe quelle chaîne en utilisant leur fork "OVM 2.0" de go-ethereum (qu'ils appelaient l2geth). Rapidement, Optimism - dont la plateforme utilise actuellement un "séquenceur" centralisé - a décidé de corriger ce bogue sur ses nœuds et son infrastructure. Les projets en aval qui utilisaient leur base de code (Boba et Metis) ont eux aussi été corrigés ».

Le 2 février est également la date à laquelle des cybercriminels ont volé plus de 323 millions de dollars en cryptomonnaie en exploitant une vulnérabilité dans Wormhole, un service Web qui permet des transactions entre différentes blockchain. Dans ce cas, les responsables ont envoyé un message aux hackers pour leur demander de rendre l’argent, en échange d’une récompense de 10 millions de dollars : « Nous avons remarqué que vous pouviez exploiter la vérification Solana VAA et frapper des jetons. Nous aimerions vous proposer un accord whitehat et vous offrir une prime de bogue de 10 millions de dollars pour que vous nous communiquiez les détails de l'exploit et vous nous rendiez le wETH que vous avez frappé. Vous pouvez nous contacter à contact@certus.one ».

Nom : deployer.png
Affichages : 2065
Taille : 25,6 Ko

Pour en revenir à l'affaire, Saurik effectuait un examen au sein du réseau Optimism lorsqu'il a trouvé et signalé un bogue critique au sein du réseau qui permettait à tout pirate informatique de générer des ETH en activant un opcode d'autodestruction dans les contrats d'argent dans leurs soldes.

Compte tenu de cela, les développeurs d'Optimism se sont mis au travail pour examiner et résoudre ce problème. L'une des premières choses qu'ils ont faites a été de vérifier si cette faille avait déjà été utilisée et avait généré de l'ETH de manière malveillante. Cela s'est avéré ne pas s'être produit et a été signalé dans la déclaration de la société.

Optimism assure que, lors de l'examen de l'historique au sein du réseau, ils ont confirmé que cette erreur n'avait pas encore été utilisée pour générer de l'ETH malgré le fait qu'elle avait été activée par un employé d' Etherscan . Cela représente un soulagement pour les développeurs puisque le réseau Ethereum n'a pas été altéré et ils n'auront pas à restituer l'argent volé si un tel cas se produit.

À partir de là, un protocole a été activé pour résoudre cette faille qui a été testée et développée dans les réseaux Kovan et Mainnet qui appartiennent à Optimism. Tout ce problème a été résolu en quelques heures et la société a alerté tous les projets qui sont un fork d'optimisme pour appliquer les correctifs :

« L'analyse de l'historique de la chaîne d'Optimism a montré que le bogue n'était pas exploité (le bogue semble avoir été accidentellement déclenché à une occasion par un employé d'Etherscan, mais aucun excès d'ETH utilisable n'a été généré). Un correctif pour le problème a été testé et déployé sur les réseaux Kovan et Mainnet d'Optimism (y compris tous les fournisseurs d'infrastructure) dans les heures suivant la confirmation. Nous tenons à remercier Infura, QuickNode et Alchemy pour leurs temps de réponse rapides.

« Nous avons également alerté plusieurs forks et fournisseurs de ponts Optimism vulnérables de la présence du problème. Ces projets ont tous appliqué le correctif requis.

« Si vous utilisez une réplique, assurez-vous de mettre à niveau vers la version 0.5.11 de l2geth dès que possible ou vous risquez de ne plus être synchronisé avec le reste du réseau ».

Pour clore le problème et récompenser Saurik, Optimism a décidé de lui attribuer le montant maximum dans le cadre de son programme de correction de bogues. Ce montant est de 2 000 042 dollars . Saurik a confirmé avoir reçu son prix sur son Twitter et a indiqué qu'il ferait un rapport expliquant les parties techniques de ce qu'il s'était passé et comment il l'avait corrigé.

Nom : saurik.png
Affichages : 1622
Taille : 28,6 Ko

Ethereum et la seconde couche

Ethereum est un protocole blockchain, une technologie qui permet de stocker et transmettre des informations de manière transparente, sécurisée et sans organe central de contrôle. Lancé en 2015, Ethereum, deuxième blockchain en termes de valorisation après Bitcoin, permet de développer des applications décentralisées, appelées Dapps. Elle est différente de Bitcoin, qui est uniquement focalisé sur le paiement de pair à pair. Des dizaines de milliers de développeurs construisent des applications sur Ethereum pour les secteurs de la finance, le divertissement, le cloud ou encore l'immobilier.

Le fonctionnement d'Ethereum s'inspire de celui de Bitcoin (stockage de l'historique des transactions du réseau), mais il est plus complexe puisqu'il permet de construire des applications plus complexes. Ethereum permet notamment de créer des smart contract, des contrats qui s'exécutent automatiquement sur le réseau suite à des conditions prédéfinies.

Comme la blockchain Bitcoin, Ethereum possède sa propre cryptomonnaie, l'ether, aussi appelée Ethereum au sein de la communauté. Elle n'est pas émise par une banque ou un autre organisme, mais par le protocole lui-même. L'ether, comme d'autres cryptomonnaies, est mis en circulation par le minage. Les "mineurs" effectuent des calculs mathématiques avec leur matériel informatique pour le réseau afin de confirmer et sécuriser les transactions. À noter également qu'Ethereum, comme toute blockchain publique, fonctionne avec un algorithme de consensus pour s'assurer que l'ensemble des acteurs du réseau s'accordent sur une unique version des données de la blockchain à tout moment.

En somme, en cinq ans, Ethereum a été en capacité de relever un nombre de défis croissant, accompagnant et favorisant l’essor d’une partie non négligeable du paysage de la cryptomonnaie. Mais l'une de ses limitations vient de son approche Proof of Work (PoW), intrinsèquement associée au Bitcoin. Dans une mécanique en PoW, la sécurité et la résilience de la blockchain sont garanties par l’énergie et la puissance de calculs informatiques mise à disposition du réseau par les “mineurs”, ces derniers étant incités à maintenir le système en contrepartie de récompenses en cryptomonnaies (récompenses de bloc et frais de transactions).

Bien sûr, cette approche a des qualités, comme la sécurité et résilience importante d’un point de vue de l'infrastructure, un protocole ouvert et démocratique (barrière à l’entrée limitée, chacun peut rentrer et sortir du réseau sans contraintes importantes), la transparence et la possibilité d'effectuer un audit, la distribution et la décentralisation (à partir d’une certaine masse critique).

Le revers de la médaille ? Cette approche est très énergivore, lente pour les validations de transactions et complexe à sécuriser en deçà d’une certaine taille.

Face à ce tableau, les responsables ont décidé de changer d'approche et ont opté pour la Proof of Stake (PoS, littéralement Preuve d’Intérêt). Dans ce paradigme, outre permettre une vitesse et un nombre de transactions simultanées élevé (plusieurs dizaines, voire centaines de milliers d’opérations par seconde selon les projets), le PoS est peu énergivore et d’une grande souplesse. En revanche, à la nécessité d’investir et de déployer du matériel de minage sophistiqué, il substitue l’obligation de disposer de fonds potentiellement importants en actifs pour participer à la bonne marche de l’infrastructure, ceci constituant une forme de barrière à l’entrée, infranchissable pour beaucoup.

Ethereum s’est rapidement retrouvé congestionné par l’afflux massif de nouveaux utilisateurs. Une des conséquences de cette congestion a été la hausse des frais de transaction vers de nouveaux niveaux.

De nombreuses solutions de seconde couche ont vu le jour au cours de l’année. Ces dernières permettent de déporter une partie des transactions hors de la chaîne principale d’Ethereum, entraînant ainsi une importante décongestion. Le traitement de ces transactions peut ainsi être délégué et la pression sur la chaîne principale réduite.

Lorsqu’un utilisateur souhaite accéder à un réseau de seconde couche, ce dernier doit envoyer ses fonds sur le contrat de pont (bridge) hébergé sur Ethereum. Par la suite, les fonds sont bloqués sur le contrat, et une version tokenisée est émise sur la seconde couche et envoyée vers le wallet de l’utilisateur.

Les solutions de couche 2 ont introduit des améliorations significatives de mise à l'échelle parmi de nombreux avantages pour les utilisateurs (tels que des frais de transaction réduits). Cependant, des incidents récents laissent entendre que cela pourrait se faire au prix de certains problèmes de sécurité.

Dernièrement, plusieurs DAO (Decentralized Autonomous Organizations, littéralement organisations autonomes décentralisées) adoptent des approches proactives pour limiter les problèmes. Offrir des primes aux White hat pour identifier et signaler les problèmes de sécurité reste une approche pratique pour faire face aux problèmes potentiels dans un contrat intelligent.

Sources : Bug Bounty Optimism, annonce de la découverte de la vulnérabilité et de la disponibilité d'un correctif, détails techniques sur la vulnérabilité, Twitter Jay Freeman

Et vous ?

Au regard de ce qui a été proposé pour faire suite aux piratages de plateforme comme Wormhole (10 millions de dollars proposés au hacker pour retourner 323 millions de dollars en cryptomonnaie) ou Poly Network (500 000 dollars proposés au hacker pour retourner plus de 600 000 de dollars), que pensez-vous du montant de la récompense
Un montant qui pourrait encourager d'autres experts en cybersécurité de faire de même ?

Voir aussi :

Wormhole se fait voler 320 millions de dollars d'éther et propose aux hackers une prime de 10 millions de dollars en échange des fonds dérobés et des détails sur la vulnérabilité exploitée
Poly Network propose une prime de bogue de 500 000 dollars au hacker qui lui avait volé plus de 600 millions de dollars en cryptomonnaie avant de les restituer