web-dev-qa-db-fra.com

Attaquant contournant 2FA. Comment défendre?

Détaillée dans le dernier NSA est une méthode prétendument utilisée par les services de renseignement russes pour contourner 2FA. (Dans ce cas, Google 2FA avec le deuxième facteur étant un code).

C’est un schéma assez évident et je suis sûr qu’il doit être utilisé régulièrement. Cela semble fonctionner comme ceci:

  1. L'URL est envoyée à la cible via le hameçonnage, l'URL pointe vers un site Web de phishing contrôlé par un attaquant qui ressemble à Google Gmail.
  2. L'utilisateur envoie des informations d'identification au faux Gmail.
  3. (Hypothèse) L'attaquant saisit les informations d'identification dans Gmail légitime et vérifie si un deuxième facteur est requis.
  4. La cible reçoit un deuxième facteur légitime.
  5. Le site Phony Gmail invite la cible pour le deuxième facteur. La cible envoie le deuxième facteur.
  6. L'attaquant entre le deuxième facteur dans le site légitime et s'authentifie avec succès.

La seule façon que je peux voir pour me défendre contre cette attaque est de repérer le site bidon comme étant une arnaque ou de bloquer le site de phishing via FW, des menaces, etc.

Existe-t-il un autre moyen pratique de se défendre contre un tel schéma?

enter image description here

97
TheJulyPlot

Tous les schémas d'authentification à deux facteurs ne sont pas identiques. Certaines formes de 2FA, comme l'envoi d'un SMS, ne sont pas sécurisées contre cette attaque. D'autres formes de 2FA, telles que FIDO U2F, sont protégées contre cette attaque - elles ont été délibérément conçues avec ce type d'attaque à l'esprit.

FIDO U2F offre deux défenses contre l'attaque de l'homme du milieu:

  1. Enregistrement - L'utilisateur enregistre son appareil U2F auprès d'un site Web particulier ("Origine"), tel que google.com. Ensuite, le périphérique U2F ne répondra qu'aux demandes d'authentification d'une origine enregistrée; si l'utilisateur est amené à visiter goog1e.com (un site de phishing), l'U2F ne répondra pas à la demande, car il peut voir qu'il provient d'un site avec lequel il n'a pas été enregistré auparavant.

  2. ID de canal et liaison d'origine - U2F utilise l'extension TLS Channel ID pour empêcher les attaques man-in-the-middle et permettre au périphérique U2F de vérifier qu'il parle au même site Web que l'utilisateur visite dans son navigateur Web. De plus, le périphérique U2F sait à quelle origine il pense parler et sa réponse d'authentification signée inclut une signature sur l'origine à laquelle il pense parler. Ceci est vérifié par le serveur. Donc, si l'utilisateur est sur goog1e.com et cette page demande une authentification U2F, la réponse du périphérique U2F indique que sa réponse n'est valable que pour la communication avec goog1e.com - si l'attaquant tente de relayer cette réponse à google.com, Google peut remarquer que quelque chose s'est mal passé, car le mauvais nom de domaine est présent dans les données signées.

Ces deux fonctionnalités impliquent l'intégration entre le dispositif d'authentification à deux facteurs U2F et le navigateur de l'utilisateur. Cette intégration permet à l'appareil de savoir quel nom de domaine (origine) le navigateur visite, et cela permet à l'appareil de détecter ou d'empêcher le phishing et les attaques de l'homme du milieu.

Pour en savoir plus sur ce mécanisme:

64
D.W.

Hors bande 2FA est la bonne approche. Cela signifie que vous avez un deuxième facteur qui ne peut pas être hameçonné, comme un certificat client ou FIDO U2F. Les codes ou les modèles 2FA basés sur SMS sont les options 2FA les plus faibles car ils sont intrabande et, comme vous l'avez décrit, peuvent être hameçonnés tout comme les informations d'identification.

Ils sont pratiques car ils peuvent être utilisés par presque n'importe qui, et ils sont certainement meilleurs que rien, mais la sécurité qu'ils fournissent ne doit jamais être confondue avec la sécurité fournie par 2FA hors bande.

47
Xander

C'est l'une des situations qu'un gestionnaire de mots de passe (dans le navigateur) vous aidera.

Parce qu'un gestionnaire de mots de passe stocke les mots de passe par leur véritable URL, il ne remplira pas automatiquement la page de l'attaquant, ni ne donnera même de suggestions. En plus de ne pas divulguer le jeton de mot de passe en 2 étapes, il protège également le mot de passe contre toute fuite.

Cette protection fonctionne même mieux si l'utilisateur ne connaît pas son propre mot de passe et ne peut interagir via le gestionnaire de mots de passe que pour saisir le mot de passe.

14
Ferrybig

L'essentiel est que si un attaquant peut vous tromper en fournissant toutes les informations d'identification, alors terminez. Peu importe le nombre de facteurs impliqués. Il y a des choses qui peuvent aider à limiter l'exposition, comme des délais très courts pour les jetons qui rendent difficile pour un attaquant d'obtenir et de réutiliser le jeton dans le délai imparti. Cependant, les délais d'attente ont une protection limitée, car il peut être difficile de trouver le bon équilibre, en particulier avec la `` fausse '' 2FA, qui est devenue si courante et où vous devez autoriser des retards de choses comme SMS livraison pour éviter problèmes d'utilisation (j'ai vu cela en utilisant des services internationaux où la SMS livraison peut être plus lente et le jeton expire avant que vous puissiez le recevoir et l'entrer dans le navigateur).

Beaucoup de systèmes appelés 2FA ne sont pas vraiment du tout 2FA - ils sont en fait 2SA (authentification en deux étapes). Dans le vrai 2FA, les facteurs sont quelque chose que vous connaissez (mot de passe) et quelque chose que vous avez (jeton, souvent basé sur le matériel). Les schémas qui impliquent un code envoyé via SMS ne sont PAS 2FA, ils sont 2SA - vous n'avez pas réellement le jeton - il vous est envoyé. Comme c'est quelque chose qui vous est envoyé, il existe de nouveaux vecteurs de menace, comme la redirection du numéro de mobile, etc. C'est une des raisons pour lesquelles le NIST a déprécié SMS en fonction des jetons comme processus d'authentification fiable.

En ce qui concerne la question spécifique des PO, la seule protection fiable est de pouvoir détecter la page de phishing. Google a publié une extension chrome pour essayer de vous aider. L'extension vous avertira si elle détecte que vous fournissez vos informations d'identification Google à une page qui n'est pas une page Google.

Le gros problème est que nous avons passé des années à enseigner aux gens à rechercher le "cadenas vert" dans les URL pour garantir que la page est légitime. Malheureusement, des efforts comme Lets Encrypt ont désormais facilité l'obtention de certificats vérifiés par domaine, de sorte que la plupart de ces pages de phishing auront désormais le cadenas vert. Cela ne veut pas dire que le problème est dû à Lets Encrypt - c'est une très bonne initiative. Le problème est dû en partie aux faiblesses de l'infrastructure PKI, mais principalement à la sensibilisation et à la compréhension des utilisateurs. En général, les gens ne comprennent pas l'ICP et comment vérifier qu'un certificat est légitime pour le site et que le site est le site qu'ils pensent qu'il est. Pour aggraver les choses, même si vous comprenez, les étapes/le temps nécessaire pour effectuer cette vérification sont souvent gênants ou tout simplement trop difficiles, donc les gens ne le font pas. La situation est aggravée par les mauvais acteurs du couperet qui trouvent des moyens de rendre les choses légitimes - par exemple, un exploit récent utilise des faiblesses dans la façon dont les navigateurs affichent les URL et les caractères Unicode pour générer une URL qui s'affiche dans la barre d'adresse de manière à coup d'œil semble correct, mais les caractères réels dans l'URL spécifient un site de phishing. L'utilisateur regarde la barre d'adresse, voit un cadenas vert et jette un coup d'œil à l'URL qui semble correcte (votre cerveau remplira même les choses pour améliorer la correspondance!) Et accepte la page comme légitime. Vous ne remarquez pas d'espace supplémentaire entre les caractères ou des formes de caractères d'aspect un peu étrange.

Alors, comment pouvons-nous nous protéger contre cela. Malheureusement, il n'y a pas de "faites-le et vous serez en sécurité". Certains gestionnaires de mots de passe peuvent vous aider car ils ne fourniront les informations d'identification que si l'URL est correcte, n'utilisez jamais d'URL dans les e-mails - saisissez-le toujours vous-même ou utilisez un signet que vous avez créé. supposez qu'à un moment donné, vous serez dupé et adopter des pratiques qui limiteront les dommages quand cela se produira, c'est-à-dire des mots de passe différents pour chaque site, utilisez du matériel basé sur 2FA lorsque cela est possible, cliquez sur le bouton Détails du certificat pour les sites à "valeur élevée" et regardez ce que il dit et à qui le certificat est enregistré, assurez-vous que votre système dispose de toutes les mises à jour et que vous utilisez la version la plus récente du navigateur, etc., soyez méfiant par nature et rappelez-vous que la grande menace est l'ingénierie sociale, alors méfiez-vous de tout ce qui fait pression vous prendre des mesures basées sur la peur, la culpabilité, les récompenses ou les punitions. Ce sont des motivateurs très efficaces et les acteurs de la menace comptent sur eux. Les campagnes de phishing sont devenues beaucoup plus sophistiquées dans leur mise en œuvre, mais elles reposent toujours sur la manipulation émotionnelle - une promesse de quelque chose de merveilleux ou une menace de quelque chose de terrible.

Enfin, si vous êtes tenté de commenter à cause de ma mention des gestionnaires de mots de passe, ne le faites pas. Oui, il y a des risques avec les gestionnaires de mots de passe et oui, certains sont pires que d'autres. Cependant, en général, un bon gestionnaire de mots de passe utilisé correctement fournira généralement plus de protection à l'utilisateur moyen que son processus de gestion de mot de passe actuel. Oui, si le gestionnaire de mots de passe est compromis, alors tous vos mots de passe sont compromis. Cependant, beaucoup de gens trouvent la gestion des mots de passe trop difficile et utilisent de toute façon le même mot de passe, souvent faible. Une fois qu'un site est compromis, tous leurs sites sont compromis. De toute évidence, si vous comprenez la technologie et que vous comprenez les mots de passe, le hachage, etc., vous pouvez probablement trouver une solution plus sécurisée, mais vous n'êtes pas le public des gestionnaires de mots de passe. Réfléchissez à la façon dont vos parents ou grands-parents gèrent la gestion des mots de passe et à quel point ils détectent les sites de phishing ou comprennent les certificats, puis réfléchissez à la facilité avec laquelle ils peuvent gérer votre gestion de mot de passe basée sur GPG personnalisée sur cfile ou la synchronisation.

EDIT: En relisant ma réponse, je ne suis pas sûr d'avoir suffisamment insisté sur le fait que le vrai 2FA est de plus en plus disponible et que de nombreux fournisseurs qui prennent actuellement en charge le 2SA moins sécurisé avec SMS prennent également en charge bien 2FA plus sécurisé, dans de nombreux cas en utilisant U2F (comme mentionné dans d'autres réponses). Les "clés" matérielles de Yubico ou duo (et autres) sont bon marché et faciles à configurer/utiliser. Ma seule recommandation est que si vous décidez d'utiliser le matériel itinéraire de jeton/clé, assurez-vous d'obtenir deux clés, enregistrez-les toutes les deux et rangez-en une dans un endroit sûr. J'en ai une que j'emporte avec moi et une que j'ai dans un coffre-fort à la maison. Récupération d'une perte/endommagement la clé n'est pas aussi simple que de récupérer à partir d'un mot de passe oublié, vous devez donc éviter autant que possible de vous retrouver dans cette situation.

9
Tim X

Comme indiqué dans les commentaires, ce n'est pas un bon moyen de faire les choses.

Inversez complètement le test.

Dans ce cas, vous êtes confiant que le téléphone mobile de l'utilisateur est "sûr", utilisez-le donc pour les authentifier. Lorsque l'utilisateur tente de se connecter au site Web, vous lui demandez par téléphone d'accepter cette connexion (via la notification Push, directement dans l'application, et non par SMS ou e-mail, car ils peuvent facilement être violés). 'Vous semblez vous connecter depuis IP x.y.z/foobar de géolocalisation - souhaitez-vous continuer?'

Vous pouvez également leur demander de fournir un certificat qui existe sur le téléphone, mais pas sur l'ordinateur. De cette façon, l'attaquant ne peut pas accéder à ces informations simplement en réussissant à rediriger l'utilisateur vers le mauvais site.

2

Cette attaque est connue sous le nom de phishing. Toute la sécurité du monde ne servira à rien si vous pouvez tromper un utilisateur final en lui remettant volontairement les informations d'identification.

Les mesures d'atténuation contre le phishing incluent:

  1. Les serveurs de messagerie peuvent nettoyer les e-mails à la recherche de liens vers des sites de phishing connus.

  2. Les clients de messagerie désactivent souvent les liens par défaut et fournissent un avertissement lors de l'activation.

  3. Les utilisateurs doivent éviter de cliquer sur les liens trouvés dans les e-mails. Il est souvent plus sûr de taper l'adresse.

  4. Les utilisateurs ne doivent jamais accéder à un site sensible (par exemple un site bancaire) via un lien depuis n'importe où. Utilisez un signet ou saisissez-le.

  5. Contrairement à certaines idées reçues, les utilisateurs devraient utiliser des gestionnaires de mots de passe pour les sites sensibles. Un gestionnaire de mots de passe ne vous permettra pas de fournir un mot de passe au mauvais site.

1
John Wu

En plus des autres réponses, ce type d'attaque peut être entravé si le site s'authentifie auprès de l'utilisateur afin que l'utilisateur ait l'habitude d'obtenir un signal plus fort qu'il saisit ses informations d'identification sur une page authentique, même s'il n'utilise pas de gestionnaire de mots de passe ou ne fait pas très attention à l'URL. Cela se fait généralement avec une image de sécurité sélectionnée par l'utilisateur (à partir d'un grand ensemble d'options) plus une chaîne de texte définie par l'utilisateur. Il est présenté après la saisie du nom d'utilisateur mais avant le mot de passe (qui se répartit sur deux pages). Ce n'est pas complètement infaillible (vous devez empêcher les attaquants d'obtenir l'image/la chaîne par une simple demande groupée), mais il est conçu pour lutter contre le phishing et rend le phishing réussi un peu plus difficile à réaliser. Si les attaquants tentent de récupérer des images/chaînes de sécurité, ces demandes peuvent également informer le fournisseur de services authentique que quelque chose ne va pas et fournir des informations médico-légales sur la provenance de ces demandes.

Que cela fonctionne dans la pratique ou non est une question différente, et les preuves d'un article de 2007 suggèrent pas , du moins pour la plupart des utilisateurs.

0
WBT