C’est une vérité incontestable : l’authentification multifacteur (MFA) renforce la sécurité, dans tous les cas. Pourtant, cette technologie reste complexe et exige souvent de faire un compromis entre sécurité et facilité d’utilisation. Les attaquants le savent et ils font le pari que les défenseurs n’appliqueront pas la MFA de façon suffisamment étendue, ou qu’ils commettront des erreurs ce faisant.
On observe depuis quelque temps une recrudescence des attaques de contournement de la MFA (MFA bypass), comme le phishing ou l’accoutumance à la MFA, à mesure que les attaquants apprennent à mieux exploiter les vulnérabilités.
Certaines des compromissions de MFA les plus médiatisées sont notamment passées par des attaques par force brute. Commençons par expliquer en quoi consiste précisément une attaque par force brute, puis voyons comment nous pouvons nous en protéger.
Le véritable coupable : la complaisance vis-à-vis de la MFA
La plus grande faiblesse de la MFA ne réside pas dans la robustesse de la technologie employée, mais plutôt dans sa mise en œuvre. Bien souvent, la MFA n’est pas implémentée de façon uniforme à tous les niveaux (c.-à-d. pour les utilisateurs). Certaines équipes exigent la MFA à chaque connexion, mais ce n’est pas le cas pour d’autres. Il peut même arriver que la MFA soit totalement désactivée pour certains profils. On pense souvent qu’il suffit de protéger les points d’entrée les plus importants par la MFA pour réduire la surface d’attaque de l’entreprise.
Malheureusement, et pardon si cela fait mal, mais c’est une grossière erreur.
Les attaquants sont capables de sonder de façon systémique votre environnement pour y déceler un compte vulnérable. La sécurité de votre organisation ne sera donc jamais supérieure à celle de son identifiant le plus faible.
Comment fonctionnent les attaques par force brute sur la MFA ?
Un autre problème réside dans la conception même de la MFA. Ce n’est pas un secret, certaines méthodes de MFA sont plus sûres que d’autres. Un exemple bien connu : les codes à usage uniques envoyés par SMS ne sont pas sécurisés. Toutefois, même les méthodes de MFA relativement sûres peuvent s’avérer vulnérables.
Les attaques par force brute s’en prennent à ces méthodes de MFA relativement sûres, qui présentent une faiblesse au niveau de leur implémentation.
En quoi consiste une attaque par force brute ?
Concrètement, une attaque par force brute est un jeu de devinettes élaboré. Elle utilise la puissance de calcul des ordinateurs pour tester un grand nombre de possibilités jusqu’à trouver la bonne combinaison. Pour améliorer les probabilités, les attaquants utilisent généralement un dictionnaire qui leur permet de tester en priorité les combinaisons les plus courantes de lettres, de mots et de chiffres (« iloveyou123 » par exemple). Les pirates ont également recours à une technique nommée énumération basée sur le temps, qui exploite le fait que le traitement des identifiants valides prend plus longtemps que celle d’identifiants non valides.
En quoi les attaques par force brute menacent-elles la MFA ?
Lorsque la MFA est implémentée soigneusement, les attaques par force brute ne posent pas de réelle menace. Une MFA qui requiert l’utilisation de mots de passe à usage unique à durée limitée (TOTP) plutôt que des données statiques (comme un identifiant de connexion) change en théorie à chaque tentative de connexion. Malheureusement, certaines implémentations sont moins strictes vis-à-vis de ces paramètres.
Si l’on part du principe qu’un attaquant possède déjà des identifiants fonctionnels (ou qu’il a récupéré le bon mot de passe en employant l’une des méthodes ci-dessus), le problème qui lui reste à résoudre consiste à trouver une façon de contourner l’invite de MFA. La tâche peut sembler insurmontable, mais n’oublions pas que les invites de MFA se composent généralement de courtes séquences numériques. S’il s’agit d’un nombre à quatre chiffres (de 1 à 9 + 0), valeur par défaut loin d’être rare, l’attaquant ne doit essayer que 10 000 possibilités.
Chaque chiffre supplémentaire augmente cette valeur d’une puissance de dix. Ainsi, un code à six chiffres présente un million de résultats possibles. Deviner le bon code ne devient problématique que si la plateforme de MFA limite la fréquence des tentatives de connexion erronées, ce qui est pratiquement toujours le cas. Cette option empêche les attaquants de tenter de deviner le bon code de MFA sans être interrompus. Cependant, si le compte ne se verrouille pas automatiquement après un certain nombre de tentatives de connexion erronées, l’attaquant peut se contenter de lancer une nouvelle session de MFA pour recommencer.
Deux issues sont alors possibles.
Dans le meilleur scénario pour l’attaquant, le code de MFA n’est pas réinitialisé, ce qui signifie que le pirate peut poursuivre ses tentatives en éliminant les codes déjà essayés.
Cependant, même si le code a été réinitialisé, la partie n’est pas terminée puisque chaque session de MFA offre généralement trois essais, voire plus. Dans le cas d’un code de MFA à quatre chiffres, l’attaquant a donc encore au moins deux chances sur 10 000 de deviner la bonne combinaison, et même plus s’il concentre ses efforts sur les séquences les plus fréquentes (par ex., les années commençant par 19xx ou 20xx).
Le principal mécanisme de défense contre cette méthode consiste à verrouiller les comptes qui subissent un trop grand nombre de tentatives de connexion erronées. Pourtant, les organisations hésitent parfois à appliquer ce paramètre, car il peut conduire à une situation de déni de service, où de nombreux comptes sont bloqués : l’entreprise se retrouve paralysée, et les administrateurs débordés de travail pour enquêter et restaurer les accès.
Protégez votre solution de MFA des attaques par force brute
Même si l’attaque décrite ci-dessus ne fonctionne que rarement et uniquement pour certaines configurations spécifiques, elle rappelle qu’il ne faut jamais sous-estimer l’ingéniosité des attaquants qui cherchent à contourner la MFA. L’essentiel est de choisir une solution de MFA comme UserLock, qui propose un large éventail de contrôles.
Tout d’abord, les défenseurs doivent s’assurer que leur plateforme de MFA propose une granularité au niveau applicatif. Les équipes IT sont ainsi en mesure de protéger différents types d’utilisateurs contre une multitude de techniques de contournement possibles. Pour améliorer la flexibilité dont disposent les équipes IT pour appliquer la MFA, il est également nécessaire de pouvoir proposer différentes méthodes de MFA, notamment les jetons physiques, les notifications push ou les codes fournis par des applications d’authentification.
Comme nous l’avons mentionné plus tôt, votre solution de MFA doit également permettre de restreindre le nombre de tentatives de MFA erronées par utilisateur ou par intervalle de temps, en consignant ces événements (les échecs de connexion et les demandes de MFA répétées peuvent être des indicateurs précoces qu’un attaquant cherche à utiliser des identifiants compromis). Simultanément, chaque tentative de connexion doit générer un nouveau code de MFA afin de limiter les possibilités des attaques par force brute.
La question de savoir s’il faut verrouiller un compte après un nombre prédéfini de tentatives de connexion reste complexe. Une plateforme flexible permettra de faire varier ces paramètres en fonction du statut de sécurité du compte lui-même, par exemple en réduisant le nombre de tentatives possibles pour les utilisateurs à priorité élevée.
Malgré la montée en puissance des attaques de contournement de la MFA, une solution de MFA bien implémentée offre encore des résultats satisfaisants. C’est pourquoi la MFA doit être activée pour tous les propriétaires de comptes, et pas seulement dans certains cas spéciaux. L’essentiel étant que la solution soit implémentée avec soin, en prêtant attention aux minuscules fissures par lesquelles les attaquants pourraient se faufiler pour échapper au système.