Un pirate a profité d’un bug du système de la cryptomonnaie ether pour commettre son forfait et s’emparer de plus de 50 millions de dollars. Le bug est relatif à une fonction récursive utilisée par le système de transfert de la cryptomonnaie d’un compte vers un autre. En effet, lorsque cette fonction, qui est utilisée dans le processus de traitement de la transaction, est appelée pour transférer des pièces virtuelles d’un compte vers un autre, elle effectue un appel à elle-même avant la fin du traitement de la transaction. La fonction en question est splitDAO qui exécute un code du côté du destinataire de la transaction qui lui-même appelle la fonction splitDAO avant de terminer son exécution. Il suffit dès lors au hackeur de faire appeler son code par la fonction splitDAO et vice versa, rendant ainsi les appels de la fonction presque infinis. Le pirate avait ainsi la possibilité de vider totalement le stock de pièces disponible.
Si le pirate n’a pas encore pu dépenser l’argent qu’il a réussi à détourner du système, il est cependant encore improbable que les fonds puissent être récupérés par les investisseurs qui ont mis leur argent dans ce projet. En effet, suite à une telle opération, le pirate est obligé de patienter au moins 25 jours avant de pouvoir convertir ses jetons en ethers et de reconvertir ensuite les ethers dans une devise réelle. Pour pouvoir récupérer les fonds, deux solutions se présentent aux investisseurs s’ils espèrent pouvoir sauver le projet.
La première solution consisterait à faire un roll-back du blockchain, ce qui affecterait toute personne ayant effectué des transactions après l’incident et sur toute la durée pendant laquelle le pirate commettait son forfait. La somme que pourraient perdre les personnes concernées s’élèverait à 1 million de dollars. Cependant, ce type d’opération est contraire à l’esprit même de ces systèmes, car l’un des objectifs de ces derniers c’est de proposer des alternatives décentralisées aux banques traditionnelles qui mettent les intérêts de la banque devant ceux des utilisateurs. La deuxième possibilité qui est tout aussi problématique serait de mettre à jour le code du système Ethereum de sorte à mettre l’adresse du pirate sur liste noire ou bien même redonner le contrôle des fonds au projet TheDAO. Cependant, cela créerait une bifurcation du blockchain qui ne pourrait être rétablie que si une majorité de 51 % des mineurs décide de travailler avec la version de mise à jour du code. Autrement, la bifurcation ne pourra pas être rétablie.
Les fonds volés par le pirate représentent un tiers des fonds levés dans le cadre de la mise en place du projet TheDAO, qui est une sorte de fonds commun d’investissement virtuel de type DAO (Decentralized Autonomous Organisation). Ce fonds a englouti plus de 10 % des pièces virtuelles disponibles dans l’écosystème de l’Ethereum soit une valeur de 100 millions de dollars sur un volume total d’une valeur d’un milliard que représente l’écosystème d’Ethereum. Ce piratage a porté un coup dur au projet qui ne pourrait s’en relever que difficilement. Il faut ajouter enfin que le bug responsable de la défaillance exploitée par le pirate n’aurait toujours pas été résolu.
Source : http://blog.erratasec.com
Et vous ?
Qu'en pensez-vous ?
Voir aussi
Le système de paiement de Bitcoin aurait-il atteint ses limites ? Plusieurs transactions n'auraient pas été validées après des heures d'attente
Un bug de la cryptomonnaie Ether permet à un hackeur de s'emparer de 50 millions $
En exécutant une fonction récursive du système de transaction
Un bug de la cryptomonnaie Ether permet à un hackeur de s'emparer de 50 millions $
En exécutant une fonction récursive du système de transaction
Le , par Victor Vincent
Une erreur dans cette actualité ? Signalez-nous-la !