La faille de The DAO : les clés pour comprendre

Pour que vous puissiez comprendre les tenants et aboutissants du piratage de la The DAO, nous avons organisé les infos disponibles. Cette page sera mise à jour dès que nous en saurons plus. Si vous remarquez des incohérences dans cette FAQ, ou si vous avez une mise à jour à nous suggérer, n’hésitez pas à nous contacter.

[Read this FAQ in English]

MISE À JOUR du 30 juin : La solution temporaire envisagée - un soft fork (voir Q8 ci-dessous), - a été mise au rebut. La raison est la sécurité : peu de temps après que la mise en œuvre technique du soft fork a été proposé, un vecteur d'attaque nuisible a été identifié. Ceci est une explication simple de ce que ce vecteur pourrait causer au réseau :

Dit simplement : le soft fork permettrait à un attaquant d'envoyer de nombreuses transactions à un noeud d'exploitation minière que le noeud devrait exécuter afin de détecter qu'un appel est effectué au contrat. Cela coûterait rien à l'attaquant mais ralentirait et potentiellement arrêterait le minage de transaction tant que le soft fork est en place. Un attaquant bien organisé et bien financé pourrait probablement causer des perturbations substantielles au réseau et réduire les frais que vous recevez.

Bien que le vecteur n'ait pas été utilisé pour attaquer le réseau jusqu'à présent, il porte le potentiel de l'endommager considérablement. Par conséquent, le soft fork tel que proposé il y a quelques jours (voir Q8. ci-dessous) ne se produira pas. Les options actuelles sur la table ne sont pas claires, mais les discussions au sein de la communauté commencent à montrer une acceptation croissante d'un hard fork (voir Q10. ci-dessous pour ce que c'est).


Le 17 juin 2016, un individu ou un groupe sans identité connue a exploité les failles de The DAO, le premier et le plus gros fonds d'investissement issu du financement participatif et de l’achat d’actions d’entreprises, qui repose entièrement sur la chaîne de blocs publique Ethereum. Si vous voulez en savoir plus sur The DAO, suivez ce lien.

L’individu ou le groupe à l’origine de l’attaque a exploité les failles d’un programme et a ainsi pu retirer des ethers en circulation sur la plateforme. Cette attaque aura permis de retirer environ 3,6 millions d’ethers de The DAO, soit environ un tiers de l’ether que The DAO possède.

L’argent retiré a été transféré vers une « copie » de la plateforme (appelée « DAO child »). Il s'agit d'une adresse exclusivement gérée par le ou les assaillant(s). C’est donc ainsi qu’à peu près un tiers des fonds de The DAO se sont retrouvés coincés dans cette copie. Indépendamment de ces particularités techniques, les avoirs détournés ne peuvent être déplacés par le ou les assaillant(s) pendant une période de 27 jours suivant la création de la copie de The DAO.

Les questions-réponses ci-dessous visent à expliquer au mieux cette attaque complexe et tout ce qu’elle implique. Nous mettrons nos explications à jour en tenant compte de l’évolution de la situation.

« Q1. Donc vous savez qui a exploité les failles de la DAO? »
Non, on n’en sait rien. Personne dans la communauté Ethereum ne semble savoir qui sont le ou les auteur(s) de l’attaque – hormis ces derniers. Ce que nous savons à ce jour, c’est que :

(a) l’individu ou le groupe a dû préparer cette attaque au moins sept jours au préalable ;

(b) les deux principaux contrats détenteurs des jetons (qui ont permis d’exploiter récursivement la faille de sécurité de la fonction « split ») ont été créés deux jours avant l’attaque ; et

(c) celui ou ceux qui ont perpétré l’attaque ont été prudent(s) ; ils ont utilisé des ethers qui se trouvaient dans un portefeuille ShapeShift.

« Q2. L’exploitation de ces failles est­-elle une action opportuniste ou a-t-elle l'intention de nuire ? »
Une vulnérabilité logicielle a permis d’exploiter une faille de the DAO. D'aucuns pourraient arguer que le contrat sur lequel repose The DAO a rendu possible l’exploitation des failles, donc que le ou les auteur(s) de l’attaque étai(en)t en possession d’un contrat intelligent (« smart contract ») ayant pour spécificité de dérouter des fonds.

Or, certains indices laissent clairement penser qu’il s’agit d’un acte malveillant :

1/ Le ou les auteur(s) de l’attaque considère(nt) que les 3,6 millions d’ethers dérobés de The DAO sont une récompense pour avoir découvert la faille. Ce qui est contraire à la mission première de The DAO, à savoir financer des projets.

2/ Il est aujourd'hui impossible de confirmer que la « lettre ouverte » publiée il y a quelques jours a bien été rédigée par le ou les auteur(s) de l’exploitation de la faille. Ce texte est cependant le seul document public imputable à l’auteur ou aux auteurs de l’attaque, et la posture et le ton adoptés sont clairement accusatoires. La « lettre ouverte » ne laisse à aucun moment penser que l’approche adoptée est constructive, mais l’intention de causer des dégâts y est explicitement formulée d’une manière très rationnelle :

J’ai scrupuleusement décortiqué le code source de The DAO, et j’ai décidé d'y participer après avoir découvert que le « splitting » permettait de gagner plus d’ethers.

Cette phrase et le reste du contenu de la lettre sont un message réfléchi et calculé. Comme on l’a vu plus haut, et tout au long de cette « lettre ouverte », pour le ou les assaillant(s), le but de la manœuvre était de garder les fonds déroutés plutôt que financer des entreprises.

3/ Le ou les assaillant(s) ont proposé de distribuer des fonds (sous forme de Bitcoins et d’ethers) aux mineurs qui ne veulent pas utiliser le fork proposé (cf. ci-dessous). Ce genre de proposition vise clairement à saper la confiance et à diviser la communauté Ethereum, que lesdits mineurs disposent ou non de jetons The DAO.

L’un dans l’autre, il apparaît clairement que l'intention première est d'endommager The DAO, de mettre à mal la communauté Ethereum et de saper la confiance dans le milieu des crypto­technologies. C’est pour cette raison que l’on peut dire que l’exploitation des failles de The DAO est une attaque et que l’individu ou le groupe l’ayant perpétrée peut­ être qualifié d’assaillant.

« Q3. OK, il semblerait que les intentions de cette personne ou de ce groupe étaient mauvaises. L’attaque a eu lieu, des ethers ont été déroutés par une ou des personne(s) sans scrupules. Mais que peut­on faire pour le récupérer ?
Ça, c’est la question à un million de dollars (sans mauvais jeu de mots). Trois options s’offrent à nous. Nous n’allons pas entrer dans les détails techniques, mais plutôt souligner les principales conséquences de chaque option :

1/ Ne rien faire et laisser les choses telles quelles ;

2/ Détruire la copie de The DAO pour empêcher le ou les assaillant(s) de s’emparer pour de bon des ethers déroutés (c’est ce qu’on appelle un « soft fork », et cela a un impact sur le comportement des mineurs) ;

3/ Écraser la chaîne de blocs Ethereum en vue d’effacer l’exploit et de restaurer la version pré­exploitation de faille de sécurité de la plateforme (c’est ce qu’on appelle un « hard fork »).

L’option n°1 est la moins souhaitable pour une simple raison : la communauté – composée de personnes détenant ou non des jetons The DAO – ne souhaite pas laisser la situation pourrir. Ne rien faire aurait automatiquement pour conséquence de laisser plusieurs millions d’ethers finir sans encombres dans les poches d’une personne ou d’une entité inconnue et malintentionnée.

L’option n°2, le soft fork, permet de gérer le problème d’une autre manière. Sans entrer dans les aspects techniques, une opération de ce genre est une solution temporaire qui permet d’empêcher le ou les assaillant(s) de retirer les ethers déroutés de la copie de The DAO. Vous l’aurez peut-­être deviné : le soft fork détruira les ethers volés au lieu de les renvoyer vers The DAO d'origine, et toute trace du ou des voleur(s) sera effacée. Voir Q6. pour plus de détails sur le soft fork.

La 3ème option, le hard fork, fait encore l’objet d’une vive contestation. En effet, elle permettrait de retrouver l’intégralité des Ethers volés, mais elle aurait aussi pour conséquence d’altérer la chaîne de blocs Ethereum de façon significative.

On pourrait imaginer d’aspirer la copie de The DAO pour remettre les ethers dans leur environnement d’origine ; cela semble assez évident. Mais comme nous l’avons expliqué plus haut, l’individu ou le groupe ayant perpétré l’attaque est le seul administrateur de cette copie, ce qui rend la chose impossible. Mais une alternative reposant sur une série de soft forks a été proposée par Lefteris Karapetsas (le CTO de Slock.it). Cette discussion permet de mieux comprendre l’approche en question.

D’autres options et alternatives ont également fait l’objet de discussions.

« Q4. OK, tout cela est un peu technique. J’ai acheté des jetons The DAO – ceux qui ne sont pas dans la DAO enfant sont-­ils en sécurité ? »
Malheureusement non. La technique employée par le ou les assaillants peut potentiellement vider The DAO de tout ses ethers. L’attaque initiale a été interrompue après que le co­-fondateur d’Ethereum, Vitalik Buterin, a publié un billet dans lequel il détaille tous les forks possibles. L’identité du ou des assaillant(s) étant inconnue, le raisonnement qui sous­tend l’interruption n’est pas clair.

Beaucoup de choses ont déjà été dites à ce sujet, nous n’allons donc pas entrer dans les détails ici. Cette vue d’ensemble sous forme de schéma vous donnera un bon aperçu des différentes étapes tout en permettant d’identifier les comptes impliqués.

« Q5. J’ai entendu parler d’un "attaque" perpétrée par des hackers éthiques contre The DAO en vue de mettre de les ethers à l’abri. Sont-­ils parvenus à leurs fins ? »

Oui et non. Un groupe connu sous le nom de « Robin des Bois » a effectivement commencé à faire une copie de The DAO. Comme cette dernière contient encore 2/3 des Ethers collectés au moment de la campagne de financement, « Robin des Bois » a décidé de copier le reste des avoirs dans une toute nouvelle copie de The DAO (une DAO « éthique »), pour tenter d’empêcher que d’autres attaques malveillantes d’ampleur frappent The DAO. Le problème, c’est que le ou les assaillant(s) ont réussi à prendre part à l’opération de sauvetage, ce qui lui ou leur a permis de contrecarrer la stratégie des « Robin des Bois »... De plus, les ethers ne seront pas disponibles avant une période de 27 jours, exactement comme dans le cas de l’attaque malveillante.

alt Les proportions exprimées ci­dessus correspondent aux quantités d’ether qui suivent : The DAO a collecté 12 millions d’ethers ; dont les 3,6 millions qui ont été déroutés et qui se trouvent dans la copie du ou des assaillant(s) (DAO enfant). Et les 7,2 millions qui ont été mis à l’abri dans la copie de The DAO des « Robin des Bois ». Les 1,2 million restant sont dans The DAO­ « mère » et dans d’autres DAO plus petites.

« Q6. Quelles sont les alternatives possibles à ce jour ? Je sais que c’est une question compliquée, mais qu’est­ce qui pourrait aider à endiguer la crise ?
La communauté a un peu de temps de voir venir, et ça c’est plutôt positif. Comme mentionné précédemment, le ou les assaillant(s) ne peuvent pas retirer les ethers de la DAO enfant au cours des 27 jours suivant sa création, ce qui, au moment de la rédaction de cette FAQ, nous laisse environ 2 semaines pour élaborer une stratégie de sortie de crise viable.

Une semaine après l’attaque du 17 juin, les options suivantes étaient à l’ordre du jour :

1/ Ne rien faire : dans ce cas, la copie de la DAO des « Robin des Bois » rendra les ethers qu’elle contient, et celle que l’on peut qualifier de rejeton illégitime pourra conserver tout ses ethers. Et ce fiasco aura de sérieuses répercussions sur la communauté et le réseau Ethereum, ainsi que sur la crypto­monnaie ether.

2/ Un soft fork : il importe de souligner que le soft fork est une solution temporaire qui entravera la circulation de l’ether et ses interactions au sein des DAO. Faire cela alors qu’une attaque malveillante vient d’avoir lieu revient à geler tous les avoirs sans tenir compte de leur DAO d’origine, et à totalement les isoler. Tout les ethers investis dans The DAO seraient gelés ad vitam eternam (ce qui n’est pas rien sachant que The DAO détient environ 16 % de tout l’ether en circulation).

3/ Un autre soft fork : cela aurait pour effet de limiter toutes les interactions avec The DAO et plusieurs petites DAO, à l’exception de celles qui sont administrées par des hackers éthiques connus/identifiés. Après avoir passé quelques mois à jouer au chat et à la souris, les ethers contenus dans la DAO des « Robin des Bois » et dans la DAO enfant créée par l'assaillant seraient récupérés et redonnés aux investisseurs d’origine. Il faudrait mettre cela en place après avoir implémenté l’option n°2, pour éviter que les ethers restent gelés pour toujours.

4/ Un hard fork : avec ou sans soft fork au préalable. Tel qu’expliqué au cours d’un débat initié suite à l’attaque malveillante, cela aurait pour effet de restaurer une version pré­attaque saine de la chaîne de blocs Ethereum, et tout les ethers investis dans The DAO retourneraient à leurs propriétaires sans qu’il y ait de pertes.

« Q7. De quoi a­t­on besoin pour mettre en place ce soft fork? »
Pour que cela soit mis en place, il faudrait que 51 % des mineurs joignent leurs efforts (en vue d’éviter que des mineurs perdent leurs ethers). Les mineurs s'accorderaient sur un bloc qui sera créé à un moment ultérieur et qui permettra de passer vers une nouvelle version de la chaîne de blocs.

Le 22 juin, le vote a commencé sur les plate-formes Ethpool et Ethermine pour décider s’il fallait ou non implémenter un soft fork. Dwarfpool, la plus grosse mine d’ether, en a fait de même, même si seule une petite partie de sa puissance de hash s’est prononcée. Le vote sera clôturé « quelques jours avant la fin du gel des avoirs de la copie de The DAO. »

alt

« Q8. Quels sont les résultats du vote à ce jour ? »
Une très grande majorité de mineurs a voté pour le soft fork tel que décrit dans les options n°2 et n°3 (voir Q6. ci­-dessus). La Fondation Ethereum a clarifié la situation en expliquant que :

Si l’option du soft fork est adoptée, les DAO ne pourront plus retirer de fonds du tout – les fonds ayant subi l’attaque ne seront pas les seuls impactés. Il est facile de comprendre pourquoi cette solution n’est pas souhaitable pour les DAO créées en toute légitimité. De ce fait, si la communauté vote pour l’implémentation du soft fork, nous vous proposons d’y intégrer un patch qui permettrait de tracer et placer dans une liste blanche toutes les DAO qui respectent les critères déterminés dans le soft fork.

Selon le site Etherchain.org, bon nombre de coopératives de mineurs ont accepté les changements qu’impliquent le soft fork proposé. Si cette tendance persiste, le soft fork devrait être implémenté le 30 juin.

« Q9. Et que se passera­t­il si le soft fork ne fonctionne pas ? »
C’est plutôt incertain et assez chaotique. Les exploitations de failles de sécurité pourraient se poursuivre, aussi bien de la part de hackers mal intentionnés que de hackers éthiques. On peut concevoir des plans de mitigation en vue d’éviter que des quantités importantes de jetons ne soient immédiatemment détournés. Mais ce serait désespéré dans le sens où cela reviendrait à exécuter la fonction « split » indéfiniment, ce qui de plus laisserait la porte ouverte aux intervenants mal intentionnés (par exemple pour spammer le réseau ou verser des pots­-de-­vin aux mineurs en vue d’altérer certaines transactions, etc.). Si tel était le cas, l’avenir s’annoncerait sombre pour les jetons de The DAO aussi : ils n’auront plus aucune valeur. Ce scénario apocalyptique tient clairement lieu d’argument en faveur du soft fork.

« Q10. Et le hard fork, de quoi a-­t-­on besoin pour le mettre en place ? »
Le hard fork aurait une incidence significative sur la structure de la chaîne de blocs Ethereum, c’est pourquoi cette option nécessite un consensus réfléchi – comment, quoi, quand, etc. Les acteurs-clé de la communauté Ethereum (la Fondation Ethereum, les développeurs d’EthCore, etc.) ont un rôle plus important que les mineurs dans la décision d'implémenter le hard fork.

Il va de soi que l'altération de la chaîne de blocs peut provoquer des changements profonds tels que par ex. de créer de l’ether ex nihilo ou de détruire tout les ethers sains en circulation. Il est cependant très peu probable que la communauté soit d’accord d'introduire tous des changements fantasques qu’un hard fork a le potentiel d'apporter. Un hard fork pourrait aussi permettre de retirer tous les jetons de The DAO et de créér un nouveau fonds décentralisé qui serait axé, par exemple, sur l’amélioration de la sécurité des contrats intelligents.

Au 29 juin, l’alternative du hard fork fait encore l’objet d’un vif débat. À mesure que la situation évoluera, nous mettrons cette FAQ à jour.