stringtranslate.com

Ataque de restablecimiento de TCP

Un ataque de restablecimiento de TCP , también conocido como restablecimiento de TCP falsificado o restablecimiento de TCP falsificado , es una forma de terminar una conexión TCP mediante el envío de un paquete de restablecimiento de TCP falsificado. Esta técnica de manipulación puede ser utilizada por un firewall o puede ser utilizada de forma abusiva por un atacante malintencionado para interrumpir las conexiones a Internet.

Se sabe que el Gran Cortafuegos de China y los censores de Internet iraníes utilizan ataques de restablecimiento de TCP para interferir y bloquear conexiones como un método principal para llevar a cabo la censura de Internet. [1]

Fondo

Internet es un sistema para que los ordenadores individuales intercambien mensajes electrónicos o paquetes de datos. Este sistema incluye hardware para transportar los mensajes (como cables de cobre y fibra óptica ) y un sistema formalizado para formatear los mensajes, llamados "protocolos". El protocolo básico utilizado en Internet es el Protocolo de Internet (IP), que suele ir acompañado de protocolos adicionales como TCP ( Protocolo de control de transmisión [2] ) o UDP ( Protocolo de datagramas de usuario ). TCP/IP es el conjunto de protocolos utilizado para el correo electrónico y la navegación web. Cada protocolo tiene un bloque de información, llamado encabezado, incluido cerca del frente de cada paquete. Los encabezados contienen información sobre qué ordenador envió el paquete, qué ordenador debería recibirlo, el tamaño del paquete, etc.

El protocolo TCP se utiliza habitualmente junto con el protocolo IP (protocolo de Internet) para establecer una conexión virtual bidireccional entre dos ordenadores. Como protocolo orientado a la conexión, el protocolo TCP requiere el establecimiento de una conexión lógica entre dos procesos antes del intercambio de datos, a diferencia del protocolo UDP, que es un protocolo sin conexión dentro del conjunto de protocolos IP. Los conectores TCP/IP facilitan la comunicación entre ordenadores, como por ejemplo entre una estación de trabajo con un navegador y un servidor web, mediante el intercambio de un flujo de paquetes de datos. El uso de una conexión TCP permite la transferencia de elementos de datos de gran tamaño, que superan los límites de tamaño de un único paquete, incluidos videoclips, archivos adjuntos de correo electrónico o archivos de música. Aunque ciertas páginas web son lo suficientemente pequeñas como para caber en un único paquete, normalmente se transmiten a través de conexiones TCP para mejorar la fiabilidad y el control de errores.

Restablecimientos de TCP

En un flujo de paquetes de una conexión TCP, cada paquete contiene un encabezado TCP. Cada uno de estos encabezados contiene un bit conocido como indicador de "reinicio" (RST). [3] En la mayoría de los paquetes, este bit se establece en 0 y no tiene efecto. Sin embargo, si este bit se establece en 1, indica al equipo receptor que el equipo debe dejar de usar inmediatamente la conexión TCP; no debe enviar más paquetes utilizando los números de identificación de la conexión, llamados puertos, y descartar cualquier otro paquete que reciba con encabezados que indiquen que pertenecen a esa conexión. Un reinicio TCP elimina una conexión TCP casi instantáneamente.

Esta herramienta cumple una función específica en el ámbito de las redes informáticas, en particular en la gestión de conexiones TCP. Un caso de uso notable surge cuando una computadora, denominada "Computadora A", experimenta una falla del sistema durante una conexión TCP activa. En consecuencia, la computadora correspondiente en el otro extremo de la conexión, designada como "Computadora B", no se da cuenta de la falla y continúa transmitiendo paquetes TCP. Al reiniciarse, la Computadora A recibe estos paquetes residuales de la conexión interrumpida. Sin embargo, al carecer del contexto original y no poder procesarlos adecuadamente, la Computadora A generalmente envía una señal de restablecimiento de TCP a la Computadora B. Este restablecimiento informa a la Computadora B sobre la falla en la conexión, lo que indica al usuario de la Computadora B que intente restablecer la conexión o tome medidas alternativas según sea necesario.

Falsificación de restablecimientos TCP

En el escenario anterior, el bit de reinicio TCP fue enviado por una computadora que era uno de los puntos finales de la conexión. Es posible que una tercera computadora monitoree los paquetes TCP en la conexión y luego envíe un paquete "falsificado" que contenga un reinicio TCP a uno o ambos puntos finales. Los encabezados del paquete falsificado deben indicar, falsamente, que provino de un punto final, no del falsificador. Esta información incluye las direcciones IP y los números de puerto del punto final. Cada campo en los encabezados IP y TCP debe configurarse con un valor falsificado convincente para que el reinicio falso engañe al punto final para que cierre la conexión TCP. Los reinicios TCP falsificados con el formato correcto pueden ser una forma muy efectiva de interrumpir cualquier conexión TCP que el falsificador pueda monitorear.

Uso legítimo

Una de las aplicaciones de un reinicio TCP falsificado es interrumpir maliciosamente las conexiones TCP sin el consentimiento de las dos partes propietarias de los puntos finales. Sin embargo, también se han diseñado sistemas de seguridad de red que utilizan reinicios TCP falsificados. En 1995 se presentó un prototipo de paquete de software "Buster" que enviaba reinicios falsificados a cualquier conexión TCP que utilizara números de puerto de una lista corta. Los voluntarios de Linux propusieron hacer algo similar con los firewalls de Linux en 2000 [3] , y el software de código abierto, como Snort , utilizó reinicios TCP para interrumpir conexiones sospechosas ya en 2003 [4].

La controversia de Comcast

A finales de 2007, Comcast comenzó a utilizar reinicios TCP falsificados para inutilizar aplicaciones peer-to-peer y ciertas aplicaciones groupware en las computadoras de sus clientes. [5] Esto inició una controversia, a la que siguió la creación del Network Neutrality Squad (NNSquad) por Lauren Weinstein , Vint Cerf , David Farber , Craig Newmark y otros fundadores y defensores conocidos de la apertura en Internet. [6] En 2008, el NNSquad lanzó el NNSquad Network Measurement Agent, un programa de software de Windows escrito por John Bartas, que podía detectar los reinicios TCP falsificados de Comcast y distinguirlos de los reinicios reales generados por los puntos finales. La tecnología para detectar los reinicios se desarrolló a partir del software de código abierto anterior "Buster" que usaba reinicios falsificados para bloquear malware y anuncios en páginas web.

En enero de 2008, la FCC anunció que investigaría el uso de restablecimientos falsificados por parte de Comcast y, el 21 de agosto de 2008, ordenó a Comcast que pusiera fin a esa práctica. [7]

Prevención

Al cifrar las conexiones mediante el uso de una VPN , el atacante tiene que realizar un ataque de restablecimiento de TCP en todas las conexiones cifradas, lo que provoca daños colaterales . [ cita requerida ]

Véase también

Referencias

  1. ^ Clayton, Richard; Murdoch, Steven J.; Watson, Robert NM (2006). Danezis, George; Golle, Philippe (eds.). Ignorando el Gran Cortafuegos de China (PDF) . Tecnologías para mejorar la privacidad. Apuntes de clase en informática . Vol. 4258. Cambridge, Reino Unido: Springer Berlin . págs. 20–35. doi :10.1007/11957454_2. ISBN 978-3-540-68793-1– a través del Departamento de Ciencias de la Computación y Tecnología .
  2. ^ Protocolo de control de transmisión (TCP). STD 7.
  3. ^ ab "Archivos de discusiones sobre Linux de mayo de 2000".
  4. ^ Berry, Josh (28 de febrero de 2004). "Reinicios de TCP". snort-users (lista de correo).
  5. ^ Svensson, Peter (19 de octubre de 2007). "Comcast bloquea parte del tráfico de Internet". NBC News .
  6. ^ Página de inicio de NNSquad
  7. ^ "La Comisión ordena a Comcast que ponga fin a las prácticas discriminatorias de gestión de la red" (PDF) .

Enlaces externos