¿Qué es un ataque Teardrop? | Explotación de fragmentos IP superpuestos

Teardrop es un ataque clásico de fragmentación IP que usa offsets de fragmento superpuestos para colapsar los stacks TCP/IP vulnerables durante el reensamblado. Aprende cómo funciona y en qué se diferencia de los ataques de fragmentación IP en general.

Un ataque Teardrop es un exploit clásico de fragmentación IP que envía fragmentos de paquete con valores de offset deliberadamente superpuestos, provocando que los stacks TCP/IP vulnerables fallen o colapsen al intentar reensamblar los fragmentos en un paquete coherente. Es un ejemplo específico e histórico dentro de la categoría más amplia de ataques de fragmentación IP, que data de mediados de los años noventa, y hoy está en gran medida mitigado en los sistemas operativos modernos.

Resumen rápido — Teardrop arma una secuencia de fragmentos IP cuyos campos de offset y longitud se superponen de una forma incoherente con un paquete original válido; por ejemplo, un segundo fragmento que afirma comenzar antes de que termine el primero. El código de reensamblado antiguo calculaba las longitudes de copia del buffer con una simple resta de offsets y no validaba que los fragmentos fueran no superpuestos, lo que generaba valores de longitud negativos o inválidos que corrompían memoria o provocaban un colapso. Windows 95, Windows NT y los primeros kernels de Linux fueron parchados contra Teardrop en 1997. Los kernels modernos validan la superposición de fragmentos y rechazan conjuntos de fragmentos incoherentes, aunque la misma técnica de fragmentos superpuestos sigue documentada como método de evasión contra sistemas de detección de intrusos mal configurados.

Última actualización: 2026-08-08

Cómo funciona el ataque

La fragmentación IP divide un paquete grande en piezas más pequeñas para su transmisión por redes con una unidad máxima de transmisión (MTU) menor; cada fragmento lleva un campo de offset que indica en qué parte del paquete reensamblado va su carga útil. Una secuencia de fragmentos válida tiene offsets y longitudes que encajan sin superponerse. Teardrop viola esto de forma deliberada.

Fragmentación válida:
Fragmento 1: offset=0, longitud=1400 [cubre bytes 0-1399]
Fragmento 2: offset=1400, longitud=1400 [cubre bytes 1400-2799]
→ se reensambla limpiamente, sin superposición
Fragmentos superpuestos de Teardrop:
Fragmento 1: offset=0, longitud=1400 [cubre bytes 0-1399]
Fragmento 2: offset=1000, longitud=1400 [dice cubrir bytes 1000-2399]
El código de reensamblado calcula: longitud_copia = fin_fragmento2 - offset_fragmento2
En stacks vulnerables, la aritmética de offsets superpuestos produce un valor
de longitud negativo o inválido, que luego se usa en una copia de memoria
Subescritura o desbordamiento de buffer → colapso del kernel o congelamiento del sistema

El defecto estaba en cómo las rutinas de reensamblado tempranas calculaban cuántos bytes de un fragmento nuevo copiar al buffer de reensamblado en relación con los fragmentos ya recibidos. Como el código asumía que los fragmentos nunca se superpondrían, no acotaba ni validaba la longitud calculada antes de usarla en una operación de copia de memoria, y un escenario de longitud negativa cuidadosamente construido corrompía la memoria del kernel.

Contexto histórico

Teardrop se identificó y difundió a finales de 1997, poco después de que Ping of Death ya hubiera atraído atención hacia los errores de fragmentación y reensamblado en los stacks TCP/IP. Afectó a Windows 95, Windows NT 3.51 y 4.0, y a versiones tempranas del kernel de Linux (anteriores a 2.0.32 y 2.1.63). Una variante relacionada conocida como “Teardrop2” (o “NewTear”/“Bonk”/“Boink” según algunos nombres de la época) apuntaba a servicios basados en UDP con una lógica de fragmentos superpuestos similar. Microsoft y los mantenedores del kernel de Linux publicaron parches a finales de 1997 y principios de 1998 que agregaron validación de superposición al código de reensamblado de fragmentos, y CERT/CC documentó la vulnerabilidad y las pautas de mitigación en avisos de ese periodo.

Teardrop vs. ataques de fragmentación IP en general

Teardrop es una técnica histórica específica dentro de la categoría más amplia de ataque de fragmentación IP, que abarca cualquier ataque que manipule el tamaño, offset, cantidad u orden de los fragmentos para evadir defensas o agotar recursos.

AspectoTeardrop (ataque específico)Ataque de fragmentación IP (categoría general)
TécnicaOffsets de fragmento superpuestosCualquier manipulación de fragmentos: superposición, fragmentos diminutos, fragmentos faltantes, cantidad excesiva de fragmentos
Objetivo principalColapsar el objetivo mediante un error de reensambladoColapsar, evadir inspección o agotar recursos de reensamblado
ÉpocaExploit específico de 1996-1997Categoría vigente, aún relevante para evasión y agotamiento de recursos
Relevancia modernaHistórica; parchada en sistemas operativos principalesActiva; usada para evasión de IDS/firewall y agotamiento de recursos de reensamblado
Clase de causa raízDefecto de software en el manejo de superposiciónPuede ser un defecto de software o una limitación de diseño de la inspección sin estado

Cualquier análisis de denegación de servicio basada en fragmentación debe tratar a Teardrop como una instancia histórica con nombre propio, no como sinónimo de la categoría completa; los ataques de fragmentación modernos (inundaciones de fragmentos, evasión con fragmentos diminutos, ataques de fragmentos fuera de orden) no dependen del mismo error de software de superposición de offsets que hizo posible a Teardrop.

Por qué los sistemas modernos son en gran medida inmunes

Los kernels modernos validan la consistencia de offset y longitud de los fragmentos durante el reensamblado, y detectan y descartan explícitamente los fragmentos superpuestos en lugar de confiar en los valores de offset entrantes, siguiendo el endurecimiento posterior a RFC 791 y la guía de reensamblado IP de RFC 815 y literatura posterior sobre seguridad de reensamblado (RFC 1858 y RFC 3128 abordan preocupaciones relacionadas de evasión por fragmentos). Esta validación ha sido estándar en Windows, Linux, sistemas derivados de BSD y appliances de seguridad de red durante más de dos décadas.

El riesgo residual permanece en:

  • Dispositivos embebidos e IoT que ejecutan stacks TCP/IP mínimos, sin parchar o personalizados
  • Sistemas de control industrial legados con ciclos de vida de hardware largos y parcheo poco frecuente
  • Appliances de seguridad con reensamblado de fragmentos débil, que todavía pueden ser evadidos (no colapsados) usando fragmentos superpuestos o fuera de orden para ocultar cargas maliciosas de la inspección basada en firmas

Detección y mitigación

  • Validación de fragmentos a nivel de kernel — rechazar o normalizar fragmentos con offsets inconsistentes o superpuestos antes del reensamblado, estándar en los stacks de red de los sistemas operativos modernos
  • Límites de reensamblado de fragmentos IP — acotar la cantidad de fragmentos y el tamaño total del buffer de reensamblado aceptado por paquete en el firewall o el host
  • Reglas de firewall que descartan fragmentos malformados — filtrar secuencias de fragmentos con offsets superpuestos o combinaciones de longitud inválidas en el perímetro de red
  • Normalizar antes de inspeccionar — los appliances de seguridad que realizan inspección profunda de paquetes deben reensamblar y normalizar fragmentos de forma consistente con el comportamiento del host destino para evitar evasión
  • Gestión de parches y activos — dar seguimiento a dispositivos legados y embebidos que todavía corren stacks de red de la era previa a 1998 o personalizados, que pueden carecer de validación de superposición

Cómo implementarlo con Azion

DDoS Protection de Azion inspecciona y filtra fragmentos IP malformados y superpuestos en el edge de la red antes de que lleguen a la infraestructura de origen. Network Shield puede ayudar a aplicar límites de reensamblado de fragmentos y descartar paquetes con valores de offset o longitud inconsistentes en las capas 3 y 4. Las reglas de Firewall se pueden configurar para restringir patrones de tráfico fragmentado en orígenes que no esperan entradas fragmentadas, reduciendo la exposición de sistemas backend legados.

Recursos relacionados

Preguntas frecuentes

¿Qué es un ataque Teardrop? Un ataque Teardrop envía fragmentos IP con valores de offset deliberadamente superpuestos, lo que provocaba que los stacks TCP/IP antiguos calcularan longitudes de copia de buffer inválidas durante el reensamblado y colapsaran. Es un exploit histórico específico de 1997, no un término genérico para ataques de fragmentación.

¿Teardrop sigue siendo una amenaza hoy? No, ya no como exploit de colapso: los sistemas operativos principales llevan más de dos décadas validando la superposición de fragmentos durante el reensamblado. Las técnicas de fragmentos superpuestos derivadas de la misma idea todavía pueden usarse para evasión contra sistemas de inspección mal configurados, pero ya no colapsan hosts parchados.

¿En qué se diferencia Teardrop de un ataque de fragmentación IP general? El ataque de fragmentación IP es la categoría amplia que cubre cualquier manipulación del tamaño, offset, cantidad u orden de fragmentos. Teardrop es una técnica específica y con nombre propio de la era 1997 dentro de esa categoría, definida por su uso de offsets superpuestos para desencadenar un error de software de reensamblado.

¿Qué sistemas operativos eran vulnerables a Teardrop? Windows 95, Windows NT 3.51 y 4.0, y los kernels de Linux anteriores a las versiones 2.0.32 y 2.1.63 eran vulnerables. Microsoft y los mantenedores del kernel de Linux publicaron parches a finales de 1997 y principios de 1998.

¿Cómo provoca un colapso la superposición de fragmentos? El código de reensamblado vulnerable calculaba cuántos bytes de un fragmento nuevo copiar en relación con los datos ya recibidos usando una resta simple de offsets, sin verificar superposición. Un fragmento superpuesto construido a propósito producía un valor de longitud negativo o inválido usado en una copia de memoria, corrompiendo la memoria del kernel.

¿Se puede usar Teardrop contra sistemas Linux o Windows modernos? No. Los kernels actuales detectan y descartan fragmentos con offsets inconsistentes o superpuestos durante el reensamblado en lugar de confiar en los valores de offset tal cual, lo que elimina el defecto de software específico que Teardrop explotaba.

¿Qué es “Teardrop2” o “Bonk/Boink”? Fueron variantes estrechamente relacionadas de la misma época que aplicaban técnicas similares de fragmentos superpuestos u offsets malformados a servicios basados en UDP, en lugar del enfoque del Teardrop original, explotando debilidades de reensamblado comparables en los stacks afectados.

¿Teardrop requiere un volumen alto de tráfico? No. Como otros exploits de colapso de paquete único de los años noventa, Teardrop podía inhabilitar un objetivo vulnerable con una cantidad muy pequeña de fragmentos manipulados, ya que explotaba un defecto de software en lugar de depender del agotamiento de recursos por volumen.

¿Cómo manejan los firewalls modernos los fragmentos superpuestos? Los firewalls e IPS modernos detectan fragmentos superpuestos y descartan todo el conjunto de fragmentos o los reensamblan usando reglas consistentes con el comportamiento del host protegido, evitando tanto el colapso histórico como los usos modernos de evasión de inspección de la superposición de fragmentos.

¿Los dispositivos IoT y embebidos siguen en riesgo por errores tipo Teardrop? Algunos dispositivos embebidos con stacks TCP/IP mínimos o desarrollados a la medida pueden no implementar validación de superposición completa, lo que los convierte en una categoría de riesgo residual, aunque esto hoy es poco común comparado con la exposición amplia que se vio en 1997.

¿Qué RFC son relevantes para entender Teardrop y su mitigación? RFC 791 define el mecanismo de fragmentación IP y el campo de offset que Teardrop abusa; RFC 815 cubre los algoritmos de reensamblado; RFC 1858 y RFC 3128 documentan preocupaciones relacionadas de evasión basada en fragmentos para dispositivos de seguridad.

Fuentes

  • CERT/CC. Avisos que documentan Teardrop y vulnerabilidades de fragmentación relacionadas, 1997.
  • IETF. “Internet Protocol.” RFC 791. 1981.
  • IETF. “IP Datagram Reassembly Algorithms.” RFC 815. 1982.
  • IETF. “Security Considerations for IP Fragment Filtering.” RFC 1858. 1995.
  • IETF. “Protection Against a Variant of the Tiny Fragment Attack.” RFC 3128. 2001.
  • NIST. “Guide to Intrusion Detection and Prevention Systems.” SP 800-94.
mantente actualizado

Suscríbete a nuestro boletín informativo

Recibe las últimas actualizaciones de productos, destacados de eventos y conocimientos de la industria tecnológica directamente en tu bandeja de entrada.