BitFi : Andrew Tierney, chercheur en cybersécurité, réagit dans une contre-interview

M. Andrew Tierney, un des principaux chercheurs en cybersécurité à l’origine du signalement de potentielles failles affectant le hardware wallet BitFi, a accepté de nous donner son éclairage direct concernant cette affaire dans une contre-interview.

Alors que nous venons de publier dans nos colonnes une interview du vice-président des opérations de BitFi, dans laquelle ce dernier se défend de tout manquement et mitige les alertes concernant des vulnérabilités potentielles du BitFi, tout le monde ne l’entend pas de cette oreille. Alors que l’interview donnée par BitFi à CryptoInvest a déjà provoqué de vives réactions, et pour éviter de ne donner la parole qu’à une seule partie, nous avons pu convenir avec M. Tierney d’une contre-interview.

Ainsi, et comme pour l’interview précédente, les éléments suivants vous sont donnés afin que vous les confrontiez aux événements rapportés dans nos articles précédents et que vous vous fassiez votre propre idée de cette « affaire ».

Bonjour M. Tierney, et merci de vous prêter au jeu de l’interview. Vous souhaitiez réagir après l’interview que BitFi nous a accordé tout récemment.

Ma première question sera très claire : si BitFi admet que vous avez bien rooté son wallet, ils soutiennent cependant qu’il ne s’agit pas d’un véritable hack. En effet, pour eux, une modification ou une installation d’autres applications que l’application originelle du wallet ne constitue pas un vrai hack car les fonds stockés sur le wallet ne seraient pas forcément perdus ou à risques. Ils citent notamment Peter Todd, en qualité de « développeur Bitcoin expert », qui aurait dit sur Twitter que vous exagérez en qualifiant vos manœuvres de « hack ». Que pensez-vous de ces déclarations ? Certains pourraient penser que BitFi joue sur la vidéo de votre collègue Rashid Saleem, jouant à DOOM sur un BitFi, pour entretenir une confusion par rapport à d’autres de vos démonstrations plus sérieuses d’attaques par canaux auxiliaires d’extraction de clés privées.

Bonjour. Comme vous le soulignez, la vidéo où Saleem Rashid détourne un BitFi pour jouer à DOOM Mobile était une simple réponse comique pour apporter un peu de légèreté, dans le contexte particulier du Pwnie Award. Il s’agit d’une conférence de cybersécurité au cours de laquelle sont récompensées à la fois les entreprises les plus vertueuses mais aussi les plus mauvaises en terme de cybersécurité. Beaucoup de gens nous disaient alors « Hey, ils vont bientôt faire tourner Doom dessus, vous verrez ! », et c’est pourquoi nous nous sommes accordés ce petit plaisir, afin aussi de gagner un peu d’exposition médiatique.

Les commentaires de Peter Todd concernant la situation sont basés sur une information incomplète – clairement, il a raté l’information principale : nous avons rooté le wallet, mais surtout avons été capable d’extraire ensuite la passphrase et la clé privée. Peter Todd n’est pas un spécialiste en cybersécurité, et n’a pas à priori de background spécifique dans ce domaine. BitFI l’utilise dans un contexte fallacieux : un appel à l’autorité.

De plus, nous n’avons jamais défini notre « hack » comme le fait de faire tourner Doom sur le wallet. Notre premier « hack » fut d’obtenir la passphrase et la clé privée associée depuis le wallet à l’aide d’une backdoor, ce que nous avons fait dès le 4 août, plusieurs jours avant que la vidéo de Saleem jouant à Doom ne soit diffusée.

Twitter

BitFi explique également que vous ne démontrez rien dans les faits, puisque vous ne feriez que partager des photos ou des vidéos sur Twitter. Il manque, d’après eux, un modus operandi clair et reproductible. Prévoyez-vous dans le futur de fournir une explication détaillée des vulnérabilités, voire une démonstration complète, au public ou à la presse, pour couper court aux spéculations ?

Nous rendrons tout cela disponible dans le détail à un moment donné – notre programme n’est pas encore gravé dans le marbre au moment où nous nous parlons. Idéalement, nous voudrions montrer toutes ces attaques sur un plateau de télévision. Pour revenir plus spécifiquement sur l’implantation d’une backdoor dans le wallet, il ne s’agit vraiment pas de quelque chose de très complexe. Nous prenons simplement le contrôle en mode root, et hop, la passphrase et la clé privée sont accessibles. C’est quelque part assez étrange que tout le monde soit persuadé que c’est impossible. Nous utilisons juste le BitFi comme un simple téléphone Android sur le lequel nous gagnons l’accès root.

BitFi partage aussi des tweets pour prouver qu’ils auraient essayé de prendre contact avec votre groupe, afin que que vous les aidiez directement à résoudre les vulnérabilités en question. Ils vont même jusqu’à dire qu’il vous suffirait d’accepter ce coup de fil pour vous voir verser la récompense d’un de leurs bounties. Pour autant, d’après eux, vous avez toujours refusé. Pourquoi ?

A nos yeux, les deux bounties proposées par l’entreprise sont des deux purs stratagèmes marketing de BitFi, et nous ne voulons pas y prendre part. Si nous réclamons le versement du bounty 2 [qui pour rappel, nécessite une compromission complète du wallet plus avancée que le bounty 1, mais est moins doté que ce dernier plus médiatique de 250 000 $], BitFi va nous sortir un nouveau tube de l’été et danser dessus pendant des heures en faisant un argument marketing du fait que nous n’ayons pas pu obtenir le versement du bounty 1 [pour rappel encore, Andrew Tierney alertait sur les conditions trop rigides de ce bounty dès son lancement]. Ce cirque ne nous intéresse pas.

M. Powel, vice-président des opérations de BitFi, est revenu sur vos accusations de serveur centralisé situé en Chine auquel le wallet enverrait des données. Il juge ces accusations fantaisistes et sans fondement. D’après eux, le fait que vous ayez identifié des connexions à Baidu.com ne signifie pas que des données sont factuellement envoyées vers un serveur centralisé chinois, puisqu’il s’agirait d’un simple ping. Voudriez-vous nous donner votre éclairage ?

Tout ce que nous avons vu et annoncé était que nous avions identifié une résolution DNS suivi d’une connexion HTTP à un serveur Baidu. Pour autant, soyons clair, nous n’avons jamais dit que quoi que ce soit était stocké sur un serveur en Chine. Nous avons été très clairs à ce propos. Néanmoins, de façon générale, cela nous semble tout de même une bien mauvaise idée de fonctionner ainsi, car cela sous-entend que les registres d’accès de ces serveurs pourraient maintenant avoir une liste des adresses IP associées à des wallets BitFi, ce qui représente à minima une faille de confidentialité.

De plus, ce ping n’est même pas nécessaire. Le wallet pourrait simplement tenter de se connecter au serveur BitFi (pour le dashboard). Si la connexion échoue, le wallet ne fonctionne pas.

Notre problème concernant ces remarques, c’est qu’elles suivent un déni initial, puis des modifications à cette première prise de position publique. BitFi change de versions au fil de l’eau, en disant que le wallet ne fait pas ce genre de choses, puis finalement que si mais que ça n’a pas d’importance. Même chose concernant le rooting. Nous avons aussi observé un certain nombre d’applications Baidu et ADUPs qui tournaient en fond sur le BitFi. Pour un wallet sécurité, cela nous semble un risque additionnel inutile et sérieux.

BitFi reconnaît bien qu’un stockage est présent dans le wallet, mais à seule fin de stocker l’OS. Ils se défendent de tout stockage des clés privées sur tout type de mémoire que ce soit. Pour autant, ils disent que même si tel était le cas, il est toujours mieux de stocker une clé privée 14h que de la stocker de façon permanente comme le font leurs concurrents. Dans le même temps, ils évoquent qu’une clé privée Monero persisterait un peu plus longtemps en mémoire qu’une clé privée Bitcoin, ce qui me semble contradictoire avec le fait de ne rien stocker. Quel est votre avis concernant ce point spécifique ?

Sur les versions originelles du logiciel, nous n’avons pas trouvé de mécanisme servant à effacer la mémoire. A un moment, ils ont introduit un changement en utilisant SecureString. C’est quelque chose que font souvent les développeurs de manière un peu naïve, pour essayer de sécuriser le fait de devoir manipuler des données d’identification critiques. Pour autant, c’est largement inefficace. Ça n’a rien changé à notre attaque. Effacer la mémoire est loin d’être chose aisée sur un dispositif Android. Nous laissons de côté la question de la durée spécifique de persistance en mémoire des différents types de clés, puisque nous nous concentrons sur la passphrase puis la clé dérivée plutôt que sur la clé primaire en tant que telle. Nous ne pouvons donc pas commenter les dires de BitFi concernant la persistance spécifique de clés en mémoire. Je ne suis pas sûr de pourquoi des clés Monero persisteraient plus longtemps que des clés Bitcoin, mais à tout le moins cela donne l’impression qu’ils admettent que ces clés persistent finalement un temps en mémoire.

BitFi

A propos de vos accusations concernant des comptes « sock puppets » supposément pilotés par BitFi et utilisés pour vous menacer sur les réseaux sociaux, BitFi explique ne pas vous avoir menacé mais avoir simplement réagi à votre détournement de leur logo en logo diarrhéique. Maintenez-vous vos accusations ?

Les mots exacts de BitFi étaient les suivants : « C’est mon dernier tweet, comme mon contrat se termine, mais savez-vous les gars contre qui vous vous battez et les ressources qu’ont ces gens ? Ce n’est pas très malin. Rappelez-vous que les mensonges répandus à propos de BitFi peuvent avoir des conséquences. »

Ça n’a pas de sens de faire un parallèle à propos d’un logo parodique. Ce tweet était une réponse à Saleem Rashid, dans une conversation qui ne concernait pas le logo. Il fait référence à des mensonges, ce qui n’a pas de rapport non plus. Au delà de la raison ou non de ce tweet, il s’agit toujours d’une menace. Je note qu’ils n’ont pas répondu frontalement au sujet des comptes « sock puppets ». Nous n’avons pas de doute concernant le fait que l’un de ces comptes était directement lié à quelqu’un qui utilisait l’adresse mail [email protected] [Tierney évoque Daniel Keshin, le CEO de BitFi].

Bill Powell, leur VP, sous-entend souvent que nous sommes employés par la concurrence, que nous ne sommes pas de vrais chercheurs en cybersécurité, et que nous tweetons beaucoup trop [pour être réels].

Tout cela est un contre-feu. Ça change rien au fait que les vulnérabilités identifiées existent. Je suis aussi contrarié par les sous-entendus répétés de BitFi concernant une supposée faiblesse des wallets concurrents, qu’ils disent pouvoir compromettre en 15 minutes. Je ne pense pas que ce soit vrai. Si BitFi pouvait faire ça, ce serait alors de leur responsabilité de faire connaître les failles en question.

BitFi m’a expliqué qu’aucun problème ne se posait en définitive concernant un stockage en mémoire potentiel des clés sur un device rooté, puisque « la RAM s’effacerait d’elle-même au redémarrage », ce qui immuniserait le dispositif contre tout tampering. Que pensez-vous ?

Je ne comprends vraiment pas d’où leur est venue l’idée qu’un dispositif de ce type verrait sa mémoire RAM effacée au redémarrage. La mémoire DDR [le type de mémoire RAM utilisé sur le BitFi] conserve le contenu stocké aussi longtemps qu’elle est rafraîchie (par exemple, à chaque fois que le contrôleur DDR est alimenté et disponible).

Quand le device est éteint, les données se dégradent avec le temps, mais le procédé est loin d’être rapide. Tout ingénieur spécialisé vous dira la même chose. Récupérer des données depuis une mémoire RAM ainsi s’appelle une « cold boot attack » et c’est connu depuis des années. Il y a beaucoup de détails techniques à ce propos sur lesquels nous préférons ne pas nous appesantir pour le moment.

Concernant Ryan Castelluci, qui a en premier donné l’alerte à propos d’une vulnérabilité inhérente au principe du brainwallet, BitFi m’a dit ne pas être particulièrement inquiet : d’après eux, la NSA elle-même ne peut pas cracker la clé privée si la passphrase est suffisamment longue cependant. Par extension, Castellucci et son utilitaire de cracking seraient une distraction. Votre ressenti à ce propos ?

Beaucoup d’études ont démontré que, même accompagnés, les utilisateurs ont tendance à choisir des passwords garantissant un faible niveau de sécurité. Nous ne voyons pas au nom de quoi cela serait différent dans le cas de BitFi. Nous avons identifié par exemple qu’un utilisateur avait utilisé la phrase d’exemple fournie par BitFi dans leur documentation, c’est dire…

https://twitter.com/cybergibbons/status/1028946740408406022

Dans les faits, j’aurais tendance à dire que BitFi va même tirer la sécurité des passphrases vers le bas. Une fois que vous avez utilisé un BitFi, vous réalisez que vous devez taper une seed d’identification de caractères, et ensuite votre passphrase de 30 caractères dans l’idéal, et ce à chaque fois que vous voulez l’utiliser. L’écran fourni est petit, et le clavier intégré sur ledit écran est assez pauvre. Cela rend le process peu user-friendly et assez « long ». Les gens auront sans doute tendance à choisir le mot de passe le plus simple possible pour gagner du temps.

Vous devez aussi considérer le problème du shoulder surfing [le fait d’obtenir des informations confidentielles par la distraction en regardant par dessus l’épaule de la victime, par exemple] : vous devez entrer la totalité de la phrase et la seed associé à chaque fois, vous augmentez donc sensiblement le risque d’avoir quelqu’un qui puisse should surfer votre password. Et BitFi ne peut rien faire pour lutter en l’état contre le shoulder surfing – leur clavier intégré fixe et leur écran très lisible dans ce contexte (bien qu’ils annoncent le contraire) paraissent une faiblesse certaine.

Pour terminer, j’aimerais revenir sur la question des bounties, même si vous dites ne pas vouloir les réclamer pour ne pas rentrer dans le jeu de BitFi. M. Powel m’a expliqué que des wallets pré-chargés avaient bien été envoyés, notamment à Ryan Castellucci, avec des liens publics pour vérifier si les fonds pré-chargés avaient bien été compromis ou non par M. Castelluci. Un commentaire à faire à ce propos ?

Ryan n’a pas demandé à recevoir ces wallets pré-chargés – ça nous a fait bizarre de voir que BitFi les avait envoyés. Nous les avons donc simplement traités comme du matériel de test supplémentaire en plus des wallets que nous avions nous-même achetés. De toute façon, je ne vois pas bien la différence qu’il peut y avoir entre le fait de dérober des fonds depuis nos wallets que depuis les leurs. Ça ne change rien : les fonds sont quand même détournés en définitive. J’ai plutôt l’impression que leur focalisation sur les wallets pré-chargés de bounty est une forme de défense par l’attaque – ça nous dit juste « on ne se préoccupe que de notre argent, pas de celui de nos clients ». S’ils croyaient vraiment en leur produit, ils mettraient 250 000 $ sur chacun des wallets pré-chargés qu’ils envoient.

Ainsi se termine cette interview. J’espère que nous aurons pu vous apporter un éclairage différent, à l’aide des explications détaillées fournies par chacun des protagonistes de cette affaire dans le Journal Du Coin.

Images from Shutterstock

Grégory Mohet-Guittard

Je fais des trucs au JDC depuis 2018. En ce moment, souvent en podcast et la tête dans le nuage.