N26 : la banque en ligne a son compte de failles de sécurité

AuthentificationE-paiementMarketingRisquesSécurité
n26-3c33

Intervention édifiante, lors du Chaos Communication Congress, de Vincent Haupert, qui est revenu sur les multiples failles qu’il a détectées dans les services de N26.

Coup de chaud pour N26 au Chaos Communication Congress.

La 33e édition de cet événement annuel qui réunit à Hambourg des hackers venus de toute l’Europe a donné lieu à une démonstration peu flatteuse pour la banque en ligne d’origine allemande.

Présent l’année passée pour évoquer l’insécurité des mots de passe aléatoires que proposent de créer les applications de ces mêmes banques en ligne, Vincent Haupert, chercheur à l’université Friedrich-Alexander d’Erlangen-Nuremberg, a remis le couvert.

Il est d’abord revenu sur l’évolution des méthodes d’authentification : d’un modèle basé sur un terminal mobile en complément à l’ordinateur, on est passé à des dispositifs fondés sur un seul appareil (généralement le smartphone).

n26-authentification

N26, qui revendique 200 000 clients avec ses services disponibles dans 17 pays, a poussé le concept plus loin en regroupant dans son application toutes les étapes du processus d’authentification.

Ce processus comporte trois étapes : une première connexion avec adresse e-mail et mot de passe, puis la saisie d’un code PIN à 4 chiffres et enfin la vérification du smartphone.

n26-login

L’homme du milieu

L’application communique avec les serveurs de N26 (api.tech26.de) via un protocole JSON avec chiffrement TLS. Vincent Haupert l’a découvert en lançant une attaque de type « Man-in-the-Middle » (MitM ; confer le schéma ci-dessous)… qui lui a aussi permis de constater qu’aucun mécanisme de vérification des certificats n’était implémenté côté client.n26-architecture

Le chercheur a donc fait en sorte que le trafic soit redirigé vers un serveur contrôlé pas ses soins lui permettant de manipuler des transactions tout émettant des certificats que l’application considérerait comme « de confiance ».

Première étape pour prendre le contrôle d’un compte d’utilisateur : obtenir e-mail et mot de passe.

Utiliser le système de récupération du mot de passe suffit si on dispose d’un accès à la messagerie de l’individu ciblé. À défaut, on peut mettre en place une campagne de phishing.

Dans cette optique, Vincent Haupert a enregistré un nom de domaine susceptible de ne pas éveiller les soupçons : number26.tech.

Pour s’assurer de n’envoyer d’e-mails qu’aux clients N26, il s’est basé sur deux éléments.

D’une part, le système de transfert P2P MoneyBeam intégré dans l’application et qui, pour montrer à l’utilisateur lesquels de ses contacts sont sur N26, récupère la liste stockée sur le téléphone et l’entrepose côté serveur… en clair. D’autre part, la base de 68 millions de comptes Dropbox qui a fuité cet été.

n26-phishing

Le croisement des informations a permis de récupérer les adresses e-mail de 33 000 clients N26. Et de leur envoyer un message légitime en apparence, leur signalant qu’ils ont été touchés par le piratage de Dropbox et leur demandant par là même de réinitialiser leur mot de passe.

n26-reset

Une API faiblarde…

Reste à obtenir le PIN… et un smartphone associé au compte.

Sur ce dernier point, on ne peut appairer qu’un terminal à la fois. Il convient donc de dissocier celui que possède l’utilisateur, à défaut de pouvoir en prendre le contrôle.

Dans le cadre de cette procédure, N26 envoie à l’utilisateur un e-mail avec un lien cliquable qui redirige vers un formulaire dans lequel il faut renseigner le PIN à 4 chiffres, ainsi qu’un numéro à 10 chiffres qui figure sur la carte MasterCard fournie par N26. On reçoit alors un SMS avec un code qui permet de valider définitivement la dissociation.

Comment obtenir toutes ces informations ? D’après Vincent Haupert, la réponse se trouve essentiellement dans l’API.

Dès le démarrage du processus de réinitialisation, l’application envoie un requête HTTP GET à laquelle le serveur répond en transmettant le lien de dissociation : pas besoin, donc, d’accéder à la boîte de messagerie électronique de la victime.

n26-serveur

Quant au numéro inscrit sur la MasterCard, il figure dans les détails de toutes les transactions… et suffit à réinitialiser le PIN.

n26-mastercard

Concernant le code envoyé par SMS, il comporte 5 chiffres, soit « seulement » 100 000 possibilités. Étant donné les largesses du système « anti-force brute » de N26, qui laisse passer jusqu’à 160 requêtes par seconde, cinq minutes suffisent en moyenne pour obtenir le sésame (12 secondes dans la démo effectuée sur scène).

n26-code

… comme les algorithmes antifraude

Problème : la victime peut être alertée par les e-mails – voire les SMS – qui lui sont envoyés à trois reprises : à l’amorçage du processus de dissociation, à la réinitialisation du PIN et une fois la dissociation finalisée.

La solution ? Appeler le support client, seul à pouvoir modifier l’e-mail et le nom liés à un compte. Outre le fameux numéro à 10 chiffres dont Vincent Haupert disposait, on lui a demandé le solde du compte, information à laquelle il a pu accéder en utilisant les identifiants de connexion. L’ultime élément, en l’occurrence le lieu de naissance de l’utilisateur, il l’a obtenu par une autre requête à l’API (GET api.tech26.de/api/me?full=true).

Quel intérêt sachant que la plupart des comptes n’abritent que de petits soldes ? Le fait que N26 offre une possibilité de découvert instantané jusqu’à 2 000 euros.

Qu’en est-il des algorithmes de détection de fraude que la banque dit avoir implémentés ? Ils n’ont pas bronché face à 2 000 transactions d’un centime effectuées en l’espace d’une demi-heure via Siri sur iOS 10.

N26 a finalement réclamé des explications, trois semaines plus tard… et au destinataire des transactions. « C’est comme si Gmail fermait votre compte parce que vous recevez du spam ! », ironise Vincent Haupert.

L’intéressé a fait part des découvertes de son équipe, le 25 septembre dernier à N26, dont il salue le professionnalisme. Toutes les failles semblent avoir été éliminées. Le dernier patch remonte au 13 décembre et ajoute la vérification des certificats sur iOS 10.

Problème : les clients resteront exposés tant qu’ils n’auront pas téléchargé la dernière version de l’application, que ce soit sur iOS ou sur Android, reconnaît Vincent Haupert.

Lire aussi :

Lire la biographie de l´auteur  Masquer la biographie de l´auteur