web-dev-qa-db-fra.com

Puis-je détecter une attaque MITM?

Sur la base de cette question ici: Les attaques "homme au milieu" sont-elles extrêmement rares?

Est-il possible de détecter des attaques d'homme au milieu, et si oui, comment procéder?

De plus, que se passe-t-il si l'attaque a lieu via une connexion au réseau local, comme des lignes téléphoniques? Existe-t-il un moyen de le détecter?

41
TigerCoding

Pendant la navigation, vous pouvez vérifier à chaque fois si le certificat qui vous est présenté par le site Web est émis par une autorité de certification légitime ou son faux certificat émis par une autorité de certification à laquelle votre navigateur fait confiance. Évidemment, il n'est pas possible de le faire manuellement. Il existe donc des outils qui le font pour vous.

Cert Patrol et Perspective sont des plugins de navigateur qui font essentiellement cela. Ils notent quels noms de domaine sont des problèmes par lesquels les autorités de certification (par exemple, Google => Thwate, etc.) et de nombreux autres paramètres liés aux certificats et alarmeront l'utilisateur si l'une ou l'autre de l'autorité de certification change OR = si la clé publique du certificat change.

Ce ne sont évidemment pas des détections de MITM, ce sont plutôt des schémas de prévention en détectant que quelque chose de bizarre concerne le certificat présenté par le site.

De plus, lors de la connexion à un serveur SSH, il demande l'empreinte du serveur. Je serais alarmé si mon client ssh me présentait une nouvelle empreinte digitale après m'être connecté à un serveur. La clé d'hôte du serveur est enregistrée dans le fichier known_hosts après la première connexion, la seule raison pour laquelle le client me demande de valider à nouveau l'empreinte est parce que le serveur SSH a redémarré/mis à jour OR je suis MITMed.

La paranoïa absolue vous oblige à appeler l'administrateur du système par téléphone et à confirmer l'empreinte digitale en en lui faisant prononcer la touche.

27
CodeExpress

Pouvez-vous détecter une attaque MitM? Dépend du type de système attaqué et du type d'attaque.

Supposons qu'un attaquant sophistiqué ait pris le contrôle d'un routeur en amont entre vous et Internet en général et redirige votre trafic vers de faux serveurs sous leur contrôle pour un MitM (par exemple, capture les demandes DNS et donne des réponses bidon à leurs serveurs, ou utilise la traduction d'adresses réseau (NAT)).

Supposons maintenant que vous allez dans http://www.facebook.com Et que vous soyez dirigé vers une page de connexion http sous le contrôle des attaquants. De manière prévisible, l'attaquant pourrait lancer une page qui imite la page de connexion de Facebook, capture vos informations d'authentification et utilise ces informations pour se connecter au vrai Facebook, puis dirige le contenu du vrai Facebook vers votre navigateur. Cela pourrait être fait presque sans aucune exception, à l'exception de l'action de publication de formulaire masquée qui n'est pas https sur la page de connexion initiale. Disons plutôt que vos paramètres doivent toujours utiliser https pour facebook, et vous êtes allé à https://www.facebook.com. L'attaque MitM enverrait des drapeaux rouges au navigateur, car l'attaquant n'aura pas de certificat de confiance pour facebook.com. Certes, de nombreux utilisateurs ignoreraient ces avertissements du navigateur (car ils se produisent parfois pour des raisons bénignes comme une clé expirée ou un site intranet n'utilisant pas de clé auto-signée). Tout cela supposait que l'attaquant n'a pas réussi à pirater Facebook et à obtenir que leurs certificats privés OR compromettent une autorité de certification (CA) pour pouvoir générer des certificats bidons approuvés par la plupart des navigateurs Web OR auparavant. votre navigateur Web afin qu'il approuve/ne prévienne pas les certificats non valides.

En général, avec http, il est presque impossible de détecter les attaques MitM, mais avec https votre navigateur devrait automatiquement détecter et vous avertir, à moins que l'attaquant n'ait déjà compromis votre système ou le système de l'autre fin (y compris l'AC en tant que système à l'autre extrémité).

Exemple suivant: ssh. Encore une fois, utilise des paires de clés de serveur privé-public pour authentifier les ordinateurs. Donc, si je ssh fréquemment dans ma machine de travail depuis mon ordinateur personnel, mon ordinateur personnel a enregistré et approuvé la clé publique de ma machine de travail (qui est conservée dans un fichier ~/.ssh/known_hosts). Si une attaque MitM était tentée lorsque je me connectais à partir de ma machine domestique, ssh remarquerait immédiatement que la machine MitM n'avait pas la clé privée de ma machine de travail et ne me laisserait pas me connecter (sauf si j'ai spécifiquement supprimé le clé publique de ma liste known_hosts; ce que je ne ferais que si je disais que je suis passé à une nouvelle machine ou que j'ai changé la clé du serveur). Encore une fois, les attaques MitM sur ssh sont très faciles à détecter à moins que l'attaquant soit déjà entré par effraction dans ma machine de travail en tant que root et copié la clé privée sur son hôte OR a déjà pénétré par effraction sur ma machine domestique et modifié la clé publique de ma machine de travail enregistrée dans ~/.ssh/known_hosts OR c'est ma première connexion au serveur (et je n'ai pas le serveur dans mon known_hosts ou je ne reconnais pas son empreinte digitale d'hôte) .

11
dr jimbob

La détection du schéma MitM est l'objectif de base de tout protocole d'authentification. Pour que cela fonctionne, vous avez besoin de:

  • Un moyen sûr d'obtenir les informations d'authentification (certificat serveur, clé partagée, ...)
  • Vérifiez l'authenticité du message échangé avec le serveur.

Le serveur doit faire de même avec le client. Avec un schéma symétrique, cela devrait être fait facilement. Lorsque vous utilisez des protocoles asymétriques comme SSL, vous devez:

  • Obtenez le certificat du serveur et soyez capable de l'authentifier correctement
  • Communiquez avec le serveur à l'aide de sa clé publique intégrée dans ce certificat, afin que personne ne puisse décrypter le message
  • Le serveur et vous serez d'accord sur un secret unique partagé pour utiliser un cryptage symétrique pour les connexions futures.
4
M'vy

Non, vous ne pouvez pas, il existe de nombreuses façons de le faire.

De nombreuses réponses ici vous diront comment vérifier les attaques MITM spécifiques, ce qui je crois ce n'est pas le but.

Un MITM ne signifie pas que l'attaquant essaiera de déchiffrer votre flux de données et vous présentera une clé/empreinte digitale différente. Il n'est qu'un nœud entre vous et votre hôte de destination.

Il existe de nombreuses façons d'entrer dans une situation MITM, chacune peut être évitée par une administration réseau appropriée, tous les nœuds entre vous et votre hôte de destination doivent être sécurisés. Chaque réseau doit être conçu pour résister à tous les MITM possibles, y compris les protocoles de routage abusifs, l'usurpation ARP, l'usurpation DNS, l'installation simple d'un pont physique, etc.

Afin d'assurer la sécurité, être pris dans une attaque MITM ne devrait pas avoir d'importance, vous ne pouvez pas compter sur la confiance et la chance et vous ne pouvez pas contrôler Internet, vous devez supposer que vous êtes dans un environnement hostile à moins qu'il ne soit prouvé en toute sécurité par un audit approprié. L'utilisation de protocoles sécurisés comme TLS, SSH et potentiellement IPSec peut rendre votre réseau plus sûr, authentifier et crypter vos données. Cependant, il est toujours vulnérable à un moment donné et la plupart du temps, il provient d'une mauvaise configuration ou d'une faille dans le protocole/la mise en œuvre elle-même.

En bref, ne détectez pas le MITM, mais à la place:

  • Sécurisez votre LAN ou demandez à quelqu'un de le faire
  • Configurer des protocoles de tunneling sécurisés pour accéder à des réseaux et systèmes distants sécurisés

La détection de MITM est possible mais elle est liée à ce que vous utilisez, à la sécurité des ports pour Cisco IOS ou simplement en utilisant SNORT sur n'importe quelle boîte Unix. Vous ne pouvez pas obtenir une liste exhaustive, elle correspond simplement à une donnée En outre, les attaquants sont toujours assez créatifs pour trouver quelque chose auquel vous n'avez pas pensé, alors référez-vous à mes 2 conseils ci-dessus.

3
Aki

Vous pouvez vérifier votre table ARP. Ou vous pouvez consulter le bon site Web MITM TUTORIALs [ https://toschprod.wordpress.com/2012/03/04/mitm-8-countermeasures/] qui explique en profondeur ce qu'est un homme au milieu et comment les éviter. Je suppose que la lecture de son tutoriel vous donnera une excellente idée de ce qui se passe et comment l'éviter, ainsi que la façon de les détecter.

0
noktec