Le blockchain, qui sert de registre de transaction publique pour la cryptomonnaie bitcoin, est utilisé par les auteurs du ransomware CTB-Locker pour livrer des clés de déchiffrement à leurs victimes. La technique, qui évite aux cybercriminels de gérer et de maintenir une infrastructure web fiable, a été observée dans une version récente du ransomware ciblant les serveurs web. Cela fait longtemps que CTB-Locker vise les ordinateurs Windows. Mais, pour la première fois, en février dernier, une variante basée sur PHP, capable d'infecter les sites web, a fait son apparition, marquant une évolution de la menace. Dans cette première version, la routine de déchiffrement comportait un script appelé access.php qui servait de passerelle vers le serveur back-end des attaquants. Ce script de passerelle, hébergé par plusieurs sites Web piratés, servait à fournir la clé de décryptage aux victimes qui s’étaient acquitté de la rançon. Selon les chercheurs de l’entreprise de sécurité Sucuri, cette approche n’était pas fiable, parce que les sites web piratés pouvaient être nettoyés par leurs propriétaires. Et les pirates devaient constamment mettre à jour la liste des passerelles utilisées par le malware, une opération sans doute trop difficile à gérer.
Pour y remédier, les auteurs de CTB-Locker ont trouvé un autre mode opératoire : s’appuyer sur le blockchain bitcoin lui-même pour livrer les clés de décryptage. Comme l’ont observé les chercheurs de Sucuri, cette approche est utilisée par la dernière version de CTB-Locker publiée en mars.
La clé de déchiffrement extrait après paiement
La technique repose sur un champ appelé OP_RETURN introduit dans le protocole Bitcoin en 2014 pour permettre aux transactions de conserver des bits arbitraires de texte, ou des métadonnées. La variante CTB-Locker génère une adresse de portefeuille bitcoin unique pour chaque infection. Quand la victime paie la rançon en envoyant le montant demandé en bitcoins dans le portefeuille associé, les attaquants génèrent une nouvelle transaction depuis ce même portefeuille, sauf qu’ils envoient la clef de décryptage en utilisant le même champ OP_RETURN. La transaction étant nulle, elle n’est pas validée dans le système Bitcoin. Mais elle est enregistrée dans le blockchain et visible sur des sites comme blockexplorer.com et blockchain.info. Le script CTB-Locker utilise l'API blockexlorer.com pour vérifier l'historique des transactions pour le portefeuille correspondant à l'infection et extrait la clé de déchiffrement de la fausse transaction une fois que le paiement a été effectué.
Blockchain déjà détourné pour stocker du code malveillant
« Donc, au lieu d'utiliser des passerelles peu fiables de sites tiers piratés, la dernière version de CTB-Locker lit les clés directement dans les services d'information publics de blockchain, beaucoup plus fiables », ont expliqué les chercheurs de Sucuri dans un blog. « C'est le grand paradoxe de la monnaie virtuelle bitcoin : tout est public et transparent, mais en même temps, il est possible de rester anonyme et de réaliser des transactions en protégeant les véritables adresses IP ». De nombreuses applications peuvent utiliser des systèmes distribués et inviolables comme blockchain, ce qui explique l’adoption de la technologie par les banques et d’autres industries. L’an dernier, les chercheurs en sécurité avaient également démontré que le blockchain bitcoin pouvait être détourné par les auteurs de malwares pour stocker du code ou des commandes malveillantes, et l'idée semble faire son chemin.