 Asseyez-vous, reposez-vous. La prochaine présentation, c'est « Tais-toi et prends la thune » par Vincent Auper. C'est un chercheur à la Frédéricie Alexander Université de Nuremberg, en Allemagne. C'est typiquement long comme mot. C'est typiquement allemand. Laissez que les systèmes et la protection des systèmes et des... C'est la deuxième fois qu'il parle. L'un dernier, il a parlé de la sécurité conceptuelle. Pas pour les mots de passionnés réparés pour l'informatique. Et cette année, il va parler de différents hacks qu'il a réussi à faire qui ont pris un compte, enfin un compte, complètement pris à l'account via une application mobile. Vincent, à toi. Ok. Bonjour et merci pour les applaudissements. Et allons-y tout de suite, parce qu'on avait un programme difficile. Alors, première chose, la banque en ligne, c'est quelque chose que nous avons tous. Puisque, virtuellement, tout le monde l'utilise. Et que, tradituellement, on utilise deux appareils. Un pour l'authentication et un pour la... Pour confirmer les transactions. Avec l'application mobile, l'authentification par app est devenue populaire. Dans le passé, comme par exemple en dernier, c'est devenu populaire d'avoir ces deux choses dans une seule app. Dans une seule app, c'est-à-dire, deux applis pour authentifier les transactions. L'an dernier, j'ai montré que ça a des gros problèmes conceptionnels, mais ce n'est pas la fin. La nouvelle évolution dans la banque en ligne, c'est d'avoir une seule application pour l'authentication. Ça ne fait pas de grosses différences. Donc les banques ne font plus semblant d'avoir de l'authentication à deux facteurs. C'est juste une seule, ils font plus semblant. On s'initialise et la confirmation, c'est juste un dialogue dans l'appli. Cette fois-ci, je vais parler de N26. C'est l'étoile montante dans la FinTech allemande. Cette fois-ci, je vais parler de problèmes techniques. Pourtant, c'est clair qu'on a le même genre de problèmes conceptuels qu'avec l'application avec deux facteurs. Mais nous avons ici, suffisamment. Premièrement, à propos de N26. N26 est une application financière mobile. C'est une application mobile basée à Berlin et on peut tout faire à partir de la pleine allemande. Ça a été fondé récemment en 2013 et ils ont déjà plus de 200 000 clients, ce qui est assez incroyable d'ailleurs. Égalant maintenant une licence de banque européenne, ils ont obtenu à peu près une demi-année et ils sont annoncés d'un mois d'un mois qu'ils existent dans 17 pays. Et ils prétendent également qu'on peut ouvrir un compte bancaire en 8 minutes avec eux. En fait, ils se trouvent qu'on peut même le perdre encore plus rapidement que ça. D'accord, alors. Parlons un petit peu de la sécurité et des transactions dans l'appli N26. Alors si vous voulez faire une transaction d'abord, vous devez vous connecter. Alors, on se connecte à un nom du ciateur qui est juste un email et un mot de passe. Après ça, on peut lancer une transaction. Enfin, vous avez entré tous les détails. Vous pouvez également donner un code de transaction, qui est un code à quatre chiffres, qu'on utilise pour récupérer l'argent. Un code de débit, donc c'est à votre code pin a priori. Le dernier point de ce schéma d'authentication, c'est le code d'appérage. C'est à priori de la fonction la plus importante du système de N26. Et on ne peut appérer qu'un seul téléphone avec le compte. Du darme d'un point de vue technique, l'application N26, la première fois qu'on la démarre, génère une paire de clés RSA. Et on voit la clé publique sur le cerveau de N26. Et dès qu'on crée une nouvelle transaction, ils envoient un défi, un challenge, donc à l'appli, qui doit défiffrer avec la clé privée. Donc c'est comme ça que ça marche. Donc appérer un téléphone, c'est un processus assez sécurisé, on en parle un peu plus tard. Pour parler un petit peu de l'infrastructure de N26, après, nous disons deux applits, une pour iOS, une pour Android, et on parle en utilisant en protocole le disant JSON sur HTTPS, à parler à un backend qui est une connaissance chiffrée de l'API. Donc la vraie, c'est API N26.2. Il a été capable de faire une attaque magnifique d'un autre, donc de personnes au milieu, sur leur protocole. Ils attendent à devoir créer, mettre un client sur le côté certificat, un certificat de côté client. En fait, non, ils n'aimaient pas eu besoin, puisqu'ils n'ont pas, ils n'aimaient pas de vérification du certificat de leur côté. Donc la première attaque qui nous vient à l'esprit, c'est de faire de la manipulation de transactions en temps réel. Donc on manipule les transactions que tes clients et on peut manipuler par exemple le récipiendaire, la personne qui va recevoir la transaction directement. Alors c'est un attaquant qui pouvait obtenir les actes de contrôle du DNS de API pour tel.26.2. Ça permet de nous faire une attaque au milieu. Et comme il n'y a pas de punisage du certificat, certificat pinning, l'application va automatiquement faire confiance au certificat qui n'a pas punisé. Faut prendre un exemple. Imaginons qu'on veut transférer deux euros à son ami, Dominic. Une fois avoir rentré les détails de la transaction, je dois mettre également mon code de transaction. Une fois que je confirme, je obtient le deuxième facteur d'authentification donc avec Maron. Et mon appareil appairé. C'est juste l'image, le dialogue suivant à l'intérieur de l'application. Une fois que c'est confirmé, tout se passe bien, on voit que tout est beau, et j'ai deux euros en moins sur mon compte. Donc tout est normal. Dans l'étape suivante on peut voir dans son historique de transaction qu'il y a deux euros en moins. Après avoir fait l'attaque, on constate qu'en fait on a transféré 20 euros et non pas 2 euros et c'était complètement transparent pour les utilisateurs même après l'attaque. Donc après avoir manipulé une transaction en temps réel on va essayer de prendre en main toute une compte entière. Pour ça il faut les détails du compte le code de transfert et le téléphone qui était en paire. Pour le début je veux prendre comme donné que en fait les détails du compte sont déjà en main. Il y a deux choses que je veux couvrir. C'est recovery from loss donc comment retrouver ou revenir d'une part. Et le deuxième c'est spear fishing. Le premier recovery from loss c'est juste comment mettre le mot de passe avec l'accès email. Donc travers le compte d'email on a l'accès direct au compte 126 ce qui casse la règle de mot de passe de 126. Le deuxième spear fishing avec un nom de domaines similaires on peut mettre en risque les clients de 126 sauf il faut avoir une raison réelle pour les contacter pour que ça reste crédible. Par exemple avec le domaine numéro 26.tech qui donne l'impression d'être assez convaincante je suis le propriétaire de cette. Si votre récepteur aussi un entente n26 tout est instantané donc pour savoir pour savoir qui vous êtes dans votre contact ils téléchargent tous vos contacts sans hache mais comment pouvons-nous utiliser les clients d'un certain de cette donnée est-ce que vous vous souvenez du problème de Drogpox qui a réveillé 68 millions d'accounts on a regardé tous ces émails à 40 tous ces millions contre les API et il n'y a aucune limite et je pense que il n'y a aucune limite il pense vraiment que je suis très populaire j'ai simplement mis ça on a simplement téléchargé ça comme donné et tout le monde pense que je suis très populaire à la fin nous avons vu 33 000 clients et nous pouvons leur envoyer des emails et ça nous donne aussi une raison de les contacter un email de N26 ressemble à ça et on peut le dire et au fait vous êtes affecté par le Drogpox clicks donc changez votre password pour votre propre sécurité en fait et ici change ton clicks link pour changer ton password pour changer ton mot de passe je vois les gens de N26 qui commencent à avoir peur mais vous en faites pas on l'a pas fait mon prof avait un petit peu des conséquences légales donc je me suis demandé est-ce que c'est possible de faire déjà des choses avec les détails de login donc avec iOS 10 N26 marche avec Siri donc par exemple c'est possible de dire Siri envoie 5 euros à tel et tel compte et Siri exécute les ordres par contre c'est juste possible de le faire avec des téléphones qui sont mis en paire avec si sinon il y a une message qui dit qu'il faut vérifier dans l'application se trouve que c'est uniquement une fonction qui est faite dans le côté client on peut voir si on peut voir donc on peut voir sur le endpoint de l'API que la transaction n'a pas été vérifiée donc il se fin de compte alors qu'on pensait qu'on avait besoin d'un téléphone qui était appéré pour faire ce genre de transaction et surtout qu'on n'a même pas besoin d'un téléphone appéré il suffit d'envoyer une bonne requête dans l'API encore quelque chose intéressant m26 prétend qu'ils sont capables de détecter les irrégularités via des algorithmes intelligents pour éviter la fraude avant qu'elle ait même lieu alors bien sûr on s'est dit on va accepter ce défi pour voir et ce qu'on a effectivement fait et je pense que c'est plutôt une irrégularité on a envoyé 2000 transactions de 1 centime en 30 minutes alors essayez de parler aussi vite que ça vous nous direz qu'est ce qui s'est passé alors on a attendu le lendemain, le surlendemain et pourtant personne ne nous a contacté et on a pensé que jamais il ne le contacterait mais plus de 3 semaines après n26 nous a demandé à Dominique d'expliquer ce volume inévituel de transaction ils ont même menacé d'annuler son compte de supprimer son compte donc c'est quelque chose assez raisonnable parce que clairement c'est une mauvaise utilisation du compte et ça va l'encombre des termes d'utilisation mais Dominique n'a pas envoyé ces transactions il les a reçus donc en fait ils ont contacté la mauvaise personne c'est un peu comme si j'aimais l'annuler votre compte parce que vous aviez reçu du spam bien continuons donc sur la prise de contrôle du compte les choses dont on a besoin maintenant c'est le code de transfert et le téléphone appéré ce qu'on va faire c'est que pour le code de transfert on va essayer de le remettre à zéro et pour le téléphone appéré il faut qu'on lève l'appérage ces processus ne sont pas aussi indépendants qu'on pourrait le croire donc je vais d'abord commencer par le téléphone appéré alors comme j'ai pu vous le dire au début et appérer le téléphone sont assez sérieux et assez sécurisés et dans mon opinion assez bien fait normalement alors regardons le processus au début quand on veut appérer un téléphone il faut d'abord retirer le téléphone précédent on ouvre l'application on appuie sur un pair et ensuite il vous envoie un mail un lien à votre adresse mail puis dans le mail il faut suivre le lien de désappérage donc ensuite l'étape d'après c'est là où le désappérage commence vraiment il faut d'abord entrer son code de transfert puis son identification mastercard le mastercard ID quelque chose d'assez particulier à N26 tous les comptes N26 viennent avec une mastercard et ils ont imprimé un jeton de 10 chiffres sous votre nom c'est un jeton, un token un peu mystérieux il faut avoir cette mastercard et ensuite ils envoient un sms avec un autre jeton, un autre token donc de vérification et ensuite une fois seulement que toutes ces étapes sont faites le désappérage est fait et le téléphone est plus lié au compte donc il faut avoir accès au compte mail connaître le code de transfert connaître la mastercard et avoir le contrôle de la carte SIM pour pouvoir recevoir le jeton de désappérage c'est impossible de se rater sur tous ces points là je le dis rire dans la salle évidemment alors rentre un peu dans le vieux du sujet première étape quand on clique sur ce lien pardon quand on clique dans l'appli pour désappérer ça fait une requête http get vers l'API mais on ne ne croit pas trop mais en fait ils envoient le lien en réponse en fait on n'a pas besoin d'avoir l'accès à l'adresse mail puisqu'en fait le code nécessaire est envoyé dans la réponse ensuite le code de transfert alors on va souhaiter ça pour l'instant mais on y reviendra mais l'étape d'après c'est l'ID mastercard qui est imprimé sur la carte et on n'a pas accès à la carte qu'est ce qu'on va faire dans ces cas-là dans le résumé de toutes les transactions N26 affiche beaucoup d'informations les récipients d'air le montant et ils affichent également mais ils utilisent également le mastercard id comme préfixe d'un identifiant interne que l'on peut retrouver dans l'API ce n'est pas montré au code c'est pas montré au client aux utilisateurs dans l'application mais c'est dans l'API qui est bien trop verbeuse qui affiche beaucoup trop d'informations ce qu'on vient de souhaiter c'était le code de transfert on le connaît pas mais on peut le remettre à jour et quand on le met à jour quand on le remet à zéro on se retrouve avec on a besoin du mastercard id applaudissement dans la salle vous avez besoin de cet id nous savons déjà comment l'avoir et ensuite vous confirmez le transfert comm pensez je ne sais pas lequel on a pas besoin de connaître le transfert comm même pas l'ancien puisque le mastercard id est suffisant ensuite dernièrement le sms on nous avons pas d'accès à la sim card mais mais c'est 5 nombres c'est 100 000 possibilités c'est pas beaucoup et même si le procedure de login est protégé contre les lags brutes il n'y a pas il n'y a pas de protection à taux du tout j'ai pu envoyer 160 requêtes par seconde c'est à dire applaudissement beaucoup d'applaudissement dans la salle ça veut dire ça prend à peu près 5 minutes 5 minutes en moyenne pour récupérer ce token le token sms peut être déterminé par force brut donc le slide c'est démonstration voyons voir si ça fonctionne donc nous allons aller dans l'app pour voir si c'est péré on on n'aurait pas vu de dialogue pour nous enregistrer pour nous enregistrer donc ça s'ouvre c'est bien nous allons lancer notre script N26 dit que cette attaque ne peut pas être pas être faite à grande échelle donc faisons les trucs sympas donc ce qui se passe maintenant c'est le bluetooth sinon tout est déjà passé il y a eu de la chance parce que c'est déjà fini donc le sms tout a été fait et le téléphone n'est plus appéré donc regardons sur le téléphone si c'est vraiment appéré et essayons ensuite au touch ID ne fonctionne pas ça veut dire que il s'est passé quelque chose et il demande à appérer le téléphone en effet rire dans la salle alors même si on pense que cette attaque peut bien monter en échelle elle a quand même un problème c'est qu'elle envoie un mail à l'utilisateur la troisième étape c'est quand le téléphone est correctement désapéré il y a un mail qui est envoyé à l'utilisateur mais est-ce que peut-être il y a une solution pour éviter ce problème-là essayons d'appeler le service client le service client est en fait l'entité la plus puissant dans le modèle de sécurité de N26, ils peuvent même changer des choses que vous ne pouvez pas changer à l'intérieur de l'application par exemple votre email ou votre nom vous ne pouvez pas le changer alors, parlons un peu que discutons avec eux alors ils se trouvent qu'ils peuvent également désapérer votre téléphone et donc la question qui apparaît évidemment on ne peut pas simplement les appeler et leur demander de connecter le téléphone ils vont évidemment vouloir vous antifier et de quoi ont-ils besoin rire dans la salle et de quoi vont-ils vous demander ils vont demander le Mastercard ID que l'on connaît déjà le votre combien d'argent vous avez dans le compte ce qui est toujours disponible que si vous connectez à l'appli et le lieu de vous vous êtes né et ça c'est toujours pareil on le retrouve dans l'API encore une fois on ne peut pas le voir à l'intérieur de l'application mais elle n'est pas montrée dans l'application mais l'application est là que l'on peut avoir dans l'API en fait ils ont tellement d'informations, c'est assez surprenant ils en savent peut-être plus sur moi-même que j'en sais moi-même alors maintenant grâce à cette client on peut changer n'importe quelle information et on peut modifier les informations et les situateurs n'en auront jamais rien puisqu'il n'y a pas de mail envoyé donc c'est parfaitement discret alors j'imagine déjà les réactions moi j'ai que 50€ sur mon compte pourquoi est-ce que je devrais m'inquiéter de ceci et c'est un argument qu'il y a du sens puisque beaucoup de comptes N26 sont ouverts par curiosité et beaucoup sont inactifs ou pas utilisés très sérieusement les gens ne s'en servent que pour voyager payer quelque chose en ligne parce que les conditions sont pratiques mais vous ne le savez pas comme votre compte courant ou votre salaire inversé il y a rarement beaucoup d'argent sensé compte mais comme cette N26 va être le hub centralisé pour tous pour tous les services financiers il y a un droit de vendraft donc d'être à découvert alors on peut ça peut aller de 50 à 2000€ de découvert et c'est pour en avoir un pour demander un découvert il faut avoir un téléphone appéré ça on l'a déjà on peut prendre contrôle d'un compte demander l'accès d'avoir le droit d'avoir un découvert et après ça on peut prendre tout l'argent qui est autorisé par le découvert si vous pensez que vous êtes à la brie parce qu'il n'y a pas beaucoup d'argent sur votre compte vous ne l'aide pas parce qu'on peut prendre un découvert en votre nom c'était quand même une certaine aventure j'aimerais donc parler un petit peu de de révélations de ces informations donc on a fait le rapport de ces informations à N26 le 25 septembre 2016 ce n'est pas moi qui étabile contact c'était le CCC, merci à eux je l'ai fait ainsi parce que je ne savais pas comment ils allaient réagir à la révélation de ce genre de vulnérabilité mais en fait ils n'avaient pas vraiment de raisons de s'inquiéter parce qu'ils sont réagis de manière très professionnelle et ils ont été en fait ils ont apprécié le rapport de vulnérabilité ensuite ils ont commencé à mettre en oeuvre des solutions incrementales je ne sais pas exactement quand est-ce qu'ils ont réparé la première étape je n'ai pas suivi le processus mais la dernière étape je l'ai constaté dans le 13 décembre quand ils ont mis en place le punaisage de certificat donc le certificat de pinning et apparemment je veux dire que je n'ai pas tout vérifié mais apparemment tous les problèmes qu'on a parlé aujourd'hui ont été résolus mais quelles sont les conséquences de tout ceci il est évident que N26 a besoin de mettre plus d'importance sur la sécurité pour voir que ceci n'était pas une coïncidence c'est tout simplement pas une coïncidence N26 a besoin de comprendre que ce n'est pas aussi simple que de de sortir des vidéos en vantant l'importance de la sécurité pour eux il faut effectivement le mettre en place ce n'est pas aux relations press et aux relations publiques de faire de la sécurité c'est drôle en fait si vous visitez la page de N26 vous allez découvrir qu'ils ont à l'heure actuelle 44 postes à pourvoir dans l'entreprise mais il n'y en a pas un seul dédié à la sécurité et de plus avec une telle stratégie les entreprises de fintech cachent la confiance que les gens ont dans les institutions financières aujourd'hui vous avez globalement confiance en votre institution financière à votre banque pour qu'elle fasse pas n'importe quoi avec votre argent il faut également se poser la question du rôle des autorités comment est-il du fait qu'il leur ait attribué une licence de banque il y a 6 mois alors que ces vulnérabilités étaient présentes dans l'application et étaient là depuis un certain temps je pense qu'un résumé qu'on pourrait faire de l'ensemble de ce qui se passe aujourd'hui c'est qu'on ne devrait pas dire ça marche pour moi quand il s'agit de la sécurité merci beaucoup et merci à tout le monde on désannonce à la fin on passe donc aux questions merci Vincent, merci Stéliens excellent et ça fait de putain de peur alors on n'a que très peu de temps pour les questions y a-t-il des gens qui ont une question pour pensant apparemment pas tout le monde est déjà en train de supprimer les applis de banque en ligne sur son téléphone si on a une question numéro 6 est-ce que vous savez qu'ils ont interdit des applications ils ont supprimé les versions des applications qui n'ont pas eu encore les fixes de sécurité alors en fait ils ne savent pas vraiment quels appareils utilisent quoi en fait ils ne savent pas vraiment quels appareils sont appareillés c'est plutôt une valeur qui est retenue côté client, côté téléphone est-ce qu'ils ont vous invité pour donner une speech en interne et expliquer les problématiques oui effectivement on a été en contact oui, a priori ça les intéresse en effet oui sérieusement oui dernière question pendant le speech vous avez nommé Latin Crypt mais vous n'avez pas expliqué en détail quel était l'impact et en fait vous avez mis le point sur le fait que le pinning de certificat n'était pas là comment vous expliquez ça en fait pas effectivement fait l'attaque de Magnemidal c'était une attaque théorique que j'ai supposé mais que je n'ai pas réalisé très bien merci beaucoup d'être venu à cette session merci beaucoup à Vincent