Vulnerabilidad de implementación TCP en Linux permite secuestrar el tráfico entre dispositivos

nueva-vulnerabilidad-en-power-point-microsoft-ole

A día de hoy, pocos usuarios son los que se preguntan cómo funcionan realmente las comunicaciones que realizan constantemente mientras están conectados a Internet. Navegar por páginas web, enviar emails, mensajes o descargar ficheros es algo tan habitual y aparentemente sencillo debido a que existen unos protocolos implementados desde hace tiempo que permiten esta comunicación entre dispositivos.

Sin embargo, la fiabilidad de estas conexiones podría estar en peligro si usamos un sistema Linux o alguno de sus derivados (p.ej. Android) debido a un fallo en la implementación del protocolo TCP a partir del kernel 3.6 publicado en 2012. Este fallo permitiría a un atacante terminar una comunicación entre dos dispositivos vulnerables o incluso inyectar malware si esta se produce por un canal sin cifrar.

Revisando TCP

TCP son las siglas de Transmission Control Protocol (Protocolo de Control de Transmisión) ya hacen referencia al protocolo que permite empaquetar datos y enviarlos y recibirlos a través de Internet a los dispositivos conectados. La particularidad de TCP sobre otros protocolos es que proporciona una mayor fiabilidad, asegurando la integridad de los paquetes. Otros protocolos como UDP son más rápidos pero no garantizan que todos los paquetes lleguen a su destino.

Actualmente, muchas aplicaciones hacen uso de este protocolo, aplicaciones como los navegadores web o clientes FTP, son olvidar otro tipo de servicios ampliamente usados para las transferencias como pueda ser Bittorrent.

Funcionamiento del ataque

Según los investigadores que han presentado la información sobre esta vulnerabilidad, este fallo permite a un atacante interferir entre las comunicaciones de dos máquinas, sin necesidad de que este se encuentre en la misma red. De hecho, el ataque puede realizarse tan solo conociendo las direcciones IP de los dos sistemas que intervienen en la comunicación.

Estos requisitos tan básicos para explotar la vulnerabilidad son realmente el principal problema, puesto que es relativamente fácil averiguar la IP de los usuarios que se deseen atacar. Así pues, cualquiera desde cualquier lugar del mundo podría lanzarlo desde una red que permitiera la suplantación de direcciones IP.

Esta implementación vulnerable de TCP (CVE-2016-5696) tampoco requiere que el usuario tenga que instalar ninguna aplicación o pulsar sobre un enlace. Los investigadores comentaron que el problema de base está relacionado con la introducción de respuestas en los desafíos ACK y la imposición de un límite en los paquetes de control de TCP.

Según sus pruebas, tan solo se necesitan 10 segundos para conseguir interferir en la comunicación y, a partir de ahí, se puede intentar inyectar código malicioso en aquellas comunicaciones que no estén cifradas. Como ejemplo, presentaron la siguiente demo donde se observa como una comunicación no cifrada con un periódico online termina siendo sustituida por una web controlada por un atacante sin que el usuario haya intervenido para nada:

Soluciones

Si somos usuarios de LInux, es probable que estemos acostumbrados a recibir rápidamente parches de seguridad que solucionen vulnerabilidades como la que acabamos de describir. De hecho, las versiones del kernel de Linux a partir de la 4.7 no están afectados por esta vulnerabilidad y muchas distribuciones de Linux ya están actualizándose para solucionar el problema.

Además, podemos solucionar esta vulnerabilidad de forma manual y temporal si establecemos un límite de en los paquetes de control TCP en los desafíos ACK superior a 1000. Si bien esto solo es aplicable a sistemas operativos usados en ordenadores de escritorio, portátiles y servidores.

Queda por ver cómo afectará esta vulnerabilidad al resto de dispositivos que se ven afectados y que no suelen recibir estas actualizaciones o, al menos, no de forma tan habitual. Recordemos que Linux es utilizado en muchos dispositivos que ni siquiera están diseñados para actualizarse pero que, en caso de estar conectados podrían añadir un importante agujero de seguridad a su larga lista de problemas.

 

¿App con un parche para la vulnerabilidad QuadRooter? ¡No!, es una aplicación maliciosa