Lightning Network : tous les détails sur le bug annoncé début septembre
Nous vous parlions début septembre de l’existence d’une faille affectant les trois implémentations principales du réseau Lightning Network de Bitcoin (BTC). Comme promis, les détails de cette vulnérabilité ont été rendus publics le 27 septembre, et ce n’est pas beau à voir. Rappelons tout de même qu’il suffit aux opérateurs de noeuds Lightning de mettre à jour leur client pour se protéger.
Les canaux du Lightning Network
Rappelons que le Lightning Network vise à permettre de dépenser quasi instantanément des bitcoins via un réseau surcouche (off-chain), où des bitcoins on-chain sont mis sous séquestre sous forme de canaux de paiement entre deux nœuds validant le réseau. À l’échelle de la blockchain Bitcoin, ce canal de paiement revient à mettre sous séquestre des soldes de bitcoins à l’aide de transactions multisignatures impliquant les deux nœuds en question.
L’utilité de ce système est qu’il permet ensuite, une fois que de plus en plus de nœuds sont interconnectés, d’envoyer des paiements transitant par cette multitude de canaux jusqu’au destinataire final, en s’affranchissant du temps de confirmation classique lié aux transactions on-chain, puisque la disponibilité des fonds a déjà été validée en amont lors de cette mise sous séquestre.
C’est donc le développeur Rusty Russell qui avait le premier dévoilé la présence d’un bug touchant ce processus de validation, concernant les clients fonctionnant avec les versions antérieures aux clients c-lightning 0.7.1, lnd 0.7 et eclair 0.3.
Vérifications hâtives
Lightning Network vulnerability disclosure:
CVE-2019-12998
CVE-2019-12999
CVE-2019-13000
Update your nodes if you haven't already!https://t.co/tR0pI9ZRyq— Jameson Lopp (@lopp) September 27, 2019
Il se trouve que les nœuds LN fonctionnant sur ces versions antérieures ne vérifiaient pas totalement la validité d’un nouveau canal lors de son ouverture. Certaines implémentations allaient même jusqu’à ne pas vérifier la signature dudit canal.
Il aurait ainsi été possible à certains attaquants de dépenser des bitcoins de victimes ciblées sur le Lightning Network, sans ouvrir de canaux réellement backés par des bitcoins sur la blockchain Bitcoin :
« Un attaquant peut prétendre ouvrir un canal avec le nœud d’une victime, puis ensuite soit ne pas le payer, soit ne pas payer le montant total. Une fois que la transaction est validée sur le LN, il peut dépenser les fonds à partir du canal. La victime ne s’en apercevra que lorsqu’elle essaiera de fermer ce canal [pour récupérer ses fonds on-chain]. », Rusty Russell.
Si vous êtes opérateur d’un nœud Lightning Network, il y a peu de chance que vous ayez été la cible d’une attaque exploitant ce bug. Cependant, il est impératif que vous mettiez votre nœud à jour pour vous protéger de ces aléas. Les utilisateurs du client lnd peuvent pour leur part utiliser un outil dédié développé par l’équipe, permettant de détecter si votre nœud a été la cible d’attaquants malveillants.
Il est important de rappeler que le Lightning Network est encore un projet en développement. Les bugs et les failles sont possibles, comme l’illustre le quotidien agité de la cryptosphère. Comme le précisent régulièrement les développeurs des différentes implémentations du Lightning Network, il convient d’être mesuré dans les sommes de bitcoins que vous allouez au réseau LN : ce n’est encore qu’une grande expérimentation.
Mais après tout, n’est-ce pas ce qu’est Bitcoin ?