Une attaque de l'homme du milieu (MITM) est une attaque dans laquelle un adversaire se positionne entre deux parties communicantes pour intercepter et éventuellement modifier les données qui passent entre elles. Un proxy relaye le trafic entre un client et un serveur par conception, donc la fiabilité de l'opérateur du proxy et si le trafic est chiffré décident combien de ce trafic peut être lu.
OWASP appelle également cela une attaque de manipulateur au milieu. L'attaquant divise une connexion en deux, une vers le client et une vers le serveur, et peut alors lire, insérer et modifier des données. Sur HTTP en clair, les en-têtes circulent en texte clair, donc un cookie de session peut être lu à partir d'eux.
Risque MITM dans le contexte des proxies
- HTTP en clair : Tout ce qui se trouve entre vous et le site, y compris un proxy, peut voir le contenu de la requête et de la réponse.
- HTTPS via CONNECT : Le client demande au proxy d'ouvrir un tunnel, et le proxy transfère aveuglément les données dans les deux sens. La session TLS s'exécute de bout en bout entre le client et le site.
- Interception TLS : Des outils tels que mitmproxy décryptent HTTPS en créant un certificat pour chaque site, signé par leur propre autorité de certification. Les clients acceptent ceux-ci uniquement s'ils font confiance à cette autorité.
- Avertissements : Les navigateurs avertissent lorsqu'un certificat n'est pas de confiance ou invalide. OWASP note que les utilisateurs peuvent ignorer ces avertissements.
Réduction du risque MITM
- Utilisez HTTPS : Envoyez le trafic de scraping et de connexion via HTTPS, pas en HTTP clair.
- Maintenez les vérifications de certificat activées : Ne désactivez pas la vérification TLS dans le code de scraping, et n'installez pas de certificats racines que vous ne contrôlez pas.
- HSTS : L'en-tête Strict-Transport-Security oblige les navigateurs à mettre à niveau un site vers HTTPS et bloque le passage en cliquant sur les erreurs de certificat. Cela ne protège pas la première visite à moins que le site ne soit préchargé.
- Pinning : Les applications qui pincent les certificats rejettent les certificats d'interception comme ceux de mitmproxy.
Techniques MITM courantes
- Wi-Fi malveillant : L'attaquant met en place un point d'accès sans fil dans un lieu public, comme un café ou un aéroport. Quiconque se connecte peut voir et modifier tout le trafic du navigateur.
- Spoofing ARP : L'attaquant trompe la victime en lui faisant accepter l'adresse MAC de l'attaquant comme la véritable adresse du routeur.
- Spoofing DNS : L'attaquant redirige la victime vers un faux site web.
- Spoofing d'adresse IP : L'attaquant fait croire à la victime qu'elle parle à un serveur légitime.