Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

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

43PARTAGES

6  0 
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

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de zoulman
Futur Membre du Club https://www.developpez.com
Le 23/06/2016 à 18:06
L'article n'est pas du tout exact...
La crypto monnaie ether n'a absolument pas été hacké et ethereum en soi n'est pas en cause.
Ce qui a été hacké c'est The DAO, un fond d’investissement décentralisé qui est (ou était plutôt) le plus gros smart contract de la blockchain avec environ 150 millions d'euros dans celui ci.

Ça change pas mal de choses sur la question du fork parce qu'en fait le smart contract s'est exécuté tout à fait normalement : c'est simplement l'auteur de celui ci qui n'a pas été assez vigilant et qui n'a pas vu une faille de sécurité dans celui ci.
Sachant qu'il s'est exécuté normalement et que le bug vient juste du contrat qui était mauvais, les anti fork considère qu'il n'y a pas de raison de forker la blockchain et d'ainsi casser le "code is law"
La question c'est donc de savoir si on doit suivre ce principe à la lettre pour ne pas casser la propriété d'immuabilité de la blockcahin ou bien si exceptionnellement il faut intervenir pour empêcher le voleur de partir avec les 50 millions d'euros et les rendre à la DAO.
5  0 
Avatar de NSKis
En attente de confirmation mail https://www.developpez.com
Le 22/06/2016 à 14:37
Citation Envoyé par Paul TOTH Voir le message
TCP/IP est basé sur un ensemble très limité des protocoles, c'est souvent leur simplicité qui est critiqué au contraire car elle ne serait pas assez robuste

quand à garantir la sécurité du web, la plus grosse faille se trouve toujours entre l'écran et le clavier. Un bug qui permet de détourner 50 millions ça ne se trouve pas tous les jours. Dans le cadre d'une crypto monnaie décentralisée c'est en effet un problème, sur le système bancaire c'est autre chose, un de mes clients s'est vu réclamer le paiement d'une vente 2 mois après l'achat car l'acheteur a contesté le paiement...et à défaut de 3DSecure (qui ne sécurise pas grand chose mais reporte la responsabilité sur la banque), le commerçant en est de sa poche...l'option a été activée depuis, mais comme 3DSecure ne fonctionne pas toujours bien, certains commerçants prennent le risque au lieu de perdre des clients.

A l'inverse, je suis par exemple totalement opposé au vote électronique, les bureaux de votes sont déjà des filtres insuffisants pour garantir l'intégrité du vote, c'est pas la peine d'en rajouter
1. Pour info, ce n'est pas TCP/IP qui est à l'origine des failles de sécurité mais bien les applications web qui, ELLES reposent sur une multitude de technologies. TCP/IP n'est que le vecteur, c'est comme si vous veniez içi nous affirmer qu'il est impossible de braquer une bijouterie parce que le vélo utilisé par le voleur pour fuire dans la foule ne dispose pas d'un pied-de-biche pour forcer la porte des commerces.

2. "la plus grosse faille se trouve toujours entre l'écran et le clavier" ??? Bien évidemment, si ce n'est pas la naïveté de l'utilisateur qui est en cause, c'est celle de l'incompétence d'un développeur qui est à l'origine des failles techniques d'un système... N'oublions pas qu'il est strictement impossible pour un être humain de fournir du code sans le moindre bug? "Errare Humanum Est"
2  0 
Avatar de Dymmm
Membre du Club https://www.developpez.com
Le 23/06/2016 à 12:30
Attention, il n'est pas question ici de rollback ou d'alterer la blockchain. Il est plus question, en somme, de modifier une partie du logiciel afin de bloquer les fonds détournée et / ou les restituer a TheDAO. Il est interressant de noter que le choix n'appartient pas tellement aux mineurs proprement dit. Les mineurs se regroupant dans des "fermes" afin de mettre en commum leurs puissances de calcul seul les personnes gérant le logiciel de la ferme devront faire le choix. Selon les mineurs intéréssés ce choix de fera selon des critères purement financiers et ne sera pas guidé par l'éthique ou par les principes fondamentaux que souhaitait véhiculer la monnaie elle meme.
Pour beaucoup, cette intervention sur le logiciel est bien l'aveux que cette monnaie ne tiens pas ses promesses. Il y a donc bel et bien un lobbying possible pour réguluer la monnaie. Ici, la DAO en difficulté va probablement réussir à obtenir des developpeur de Ethereum un bannissement d'un compte afin de récupérer de l'argent perdu suite à un smart contract contenant une faille.
Plus personnellement, d'un point de vue technique je peux comprendre l'intervention, car le détournement à probabelment été fait sachant que les personnes ayant écrit le smart contract ne souhaitait pas ouvrir une telle "fonctionnalité". D'un point de vue éthique, je désaprouve l'intervention car elle prouve que une organisation possédant une grosse somme peu obtenir l'altération du fonctionnement de cette monnaie. Bien entendu, si j'avais eu des billes dans TheDAO mon avis serait bien différent
2  0 
Avatar de NSKis
En attente de confirmation mail https://www.developpez.com
Le 21/06/2016 à 17:40
Et il y a encore des "gogo" pour croire que la sécurité sur le web est possible

Combien d'exemples faudra-t-il encore pour que l'on accepte un fait: Aujourd'hui, le web ne peut pas assurer la protection des données auxquelles il donne accès pour une simple et bonne raison que l'on fait appel à un mille-feuilles de technologies dont personne n'a une vision et un contrôle global.

Alors qu'il n'est déjà quasi impossible de fournir un système "sans-faille" dont on est le développeur (perso, je n'aurai en tout cas pas la vanité ni la bêtise de me vanter être apte à fournir un tel système), comment peut-on imaginer un seul instant pouvoir le faire en intégrant une multitude de techno aux origines multiples?
3  2 
Avatar de Paul TOTH
Expert éminent sénior https://www.developpez.com
Le 22/06/2016 à 9:12
Citation Envoyé par NSKis Voir le message
Et il y a encore des "gogo" pour croire que la sécurité sur le web est possible

Combien d'exemples faudra-t-il encore pour que l'on accepte un fait: Aujourd'hui, le web ne peut pas assurer la protection des données auxquelles il donne accès pour une simple et bonne raison que l'on fait appel à un mille-feuilles de technologies dont personne n'a une vision et un contrôle global.

Alors qu'il n'est déjà quasi impossible de fournir un système "sans-faille" dont on est le développeur (perso, je n'aurai en tout cas pas la vanité ni la bêtise de me vanter être apte à fournir un tel système), comment peut-on imaginer un seul instant pouvoir le faire en intégrant une multitude de techno aux origines multiples?
TCP/IP est basé sur un ensemble très limité des protocoles, c'est souvent leur simplicité qui est critiqué au contraire car elle ne serait pas assez robuste

quand à garantir la sécurité du web, la plus grosse faille se trouve toujours entre l'écran et le clavier. Un bug qui permet de détourner 50 millions ça ne se trouve pas tous les jours. Dans le cadre d'une crypto monnaie décentralisée c'est en effet un problème, sur le système bancaire c'est autre chose, un de mes clients s'est vu réclamer le paiement d'une vente 2 mois après l'achat car l'acheteur a contesté le paiement...et à défaut de 3DSecure (qui ne sécurise pas grand chose mais reporte la responsabilité sur la banque), le commerçant en est de sa poche...l'option a été activée depuis, mais comme 3DSecure ne fonctionne pas toujours bien, certains commerçants prennent le risque au lieu de perdre des clients.

A l'inverse, je suis par exemple totalement opposé au vote électronique, les bureaux de votes sont déjà des filtres insuffisants pour garantir l'intégrité du vote, c'est pas la peine d'en rajouter
1  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 24/06/2016 à 10:26
Citation Envoyé par verbose Voir le message
C'est le mode décentralisé qui est au coeur de la faille de sécurité. La conception des contrats étant libre, elle est susceptible, malgré toute la bonne foi et l'honnêté de son développeur, d'héberger une faille.
Ce n'est pas le mode décentralisé qui est en cause (tout du moins pour le problème orginal, pour sa résolution on pourrait en discuter) Le mode décentralisé te permet de t'assurer que le code du contrat que t’exécute et les données manipulées n'ont pas été modifiées par un tiers. Rien ne te dit que le contrat, légitime, n'est pas bourré de failles.

Centralisé ou décentralisé, tu utilise un service crée par un tiers, à qui tu fait assez confiance pour utiliser ledit service. L'erreur de base a sans doute été d'injecter autant d'argent dans the DAO alors que la plateforme Ethereum est encore très jeune et en rodage.
1  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 24/06/2016 à 14:42
Citation Envoyé par Logan Mauzaize Voir le message
Citation Envoyé par Dymmm Voir le message
Les mineurs se regroupant dans des "fermes" afin de mettre en commum leurs puissances de calcul seul les personnes gérant le logiciel de la ferme devront faire le choix.
Étant des "associés" (désolé je connais pas le terme) des adresses du pool, ils n'ont pas leur propre voix ? Et rien ne les empêche de quitter le pool s'ils ne sont pas d'accord avec sa décision.
Certains pool (la plupart? tous?) ont ouvert un vote auprès des mineurs des pools en questions. Par exemple (ethpool et ehtermine):
https://forum.ethereum.org/discussio...pool-ethermine

Les résultats pour ethpool et ethermine:
http://ethpool.org/stats/votes
http://ethermine.org/stats/votes
1  0 
Avatar de verbose
Membre éclairé https://www.developpez.com
Le 25/06/2016 à 14:32
Citation Envoyé par benjani13 Voir le message

Centralisé ou décentralisé, tu utilise un service crée par un tiers, à qui tu fait assez confiance pour utiliser ledit service. L'erreur de base a sans doute été d'injecter autant d'argent dans the DAO alors que la plateforme Ethereum est encore très jeune et en rodage.
Je pense que le problème d'Ethereum est qu'il permet aux Smart Contracts d'accéder aux Ethers de ses utilisateurs. À partir de là, si une faille existe dans la manipulation de ces Ethers, rien dans l'infra d'Ethereum n'est là pour mettre un garde fou.
1  0 
Avatar de benjani13
Membre extrêmement actif https://www.developpez.com
Le 22/06/2016 à 11:19
Citation Envoyé par Victor Vincent Voir le message
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
D'après mes différentes lectures sur le sujet il ne s'agit pas d'un bug de la blockchain Ethereum (comme on pourrait le comprendre en lisant l'article) mais d'un contrat tournant dessus émis par the DAO. La faut en reviens donc à the DAO. Ça n'empêche pas de s'interroger sur le fonctionnement d'Ethereum qui pour le coup à beaucoup ralenti, voir empêcher, la résolution du problème (pas possible de patcher le code sans passer par un fork).
0  0 
Avatar de NSKis
En attente de confirmation mail https://www.developpez.com
Le 22/06/2016 à 14:42
Citation Envoyé par benjani13 Voir le message
... Ça n'empêche pas de s'interroger sur le fonctionnement d'Ethereum qui pour le coup à beaucoup ralenti
Vous me paressez bien optimiste... Les 50 millions volés représentent le 50% de la fortune gérée par Ethereum!!! Les mauvaises langues annoncent plutôt la mort pure et simple de ce petit frère de bitcoin
0  0