TheDAO sous les feux d’une attaque informatique

The DAO, l’organisation autonome distribuée qui avait recueilli plus de 150 millions de $ en éther a été piratée. Depuis vendredi matin (17 juin 2016), une attaque exploite une faille dans le DAO, et l’attaquant est en train de récupérer de l’éther qui se trouve dans le DAO pour se le reverser dans un DAO child.  Le projet le plus crowdfunded de tous les temps risquerait ainsi de ne pas survivre à cette offensive, et certains n’hésitent pas à affirmer qu’il est au seuil de la mort.

Attention à ne pas confondre: TheDAO n’est pas Ethereum, c’est une application autonome (Dapp) qui s’exécute dans la blockchain Ethereum.

L’attaque utilise la vulnérabilité d’appel récursif de la fonction « split », permettant ainsi de collecter plusieurs fois de l’éther au sein d’une même transaction.

L’éther a été « transvasé » dans un DAO child à l’adresse suivante:  0x304a554a310c7e546dfe434669c62820b7d83490

 

vitalik
vitalik buterin

Le co-fondateur d’Ethereum,  Vitalik Buterin, a souligné qu’il est important de comprendre deux points. Il l’a fait dans une lettre d’information qui a fait suite à l’accident, et dont est tirée la première partie cet article.

  • même si rien n’est fait, l’attaquant ne sera pas en mesure de retirer de l’éther avant  27 jours (la fenêtre temporelle pour la création d’un DAO child).
  • Il s’agit d’un problème qui concerne le DAO spécifiquement, Ethereum, lui, il est parfaitement sûr.

Un soft-fork logiciel a été proposé comme première solution: le TheDAO Rescue soft fork. Il ne demande aucun rollback, ce qui veut dire qu’aucune transaction ne sera inversée.

Ce patch prend toutes les transactions qui font des calls / callcodes / delegatecalls afin de réduire le solde d’un compte avec le hash du DAO + ses childs:

hachage0x7278d050619a624f84f51987149ddb439cdaadfba5966f7cfaea7ad44340a4ba .

et les invalide.

S’il est accepté par la majorité des peers, ce soft-fork aura lieu au bloc 1.760.000 (au moment où j’écris nous sommes au bloc 1726757.) Cette opération interdira à l’attaquant de retirer de l’éther même après la fenêtre de 27 jours. C’est un palliatif, mais qui a l’avantage de laisser beaucoup de temps pour discuter de nouvelles mesures possibles, y compris pour donner aux détenteurs de jetons la possibilité de récupérer leur éthers.

« Les mineurs et les mining-pool devraient reprendre les opérations normalement, attendre le code du soft-fork et se tenir prêt à le télécharger et l’exécuter si elles sont d’accord avec cette voie à suivre pour l’écosystème Ethereum. Les détenteurs de jetons DAO et les utilisateurs de l’Ethereum devraient garder le calme. Les plateformes d’échange devraient se sentir en sécurité dans la reprise de la négociation en ETH. »  a indiqué Vitalik Buterin.

Toujours selon Vitalik Buterin, les développeurs qui écrivent des smart contracts doivent désormais:

  1. être très prudents sur les bugs d’appels récursifs et écouter les conseils de la communauté Ethereum sur la programmation des smarts contracts qui sera active dans les prochaines semaines concernant les paliatifs à apporter à ce type de bugs
  2. éviter de créer des contrats qui contiennent une valeur de plus de 10 millions de $ à l’exception des contrats de sous-token et d’autres systèmes dont la valeur est elle-même définie par consensus social à l’extérieur de la plate-forme Ethereum, et qui peut être facilement « hard forked » via un consensus communautaire si un bug venait à émerger. Cela est nécessaire au moins jusqu’à ce que la communauté gagne plus d’expérience en terme de techniques de réduction des risques de bug et/ou que de meilleurs outils soient développés.

***

Un hard-fork pourrait suivre la mise en place du premier soft-fork.

Les conséquences seraient toutefois  plus lourdes: grâce au hard-fork, les détenteurs de tokens DAO auraient la possibilité de récupérer leurs éthers par une méthode des plus radicales: l’annulation pure et simple de certaines transactions.  Si la majorité des participants au réseau Ethereum devait accepter cette version du patch client qui applique le hard-fork, de nombreuses questions suivraient. En premier lieu, la légitimité du mot autonome pour définir TheDAO alors qu’un patch radical aura été nécessaire pour réécrire le passé.

Stéphane Tual a ouvert un post DAO Security Advisory: live updates sur Slock.it pour informer en temps réel des décisions prises.

La dernière news à ce jour (Friday 17/6–12:01 UK time) affirme que la solution est le hard-fork. Depuis, il paraitrait que les développeurs Ethereum on fait marche arrière.

***

L’attaque a suscité un vaste sell-off sur les plateformes d’échange.

eth_stock_attack
https://www.cryptocompare.com/coins/eth/overview/USD

Les marchés de l’Ether ont plongé suite à la nouvelle, tombant en dessous des 13 $. Avec l’éther qui se négocie actuellement à environ 11,50 $ par pièce la valeur de la crypto-monnaie « volée » est de plus de 50M de dollars.

La nouvelle du hack a commencé à circuler sur le net vendredi matin, ce qui a poussé Vitalik Buterin à demander une suspension temporaire du trading sur les marchés de l’éther, ainsi que dans ceux des jetons DAO qui sont utilisés pour voter sur le financement des différentes proposals.

***

A chaud, laissez moi vous donner mes premières impressions. Avant tout, j’ai l’impression de revivre MtGox.

Mt. Gox était une plateforme d’échange bitcoin japonaise, lancée en Juillet 2010.  En Février 2014, la société a soudainement suspendu les négociations et fermé son service suite à un présumé piratage porté contre la plateforme. En 2013, elle traitait encore 70% de transactions Bitcoin dans le monde. Près de 850.000 bitcoins appartenant aux clients (mais détenus par la société) ont été portés disparus et probablement volés pour un montant évalué à plus de 450 millions $ à l’époque.

A la nouvelle du crash de MtGox, la plupart des titres des articles de la presse et des pages web étaient pessimistes et assez catégoriques: le bitcoin est mort, il ne survira pas à l’épreuve.

Si deux mois plus tard le bitcoin reprenait déjà des couleurs, deux ans plus tard nous pouvons constater que l’effet MtGox n’a pas vraiment eu d’effet sur le cours. La longue baisse qui a suivi le crash s’inscrit dans une dynamique standard en bourse: le réabsorption de la violente poussée qui avait envoyé en orbite le cours le faisant passer de 100 à 1.150$ en moins de deux mois.

mtgox_collapse
Valeur du cours du bitcoin depuis sa création

Certes, MtGox était une sidechain 100% indépendante du protocole Bitcoin, alors que TheDAO est fait par les mêmes personnes qui ont contribué à Ethereum depuis le début. Mais le point crucial est le suivant: dans ces deux cas, ce ne sont pas les blockchains (respectivement Bitcoin et Ethereum) sous-jacentes qui ont été hackée, mais un système tiers (MtGox), ou une application bâtie à partir de la blockchain (TheDao).

***

Finalement, cet accident pourrait se révéler bénéfique pour la suite …

Sur l’opportunité de lancer TheDAO à grande vitesse dans un contexte où les acteurs et les décideurs ont encore du mal à comprendre les bases de la blockchain, nous avons déjà parlé ici en émettant nos doutes.

Toutefois, comme le dit bien cet article on peut aussi voir cette attaque comme un cas d’étude fondamental dans la lutte contre la fragilité d’Ethereum et une occasion pour intégrer plus de sécurité et de diligence dans la plateforme pour le futur.

Popularisé par le célèbre auteur Nassim Taleb, le concept de l’anti-fragilité peut être résumé par cette citation de son livre, Antifragile:

« L’élastique résiste à un choc et reste le même après,
l’anti-fragile se porte mieux après chaque choc. »

Il est difficile d’imaginer que les développeurs qui prennent en main une technologie récente comme Ethereum, sortent des produits qui marchent parfaitement du premier coup, ni encore moins qu’elles soient autonomes et indépendantes d’une intervention humaine dès leur sortie.

Les plateformes mêmes (Bitcoin, Ethereum) ont besoin d’interventions humaines même pour la simple gouvernance, sans parler d’éventuels patches pour les bugs, voir l’augmentation du nombre de transactions bitcoin qui divise la communauté bitcoin depuis des mois. 

Alors il faut se dire que lorsqu’un événement négatif, comme celui-ci survient il pourra nous conduire à terme à un écosystème plus fort et à une technologie plus robuste.

Certains se demandent aujourd’hui si le DAO deviendra le Mt Gox de Ethereum. Même si cela s’avère être le cas, nous savons aujourd’hui que l’échec Mt Gox a aussi porté ses fruits: les plates-formes qui ont suivi (BitStamp, Kraken, Poloniex…) ont été construites avec plus de soin, plus de diligence, plus de contrôle… qu’on n’aurait peut être pas eu aussi rapidement sans l’accident.

A mon avis, Ethereum n’est pas remis en cause par cette attaque à moyen et long terme. Ethereum est ici pour rester, et aujourd’hui il est devenu encore plus fort. Seulement on ne le verra pas tout de suite parce que l’onde médiatique aura le dessus à court terme, comme cela a été le cas pour MtGox.

Encore quelques points:

    • Comment le pirate va-t-il faire pour récupérer son argent alors que la blockchain grave tout dans le marbre et pour toujours ?  S’il s’achète un café demain (ou dans 30 ans), il créera un lien avec le monde des monnaies fiduciaires €,$,£ … et il perdra son anonymat. Maintenant, il est possible (et même très probable) que le pirate ait fait tout ça juste pour embêter le monde et qu’il va jeter sa clé privée après avoir cassé le jouet.
    • Mais il y a une autre voie et c’est la plus  importante: le pirate pourrait s’afficher publiquement et affirmer qu’il n’a fait rien d’autre que utiliser des fonctionnalités qui étaient prévues dans les smart contrats de TheDAO. En jouant sur le flou et l’interprétation qu’il en a fait, il pourrait arguer qu’aucun rollback n’est possible sans toucher au bases juridiques du DAO. C’est un point crucial puisque toute la question « The Code Is Law » en dépend. Modifier l’état globale du ledger pour revenir à un état précédent ce fait au prix d’une ingérence humaine qui affecte la décentralisation et arrête le « Code is Law ». Le code (des smart contracts) est la loi jusqu’à ce que la loi des développeurs d’Ethereum ne prend le dessous.
  • Il est intéressant d’analyser les temps de réponse de l’équipe Ethereum pour solutionner un épisode majeur où un montant de 50m$ est en jeu et où les détenteurs de jetons TheDAO perdent leurs avoirs heure après heure. Si on avait mis en place un fond d’investissement mondial (hors blockchain) et qu’on y avait perdu 50m$ à cause d’un bug, combien de temps aurait pris la solution du bug plus l’audit des comptes? Combien cela aurait-il coûté? Stéphane Tual a déclaré seulement 5 heures après l’accident:  « All stolen funds will be retrieved from the attacker. »  

Le problème, vous l’avez compris, ce n’est pas comment résoudre techniquement le bug. Sous cet aspect la blockchain peut être très réactive. Le problème c’est que avant d’envisager une solution il faut répondre à la question si dans TheDAO le code fait office de loi ou pas et assumer toutes les conséquences impliquées dans la réponse.

Peut-on intervenir de l’extérieur, appliquer un fork (soft et/ou hard) pour contrer l’attaque subie et re-écrire l’historique du DAO pour remettre les soldes comme comme ils étaient avant l’accident?

  • OUI : si le code ne doit pas faire office de loi. Dans ce cas on peut parler de vol et il faut rendre l’argent à ceux qui l’ont perdu.
  • NON : si le code fait office de loi. Les acteurs ont fait confiance à un contrat qui était mal codé et il n’y a aucune raison de rendre l’argent qui a disparu selon des règles établies et publiquement connues.

Les gens qui ont mis leur argent dans TheDAO ont lu de l’anglais, pas du code. Aujourd’hui si Code is Law, le « hacker » a pris l’argent de façon légitime.

 

9 pensées sur “TheDAO sous les feux d’une attaque informatique”

  1. Il n’est pas rare qu’une ruche se fasse piller 1/3 de ses récoltes.. 10 millions d’années de pratique de l’intelligence collective..
    Si j’avais un conseils à donner à la DAO , comme les abeilles:
    – faire une boucle de rétroaction par rapport aux « ambitions » (child DAO, Grand-child DAO = bug bounty à 50 M$) dont David à fait brillament l’oracle il y a quelques jours dans son article sur la gouvernance.. (Achtung à la sociologie monobloc des curateurs !)
    – être à l’écoute de la notion de stigmergie pour gérer la crise et sauver les meubles proprement.

  2. Il faut dire que pas mal de raisons facilitent les cyberattaques : négligence des entreprises, espionnage industriel, vol données par des pirates qui les vendent à des concurrents ou même des Etats, vol de données par le fait des salariés même (surtout ceux en charge de la sécurité du système d’information), etc. Autant dire et redire que le risque zéro, ça n’existe pas.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *