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?
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.
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) .
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:
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:
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:
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.
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.