Monero : correction du “Burning Bug” critique, affectant les wallets
La preuve qu’on peut attaquer un exchange, même sans la classique attaque des 51%. À la mi-septembre, un utilisateur curieux est venu poser innocemment une question théorique sur un fil Reddit. Le reste appartient désormais à l’histoire de Monero, puisqu’il a ainsi permis d’identifier un bug critique bien réel dans le logiciel du wallet lui-même, qui aurait pu entraîner un gel massif de XMR aux dépends des exchanges.
Le “Burning Bug” : le double tranchant des coins brûlés
[arve url= »https://journalducoin.com/app/uploads/2018/10/video-Bug-Monero-wallet.mp4″ align= »left » maxwidth= »140″ controls= »no » loop= »yes » muted= »yes » /]
Sommairement, le bug dont il est question concerne la façon dont un wallet XMR reçoit et comptabilise des transactions bien spécifiques : les transactions “burn”, c’est-à-dire les fonds qui sont brûlés et deviennent inutilisables même s’ils existent en soit toujours sur la blockchain.
C’est une tactique qui est la plupart du temps volontaire dans la cryptosphère, dans le but d’essayer d’assurer une certaine évolution de la “rareté” de l’actif sous-jacent principalement. Cette propension à “brûler” des coins pour entretenir une impression de préciosité a par exemple concerné Bitcoin Cash (BCH). Dans le cas présent, la situation est différente, puisque brûler des coins aurait pu servir de vecteur d’attaque contre des plateformes de change.
Le bug à proprement parler concerne l’absence d’alerte lorsqu’un des wallets reçoit un montant de XMR brûlés. Et ce sont, encore et toujours, les exchanges qui peuvent au final payer les pots cassés.
Quand les coins brûlés reviennent d’entre les morts
Pour brûler ces XMR, un attaquant modifierait le code de son propre wallet puis enverrait des XMR qu’il n’a pas à une même stealth address sur un exchange. Cela provoquerait alors le crédit des XMR correspondants sur l’exchange, puisque ce dernier n’a pas de moyen de savoir si la transaction est légitime.
En soi, le Burning Bug permet de réaliser une sorte de double dépense, non réelle sur la blockchain Monero – puisque cette dernière rejettera bien ces transactions dupliquées, mais aux conséquences tangibles sur un exchange qui sert d’intermédiaire avant le retour sur la blockchain Monero.
Par exemple, un attaquant s’enverrait 1000 faux XMR à partir d’un seul réel XMR sur la blockchain Monero, finissant avec un crédit de 1000 vrais XMR sur l’exchange trompé. Evidemment, tout l’intérêt pour l’attaquant serait ensuite de convertir ses XMR attribués sur l’exchange contre des BTC sonnants et trébuchants, et de les récupérer avant que quelqu’un ne s’aperçoive de la supercherie.
Un mode de découverte original
Le pot aux roses a été découvert dans une pure illustration de la sérendipité : un utilisateur lambda, non-technique et simplement curieux, est venu poser la question de la faisabilité d’une telle attaque sur un forum Reddit. Dans la foulée, les développeurs se sont emballés, et ont constaté que la possibilité était bien plus que purement théorique.
Dans une note de blog disponible sur getmonero.org, le bug est disséqué et les développeurs ayant rédigé ce compte-rendu et participé à l’élaboration d’un patch expliquent qu’ils ont pu mettre à disposition un correctif. A priori, ce correctif a été déployé sur les principaux exchanges ayant à recevoir du XMR.
Un questionnement sur la gestion des failles critiques dans les cryptos
Pour autant, et comme pour beaucoup d’autres cryptomonnaies, le modèle de sécurité inhérent au process open-source est questionné par de tels événements. Après le bug critique ayant affecté le consensus de Bitcoin Cash (BCH), et celui tout aussi majeur annoncé tout récemment pour Bitcoin (BTC), la question se pose de la vitesse effective de déploiement des correctifs lorsqu’ils concernent des failles réellement critiques.
Le collectif de développeurs Monero conclut en effet sa note de blog par une adresse à sa communauté : il serait “indispensable que tous les acteurs souscrivent à la mailing list publique”. Gageons que ce soit bien le cas, et rapidement.
[es_tradingview symbol= »bitfinex:xmrusd » interval= »D » height= »350″ colors= »Light »]
Sources : Reddit ; Monero Beta ; Monero ; TNW ; AMBcrypto || Images from Shutterstock & Giphy