N26 corrige plusieurs failles, la sécurité des « néo-banques » en question

UX is not enough 71
En bref
image dediée
Securité
Vincent Hermann

N26, souvent décrite comme « l’étoile montante de la FinTech », publiait récemment un billet expliquant la correction de failles de sécurité découvertes par Vincent Haupert. Celui-ci participait cette semaine à la conférence 33C3 pour en donner les détails. De quoi inciter à s'interroger sur la sécurité des « néo-banques ».

Les « néo-banques », ces nouveaux services « FinTech » entièrement tournés vers un usage mobile qui promettent de révolutionner notre relation à la gestion de notre argent passent une mauvaise fin d'année.

Outre les soucis financiers de MorningN26 (anciennement Number26) évoquait le 14 décembre avoir été alertée par un chercheur en sécurité, Vincent Haupert, au sujet d’un problème potentiel. Pour celle qui se décrit sur son site comme « la banque la plus moderne d’Europe », cela pose souci.

Une annonce passée presque inaperçue

Les détails de la brèche n’ont pas été donnés dans l’immédiat. N26 indiquait seulement avoir travaillé main dans la main avec Haupert pour examiner le problème et le résoudre. Ce dernier s’est donc rendu dans les locaux de l’entreprise à Berlin, et la faille, quelle qu’elle soit, a été déclarée comme résolue. N26 le cite d’ailleurs, indiquant qu'il loue la réactivité de la banque sur le sujet.

Plusieurs informations importantes étaient néanmoins données. D’une part, aucun client n’avait été touché par la faille. Les comptes n’ont donc pas été en danger, et il n’y a pas eu de transferts frauduleux d’argent. D’autre part, N26 a ouvert un programme de chasse aux bugs (bug bounty), une pratique bien connue des entreprises, qui récompensent les découvreurs de failles afin de les dissuader de les vendre aux plus offrants.

Quand simple s'approche trop de simpliste

Mais on en sait désormais davantage sur ce qu'il s'est passé. Vincent Haupert participait cette semaine à la 33ème édition du Chaos Communication Congress (33C3) et intervenait sur la sécurité des banques en ligne, avant de basculer sur le cas précis de N26 pour détailler sa découverte. Il a ouvert son intervention par un avertissement sur la sécurité générale de la FinTech (Financial technology), qu’il estime souvent plus intéressée par les belles interfaces à succès que par la protection des données et, dans le cas présent, des sommes placées.

Il a commencé par rappeler quelques fondamentaux sur N26, plantant le décor du succès de l’entreprise. Fondée en 2013 et active depuis 2015, la banque annonce gérer aujourd’hui 200 000 clients en Europe. La simplification extrême du processus voulu par N26 permet au client d’ouvrir un compte en seulement 8 minutes, faisant du smartphone un « hub financier ». La conception de l’application permet de se concentrer sur le principe de simplicité.

Mais selon Haupert, « simple » ne doit pas signifier « simpliste », surtout quand on parle de sécurité. Il a commencé par redonner les quelques étapes requises pour créer un compte et commencer à transférer de l’argent. D’abord un couple adresse email et mot de passe, puis un code PIN qui servira à valider les opérations, et enfin un code d’appairage pour un appareil unique.

Ce dernier est la mesure la plus importante. Au premier démarrage, l’application génère une paire de clés RSA et envoie la clé publique sur les serveurs de N26. Chaque nouvelle transaction est confrontée au service distant, l’application déchiffrant alors la communication avec sa clé privée. C’est celle-ci qui limite évidemment l’appairage à un seul smartphone.

Une attaque par homme-du-milieu

La communication entre l’application et l’infrastructure de N26 se fait en JSON sur une connexion HTTPS, mais sans couche de chiffrement supplémentaire sur les données échangées. Vincent Haupert a donc été capable de réaliser une attaque de type « homme du milieu » (MITM) en ciblant leur protocole. Une attaque d’autant plus facilitée que le client (donc l’application) n’effectue aucune vérification spécifique (notamment via un « épinglage de certificat »).

À partir de là, le chercheur était capable de manipuler un certain nombre d’éléments. Par exemple, modifier le récipiendaire, c’est-à-dire la personne qui doit recevoir les fonds. On comprend aisément le danger d’une telle faille, tout comme le titre de son intervention (« Shut up and take my money »). Si un attaquant avait pu prendre le contrôle du DNS pour l’adresse api.tech26.de – qui sert à valider les opérations – il pouvait manipuler les transactions en temps réel.

Le détournement du DNS entraîne tout le reste

Mais parvenir avec succès à détourner le DNS ne permet pas seulement de réorienter les transactions. L’attaquant peut en effet obtenir aussi le contrôle complet du compte, à condition d’en connaître les détails. Avec une technique assez classique de phishing (choix d’un domaine très proche), on peut contacter l’utilisateur et l’inviter à changer son mot de passe. Une fois les identifiants obtenus, la version iOS de N26 peut procéder à des transferts sans même réclamer le code PIN.

Haupert s’est aussi attaqué à une affirmation de la banque : toute activité suspecte est détectée et bloquée avant même qu’elle ne survienne. 2 000 transactions d’un centime ont donc été envoyées en 30 minutes. Non seulement N26 n’a réagi qu’au bout de trois semaines pour demander des explications, mais la banque souhaitait même fermer le compte… du récipiendaire (Dominik Maier, professeur d'Haupert).

Apparaige et code PIN : pas de problème

Il était également possible d’obtenir le désappairage du smartphone principal, pour en déclarer un autre. Cette procédure est normalement très sécurisée, car il faut posséder les identifiants, la Mastercard obtenue avec le compte et la carte SIM, puisqu’un jeton de sécurité est envoyé par SMS. Mais le lien de désapparaige est renvoyé par le serveur, et l’identifiant de la Mastercard circule dans chaque transaction. Des informations que l’on peut donc récupérer quand l’attaque MITM a réussi.

Quant au code PIN, on pourrait ajouter qu’il s’agit du clou du spectacle. Tout ce qu’il faut pour le réinitialiser est en effet... l’identifiant de la Mastercard. Dès qu’il est entré, l’utilisateur peut entrer un nouveau code PIN, sans que l’application ne réclame l’ancien.

Tous les problèmes ont été résolus

De fait, la « vulnérabilité théorique » abordée par N26 consiste en une liste de problèmes dont Vincent Haupert a fait l’inventaire durant la conférence. D’un certain côté, on peut effectivement les ramener à une brèche unique, puisque l’exploitation frauduleuse des comptes et le contrôle des transactions ne peuvent être mis en place que si l’attaque MITM a fonctionné.

Cependant, et même si cette faille est corrigée, certaines pratiques élémentaires méritaient d’être révisées. On peut ainsi s'interroger sur le fait qu'un nouveau code PIN puisse être déclaré sans réclamer une information que seul l’utilisateur est censé connaître, comme son ancien code. L’identifiant de la Mastercard n’est en effet pas suffisant puisque l’information circule notamment dans les ordres de transaction.

Quoi qu’il en soit, N26 assure que le problème est résolu, et Vincent Haupert a confirmé que plus aucune des vulnérabilités signalées ne subsistait. Reste maintenant à voir si tous les autres acteurs du domaine bancaire, nouveaux venus ou non, gèrent correctement la sécurité de leurs différentes applications.


chargement
Chargement des commentaires...