23 septembre 2020 Bonnes pratiques Vlad

L’authentification forte c’est bien, quand elle est sécurisée c’est mieux

Suite à un échange avec un RSSI, j’ai trouvé intéressant de vous partager mes réflexions concernant un certain contexte utilisant Office 365 (mais pas uniquement), l’authentification forte a été activée (sans contournement 😉). Cette authentification forte y est faite par l’envoie d’un SMS sur les téléphones pro des salariés (ou perso mais ce n’est pas le sujet), en complément de l’identifiant et du mot de passe.

Twitter

Très récemment, Twitter a subi une attaque intéressante visant à compromettre des salariés afin d’accéder au portail de gestion des comptes Twitter pour désactiver l’authentification forte et changer les mots de passe d’utilisateurs de la plateforme. A l’issue de cette attaque, des messages ont été envoyé sur les Twitter de personnalités avec pour but d’arnaquer leur « followers ». L’arnaque consistait à promettre de doubler les sommes virées sur un compte bitcoin donné (celui des attaquants 😉).

https://www.theverge.com/2020/7/15/21326656/twitter-hack-explanation-bitcoin-accounts-employee-tools

A ce jour, l’origine exacte de l’attaque n’est pas vraiment confirmée, j’ai lu des articles qui parlaient de « Sim Swap », d’interception de SMS, de complicité interne (https://www.vice.com/en_us/article/jgxd3d/twitter-insider-access-panel-account-hacks-biden-uber-bezos) …

Comme dit en introduction, suite à ces attaques, le RSSI ayant récemment déployé de l’authentification forte (MFA) m’a posé plusieurs questions que voici… avec les réponses bien sûr 😉.

Authentification forte par « ce que je possède »

Comme déjà vu à plusieurs reprises, une authentification forte est une authentification réalisée avec un identifiant (login, mail…) et deux facteurs parmi :

  • Ce que je sais (mon mot de passe, une phrase…) ;
  • Ce que je suis (biométrie comme : empreinte, rétine, haleine fétide…)
  • Ce que je sais faire (signature, geste codé https://twitter.com/mynameisv_/status/1258372512628555779 …) ;
  • Ce que je possède (un téléphone recevant un code par SMS, un smartphone recevant une notification, un petit jeton générant des codes à usage unique ou OTP dérivés du temps et d’un secret, ou la même chose mais en application sur un smartphone…) ;
  • L’endroit où je suis (géolocalisation) ;

Ici, nous nous focalisons sur le « ce que je possède », à savoir une sous-catégorie qui est « un téléphone » permettant, entre autre (avant de râler, il faut lire la fin 😉), les seconds facteurs d’authentification suivants :

  • Recevoir un code unique par SMS ;
  • Recevoir un appel téléphonique dictant un code unique. Ces moyens de transmission d’un code sont vulnérables aux attaques suivantes (hors attaques gouvernementales, interception par des IMSI catcher…).

« Sim Swapping »

Qu’est-ce que le « Sim Swapping »

Comme son nom l’indique, il s’agit d’échanger la SIM, la carte à puce contenue dans votre téléphone et contenant différents secrets vous permettant de vous connecter au réseau GSM de votre opérateur, ainsi que de vous authentifier.

Il y’a de nombreuses techniques, mais en gros, la technique la plus évidente est d’appeler le support de l’opérateur téléphonique de sa cible, de prétendre être cette personne et de demander à se faire envoyer une nouvelle carte SIM suite à un vol, une perte…

Il existe également des techniques avec des e-SIM, ne nécessitant pas d’envoie de carte à puce.

En général, il est quand même nécessaire d’avoir quelques informations et accès au préalable, comme des informations personnelles, un accès au mail de la cible…

Une fois en possession de la nouvelle carte SIM, cela revient à posséder le téléphone de la cible. Sachant que beaucoup de procédure de réinitialisation de mot de passe se basent sur le numéro de téléphone, il est donc possible (dans certains cas) de réinitialiser le mot de passe de la cible puis de recevoir les codes servant à l’authentification forte pas SMS.

Vous trouverez pleins d’articles sur Internet détaillant un peu plus cette technique :

https://www.zdnet.fr/actualites/sim-swapping-les-manoeuvres-des-operateurs-francais-pour-limiter-les-risques-39901345.htm

https://www.blackhatethicalhacking.com/news/europol-arrests-26-sim-swapping-fraudsters-for-stealing-over-3-million/

Comment s’en prémunir ?

Directement, il est plutôt compliqué de s’en prémunir car c’est chez l’opérateur que cela se passe.

Sur des flottes mobiles « pro », il peut éventuellement être demandé à ce qu’un seul et unique interlocuteur puisse faire ce type de demande avec validation par mail ou autre processus spécifique.

Sur des abonnements personnels, à part choisir un opérateur qui fait des vérifications sérieuses, je n’ai pas de solution (ni de liste d’opérateurs 😉 ). Je ne peux que recommander d’avoir des mots de passe solides et différents partout, des mails dédiés et uniques pour chaque service, de respecter les bonnes pratiques de sécurité, de ne pas publier d’information privée ou sensible sur soi dans les réseaux sociaux…

Comment le détecter ?

Difficile également de détecter le problème en dehors du fait de sensibiliser les gens à ce type d’attaque, car une fois le « SIM Swapp » effectué, l’utilisateur perd sa ligne téléphonique, ce qui devrait éveiller ses soupçons.

Interception de SMS

Qu’est-ce que l’interception de SMS ?

L’interception de SMS c’est… le fait d’intercepter les SMS. Merci cap’tain obvious 😉.

Intercepter des SMS demande un peu plus de compétences que savoir appeler un service de support. Il faut réussir à rentrer dans le réseau GSM mais depuis la publication d’ OsmocomBB (librairie open source permettant d’interagir avec les réseaux GSM et le protocole SS7, utilisé pour router les SMS vers les destinataires : https://www.sstic.org/media/SSTIC2010/SSTIC-actes/Projet_OsmocomBB/SSTIC2010-Slides-Projet_OsmocomBB-welte.pdf) et toutes les librairies associés, il n’est plus si compliqué de rentrer dans ces réseaux. Et ce n’est pas comme s’il n’ y avait pas de tutoriaux sur Youtube 😉 : https://www.youtube.com/watch?v=udceOS6vvfQ

Voici aussi un petit article en français sur le sujet : https://blog.e-xpertsolutions.com/authentification-forte-par-sms-fiable-ou-pas-fiable/

Ou encore cette présentation à Hackito Ergo Sum : http://2014.hackitoergosum.org/slides/day3_Worldwide_attacks_on_SS7_network_P1security_Hackito_2014.pdf

Comment s’en prémunir ?

A ma connaissance, pour un particulier ou une entreprise, il est impossible de se prémunir de l’interception SMS (sauf si l’entreprise en question est un opérateur GSM 😉).

Comment le détecter ?

Là encore, il est très difficile de détecter l’interception car si quelqu’un demande un code d’authentification par SMS à l’insu de la cible et l’intercepte, la cible ne verra rien. Le seul cas que je vois serait que la cible fasse une authentification forte au même moment et ne reçoive pas le SMS mais je doute que cela éveille le moindre soupçon.

Que faire ?

L’authentification forte basée sur un identifiant, un mot de passe et « ce que je possède » ne se limite pas à l’envoie de SMS sur un téléphone.

Ce qu’il faut bien comprendre, c’est que les techniques citées plus haut visent le téléphone, c’est-à-dire le GSM mais aujourd’hui, quasiment plus personne ne possède de simple téléphone mais plutôt des smartphones.

Le smartphone est un ordinateur connecté à Internet, permettant d’offrir les seconds facteurs d’authentification suivants :

  • OTP
  • Notification

OTP

Il s’agit d’enrôler le smartphone afin d’y déposer un secret (un nombre unique ou « seed »). Ce secret sera utilisé, en complément du temps, pour générer un « One Time Password » / OTP, en passant les deux dans un algorithme de condensat (combinaison donc de « HMAC-based One-time Password algorithm / HOTP » et « Time-based One-time Password algorithm / TOTP » ).

Pour plus de détails, voici un slide très moche que j’avais fait (il y’a longtemps…) pour illustrer la solution d’authentification forte que j’avais développé pour mon ancienne entreprise, le fameux « Cépafo » 😉 pour « Client Externe Portable d’Authentification par OTP » :

Il existe de nombreuses applications mobile offrant cette fonctionnalité comme Microsoft Authenticator, Google Authenticator, Cepafo 😉… Le secret peut être saisi manuellement, en prenant en photo un QRCode, en suivant une URL…

L’avantage de cette solution est que même sans accès Internet, l’OTP peut être généré par l’application mais qui doit être à peu près à l’heure (un décalage de quelques secondes n’est en général pas gênant). Par contre, générer un OTP depuis un smartphone, sur lequel vous saisissez votre identifiant et mot de passe pour accédér à un site ou service, casse un peu l’idée de facteurs multiples, vu que tout est sur votre smartphone, mais c’est un autre débat 😉.

Notifications

Que le smartphone soit sous iOS ou Android, il bénéficie du service de notification de ces éditeurs, permettant d’envoyer des notifications.

Suite à un enrôlement, lors d’une authentification, après avoir saisi son identifiant et son mot de passe, le smartphone recevra une notification demandant si l’authentification doit être validée ou non. Simple et efficace mais nécessitant une connexion Internet.

Authentification forte sur Office 365 ?

Microsoft Office 365 supporte les seconds facteurs suivants :

  • PhoneAppOTP, OTP généré par une application mobile sur le smartphone ;
  • OneWaySMS, code reçu par SMS sur le téléphone ;
  • PhoneAppNotification, notification envoyée sur le smartphone (appelé parfois « Push notification »);
  • TwoWayVoiceMobile, code reçu par un appel téléphonique . De ce fait, il est assez facile de remplacer le SMS par un OTP ou une notification, à condition d’arriver à faire enrôler les smartphones des utilisateurs, qu’ils soient maitrisé (smartphones pro, managé) ou personnels (plus compliqué car mêlant vie privée et vie professionnelle, non maitrise du terminal…).

Voilà, vous savez tout 😃.