Lutter contre la prise de contrôle de comptes : pourquoi l’authentification multifacteur n’est qu’une première étape
Introduction
L’authentification multifacteur (MFA) n’élimine pas la menace de prise de contrôle des comptes. Certes, elle ajoute des obstacles, mais les attaquants déterminés ont découvert des moyens ingénieux de contourner tous les facteurs d’authentification disponibles. Plutôt que de considérer la MFA comme une solution au problème de l’authentification, nous devrions la voir comme un élargissement de la surface d’attaque : chaque facteur introduit un nouveau système de dépendances, de nouvelles sources de bogues et de vulnérabilités, ainsi que de nouvelles possibilités d’ingénierie sociale. Malheureusement, de nombreuses organisations de sécurité considèrent la MFA comme nous considérions autrefois le périmètre réseau : un rempart contre un large éventail d’attaques. L’illusion du périmètre sécurisé, mise en évidence par les partisans de la sécurité Zero Trust a permis aux attaquants d’exploiter des vulnérabilités au sein des réseaux afin de s’y déplacer latéralement et d’élever leurs privilèges. De même, l’idée fausse selon laquelle la MFA résout le problème de la prise de contrôle des comptes empêche les organisations de sécurité de reconnaître ses faiblesses et les nombreuses vulnérabilités qui subsistent dans les systèmes et exposent les comptes utilisateurs à une prise de contrôle malveillante. En examinant la manière dont les attaquants contournent la MFA, ce livre blanc montre que celle-ci rend certaines autres mesures de sécurité encore plus importantes, notamment la lutte contre les bots, la protection de la chaîne d’approvisionnement JavaScript et la surveillance des risques contextuels. Ces techniques renforcent les avantages de la MFA en matière de sécurité tout en réduisant les contraintes qu’elle impose aux utilisateurs.
Les facteurs à l’origine de l’authentification multifacteur
Malgré ses faiblesses, l’authentification multifacteur (MFA) est là pour durer, et ce pour une bonne raison : l’authentification reposant uniquement sur un mot de passe a clairement échoué.
Nous autres, êtres humains, sommes tout simplement incapables de mémoriser de longues chaînes de caractères aléatoires. Nous prenons donc des raccourcis : nous choisissons des mots de passe prévisibles et faciles à retenir, réutilisons les mêmes mots de passe dans différentes applications ou les griffonnons sur des post-it. Bien que les entreprises atténuent ce risque en imposant des exigences de longueur et de complexité, la mémoire humaine a ses limites. Même face à ces exigences, nous trouvons des moyens de rester prévisibles : mettre uniquement la première lettre en majuscule, remplacer des caractères alphanumériques par des caractères spéciaux qui leur ressemblent ($ à la place de S) ou ajouter des chiffres faciles à deviner, comme 123, à la fin d’un mot de passe. (Voir les résultats de recherche sur la prévisibilité des mots de passe.)
Nous autres humains partageons également des faiblesses qui nous rendent vulnérables à l’ingénierie sociale. Nous divulguons nos mots de passe lorsque des attaquants exploitent notre confiance, notre désir de nous conformer, notre respect de l’autorité et notre volonté d’aider. Il s’avère que certaines personnes révèlent parfois leurs mots de passe si on le leur demande tout simplement, comme vous pourrez le constater dans cette vidéo amusante de l’émission « Jimmy Kimmel Live ».
Compte tenu de ces faiblesses de l’authentification par mot de passe, les organismes publics et les associations professionnelles encouragent l’adoption de l’authentification multifacteur (MFA). En mai 2021, le président Biden a publié un décret présidentiel imposant aux organismes fédéraux d’adopter la MFA dans un délai de 180 jours, tandis que la Cybersecurity and Infrastructure Security Agency (CISA) encourage l’adoption de la MFA par les entreprises privées. Dans sa norme Data Security Standard v4.0, le Payment Card Industry Security Standards Council exige que les organisations mettent en œuvre la MFA pour tout accès aux données des titulaires de cartes de crédit d’ici au 31 mars 2025.
Alors que les avantages évidents de l’authentification multifacteur (MFA) par rapport à l’authentification reposant uniquement sur un mot de passe favorisent son adoption, les professionnels de la sécurité doivent accorder une attention croissante aux inconvénients de la MFA, notamment à la manière dont elle élargit la surface d’attaque et crée de nouvelles vulnérabilités permettant aux attaquants de contourner les contrôles d’authentification.
L’élargissement de la surface d’attaque lié à l’authentification multifacteur
L’authentification multifacteur (MFA) désigne l’utilisation d’au moins deux facteurs au cours du processus d’authentification. Par facteur, on entend un moyen de prouver que vous êtes bien la personne que vous prétendez être, à l’aide de :
- Connaissance : quelque chose que vous connaissez, comme un mot de passe ou un numéro d’identification personnel (PIN)
- Possession : quelque chose que vous possédez, comme un appareil mobile, une carte à puce, un jeton matériel ou une clé USB
- Inhérence : quelque chose qui vous caractérise, déterminé par des données biométriques telles que les empreintes digitales, la reconnaissance faciale et les motifs de l’iris
Il existe une multitude de façons de mettre en œuvre l’authentification multifacteur (MFA), et nombre d’entre elles créent de nouvelles surfaces d’attaque ou laissent les applications exposées aux mêmes vulnérabilités que celles qui caractérisent l’authentification par mot de passe uniquement.
MFA par SMS
Il existe une multitude de façons de mettre en œuvre l’authentification multifacteur (MFA), et nombre d’entre elles créent de nouvelles surfaces d’attaque ou exposent les applications aux mêmes vulnérabilités que l’authentification par mot de passe seul.
La mise en œuvre la plus répandue de l’authentification multifacteur (MFA) utilise les SMS pour envoyer aux utilisateurs un mot de passe à usage unique (OTP), ce qui permet en principe de prouver qu’ils possèdent un smartphone. En général, l’utilisateur commence par se connecter à l’aide d’un nom d’utilisateur et d’un mot de passe, ce qui déclenche l’envoi du SMS par l’application. Il consulte ensuite l’OTP et le saisit dans l’application, achevant ainsi l’authentification et générant un jeton de session qui restera valide pendant une durée déterminée.
Vulnérabilités persistantes de l’authentification par SMS
La mise en œuvre du facteur de possession par SMS ne permet pas de corriger plusieurs vulnérabilités majeures. Comme l’utilisateur saisit le mot de passe à usage unique (OTP) et le mot de passe dans l’application, et que celle-ci renvoie l’OTP au serveur par le même canal de communication que celui qu’elle utilise, un attaquant ayant compromis l’application, l’appareil ou le réseau pourra accéder au mot de passe, à l’OTP et au jeton de session.
Attaquer le terminal
En recourant à de nombreuses techniques éprouvées et toujours répandues, les attaquants prennent le contrôle des appareils en les infectant avec des logiciels malveillants, ce qui entraîne une attaque de type « homme dans le navigateur » (MitB). L’exécution de code dans le navigateur permet aux attaquants d’obtenir le mot de passe et le code à usage unique (OTP), puis de s’authentifier au nom de l’utilisateur. L’attaquant peut également laisser l’authentification aboutir, puis dérober l’identifiant de session, qui peut servir à contourner l’authentification et à accéder au compte de l’utilisateur. (Pour connaître les tendances récentes concernant les logiciels malveillants qui infectent les terminaux, consultez le rapport de F5 Labs sur BlackGuard Infostealer.)
Compromission de l’application
En infectant une application, les attaquants peuvent prendre le contrôle des comptes d’un grand nombre d’utilisateurs. Outre la compromission de l’infrastructure d’une entreprise au moyen d’un logiciel malveillant, les cybercriminels peuvent accéder aux données de l’application en compromettant l’une des bibliothèques de code qui la composent, une tactique connue sous le nom d’attaque de la chaîne d’approvisionnement.
Lors d’une attaque de la chaîne d’approvisionnement logicielle, l’attaquant cible généralement un fournisseur tiers de confiance ou un dépôt open source qui fournit des composants logiciels (bibliothèques, frameworks, services) à l’organisation visée. Il injecte un logiciel malveillant dans le composant, qui est ensuite intégré à l’application. Cette attaque peut être efficace, car les fournisseurs et les équipes open source ne disposent pas tous des compétences et des ressources nécessaires pour imposer des pratiques de codage sécurisé.
Les applications web et mobiles sont particulièrement vulnérables aux attaques de la chaîne d’approvisionnement, car elles intègrent généralement des dizaines de scripts tiers, dont beaucoup sont ajoutés dynamiquement aux pages par des gestionnaires de balises. Ces scripts, qui changent fréquemment et sans préavis, ne sont pas soumis aux contrôles de sécurité du code de l’organisation. Si un attaquant parvient à compromettre l’un de ces scripts, il prend le contrôle total de l’application et peut ainsi lire les saisies des utilisateurs, accéder aux données stockées dans la mémoire du navigateur ou détourner le parcours utilisateur pour rediriger celui-ci vers une application malveillante sans l’en avertir.
Ces attaques de la chaîne d’approvisionnement, telles que Magecart, ont entraîné la compromission de centaines de milliers d’identifiants. Tout comme les attaques MitB, ces attaques de la chaîne d’approvisionnement peuvent contourner toute solution MFA dans laquelle le jeton prouvant la possession est saisi dans l’application, ce qui est le cas de la plupart des implémentations utilisant des OTP. Puisque le code malveillant lit les saisies de l’utilisateur, il peut dérober à la fois le mot de passe statique et l’OTP, ainsi que toute autre information personnelle ou financière recueillie par l’application.
Écoute du réseau
Étant donné qu’avec l’authentification par SMS, le mot de passe, le code à usage unique (OTP) et le jeton de session transitent par la même connexion réseau, cette forme d’authentification multifacteur reste vulnérable aux attaques de type « homme du milieu » (MitM), qui exploitent des vecteurs d’attaque courants tels que l’empoisonnement DNS, l’empoisonnement ARP et les points d’accès sans fil malveillants.
Ingénierie sociale
L’une des attaques les plus courantes et les plus efficaces contre l’authentification multifacteur par SMS consiste à recourir à l’ingénierie sociale pour mettre en place une attaque de l’homme du milieu (MitM) au moyen de proxys d’hameçonnage en temps réel (RTPP).
Dans cette attaque, le fraudeur utilise des e-mails d’hameçonnage pour inciter un utilisateur à se rendre sur un site contrôlé par l’attaquant, où il saisit ses identifiants. Jusqu’ici, cette tactique est identique à une attaque par hameçonnage visant à dérober des identifiants, mais contourner l’authentification multifacteur nécessite une étape supplémentaire. Lorsque l’utilisateur saisit son nom d’utilisateur et son mot de passe dans l’application, l’attaquant transmet ces identifiants à l’application cible, qui envoie alors à l’utilisateur une demande d’authentification à l’aide d’un second facteur. Il est très probable que l’utilisateur approuve cette demande, car il pense s’authentifier auprès d’une application de confiance ; il clique sur le bouton d’approbation ou saisit consciencieusement le jeton dans l’application. Dans les deux cas, l’attaquant accède à l’application. (Pour voir une démonstration de l’attaque, consultez cette vidéo de Kevin Mitnick.)
Grâce à l’automatisation et à la propension des utilisateurs à tomber dans le piège des campagnes de phishing, les attaques RTPP peuvent réussir à grande échelle. (Pour plus de données sur l’essor des proxys de phishing en temps réel, consultez le rapport de F5 Labs sur le phishing et la fraude.)
Nouvelles vulnérabilités de l’authentification par SMS
En plus de ne pas corriger bon nombre des vulnérabilités existantes de l’authentification par mot de passe seul, l’utilisation des SMS comme second facteur expose une application à des vecteurs d’attaque supplémentaires.
Vol de l’appareil physique
L’attaque la plus évidente contre l’authentification fondée sur la possession est sans doute le vol d’un appareil physique. Un criminel qui vole un téléphone peut accéder à un code à usage unique affiché dans une notification, même si le téléphone est verrouillé. De nombreuses victimes de vol de téléphone ont ainsi vu les fonds de leurs comptes bancaires disparaître.
Échange de carte SIM (module d’identité de l’abonné)
Les criminels n’ont pas besoin d’être physiquement en possession d’un téléphone pour accéder aux mots de passe à usage unique (OTP) envoyés par SMS. L’échange de carte SIM (https://www.darkreading.com/edge/sim-swapping-attacks-what-they-are-how-to-stop-them), également appelé détournement ou portage de carte SIM, permet aux attaquants de contourner l’authentification par SMS, qui constitue la forme d’authentification multifacteur (MFA) la plus couramment utilisée dans les applications destinées aux clients. Lors d’une attaque par échange de carte SIM, le fraudeur exploite la possibilité offerte par les opérateurs de télécommunications de transférer un numéro de téléphone vers un autre appareil, une fonctionnalité utile en cas de perte ou de vol d’un téléphone.
Le fraudeur commence par recueillir des informations personnelles sur la victime au moyen de recherches en ligne, d’hameçonnage ou d’ingénierie sociale. Grâce à ces informations, l’attaquant convainc l’opérateur téléphonique de transférer le numéro de téléphone de la victime vers la carte SIM du fraudeur. Il peut également s’introduire dans le compte de l’utilisateur auprès de l’opérateur en recourant au bourrage d’identifiants, à une attaque par force brute ou à une attaque par dictionnaire.
En prenant le contrôle du service téléphonique de la victime, le fraudeur recevra tous les SMS et appels vocaux qui lui sont destinés. Il pourra ainsi intercepter tous les codes de sécurité envoyés par SMS.
Dispositifs à jeton matériel
Les jetons matériels sont des dispositifs spécialisés, généralement de petite taille, qui affichent un mot de passe à usage unique (OTP), que l’utilisateur saisit dans une application pour s’authentifier. Ces dispositifs permettent de prouver que l’utilisateur est bien en leur possession sans que l’application ait à communiquer avec lui, ce qui élimine l’une des principales vulnérabilités de l’authentification par SMS.
Plutôt que de s’appuyer sur l’envoi d’un OTP à l’utilisateur à chaque connexion, l’appareil génère une série d’OTP à partir d’une valeur initiale, appelée graine, et d’un algorithme. Lors de la configuration, cette valeur est partagée entre l’appareil et le service d’authentification. Un compteur est associé à la graine et est incrémenté soit lors d’un événement, tel qu’une demande de connexion, soit à l’issue d’un intervalle de temps, par exemple 60 secondes. On parle respectivement d’OTP basé sur un événement (EOTP) et d’OTP basé sur le temps (TOTP). L’EOTP et le TOTP sont tous deux des types d’OTP basés sur une fonction de hachage (HOTP), car le compteur et la graine sont transmis ensemble à une fonction de hachage qui génère une chaîne de chiffres apparemment aléatoire et qui, lorsqu’elle est correctement mise en œuvre, ne présente aucun schéma prévisible.
En évitant d’avoir à envoyer le mot de passe à usage unique (OTP) par SMS, les jetons matériels empêchent son interception avant qu’il ne parvienne à l’utilisateur, notamment par des techniques telles que l’échange de carte SIM. Toutefois, comme l’utilisateur doit saisir l’OTP dans l’application, qui le transmet au service d’authentification par le même canal de communication que le mot de passe, la plupart des autres vulnérabilités de l’authentification par SMS subsistent. Un attaquant peut accéder au mot de passe et à l’OTP en compromettant le terminal, le réseau ou l’application, exactement de la même manière que pour les OTP envoyés par SMS.
L’attaque la plus courante contre l’authentification par SMS, qui repose sur des proxys d’hameçonnage en temps réel, est tout aussi efficace contre les OTP générés par des dispositifs matériels, puisque l’utilisateur est amené à saisir l’OTP sur le faux site, que celui-ci s’affiche sur un téléphone ou sur un appareil spécialisé.
Bien que les dispositifs matériels empêchent les attaquants d’intercepter le mot de passe à usage unique (OTP) lors de sa transmission à l’utilisateur, ils reposent sur des valeurs d’initialisation susceptibles d’être compromises. Les attaquants peuvent accéder à la valeur d’initialisation en obtenant un accès physique aux dispositifs (voir la mention d’une attaque au microscope électronique dans Plus de 12 façons de pirater la MFA), en compromettant la base de données utilisée par le service d’authentification ou en interceptant le processus de configuration au cours duquel la valeur d’initialisation est convenue entre le dispositif et le service d’authentification.
Applications d’authentification
Les applications d’authentification peuvent fonctionner de manière très similaire aux jetons matériels, en générant une série de mots de passe à usage unique (OTP) à partir d’une valeur initiale et d’un algorithme, ce qui évite d’avoir à transmettre cette valeur sur un canal vulnérable. Elles peuvent toutefois aller encore plus loin en utilisant un autre canal pour transmettre l’OTP. Dans ce scénario, après la vérification réussie d’un nom d’utilisateur et d’un mot de passe, le service d’authentification envoie une notification push à l’application d’authentification, qui invite l’utilisateur à approuver la demande. Une fois celle-ci approuvée, l’application d’authentification envoie directement l’OTP au service d’authentification, sans que l’utilisateur ait à le saisir dans l’application. La communication entre l’application d’authentification et le service d’authentification s’effectue via une connexion distincte.
L’utilisation d’un autre canal de communication signifie qu’un attaquant ne peut pas accéder au mot de passe à usage unique (OTP) en compromettant l’application, puisque l’OTP n’est jamais saisi dans celle-ci. Il est également plus difficile de récupérer à la fois le mot de passe et l’OTP en compromettant la connexion réseau, car ils sont transmis via des canaux sécurisés distincts. Toutefois, la compromission du terminal pourrait permettre à un attaquant d’accéder au mot de passe et à l’OTP si l’application elle-même et l’application d’authentification s’exécutent sur le même appareil. (Voir le rapport de F5 Labs sur les logiciels malveillants qui compromettent Google Authenticator.)
Malheureusement, les applications d’authentification n’empêchent pas l’utilisation de proxys d’hameçonnage en temps réel. L’utilisateur est toujours amené à saisir son nom d’utilisateur et son mot de passe sur un faux site par le biais d’un SMS d’hameçonnage. Une fois ses identifiants saisis, l’application déclenche l’envoi d’une demande à l’application d’authentification. Comme l’utilisateur pense être en train de se connecter à une application de confiance, il est susceptible d’approuver la demande, ce qui finalise l’authentification. Bien que l’attaquant ne voie jamais le mot de passe à usage unique (OTP), son proxy prend alors le contrôle d’une session authentifiée, lui donnant ainsi accès au compte de l’utilisateur. (Pour en savoir plus sur les proxys d’hameçonnage en temps réel (RTPP) et l’authentification par notification push, consultez cet article sur les plateformes d’hameçonnage dans Hacker News.)
En outre, la facilité d’utilisation des applications d’authentification a créé un autre moyen pour les attaquants de contourner l’authentification multifacteur grâce à l’ingénierie sociale. Lors d’attaques par « bombardement MFA » ou par fatigue MFA, l’attaquant incite la cible à lui communiquer son code d’authentification en lui envoyant de nombreuses demandes frauduleuses. Il utilise généralement des outils automatisés pour générer un grand nombre de demandes, submergeant ainsi la victime sous un nombre excessif de notifications ou de messages lui demandant de saisir son code d’authentification.
Si le bombardement MFA peut inciter un utilisateur à saisir un mot de passe à usage unique reçu par SMS ou généré par un dispositif matériel, il est particulièrement efficace contre les applications d’authentification, car l’utilisateur peut très facilement mettre fin à l’afflux de demandes en appuyant simplement sur un bouton.
Authentification biométrique
Il existe encore plus de façons de mettre en œuvre l’authentification biométrique que l’authentification fondée sur la possession. Non seulement il existe de nombreuses méthodes pour déclencher la demande d’authentification et transmettre ces données au service d’authentification, mais la biométrie peut également prendre de nombreuses formes, des empreintes digitales à l’analyse de l’iris. Le matériel nécessaire à l’analyse peut être intégré à l’appareil exécutant l’application, comme une caméra avec lecteur d’empreintes digitales sur un ordinateur portable, ou nécessiter un équipement distinct. Le lecteur biométrique peut être contrôlé par le système d’exploitation ou par une application spécialisée. Compte tenu de ces différences de mise en œuvre, il est difficile de modéliser toutes les vulnérabilités. Toutefois, il est important de comprendre que, malgré sa réputation de sécurité accrue, l’authentification biométrique présente encore des vulnérabilités très manifestes.
En effet, l’une des méthodes couramment utilisées pour contourner le facteur de possession, à savoir les proxys d’hameçonnage en temps réel, peut tout aussi bien servir à contourner l’authentification biométrique. Lorsque l’utilisateur se connecte à une application contrôlée par un attaquant en pensant qu’il s’agit d’une application de confiance, celle-ci utilise ses identifiants pour se connecter à l’application en son nom, ce qui déclenche la demande d’authentification biométrique. Tant que l’utilisateur pense s’authentifier auprès de la véritable application, il est susceptible de procéder à l’authentification biométrique, donnant ainsi à l’attaquant accès au compte. (La norme FIDO2 WebAuthn, créée par le W3C, intègre une protection contre l’hameçonnage, bien qu’elle ne soit pas encore largement adoptée par les applications web.)
La possibilité de contourner l’authentification biométrique en compromettant le terminal, l’application ou le réseau dépend de l’implémentation concernée. Si le système d’authentification biométrique s’exécute sur le même appareil que l’application, la compromission du terminal peut permettre de contourner l’authentification. Si l’application gère le processus d’authentification biométrique, sa compromission peut permettre de contourner l’authentification. Enfin, si les données d’authentification biométrique sont transmises par le même canal de communication que celui utilisé par l’application, la compromission du réseau peut permettre de contourner l’authentification. En résumé, l’authentification biométrique nécessite une modélisation détaillée des menaces, adaptée à l’implémentation concernée.
L’authentification biométrique présente une vulnérabilité particulière à la copie et à l’usurpation. Prenons les empreintes digitales. Nous en laissons partout, sur presque toutes les surfaces lisses que nous touchons. Nous en laissons sur les poignées de porte, dans les restaurants et dans les poubelles. Recueillir des empreintes digitales sur ces surfaces est un jeu d’enfant ; nous l’avons tous vu faire d’innombrables fois dans des séries policières. Reproduire des empreintes digitales est tout aussi simple, que ce soit à l’aide d’une imprimante 3D ou d’oursons en gélatine.
Pour les autres formes de biométrie, une course permanente oppose les chercheurs en sécurité, qui révèlent comment les systèmes biométriques peuvent être trompés, aux fournisseurs qui développent des technologies anti-usurpation. Des masques 3D ont trompé des systèmes de reconnaissance faciale dans des aéroports, bien que ces masques puissent être détectés grâce à des contrôles de présence réelle et à d’autres méthodes. De même, des attaquants ont utilisé des enregistrements vocaux associés à une synthèse vocale par deepfake pour contourner des systèmes de reconnaissance vocale, même s’il peut être possible de détecter ces usurpations grâce aux distorsions subtiles ajoutées par les appareils d’enregistrement. Même les images de l’iris peuvent être reproduites et falsifiées à l’aide de lentilles de contact cosmétiques ou d’un œil artificiel, bien que diverses techniques anti-usurpation — notamment l’analyse des différences de réaction à la lumière entre les tissus humains et les matériaux synthétiques — permettent de détecter la fraude. En bref, la sécurité des lecteurs biométriques dépendra de l’état actuel des technologies d’usurpation et de lutte contre l’usurpation.
Même si nous vivions en ermites et évitions tout contact physique avec des surfaces, des attaquants pourraient dérober nos données biométriques. À l’aide de logiciels malveillants, de techniques d’ingénierie sociale et de l’exploitation de vulnérabilités non corrigées, ils ont déjà volé des milliards de noms d’utilisateur et de mots de passe. S’ils peuvent compromettre les bases de données qui stockent nos mots de passe, ils parviendront certainement à s’introduire dans celles qui contiennent nos données biométriques. Et dès lors qu’une seule fuite expose ces données, leur utilisation à des fins d’authentification risque de ne plus être sûre, selon qu’il est possible ou non de détecter leur usurpation.
Le fait que nous ne puissions pas facilement modifier les caractéristiques mesurées par la biométrie aggrave les risques de sécurité liés à la copie et à l’usurpation. Lorsqu’un attaquant vole un mot de passe, nous pouvons le changer. S’il vole un jeton OTP ou un téléphone portable, nous pouvons le remplacer et réinitialiser la valeur d’initialisation. En revanche, si un attaquant accède à notre empreinte digitale ou palmaire, à notre image faciale ou à toute autre caractéristique biologique et apprend à les reproduire efficacement, nous ne pouvons pas modifier ces caractéristiques physiques sans subir d’importantes souffrances.
Améliorer la sécurité de l’authentification multifacteur
Bien que l’authentification multifacteur (MFA) constitue une amélioration par rapport à l’authentification à facteur unique basée sur un mot de passe, elle reste vulnérable, du moins dans ses formes de mise en œuvre actuellement les plus répandues. Plutôt que de considérer la MFA comme l’aboutissement du parcours de sécurisation, voyez-la donc comme un nouveau départ. Les bonnes pratiques en matière de sécurité des applications restent plus que jamais d’actualité, notamment la modélisation des menaces, les revues de code, l’analyse des vulnérabilités, les tests d’intrusion et les exercices de red team. Lors de la modélisation des menaces, examinez chaque aspect du processus d’authentification et de gestion des sessions en tenant compte des nombreux points d’attaque, du référentiel d’identités à la sécurité physique, réseau et des données. Les cyberattaques cibleront probablement le maillon le plus faible. En particulier, les vulnérabilités de la MFA mettent en évidence plusieurs domaines clés qui nécessitent une attention accrue : la limitation des attaques automatisées, la protection contre les attaques de la chaîne d’approvisionnement JavaScript et la prise en compte du contexte de risque.
Éliminez les bots de votre réseau
Les cybercriminels s’appuient sur des bots pour mener à grande échelle plusieurs attaques majeures contre l’authentification multifacteur (MFA), notamment le bourrage d’identifiants, les proxys d’hameçonnage en temps réel et le bombardement de notifications MFA. Il est donc essentiel de lutter contre les bots pour protéger toutes les formes de MFA.
Lors des attaques par bourrage d’identifiants, telles que définies par l’OWASP, les cybercriminels se procurent des identifiants volés lors de précédentes violations de données, généralement en les achetant sur le dark web, puis les testent sur les pages de connexion d’autres applications. Des milliards d’identifiants ayant été exposés à la suite de violations de données, les cybercriminels maximisent leurs gains en automatisant ces tests à l’aide de bots, ce qui leur permet de tester un nombre considérable d’identifiants. Le Federal Bureau of Investigation, la Securities and Exchange Commission et le New York Attorney General ont publié des avertissements concernant les risques financiers liés au bourrage d’identifiants, tandis que la Global Privacy Assembly, une association regroupant plus de 130 autorités de régulation, a déclaré que le bourrage d’identifiants constituait une menace mondiale pour la vie privée.
La prévention du bourrage d’identifiants est tout aussi importante pour l’authentification multifacteur (MFA) que pour l’authentification reposant uniquement sur un mot de passe. Le principe même de la MFA est d’utiliser plusieurs facteurs, mais si vous ne protégez pas le premier, il ne vous en reste plus qu’un. Dès qu’un attaquant découvre le mot de passe d’un utilisateur, l’authentification à deux facteurs devient une authentification à facteur unique, et la défense en profondeur disparaît.
En outre, il est essentiel de lutter contre les bots, car les cybercriminels les utilisent pour s’attaquer à bien plus que de simples mots de passe. En effet, les bots jouent un rôle clé dans le lancement d’attaques réussies par proxy d’hameçonnage en temps réel, qui constituent le moyen le plus courant de contourner l’authentification multifacteur (MFA). Lorsqu’un utilisateur est victime d’un e-mail d’hameçonnage qui l’incite à saisir ses identifiants sur un faux site, l’attaquant doit transmettre ces identifiants à l’application ciblée afin de déclencher la demande de MFA, qu’elle repose sur un SMS, une application d’authentification ou des données biométriques sophistiquées. Pour transmettre rapidement la demande et le faire à grande échelle, le cybercriminel doit automatiser le processus, ce qui signifie que la demande est envoyée à l’application par un bot. (Pour un aperçu des services qui utilisent des bots afin de contourner les mots de passe à usage unique (OTP), consultez l’article de Krebs on Security intitulé « L’essor des bots d’interception de mots de passe à usage unique ». Ainsi, en empêchant les bots indésirables de soumettre des identifiants, une organisation peut considérablement réduire l’efficacité des proxys d’hameçonnage en temps réel et mieux sécuriser les facteurs d’authentification liés à la possession et à l’inhérence.
Une autre façon évidente pour les cybercriminels d’utiliser des bots afin de contourner l’authentification multifacteur consiste à recourir au bombardement MFA. Dans ce contexte, le bombardement consiste à générer un grand nombre de tentatives de connexion afin de déclencher une telle quantité de demandes d’authentification que l’utilisateur finira par en accepter une, soit par erreur, soit simplement pour mettre fin à ces sollicitations intempestives. Pour générer suffisamment de demandes auprès d’un grand nombre d’utilisateurs et rentabiliser ainsi l’attaque, le cybercriminel doit automatiser le processus. Cela signifie, là encore, que les tentatives de connexion reçues par votre site seront générées par des bots.
Comme l’illustrent ces exemples, presque toutes les attaques contre l’authentification multifacteur reposent sur des bots pour réussir à grande échelle. Les organisations qui mettent en œuvre l’authentification multifacteur doivent donc prendre au sérieux la lutte contre les bots.
Malheureusement, de nombreuses organisations sous-estiment le degré de sophistication des bots et la détermination des cybercriminels à les remanier très fréquemment pour échapper à la détection. Trop d’entreprises continuent ainsi de s’appuyer sur des techniques de lutte contre les bots qui ne sont plus efficaces, notamment les CAPTCHA, les listes de blocage d’adresses IP et les empreintes d’en-têtes HTTP.
Les CAPTCHA ne contribuent guère à la protection contre les bots et ne font qu’agacer les vrais clients, car les bots peuvent contourner ces tests en faisant appel à des services peu coûteux de résolution de CAPTCHA qui s’appuient sur l’apprentissage automatique et des fermes à clics. Il suffit d’effectuer une recherche sur le Web sur les services de résolution de CAPTCHA pour en trouver au moins une douzaine qui rivalisent en matière de prix et de rapidité. Pour en savoir plus sur ces services, consultez un article de Dan Woods, responsable du renseignement chez F5, intitulé J’ai été un résolveur humain de CAPTCHA. Plus intéressant encore, ChatGPT est parvenu à contourner un CAPTCHA en manipulant une personne afin qu’elle le résolve à sa place.
Pour les organisations qui s’appuient sur des listes de blocage d’adresses IP basées sur un WAF afin de lutter contre les bots, la tâche est tout aussi ardue. Il existe des services qui proposent aux créateurs de bots des dizaines de millions d’adresses IP résidentielles destinées à contourner la détection des bots. Ces services sont présentés comme des proxys résidentiels rotatifs : le bot envoie des requêtes HTTP au proxy, de la même manière que de nombreux navigateurs d’entreprise envoient leurs requêtes via des proxys directs, et le service change continuellement l’adresse IP publique utilisée pour envoyer la requête au site web ou à l’API. Auparavant, les bots utilisaient généralement des proxys de centres de données, souvent issus de services cloud, qui sont bien connus et faciles à identifier. Toutefois, ces nouveaux services de proxy utilisent des adresses IP résidentielles provenant de la même zone géographique que vos clients. Étant donné que chaque adresse IP peut simultanément correspondre à un bot ou à un client légitime en raison de la traduction d’adresses réseau (NAT) effectuée par les fournisseurs d’accès à Internet (FAI), il n’est pas envisageable de bloquer toutes ces adresses IP sans également refuser l’accès à vos véritables clients. (Pour en savoir plus sur la manière dont ces services obtiennent ces adresses IP, consultez l’article Your Phone is My Proxy.)
De même, tenter de détecter les bots en se fondant sur des différences dans l’ordre des en-têtes ne fonctionne plus, car les bots ont compris l’astuce. En effet, plusieurs projets open source, notamment stealth-puppeteer et undetected-chromedriver, se chargent de reproduire correctement l’ordre des en-têtes, ce qui permet de contourner facilement les mécanismes de détection lors de l’utilisation de ces frameworks d’automatisation populaires.
La détection des bots avancés exige aujourd’hui une collecte poussée des signaux, une surveillance 24 h/24 et 7 j/7, l’apprentissage automatique et une réaction rapide à l’adaptation des bots. Sans solution dédiée de gestion des bots, capable de détecter ces adaptations et d’y réagir rapidement, les bots permettront aux cybercriminels de mener efficacement des attaques à grande échelle contre l’authentification multifacteur (MFA).
Protégez-vous contre les attaques visant la chaîne d’approvisionnement JavaScript
Pratiquement toutes les formes d’authentification multifacteur (MFA) imaginables échoueront en cas de compromission de l’application. Si l’attaquant insère du code dans une application, la partie est terminée. Il peut récupérer les identifiants et autres données saisies pour la MFA, détourner des sessions en volant leurs identifiants ou exfiltrer des données directement depuis l’application. Comme les applications web modernes se composent généralement de plus de 20 fichiers JavaScript, provenant pour la plupart de tiers et non examinés par l’équipe chargée de la sécurité des applications de l’organisation, le risque de compromission des applications par des attaques de la chaîne d’approvisionnement JavaScript est plus élevé qu’on ne le pense souvent.
Les protocoles de sécurité côté client existants sont trop statiques pour protéger les applications web dynamiques d’aujourd’hui. La politique de sécurité du contenu (Content-Security Policy, CSP) restreint les actions des scripts de manière à pouvoir empêcher les attaques visant la chaîne d’approvisionnement JavaScript. Toutefois, la CSP pourrait trop facilement compromettre le fonctionnement d’un site si un fournisseur tiers mettait à jour un script de façon dynamique sans respecter ses restrictions. Même s’il peut être souhaitable qu’un script cesse de fonctionner lorsqu’il enfreint une politique de sécurité, une telle défaillance en production pourrait avoir de lourdes conséquences pour les clients. (Voir Pourquoi la CSP échoue-t-elle ?) L’intégrité des sous-ressources (Subresource Integrity, SRI), un autre protocole de sécurité web, est encore moins adaptée au contenu dynamique tiers, car elle impose de mettre à jour les balises de script avec une valeur de hachage chaque fois qu’un script change, ce qui est impossible lorsque les modifications sont effectuées sans préavis. En effet, la SRI vise précisément à empêcher le type de mises à jour de scripts dont dépendent la plupart des applications modernes.
En l’absence de contrôles clairement définis permettant d’éliminer les vulnérabilités de la chaîne d’approvisionnement JavaScript, les organisations doivent faire preuve de créativité pour trouver des moyens d’au moins surveiller les risques. Elles peuvent mieux répertorier les scripts présents sur leur site et les classer en fonction du niveau de risque, selon leur source et leur fréquence de modification. Les scripts ajoutés par l’intermédiaire de gestionnaires de balises doivent faire l’objet d’examens réguliers afin d’évaluer les risques. Il existe des outils de surveillance permettant de suivre le comportement des scripts au moyen d’une surveillance synthétique, de CSP en mode rapport ou d’agents JavaScript exécutés dans le navigateur.
Étant donné que les scripts tiers sont modifiés très fréquemment et sans possibilité de faire l’objet d’un examen de sécurité, il est important que les organisations surveillent en permanence leurs applications afin de détecter tout comportement suspect, comme des scripts qui lisent des données sensibles et les exfiltrent vers des domaines non fiables. Sans cette surveillance des attaques visant la chaîne d’approvisionnement JavaScript, aucune forme d’authentification multifacteur (MFA) ne permettra de protéger les utilisateurs.
Reconnaître les utilisateurs légitimes connus et vérifier les comportements suspects
L’objectif de l’authentification multifacteur (MFA) doit être d’améliorer la sécurité, et non d’imposer aux clients des mesures de sécurité de façade inutiles. En adaptant les exigences de connexion au niveau de risque contextuel, les organisations peuvent éviter de pénaliser systématiquement leurs précieux clients réguliers avec des exigences de MFA. Elles peuvent au contraire fluidifier leur parcours grâce à des sessions utilisateur prolongées et leur offrir une expérience personnalisée et sans effort, à l’image de la TSA qui accélère le passage des voyageurs de confiance grâce à TSA PreCheck.
Le risque contextuel comporte de nombreuses dimensions :
- Géographie : d’après les adresses IP, l’utilisateur se connecte-t-il depuis son emplacement habituel ?
- ASN (numéro de système autonome) : d’après l’adresse IP, l’utilisateur se connecte-t-il depuis son fournisseur d’accès à Internet habituel, par exemple celui associé à son domicile, à son lieu de travail ou à son café préféré ?
- Appareil : l’utilisateur se connecte-t-il depuis le même appareil que d’habitude ?
- Heure/jour : l’utilisateur se connecte-t-il à la même heure de la journée ou le même jour de la semaine que d’habitude, par exemple le matin pour effectuer ses opérations bancaires et le soir pour jouer ?
- Comportement : l’utilisateur saisit-il du texte à la même vitesse que d’habitude, déplace-t-il la souris de la même manière et effectue-t-il des copier-coller similaires ?
- Fonctionnalités : l’utilisateur utilise-t-il les mêmes fonctionnalités que d’habitude ?
Si l’utilisateur a fait ses preuves en matière de bon comportement et accède à un site depuis le même endroit, avec le même appareil, au même moment de la journée, en adoptant un comportement similaire et en utilisant les mêmes fonctionnalités que d’habitude, il peut même ne pas être nécessaire de lui demander de se connecter. Il est alors possible de procéder à une authentification silencieuse continue afin de prolonger sa session pour plus de commodité. Si le contexte s’écarte de la normale, ce qui indique un risque accru, vous pouvez ajouter des politiques adaptatives à votre application afin de renforcer progressivement les exigences de sécurité : demander une connexion par mot de passe, exiger une authentification à deux facteurs (2FA), signaler un compte pour vérification, avertir l’utilisateur de la connexion par SMS ou par e-mail, ou verrouiller le compte afin de contraindre l’utilisateur à contacter l’assistance.
Trop souvent, la durée d’une session est fixée indépendamment du risque contextuel, ce qui permet à toute personne disposant d’un jeton de session de continuer à accéder aux données auxquelles l’utilisateur est autorisé à accéder, sans tenir compte du risque de détournement de session. Une approche plus sûre consiste à suivre les principes du Zero Trust : partir du principe qu’une compromission a eu lieu et assurer une surveillance continue. Si le contexte change au cours d’une session, mettez-y fin de manière anticipée et exigez une authentification supplémentaire, dont le niveau de rigueur dépendra de l’ampleur du changement de contexte et de la sensibilité des données.
Conclusion
Pour reprendre le cliché selon lequel la sécurité est un cheminement, l’authentification multifacteur (MFA) a créé plusieurs embranchements, offrant des options supplémentaires qui, lorsqu’elles sont correctement mises en œuvre, renforcent sensiblement la sécurité. Pourtant, aucune forme de MFA, quel que soit le nombre de facteurs, la qualité de sa mise en œuvre ou son coût, ne nous permet de faire l’économie du chemin à parcourir pour atteindre notre destination. Nous verrons certainement encore de nombreuses annonces proclamant la mort des mots de passe et de nouvelles promesses selon lesquelles les nouvelles techniques de MFA rendront enfin l’authentification totalement sûre, mais des attaquants déterminés trouveront toujours des moyens de contourner les nouvelles technologies.
Dans votre démarche visant à mieux sécuriser vos applications critiques, vous pouvez compter sur F5. Les services F5 Distributed Cloud comprennent Bot Defense pour lutter contre les bots, Client-Side Defense pour surveiller les attaques visant la chaîne d’approvisionnement JavaScript et Authentication Intelligence pour reconnaître les utilisateurs récurrents et quantifier les risques contextuels. Avec l’aide de F5, vous pouvez garantir la sécurité de l’authentification multifacteur tout en optimisant l’expérience client. En savoir plus sur les services F5 Distributed Cloud et inscrivez-vous pour échanger avec notre équipe.
PUBLIÉ LE 26 JUIN 2023
