Vulnerabilidad crítica en la implementación TCP en Linux (y Android)
Investigadores de la Universidad de California y del Laboratorio de Investigación del Ejército de Estados Unidos han mostrado en la vigésimo quinta edición de la conferencia Usenix Security Symposium un documento [PDF] sobre una vulnerabilidad descubierta en la implementación del protocolo TCP del kernel Linux, que afecta tanto a GNU/Linux (Ubuntu, Red Hat, openSUSE y demás distribuciones) como a Android.
La vulnerabilidad ha recibido el código de CVE-2016-5696 y afecta a la especificación RFC 5961 de Internet Engineering Task Force, desarrollada para proteger TCP y que fue introducida en Linux 3.6. Según los investigadores, la vulnerabilidad permite secuestrar una conexión realizada mediante texto plano entre dos computadoras realizada a través de TCP sobre Internet.
También describen que "este ataque puede ser utilizado contra conexiones a backends de larga duración como sesiones de bases de datos o gestión y motorización de canales", a lo que añadieron que "desde que solo uno de los host de la conexión tiene que ser vulnerable, también los sitios web que ofrezcan sesiones interactivas sobre un túnel HTTP persistente podrían ser objetivo del ataque". Esto abre la puerta a que dispositivos con una conexión permanente con las infraestructuras del vendedor, como por ejemplo las cámaras de seguridad, podrían ser susceptibles de recibir un ataque aprovechando esta vulnerabilidad. Por otro lado, también abre la puerta a la ejecución de ataques DDoS.
Siempre ha estado ampliamente aceptado que es difícil para los atacantes saber qué dos nodos de forma aleatoria están manteniendo una comunicación a través de TPC en Internet, así como la capacidad de alterar o interrumpir la conexión sin entrometerse en esta. Pero los investigadores han descubierto que se puede hacer una interpretación sin ejecutar código malicioso sobre ninguna de partes en la comunicación.
Los mensajes ACK, característica que fue implementada en RFC 5961, está configurada por defecto para enviar 100 mensajes por segundo. Dicho límite está compartido a través de todos los canales, que permiten al estado compartido ser explotado desde el lado del canal. Los atacantes solo tienen que enviar paquetes suplantados a la conexión objetivo acertando con el límite de 100 mensajes ACK por segundo. Si el número es menor de 100, algunos mensajes ACK tienen que ser enviados sobre la conexión como respuestas a los paquetes suplantados.
Este problema está presente en todas las versiones del kernel Linux menos la 4.7, la cual subió el límite de los mensajes ACK a 1000, corrigiendo así el problema. Sin embargo, la vulnerabilidad sigue presente en versiones anteriores y la comunidad Linux ya está manos a la obra para solucionarlo.
Aunque en la demostración publicada por los investigadores se muestra un ataque a un sitio web, esto no quiere decir que la vulnerabilidad no pueda ser aprovechada contra otros servicios, como SSH o la red Tor. En el caso de este último, los atacantes pueden terminar con los elementos claves de la cadena de Tor (como por ejemplo las que conectan al usuario final con el nodo de entrada, el nodo de entrada con un relé intermedio o un nodo intermedio con el nodo de salida).
El ataque contra la red Tor podría ser bastante efectivo si neutraliza correctamente la función de los nodos de salida, utilizando una técnica que incremente la posibilidad de que las conexiones utilicen algún tipo de nodo de salida malicioso.Los investigadores comentan que "en general, creemos que un ataque DDoS contra las conexiones de Tor podrían tener un impacto devastador tanto en la disponibilidad de todo el servicio como en las garantías de privacidad que puede ofrecer", a lo que han añadido que "la política por defecto de Tor es que si una conexión se viene abajo entre dos relés, por ejemplo el del medio y el de salida, el del medio se conectará a una salida diferente para establecer la próxima conexión. Si un atacante puede dictaminar qué conexiones se vienen abajo (a través de ataques de reset), entonces el atacante puede forzar el uso de ciertos relés de salida".
Según una publicación en el blog corporativo de Lookout, la vulnerabilidad está presente en todas las versiones de Android a partir de KitKat, abarcando incluso el futuro Nougat, que todavía se encuentra en fase de desarrollo. Estos significa que el 80% de los dispositivos Android son vulnerables, abarcando un total de unos 1.400 millones de dispositivos.
Fuentes: Muy Seguridad | MuyLinux | ArsTechnica
También describen que "este ataque puede ser utilizado contra conexiones a backends de larga duración como sesiones de bases de datos o gestión y motorización de canales", a lo que añadieron que "desde que solo uno de los host de la conexión tiene que ser vulnerable, también los sitios web que ofrezcan sesiones interactivas sobre un túnel HTTP persistente podrían ser objetivo del ataque". Esto abre la puerta a que dispositivos con una conexión permanente con las infraestructuras del vendedor, como por ejemplo las cámaras de seguridad, podrían ser susceptibles de recibir un ataque aprovechando esta vulnerabilidad. Por otro lado, también abre la puerta a la ejecución de ataques DDoS.
Cómo se explota la vulnerabilidad
RFC 5961 fue diseñado para hacer más difícil la realización de ataques de suplantación de TCP contra conexiones de larga duración, asegurando que el número de secuencia del paquete entrante coincida con el número de secuencia esperado para el siguiente. Además, el atacante también tendría que adivinar el valor ACK correcto dentro de un rango.Siempre ha estado ampliamente aceptado que es difícil para los atacantes saber qué dos nodos de forma aleatoria están manteniendo una comunicación a través de TPC en Internet, así como la capacidad de alterar o interrumpir la conexión sin entrometerse en esta. Pero los investigadores han descubierto que se puede hacer una interpretación sin ejecutar código malicioso sobre ninguna de partes en la comunicación.
Los mensajes ACK, característica que fue implementada en RFC 5961, está configurada por defecto para enviar 100 mensajes por segundo. Dicho límite está compartido a través de todos los canales, que permiten al estado compartido ser explotado desde el lado del canal. Los atacantes solo tienen que enviar paquetes suplantados a la conexión objetivo acertando con el límite de 100 mensajes ACK por segundo. Si el número es menor de 100, algunos mensajes ACK tienen que ser enviados sobre la conexión como respuestas a los paquetes suplantados.
Este problema está presente en todas las versiones del kernel Linux menos la 4.7, la cual subió el límite de los mensajes ACK a 1000, corrigiendo así el problema. Sin embargo, la vulnerabilidad sigue presente en versiones anteriores y la comunidad Linux ya está manos a la obra para solucionarlo.
El ataque contra la red Tor podría ser bastante efectivo si neutraliza correctamente la función de los nodos de salida, utilizando una técnica que incremente la posibilidad de que las conexiones utilicen algún tipo de nodo de salida malicioso.Los investigadores comentan que "en general, creemos que un ataque DDoS contra las conexiones de Tor podrían tener un impacto devastador tanto en la disponibilidad de todo el servicio como en las garantías de privacidad que puede ofrecer", a lo que han añadido que "la política por defecto de Tor es que si una conexión se viene abajo entre dos relés, por ejemplo el del medio y el de salida, el del medio se conectará a una salida diferente para establecer la próxima conexión. Si un atacante puede dictaminar qué conexiones se vienen abajo (a través de ataques de reset), entonces el atacante puede forzar el uso de ciertos relés de salida".
¿Qué hay de los otros sistemas operativos?
Sobre Windows y OS X/macOS se sabe que no tienen totalmente implementado RFC 5961, por lo que no están afectados por esta vulnerabilidad.Según una publicación en el blog corporativo de Lookout, la vulnerabilidad está presente en todas las versiones de Android a partir de KitKat, abarcando incluso el futuro Nougat, que todavía se encuentra en fase de desarrollo. Estos significa que el 80% de los dispositivos Android son vulnerables, abarcando un total de unos 1.400 millones de dispositivos.
Fuentes: Muy Seguridad | MuyLinux | ArsTechnica
0 Comments:
Publicar un comentario
Gracias por dejar un comentario en Segu-Info.
Gracias por comentar!