Skip to Content
logologo
AI Incident Database
Open TwitterOpen RSS FeedOpen FacebookOpen LinkedInOpen GitHub
Open Menu
Découvrir
Envoyer
  • Bienvenue sur AIID
  • Découvrir les incidents
  • Vue spatiale
  • Vue de tableau
  • Vue de liste
  • Entités
  • Taxonomies
  • Soumettre des rapports d'incident
  • Classement des reporters
  • Blog
  • Résumé de l’Actualité sur l’IA
  • Contrôle des risques
  • Incident au hasard
  • S'inscrire
Fermer
Découvrir
Envoyer
  • Bienvenue sur AIID
  • Découvrir les incidents
  • Vue spatiale
  • Vue de tableau
  • Vue de liste
  • Entités
  • Taxonomies
  • Soumettre des rapports d'incident
  • Classement des reporters
  • Blog
  • Résumé de l’Actualité sur l’IA
  • Contrôle des risques
  • Incident au hasard
  • S'inscrire
Fermer

Problème 879

Incidents associés

Incident 5024 Rapports
The DAO Hack

Loading...
Le piratage DAO d'Ethereum montre que les codeurs ne sont pas infaillibles
forbes.com · 2016

Oops. La première organisation autonome décentralisée d'Ethereum, la DAO, a perdu de l'argent - beaucoup. Pour être précis, il a perdu l'équivalent d'environ 60 millions de dollars américains. Ce n'est pas parce que c'est une idée idiote et que personne ne peut s'en soucier (bien que cela puisse aussi être vrai). Non, il s'agissait d'un prélèvement délibéré de fonds par quelqu'un qui a repéré une faille dans le "contrat intelligent" du DAO et l'a exploitée.

Certes, la perte est entièrement dans "l'éther" de la crypto-monnaie native d'Ethereum, vous pourriez donc être pardonné de penser que c'est de l'argent amusant et que cela n'a pas vraiment d'importance. Mais pour les investisseurs DAO, la perte est réelle et ils sont naturellement contrariés. Et Ethereum lui-même a subi un coup de crédibilité.

Alors que s'est-il passé exactement ? J'hésite à citer quoi que ce soit écrit par les développeurs d'Ethereum, car ils ont tendance à utiliser un langage hautement technique, mais cela par le prodige d'Ethereum Vitalik Buterin pendant que l'attaque était en cours est raisonnablement clair :

Une attaque a été trouvée et exploitée dans le DAO, et l'attaquant est actuellement en train de drainer l'éther contenu dans le DAO dans un DAO enfant. L'attaque est une vulnérabilité d'appel récursif, où un attaquant a appelé la fonction "split", puis appelle la fonction split de manière récursive à l'intérieur de la scission, collectant ainsi l'éther plusieurs fois en une seule transaction.

Pour les geeks parmi vous, Phil Daian de Hacking, Distributed a une excellente dissection de exactement comment cela a fonctionné. Pour le commun des mortels, tout ce que vous devez savoir, c'est que l'attaquant du DAO a créé un DAO "enfant", puis a drainé les fonds du DAO vers l'enfant.

Et c'est là que tout devient involontairement drôle. Il n'y a absolument rien de nouveau à drainer des fonds d'entreprise vers une nouvelle entreprise. Les détourneurs de fonds du monde entier le font depuis des siècles. Dans le monde réel, c'est illégal. Mais dans le cas du DAO, ce n'est pas le cas. Le « contrat intelligent » du DAO le permet.

Dans le contrat intelligent du DAO, il n'y a absolument rien de mal à créer un enfant DAO. En effet, il a été mis en place pour encourager la création de DAO enfants. C'est ainsi que le projet DAO visait à conquérir le monde. Ainsi, la fonction "split" qui permet la création d'enfants est une fonctionnalité, pas un bogue.

Et bien sûr, toute personne disposant d'un solde en éther peut retirer ses fonds si elle le souhaite. Là encore, ce n'est pas un bug, c'est une fonctionnalité. Le problème est la combinaison de la fonction de fractionnement avec le retrait de fonds, comme l'observe Daian :

….même si le retrait de récompense pour n'était pas vulnérable en soi, et même si le splitDAO n'était pas vulnérable sans le retrait de récompense pour, la combinaison s'avère mortelle. C'est probablement la raison pour laquelle cet exploit n'a pas été passé en revue tant de fois par tant de personnes différentes : les réviseurs ont tendance à passer en revue les fonctions une par une et à supposer que les appels aux sous-programmes sécurisés fonctionneront de manière sécurisée et comme prévu.

(Quelque part au cours des deux décennies qui se sont écoulées depuis que je suis programmeur de logiciels, les codeurs ont oublié la programmation défensive et les tests d'exception. Cependant, je m'éloigne du sujet.)

Mais le fait est que le contrat intelligent du DAO tel qu'il est actuellement codé PERMET cette combinaison mortelle. Et le contrat intelligent est le seul contrat légal du DAO. Le détournement de fonds est donc légal. C'est écrit dans le code.

Certes, l'attaquant ne peut pas encore atteindre l'éther qu'il a drainé. L'enfant DAO est enfermé pendant 28 jours. La communauté Ethereum a donc un peu moins d'un mois pour décider quoi faire.

Maintenant, les développeurs d'Ethereum sont des gens sympas. Et les investisseurs de DAO ont perdu BEAUCOUP d'argent. Certains développeurs souhaitent donc que la transaction soit annulée, en restaurant le DAO dans l'état où il se trouvait avant l'attaque et en supprimant le DAO enfant. "Ne laissons pas l'attaquant s'en tirer avec les fonds", a déclaré Griff Green, l'un des développeurs.

D'autres (dont Buterin) veulent que les fonds soient gelés. Un "soft fork" a été proposé qui prolongerait effectivement indéfiniment le verrouillage de 28 jours.

Mais l'attaquant n'en a rien. Il a écrit une lettre ouverte à la communauté Ethereum affirmant que puisque son action était autorisée par le code, et que le code est la base juridique du DAO, il a légitimement droit à l'argent :

J'ai soigneusement examiné le code de The DAO et j'ai décidé de participer après avoir trouvé la fonctionnalité où le fractionnement est récompensé par de l'éther supplémentaire. J'ai utilisé cette fonctionnalité et j'ai légitimement réclamé 3 641 694 éthers, et je voudrais remercier le DAO pour cette récompense. Je crois comprendre que le code DAO contient cette fonctionnalité pour promouvoir la décentralisation et encourager la création de "DAO enfants".

Et il poursuit en menaçant de poursuites judiciaires dans le monde réel si une tentative est faite pour annuler la transaction ou geler les fonds :

Je suis déçu par ceux qui qualifient l'utilisation de cette fonctionnalité intentionnelle de "vol". J'utilise cette fonctionnalité explicitement codée conformément aux termes du contrat intelligent et mon cabinet d'avocats m'a informé que mon action est entièrement conforme au droit pénal et délictuel des États-Unis….. Je me réserve tous les droits d'intenter une action en justice contre tout complice de vol illégitime, de gel ou de saisie de mes légitimes

Lire la source

Recherche

  • Définition d'un « incident d'IA »
  • Définir une « réponse aux incidents d'IA »
  • Feuille de route de la base de données
  • Travaux connexes
  • Télécharger la base de données complète

Projet et communauté

  • À propos de
  • Contacter et suivre
  • Applications et résumés
  • Guide de l'éditeur

Incidents

  • Tous les incidents sous forme de liste
  • Incidents signalés
  • File d'attente de soumission
  • Affichage des classifications
  • Taxonomies

2024 - AI Incident Database

  • Conditions d'utilisation
  • Politique de confidentialité
  • Open twitterOpen githubOpen rssOpen facebookOpen linkedin
  • e1b50cd