Les concepteurs du client Ethereum Parity ont annoncé l’existence d’une faille de sécurité ayant conduit au gel de 500 000 Ethers, soit environ 131 millions d’euros. C’est la seconde faille découverte sur le logiciel, la première ayant conduit, en juillet dernier, au vol de près de 30 millions d’euros d’Ethers.
Parity découvre une deuxième faille de sécurité en 5 mois seulement
Les nombreux utilisateurs du client Ethereum Parity sont sans doute sous le choc après ce qu’ils viennent d’apprendre : les développeurs du logiciel viennent d’annoncer la découverte d’une nouvelle faille de sécurité.
Cette menace, qui a été présentée comme « critique », rend tous les contrats multi-signatures inutilisables, et a conduit au gel de plus de plusieurs millions d’euros d’Ethers.
Cette nouvelle ne pouvait pas plus mal tomber pour les développeurs, alors qu’ils avaient redoublé d’efforts pour retrouver leur légitimité suite au piratage subi au mois de Juillet dernier, qui avait conduit au vol de 150 000 ethers (soit près de 30 millions d’euros). Et ce premier vol aurait pu être plus grave si certains hackers « white hat » n’avaient pas permis de récupérer 377 000 Ethers parmi les fonds dérobés.
Suite à ce piratage, Parity avait développé un correctif et déployé une nouvelle bibliothèque logicielle de « smart contracts » – tous deux censés permettre de corriger ce problème.
Mais il semblerait que ce nouveau code informatique contenait une autre vulnérabilité.
C’est elle qui a permis d’utiliser la bibliothèque logicielle de création de smart contracts dans le client Parity, afin de transformer celle-ci en un wallet multi-signatures « classique ». Par conséquent, un pirate a pu utiliser la fonction initWallet, qui lui a permis de prendre le contrôle de plusieurs portefeuilles.
Le coupable présume se présente sous le nom de « devops199 ». Il a expliqué sur GitHub qu’il a pu, après avoir découvert cette faille de sécurité, utiliser une fonction permettant de « tuer » le smart contract :
Ce pirate a exploité la logique du smart contract, qui avait été déployée pour réparer la faille de sécurité découverte le 19 juillet. Si l’on ignore toujours si cet acte est malveillant, une chose est certaine : ses conséquences pourraient porter préjudice à de nombreux investisseurs.
En se basant les informations fournies par le pirate, environ 500 000 Ethers seraient concernés, soit l’équivalent de 131 millions d’euros.
Il a ensuite confié se sentir dépassé par la situation, expliquant à TrustNodes qu’il n’est qu’un « débutant avec Ethereum » et qu’il « ne sait même pas programmer ».
Des portefeuilles gelés
Dans un article de blog détaillant cette nouvelle faille de sécurité, l’équipe de Parity déclare :
« Il semblerait que ce problème ait été accidentellement déclenché le 6 Novembre 2017, à 02:33:47 PM +UTC. Il a permis à un internaute d’utiliser la bibliothèque logicielle de création de smart contracts et de la transformer en portefeuille […] ce qui a rendu les contrats multi-signatures inutilisables, dans la mesure où leur logique (n’importe qu’elle fonction de modification d’état) se trouvait dans la bibliothèque logicielle. »
L’article conclut en précisant que « cela signifie que, pour le moment, les fonds ne peuvent pas être retirés des portefeuilles multi-signatures. »
Certains groupes comme Polkadot ont d’ailleurs expliqué qu’ils n’étaient plus en mesure de recouvrer leurs Ethers :
« Malheureusement, notre portefeuille multi-signatures fait partie des portefeuilles gelés. @ParityTech est en train de travailler sur ce problème, et nous informera dès qu’il y aura du nouveau. »
Les équipes de Polkadot ont tout de même précisé, dans un article sur medium, que le wallet multi-signature affecté par l’exploitation de cette faille « ne contient pas l’ensemble des fonds de la Web3 Foundation [la société à l’origine de Polkadot] » et que leur « capacité à mettre en place Polkadot comme prévu, tout en suivant la feuille de route originelle, n’a pas été affectée ».
On se souvient que de nombreuses sociétés avaient perdu des Ethers en juillet dernier, lors du premier piratage de Parity. On pouvait retrouver parmi elles des noms tels qu’Aeternity, Edgeless Casino ou encore Swarm City, cette dernière ayant perdu à elle seule 44 000 ethers.
Parity travaille d’arrache-pied pour trouver une solution
Même si nous ignorons pour le moment si ce second piratage risque de causer des pertes d’Ethers définitives pour certains investisseurs, il s’agit là d’une bien mauvaise nouvelle pour une société qui affirme que son logiciel « équipe une grande partie de l’infrastructure du réseau Ethereum public ».
Parity a souhaité démentir les rumeurs circulant sur les réseaux sociaux – des rumeurs selon lesquelles des Ethers auraient été défintivement volés. D’après les équipes de Parity, il ne s’agirait là que de « spéculations ».
Les développeurs ont expliqué qu’ils étaient en train d’enquêter sur cette attaque, et ont promis de publier rapidement des nouvelles.
Les mots « to the best of our knowledge » (« d’après ce que nous savons ») ne parviendront certainement pas à consoler les investisseurs qui se retrouvent, temporairement ou non, privés de leurs Ethers.
Il existe une possibilité pour que la seule manière de rendre leurs Ethers à leurs propriétaires passe par un fork du réseau Ethereum. C’est ce qui avait eu lieu après le piratage de TheDAO, lorsqu’un smart contract comportant une faille de sécurité avait conduit à des pertes d’Ethers, et que la Blockchain avait était « forkée » en Ethereum et Ethereum Classic.
Ce piratage risque d’attiser de nouvelles critiques sur la communauté des crypto-monnaies. Il faut toutefois préciser que les smart contracts constituent encore une technologie jeune, et qu’il n’est pas étonnant que ces contrats puisse contenir certains failles.
Références : news.bitcoin.com, cryptovest