Nuevas herramientas para detectar la intercepción HTTPS



A medida que crece el uso de HTTPS, aumenta el deseo de personas no autorizadas de infiltrarse en el tráfico protegido. Un estudio de 2017 realizado por The Security Impact of HTTPS Interception encontró que esta es una práctica cada vez más común. El análisis del tráfico en los servidores de actualización de Firefox mostró que en algunos países el porcentaje de introducción de agentes de terceros en HTTPS alcanza el 15%.

Desde el estudio, es poco probable que la situación haya mejorado. Ahora, incluso el último modelo de auriculares inalámbricos Sennheiser requiere la instalación de un certificado raíz (con parámetros inseguros) en el sistema .

Con mayor frecuencia, el antivirus o el middlebox corporativo compromete la protección (consulte la lista a continuación), pero puede ser peor. En cualquier caso, es mejor saber con certeza cuándo su canal HTTPS no es seguro de principio a fin. Incluso cuando un sistema de terceros intercepta el tráfico bien intencionado, a menudo no admite cifrados modernos o no valida los certificados, lo que reduce la protección general de la conexión. Pero pueden interceptar el tráfico SSL no solo con buenos propósitos, sino también con fines maliciosos: por ejemplo, para la censura a nivel estatal.

Los programas de monitoreo HTTPS actúan como servidores proxy transparentes que interrumpen una sesión TLS, inspeccionan el contenido y luego establecen una nueva sesión con el servidor de destino. Utilizan versiones diferentes de las bibliotecas TLS que los navegadores populares, lo que les permite ser detectados en el lado del servidor por la falta de coincidencia entre el Agente de usuario HTTP y el Cliente TLS Hello del navegador real y el proxy.

Para comenzar, aquí hay algunas ideas prácticas de un estudio de 2017 que incluyó a Mozilla, Google, GlobalSign, así como a investigadores académicos de la Universidad de Michigan, la Universidad de Illinois en Urban-Champaign y la Universidad de California en Berkeley.

El daño práctico de la intercepción HTTPS es la degradación del cifrado y las vulnerabilidades de proxy transparentes adicionales. Los autores del estudio evaluaron una serie de middleboxes populares por estos parámetros. Como puede ver, en 2017, casi la mitad de ellos no admitían conjuntos de cifrado modernos, y cinco registraron vulnerabilidades graves. Solo 1 de cada 12 pudo reflejar por completo todas las suites de cifrado personalizadas.



La actividad antivirus en las computadoras de los usuarios también se detecta generalmente en el lado del servidor. El estudio mostró que solo dos antivirus reflejan completamente las cifras de los usuarios, en otros casos, el cifrado se degrada.



Al protegerse contra algunas amenazas, los antivirus reducen el cifrado y agregan sus propias vulnerabilidades. En general, la instalación de un antivirus de terceros a menudo degrada significativamente la seguridad general del sistema. Algunos expertos aconsejan a los usuarios que siempre eliminen del sistema los antivirus de terceros , ya que su código invasivo y mal escrito dificulta que los navegadores y otros programas brinden su propia seguridad.

En el camino entre el cliente y el servidor, otros servidores proxy transparentes también pueden funcionar. Para detectar mejor a estos agentes, Cloudflare lanzó recientemente dos nuevas herramientas:

  1. MITMEngine , una biblioteca gratuita para detectar la intercepción HTTPS.
  2. MALCOLM , un tablero de instrumentos para mostrar métricas sobre la intercepción HTTPS en la red Cloudflare.

El interés principal es la biblioteca MITMEngine. Los desarrolladores escriben que tomaron la popular herramienta de detección MITM del servidor Caddy como muestra. Admite un conjunto de navegadores populares y reconoce la intercepción HTTPS por huellas digitales específicas de los mensajes de saludo del cliente TLS y del agente del usuario, como se describió anteriormente.

Los desarrolladores trataron de proporcionar extensibilidad simplificando la futura incorporación de nuevas versiones de navegadores al detector, así como mejorando el rendimiento y expandiendo la funcionalidad del detector en comparación con la detección MITM del servidor Caddy. Analiza los siguientes parámetros de TLS Client Hello, comparando datos reales con huellas digitales de navegadores conocidos:

  • Versión TLS
  • conjuntos de cifrado;
  • extensiones y sus significados;
  • grupos soportados de curvas elípticas;
  • formatos de puntos de una curva elíptica.

De hecho, MITMEngine realiza una huella dactilar parcial del usuario sin desanonimizarlo, pero con una determinación confiable de que la conexión la establece un navegador real, no un intermediario.

Ejemplo de trabajo


Supongamos que MITMEngine ve el siguiente Agente de usuario de un usuario:

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


Este agente de usuario corresponde a Chrome 47 en Windows 7. Se acompaña de un mensaje de saludo de cliente TLS, que indica los siguientes conjuntos de cifrado, en hexadecimal:

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./ ..


Este mensaje coincide con los siguientes conjuntos de cifrado:

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)


Los conjuntos de cifrado predeterminados para Chrome 47 son los siguientes:

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 observa detenidamente, puede ver: en el tráfico real, la lista de cifrados es ligeramente más corta de lo que debería ser en un navegador real. Aunque el resto está organizado en el mismo orden, faltan dos conjuntos:

TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc14)
TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (0xcc13)


Se puede suponer que el tráfico del navegador del usuario pasa a través de un proxy transparente que no admite cifrados ChaCha. Esto reduce la protección del usuario porque los conjuntos de cifrado AES-CBC junto a ChaCha son vulnerables a los ataques de oráculo de relleno.

En algunos casos, MITMEngine incluso le permite determinar qué programa específico causa la degradación de la conexión HTTPS (en el ejemplo anterior, es el antivirus de Sophos). El servidor puede alertar al usuario sobre esta amenaza.





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


All Articles