Ethereum (ETH) aurait pu tomber depuis 2019 – Petits secrets autour d’une grosse vulnérabilité

Collectionnez les articles du JDC en NFT

Collecter cet article

Le jour où Ethereum aurait pu tomberLes développeurs d’Ethereum viennent de faire la lumière sur un bug présent depuis 2019 qui aurait pu avoir des conséquences dramatiques sur le réseau. Heureusement, celui-ci a pu être récemment corrigé sans n’avoir jamais été exploité. 

L’attribut alt de cette image est vide, son nom de fichier est CTA-achat-Ethereum-ETH-trop-tard.png.

Une faille qui aurait pu faire tomber Ethereum

Le 18 mai, les développeurs du réseau Ethereum ont abordé un sujet jusqu’ici maintenu secret. En effet, le rapport publié sur le site de la fondation Ethereum explique qu’un vecteur d’attaque existait sur le réseau Ethereum, pouvant potentiellement rendre inutilisable la chaîne. 

En octobre 2019, 2 chercheurs en matière de cyber-sécurité, Hubert Ritzdorf et Matthias Egli avait déjà publié un papier faisant froid dans le dos. Celui-ci présentait une méthode d’attaque assez inquiétante. Heureusement, une fois celle-ci révélée, les développeurs des différents clients Ethereum ont été mis au parfum afin de résoudre le problème en question. 

Dans les faits, il s’agissait d’une attaque DoS (ou attaque par déni de service). Celle-ci aurait pu paralyser le réseau Ethereum, en entraînant des temps de blocs de l’ordre de la minute. Le plus impressionnant : elle aurait pu être menée, avec seulement quelques dizaines de milliers de dollars

Au final, il aura fallu attendre jusqu’en avril 2021 et le déploiement du hardfork Berlin pour que le vecteur d’attaque soit invalidé, réduisant l’efficacité de l’attaque par un facteur 50.

« Les chiffres (approximatifs) indiquent que Berlin a réduit l’efficacité de l’attaque par 5 et que les snapshots la réduisent par 10, soit une réduction totale de l’impact d’un facteur 50. Nous estimons qu’actuellement, sur le mainnet (15 millions de gaz), il serait possible de créer des blocs qui prendraient 2,5-3 secondes à exécuter sur un nœud geth sans snapshots. Ce chiffre continuera à se détériorer (pour les nœuds sans snapshots), à mesure que l’état se développe. »

Rapport d’Ethereum

Le fond du problème

Il faut revenir sur le fonctionnement d’Ethereum pour bien comprendre le fameux problème. En réalité, l’état d’Ethereum s’apparente à un arbre Patricia-Merkle, où à mesure que le réseau grandit, le nombre de branches et de feuilles de l’arbre augmente.

Ainsi, lorsqu’un tri est effectué pour trouver un compte, 8 à 9 opérations de résolution sont effectuées. Ces opérations entraînent de fait des opérations sur la chaîne et de la consommation de gas

En somme, l’attaque imaginée par les 2 chercheurs cherchait à « déclencher des recherches aléatoires de tri »

Selon la fonction Solidity utilisée, cela avait entraîné des temps de blocs allant de 38 à 90 secondes, en fonction du fait que les nœuds soient Geth ou Parity. Pour rappel, le temps de bloc moyen sur Ethereum est de l’ordre de 13 secondes.

En outre, cette attaque devient de plus en plus efficace à mesure que l’état d’Ethereum grandit, ce qui est le cas lorsqu’on s’intéresse au nombre de nouvelles adresses créées chaque jour. Une première solution a été de mettre en place un système de snapshot au sein des nœuds du réseau en octobre 2019, permettant de réduire le nombre d’opérations à réaliser par le nœud. 

Pour mitiger pour de bon ce vecteur d’attaque, les développeurs ont finalement proposé les EIP 2929 et 2930, visant à augmenter le coût en gas de certaines opérations. Ces 2 EIP ont été intégrés au mainnet lors du hard fork Berlin. 

Ce n’est pas la première fois que l’on rencontre ce genre de situation. En effet, en septembre 2020, une faille avait également été découverte sur le Lightning Network de Bitcoin. Heureusement, dans les 2 cas, les vecteurs d’attaques n’ont pas été exploités avant d’être corrigés.

L’attribut alt de cette image est vide, son nom de fichier est CTA-achat-Ethereum-ETH-trop-tard.png.

Renaud H.

Ingénieur en software et en systèmes distribués de formation, passionné de cryptos depuis 2013. Touche à tout, entre mining et développement, je cherche toujours à en apprendre plus sur l’univers des cryptomonnaies et à partager le fruit de mes recherches à travers mes articles.

Commentaires

Une réponse à “Ethereum (ETH) aurait pu tomber depuis 2019 – Petits secrets autour d’une grosse vulnérabilité


Je-Suis-Un-Genie-Comparé-A-Renaud
C'est sûr que comparer un problème de seconde couche (Lightning Network) à un problème qui concerne directement le protocole de base (Ethereum), qui plus est quand la vulnérabilité est cachée pendant 2 ans.... Non vraiment bravo Renaud, toujours aussi malhonnête intellectuellement, vas-y pump ton shitcoin.
Répondre · Il y a 3 ans

Votre email ne sera pas publié. En publiant un commentaire, vous acceptez notre politique de confidentialité.


Recevez un condensé d'information chaque jour