De nouveaux outils pour détecter l'interception HTTPS



À mesure que l'utilisation du HTTPS se développe, le désir des personnes non autorisées d'infiltrer le trafic protégé augmente. Une étude réalisée en 2017 par The Security Impact of HTTPS Interception a révélé qu'il s'agissait d'une pratique de plus en plus courante. L'analyse du trafic sur les serveurs de mise à jour de Firefox a montré que dans certains pays, le pourcentage d'introduction d'agents tiers dans HTTPS atteint 15%.

Depuis l'étude, il est peu probable que la situation s'améliore. Désormais, même le dernier modèle de casque sans fil Sennheiser nécessite l'installation d'un certificat racine (avec des paramètres non sécurisés) dans le système .

Le plus souvent, un antivirus ou un boîtier de médiation d'entreprise compromet la protection (voir la liste ci-dessous), mais cela peut être pire. Dans tous les cas, il est préférable de savoir avec certitude quand votre canal HTTPS n'est pas sécurisé de bout en bout. Même lorsqu'un système tiers intercepte du trafic bien intentionné, il ne prend souvent pas en charge les chiffrements modernes ou ne valide pas les certificats, réduisant ainsi la protection globale de la connexion. Mais ils peuvent intercepter le trafic SSL non seulement à des fins utiles, mais également à des fins malveillantes: par exemple, pour la censure au niveau de l'État.

Les programmes de surveillance HTTPS agissent comme des proxys transparents qui interrompent une session TLS, inspectent le contenu, puis établissent une nouvelle session avec le serveur de destination. Ils utilisent des versions différentes des bibliothèques TLS que les navigateurs populaires, ce qui leur permet d'être détectés côté serveur par l'inadéquation entre l'agent utilisateur HTTP et le client TLS Hello du navigateur réel et du proxy.

Pour commencer, voici quelques informations pratiques tirées d'une étude de 2017 qui comprenait Mozilla, Google, GlobalSign, ainsi que des chercheurs universitaires de l'Université du Michigan, de l'Université de l'Illinois à Urban-Champaign et de l'Université de Californie à Berkeley.

Le préjudice pratique de l'interception HTTPS est la dégradation du chiffrement et d'autres vulnérabilités de proxy transparent. Les auteurs de l'étude ont évalué un certain nombre de boîtiers intermédiaires populaires par ces paramètres. Comme vous pouvez le voir, en 2017, près de la moitié d'entre eux ne prenaient pas en charge les suites de chiffrement modernes et cinq vulnérabilités graves enregistrées. Seul 1 sur 12 a pu refléter complètement toutes les suites de chiffrement personnalisées.



L'activité antivirus sur les ordinateurs des utilisateurs est également généralement détectée côté serveur. L'étude a montré que seuls deux antivirus reflètent complètement les chiffres des utilisateurs, dans d'autres cas, le cryptage se dégrade.



Protégeant contre certaines menaces, les antivirus réduisent le chiffrement et ajoutent leurs propres vulnérabilités. En général, l'installation d'un antivirus tiers dégrade souvent de manière significative la sécurité globale du système. Certains experts conseillent aux utilisateurs de toujours supprimer les antivirus tiers du système , car leur code invasif et mal écrit rend difficile pour les navigateurs et autres programmes d'assurer leur propre sécurité.

Sur le chemin entre le client et le serveur, d'autres proxys transparents peuvent également fonctionner. Pour mieux détecter ces agents, Cloudflare a récemment publié deux nouveaux outils:

  1. MITMEngine , une bibliothèque gratuite pour détecter l'interception HTTPS.
  2. MALCOLM , un tableau de bord pour afficher des métriques sur l'interception HTTPS sur le réseau Cloudflare.

L'intérêt principal est la bibliothèque MITMEngine. Les développeurs écrivent qu'ils ont pris comme exemple l'outil de détection Caddy Server MITM . Il prend en charge un ensemble de navigateurs populaires et reconnaît l'interception HTTPS par les empreintes digitales spécifiques des messages TLS Client Hello et User Agent, comme décrit ci-dessus.

Les développeurs ont essayé de fournir une extensibilité en simplifiant l'ajout futur de nouvelles versions de navigateurs au détecteur, ainsi qu'en améliorant les performances et en étendant les fonctionnalités du détecteur par rapport à la détection Caddy Server MITM. Il analyse les paramètres suivants du client TLS Hello, en comparant les données réelles avec les empreintes digitales des navigateurs connus:

  • Version TLS
  • suites de chiffrement;
  • extensions et leurs significations;
  • groupes pris en charge de courbes elliptiques;
  • formats de points d'une courbe elliptique.

En fait, MITMEngine effectue des empreintes digitales partielles de l'utilisateur sans le désanonymiser, mais avec une détermination fiable que la connexion est établie par un navigateur réel, et non par un intermédiaire.

Exemple de travail


Supposons que MITMEngine voit l'agent utilisateur suivant d'un utilisateur:

Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
Chrome/47.0.2526.111 Safari/537.36


Cet agent utilisateur correspond à Chrome 47 sous Windows 7. Il est accompagné d'un message Bonjour client TLS, qui indique les suites de chiffrement suivantes, en hexadécimal:

0000 c0 2b c0 2f 00 9e c0 0a c0 14 00 39 c0 09 c0 13 .+./.... ...9....
0010 00 33 00 9c 00 35 00 2f 00 0a .3...5./ ..


Ce message correspond aux suites de chiffrement suivantes:

TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 (0xc02b)
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (0xc02f)
TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 (0x009e)
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA (0xc00a)
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA (0xc014)
TLS_DHE_RSA_WITH_AES_256_CBC_SHA (0x0039)
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA (0xc009)
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA (0xc013)
TLS_DHE_RSA_WITH_AES_128_CBC_SHA (0x0033)
TLS_RSA_WITH_AES_128_GCM_SHA256 (0x009c)
TLS_RSA_WITH_AES_256_CBC_SHA (0x0035)
TLS_RSA_WITH_AES_128_CBC_SHA (0x002f)
TLS_RSA_WITH_3DES_EDE_CBC_SHA (0x000a)


Les suites de chiffrement par défaut pour Chrome 47 sont les suivantes:

0000 c0 2b c0 2f 00 9e cc 14 cc 13 c0 0a c0 14 00 39 .+./.... .......9
0010 c0 09 c0 13 00 33 00 9c 00 35 00 2f 00 0a .....3.. .5./..


Si vous regardez attentivement, vous pouvez voir: dans le trafic réel, la liste des chiffres est légèrement plus courte qu'elle ne devrait l'être dans un vrai navigateur. Bien que les autres soient disposés dans le même ordre, deux ensembles manquent:

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)


On peut supposer que le trafic provenant du navigateur de l'utilisateur passe par un proxy transparent qui ne prend pas en charge les chiffres ChaCha. Cela réduit la protection des utilisateurs, car les suites de chiffrement AES-CBC à côté de ChaCha sont vulnérables au remplissage des attaques oracle.

Dans certains cas, MITMEngine vous permet même de déterminer quel programme spécifique provoque la dégradation de la connexion HTTPS (dans l'exemple ci-dessus, il s'agit de l'antivirus Sophos). Le serveur peut alerter l'utilisateur de cette menace.





Source: https://habr.com/ru/post/fr444496/


All Articles