¿Qué es un ataque de fragmentación TCP? | Evasión basada en segmentación y DoS

Aprende cómo los ataques de fragmentación TCP (segmentación) manipulan la negociación de MSS y los límites de segmento para evadir la inspección o agotar recursos de reensamblado, y en qué se diferencia esto de la fragmentación IP.

¿Qué es un ataque de fragmentación TCP?

Un ataque de fragmentación TCP —más precisamente llamado ataque de segmentación TCP— es una técnica de evasión de red o agotamiento de recursos que manipula cómo se divide en segmentos un flujo de bytes TCP, creando deliberadamente segmentos anormalmente pequeños o colocando límites inusuales para deslizar payloads maliciosos más allá de dispositivos de inspección o para agotar los recursos que un objetivo gasta reensamblando y rastreando el flujo TCP.

Resumen rápido — TCP normalmente divide los datos de una aplicación en segmentos dimensionados según el Maximum Segment Size (MSS) negociado, independiente de anything happening at the IP layer. Los atacantes abusan de esto enviando deliberadamente segmentos tiny that split a single meaningful unit — an HTTP header, a WAF-inspected pattern, an exploit signature — across multiple segments, so that a firewall, IDS, or WAF inspecting segments individually never sees the complete pattern in one place. A related resource-exhaustion variant sends large volumes of out-of-order or incomplete segments to pressure the target’s TCP reassembly buffers. Mitigation requires MSS clamping, full-stream reassembly at inspection points before pattern matching, and connection-level anomaly detection rather than per-packet inspection.

Última actualización: 2026-08-08

La evasión por segmentación TCP es una categoría bien documentada de técnica de bypass de IDS/IPS, analizada formalmente en el artículo de 1998 de Ptacek y Newsham “Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection”, que sigue siendo una referencia fundamental para entender por qué la inspección con estado y consciente del stream es necesaria en los puntos de control de seguridad. A diferencia de los bugs de fragmentación IP orientados al colapso de la misma era, los ataques de segmentación TCP nunca han dependido de bugs del kernel; explotan un hueco estructural entre cómo se ven los paquetes individuales y cómo se lee realmente el flujo de datos completo que portan, lo cual es una propiedad permanente del protocolo en lugar de un defecto parcheable.

Segmentación TCP vs. Fragmentación IP — Por qué son ataques diferentes

Antes de continuar, es esencial separar este tema de los ataques de fragmentación IP, ya que ambos involucran “dividir datos en piezas” y se confunden frecuentemente.

AspectoFragmentación TCP (Segmentación)Fragmentación IP
Capa OSITransporte (Capa 4)Red (Capa 3)
Qué se divideEl flujo de bytes TCP de la aplicación, en segmentosUn solo datagrama IP, en fragmentos
Quién decide la divisiónEl stack TCP emisor, con base en el MSS negociadoCualquier router u host en la ruta, con base en el MTU del enlace
Campos de header que rigenNúmero de secuencia TCP, opción MSS (negociada en el handshake)Offset de fragmento IP, flag de más fragmentos, campo de identificación
El reensamblado ocurre enEl stack TCP receptor, usando números de secuenciaEl stack IP receptor, usando offset de fragmento e identificación
Relación entre ambosUn solo segmento TCP puede fragmentarse después a nivel IP si excede el MTU de la ruta — los dos mecanismos pueden apilarseIndependiente de TCP; también aplica a UDP e ICMP, que no tienen concepto de segmentación en absoluto
Objetivo típico de exploitEvadir inspección de pattern matching dividiendo firmas entre límites de segmento; agotar buffers de reensamblado de streamEvadir filtros de paquetes sin estado vía trucos de offset; colapsar código de reensamblado; agotar memoria de reensamblado a nivel IP

La forma más clara de mantener esto separado: la fragmentación IP es algo que le pasa a un solo paquete cuando es demasiado grande para un enlace. La segmentación TCP es algo que le pasa a un flujo de datos completo antes de que se construya siquiera un paquete individual, regido enteramente por la propia lógica de la capa de transporte. Una conexión TCP puede experimentar intentos de evasión basados en segmentación con cero fragmentación IP ocurriendo jamás, y viceversa.

Cómo funciona normalmente la segmentación TCP

TCP no envía los datos de una aplicación como una sola transmisión ininterrumpida. Divide el flujo de bytes en segmentos no más grandes que el Maximum Segment Size (MSS), un valor negociado durante el handshake de tres vías vía la opción MSS, y típicamente derivado del MTU de la ruta menos el overhead de header IP y TCP (comúnmente MSS = 1460 bytes para un MTU Ethernet estándar de 1500 bytes).

Estructura de segmento TCP (campos relevantes):
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Puerto de origen | Puerto de destino |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de secuencia |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de confirmación |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Offset | |U|A|P|R|S|F| |
|de datos|Reservado|R|C|S|S|Y|I| Ventana |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
...
Opciones: ... MSS=1460 (negociado solo en SYN/SYN-ACK) ...
Interacción MSS/MTU:
MTU de Ethernet: 1500 bytes
Header IP: -20 bytes
Header TCP: -20 bytes
─────────────────────────────
MSS resultante: 1460 bytes (payload TCP máximo por segmento)
La aplicación escribe 4,380 bytes en un socket TCP:
Segmento 1: sec=0, long=1460 (bytes 0-1459)
Segmento 2: sec=1460, long=1460 (bytes 1460-2919)
Segmento 3: sec=2920, long=1460 (bytes 2920-4379)
El stack TCP receptor reensambla usando números de secuencia, no offsets de
fragmento IP — hace buffer de segmentos fuera de orden y entrega un flujo
de bytes contiguo a la aplicación una vez que se llenan los huecos.

El stack TCP del emisor es libre de elegir tamaños de segmento más pequeños que el MSS negociado en cualquier momento; no hay nada en RFC 793 que exija que cada segmento tenga el tamaño del MSS. Esta flexibilidad, esencial para casos de uso legítimos como protocolos interactivos que envían segmentos del tamaño de pulsaciones de teclado, es exactamente lo que explotan los ataques basados en segmentación.

Cómo funcionan los ataques de fragmentación (segmentación) TCP

1. Evasión con segmentos diminutos. El atacante envía deliberadamente segmentos TCP mucho más pequeños que el MSS negociado, a veces tan pequeños como un solo byte, dividiendo un request HTTP, un payload de exploit, o cualquier patrón que un dispositivo de seguridad esté buscando a través de múltiples segmentos.

Línea de request HTTP normal en un solo segmento:
Segmento: "GET /admin/config.php HTTP/1.1\r\n"
Evasión con segmentos diminutos del mismo request:
Segmento 1: "GE"
Segmento 2: "T /adm"
Segmento 3: "in/config"
Segmento 4: ".php HTTP/1.1\r\n"
Un pattern match paquete-por-paquete para "/admin/config.php" falla
contra cada segmento individual. Solo un dispositivo que reensambla el
flujo TCP completo antes de hacer match detectará el patrón.

Esta es la técnica central detrás de muchos métodos históricos de evasión de IDS/WAF: cualquier dispositivo de inspección que aplique pattern matching de firmas por paquete en lugar de por stream reensamblado puede evadirse eligiendo límites de segmento que dividan la firma entre dos o más paquetes.

2. Manipulación de límite de segmento con retransmisiones superpuestas. Más allá de simplemente usar segmentos diminutos, un atacante puede enviar un segmento inicial, luego retransmitir un segmento superpuesto en el mismo número de secuencia o uno cercano con datos distintos. Si el dispositivo de inspección y el destino final reensamblan segmentos superpuestos de forma diferente (algunos prefieren los datos vistos primero, otros prefieren los más recientes), el atacante puede hacer que el dispositivo de inspección “vea” contenido distinto del que finalmente procesa la aplicación de destino: un análogo a nivel de stream de la ambigüedad de fragmentos superpuestos descrita en los ataques de fragmentación IP, pero explotando números de secuencia TCP en lugar de offsets de fragmento IP.

Segmento A: sec=100, long=20, datos="CONTENIDO_QUE_SE_VE_SEGURO"
Segmento B: sec=105, long=20, datos="CARGA_MALICIOSA_A_" (se superpone con A en sec 105-119)
Política del dispositivo de inspección: "gana el primero en llegar" → ve el contenido del Segmento A
Política del sistema destino: "gana el último en llegar" → la aplicación procesa
un flujo mezclado usando los bytes superpuestos del Segmento B
Resultado: el contenido inspeccionado y el contenido entregado divergen

3. Agotamiento de reensamblado de stream TCP. En lugar de evasión, esta variante apunta directamente a la disponibilidad. El atacante abre muchas conexiones TCP (o usa conexiones existentes) y envía grandes volúmenes de segmentos fuera de orden o con huecos deliberados, forzando al stack TCP del objetivo —o a un dispositivo de inspección inline que realiza reensamblado completo del stream— a hacer buffer de cantidades crecientes de datos fuera de orden por conexión mientras espera los segmentos faltantes (que nunca llegan, o llegan muy lentamente). Esto consume memoria proporcional al número de conexiones y al tamaño del buffer fuera de orden de cada conexión.

Un bot abre una conexión TCP, completa el handshake normalmente
El bot envía un segmento en sec=50000 (saltándose sec=0-49999 por completo)
El objetivo/dispositivo de inspección: hace buffer de este segmento fuera de orden,
esperando los bytes anteriores faltantes
El bot repite en miles de conexiones, sin enviar nunca los datos que llenarían el hueco
Resultado: la memoria del buffer de reensamblado/reorden crece a través de
muchas conexiones, cada una mantenida abierta y consumiendo
recursos hasta que se disparan los timeouts de conexión o reensamblado

Esto se superpone conceptualmente con los ataques low-and-slow en que depende de mantener el estado abierto de forma económica, pero el recurso específico bajo presión —el buffer de reorden para datos de segmento fuera de orden— es distinto de los ataques de headers incompletos estilo Slowloris.

Comparación de variantes de ataque de fragmentación TCP

VarianteMecanismoObjetivo principalRecurso objetivo principal
Evasión con segmentos diminutosSegmentos mucho más pequeños que el MSS dividen una firma/patrón entre límites de paqueteEvadir la inspección por paquete (WAF, IDS, DPI)Precisión de inspección, no disponibilidad
Ambigüedad de segmentos superpuestosSegmentos retransmitidos se superponen en el espacio de secuencia con datos distintosCausar que el dispositivo de inspección y el destino vean contenido distintoPrecisión de inspección, no disponibilidad
Agotamiento de reensamblado de streamSegmentos fuera de orden/incompletos mantenidos en espera de datos faltantes a través de muchas conexionesAgotar la memoria del buffer de reorden y el estado de conexiónMemoria, tabla de conexión

Señales de detección y telemetría

Terminal window
# Captura solo segmentos TCP con payload pequeño (una firma común de evasión con segmentos diminutos)
tcpdump -i eth0 'tcp and (ip[2:2] - ((ip[0]&0xf)*4) - ((tcp[12]&0xf0)>>2)) < 32' -c 200
# Coincide con paquetes donde la longitud del payload TCP es menor a 32 bytes
# Contadores del stack TCP por conexión (Linux)
nstat -az | grep -iE "tcp.*(ofoqueue|reass|prune)"
# TCPOFOQueue: segmentos actualmente en la cola fuera de orden
# Vista a nivel de socket en vivo de conexiones con acumulación anómala de cola de envío/recepción
ss -tin
# Verifica el MSS negociado actual en conexiones activas
ss -tin | grep -i mss
# Contador de nftables que coincide con segmentos TCP de payload inusualmente pequeño
nft add rule inet filter input tcp flags != syn,rst,fin tcp payload-size lt 32 counter
IndicadorNormalBajo ataque de segmentación TCPHerramienta
Segmentos con payload muy por debajo del MSS negociadoOcasional (protocolos interactivos, escrituras pequeñas de aplicación)Patrón sostenido y de alta frecuencia de segmentos implausiblemente pequeñostcpdump, captura de paquetes
TCPOFOQueue (profundidad de cola fuera de orden)Baja, transitoriaCrecimiento sostenido a través de muchas conexionesnstat -az
Retransmisiones con rangos de secuencia superpuestos y payloads distintosRaro/ausentePresente — indica un intento de superposición manipuladoCaptura de paquetes / IDS
Conexiones con gran acumulación de cola de envío/recepción y sin progresoRaroConteo elevado vía ss -tinss, seguimiento de conexión
Fallos de firma de WAF/IDS correlacionados con patrones de request fragmentadosN/APayload detectado solo visible después del reensamblado completo del stream en replay forenseCaptura de stream completo y reensamblado offline

Técnicas de mitigación

TécnicaCómo funcionaEfectividad
Clamping de MSS en el edge de redFuerza un tamaño máximo de segmento para todas las conexiones que pasan, reduciendo el rango de comportamiento explotable de segmento diminuto en el límite de redMedia — limita algunos patrones de evasión pero no elimina el abuso de segmentos por debajo del MSS
Reensamblado completo del stream antes de la inspección de patronesEl WAF/IDS/IPS reconstruye el flujo de bytes TCP completo antes de aplicar el pattern matching de firmas o reglas, en lugar de inspeccionar paquete-por-paqueteAlta — cierra directamente el hueco de evasión por segmento diminuto y superposición
Política consistente de resolución de superposiciónEl dispositivo de inspección y el host protegido aplican la misma política de “gana el primero” o “gana el último” para datos de segmento superpuestos, eliminando la divergenciaAlta contra la evasión por ambigüedad de superposición específicamente
Límites de buffer de reorden/reensamblado por conexiónLimita la cantidad de datos fuera de orden en buffer por conexión antes de forzar un reset o descarteMedia-alta contra el agotamiento de reensamblado
Detección de anomalías a nivel de conexiónMarca conexiones con proporciones anormalmente altas de segmentos diminutos, retransmisiones, o estado persistente fuera de orden en relación con líneas base de tráfico legítimoMedia-alta — captura tanto patrones de evasión como de agotamiento
Timeouts de stream inactivo/incompletoReinicia conexiones que mantienen datos incompletos o con huecos más allá de un umbral razonableMedia — acota la ventana de exposición para la variante de agotamiento
Inspección inline upstream/edge con normalización de streamLa infraestructura del lado del proveedor normaliza y reensambla los streams antes de que lleguen a la inspección o lógica de aplicación del lado del origenAlta para ambas variantes de evasión y agotamiento a escala

Errores comunes

ErrorImpactoSolución correcta
El WAF o IDS inspecciona cada segmento/paquete TCP de forma independienteLas firmas divididas entre límites de segmento evaden por completo la detecciónExige reensamblado completo del stream (consciente del stream TCP) antes del pattern matching
Asumir que el clamping de MSS por sí solo previene la evasión con segmentos diminutosEl clamping fija un máximo, pero los emisores todavía pueden elegir enviar segmentos mucho más pequeños que el MSS limitadoCombina el clamping de MSS con reensamblado de stream y detección de anomalías, no como corrección independiente
Usar lógica de resolución de superposición inconsistente entre el dispositivo de inspección y el host de destinoEl atacante puede hacer que los dos sistemas procesen contenido distinto de la misma secuencia de segmentosEstandariza la política de manejo de superposición entre todos los puntos de inspección y confirma que coincida con el comportamiento del sistema operativo de destino
Confundir problemas de segmentación TCP con problemas de fragmentación IP durante la investigaciónSe ajusta la capa de mitigación equivocada (ej. ajustar ipfrag_high_thresh cuando el problema real es evasión a nivel de segmento)Confirma con captura de paquetes en qué capa ocurre el comportamiento anómalo antes de elegir una corrección
No monitorear la profundidad de la cola fuera de orden por conexiónLos ataques de agotamiento de reensamblado progresan sin notarse hasta que la presión de memoria causa un impacto de servicio más amplioRastrea TCPOFOQueue y el crecimiento de buffer por conexión como una métrica operativa permanente
Tratar los segmentos diminutos como inherentemente maliciosos y bloquearlos por completoRompe protocolos legítimos interactivos o sensibles a la latencia que intencionalmente envían segmentos pequeños (ej. pulsaciones de teclado SSH, algunos protocolos en tiempo real)Usa umbrales de anomalía basados en tasa y patrón en lugar de bloqueo general de segmentos pequeños

Cómo implementarlo con Azion

La red distribuida de Azion puede ayudar a reducir la exposición a ataques de evasión basados en segmentación TCP y agotamiento de reensamblado, dependiendo de los productos habilitados y cómo estén configurados:

  • DDoS Protection brinda detección y mitigación siempre activa para anomalías a nivel de conexión y protocolo, incluyendo patrones de segmentación anómalos, en el edge de red.
  • Network Shield puede aplicar reglas a nivel de conexión para identificar patrones de segmento TCP anómalos antes de que lleguen a la infraestructura de aplicación.
  • Firewall permite reglas personalizadas para filtrado basado en conexión relevante a anomalías de tráfico basadas en segmentación.
  • WAF inspecciona requests HTTP reensamblados en lugar de segmentos TCP individuales, lo que puede ayudar a reducir la exposición a intentos de evasión de límite de segmento contra reglas de capa de aplicación, dependiendo de la configuración.
  • WAAP combina controles de capa de red y de aplicación para escenarios donde la evasión basada en segmentación se combina con intentos de ataque a nivel de aplicación.

Como Azion termina las conexiones TCP en el edge, los requests se reensamblan en flujos completos como parte del manejo normal de conexión antes de reenviarse a tu origen, lo que puede ayudar a reducir la exposición de la inspección del lado del origen a secuencias de segmento crudas y controladas por el atacante, aunque el comportamiento específico depende de tus productos configurados.

Recursos relacionados

Preguntas frecuentes

¿Qué es un ataque de fragmentación TCP? Un ataque de fragmentación TCP, más precisamente llamado ataque de segmentación TCP, manipula cómo se divide en segmentos un flujo de bytes TCP —usualmente enviando segmentos anormalmente diminutos o retransmisiones superpuestas— para evadir dispositivos de inspección que analizan paquetes individualmente en lugar de como un stream reensamblado, o para agotar recursos de reensamblado en el objetivo.

¿La fragmentación TCP es lo mismo que la fragmentación IP? No, y este es el punto de confusión más común. La fragmentación IP divide un solo datagrama IP a nivel de red cuando excede el MTU de un enlace, regida por el offset de fragmento y el flag de más fragmentos. La fragmentación TCP (segmentación) divide el flujo de datos de la aplicación a nivel de transporte en segmentos con base en el Maximum Segment Size negociado, completamente independiente de lo que pase después a nivel IP.

¿Por qué los atacantes envían segmentos TCP inusualmente pequeños? Enviar segmentos diminutos —a veces solo unos pocos bytes cada uno— divide patrones significativos como rutas de request HTTP o firmas de exploit a través de múltiples paquetes. Los dispositivos de seguridad que inspeccionan el payload de cada paquete individualmente, sin reensamblar primero el flujo TCP completo, pueden fallar en detectar el patrón completo, dejando pasar contenido malicioso sin ser detectado.

¿Qué es MSS y cómo se relaciona con este ataque? El Maximum Segment Size (MSS) se negocia durante el handshake TCP y representa la mayor cantidad de datos que debería portar un segmento, típicamente derivado del MTU de la ruta. Los atacantes no están atados al MSS como un mínimo; nada evita enviar segmentos mucho más pequeños que el MSS, y esa flexibilidad es exactamente lo que explotan las técnicas de evasión con segmentos diminutos.

¿El clamping de MSS por sí solo puede detener los ataques de segmentación TCP? No. El clamping de MSS establece un límite superior en el tamaño de segmento en el edge de red, pero no evita que un emisor elija transmitir segmentos mucho más pequeños que ese límite. El clamping de MSS debería combinarse con reensamblado completo del stream en los puntos de inspección y detección de anomalías a nivel de conexión para una cobertura efectiva.

¿Cómo causa denegación de servicio el agotamiento de reensamblado de stream TCP? Un atacante envía segmentos fuera de orden o con huecos deliberados a través de muchas conexiones, forzando al objetivo (o a un dispositivo de inspección inline) a hacer buffer de cantidades crecientes de datos fuera de orden mientras espera segmentos faltantes que nunca llegan. A través de suficientes conexiones, esto consume memoria y recursos de tabla de conexión de forma similar a como funcionan otros ataques de agotamiento de estado, pero el recurso específico es el buffer de reorden/reensamblado TCP.

¿Cuál es la diferencia entre segmentos TCP superpuestos y fragmentos IP superpuestos? Los segmentos TCP superpuestos explotan la ambigüedad en cómo un receptor resuelve datos en conflicto en el mismo número de secuencia dentro de un flujo de bytes, causando potencialmente que un dispositivo de inspección y la aplicación de destino procesen contenido distinto. Los fragmentos IP superpuestos explotan la ambigüedad en el offset y longitud de fragmento a nivel de red, causando históricamente colapsos y, hoy, primariamente usados para evasión de filtros sin estado — los dos exploits explotan campos de header distintos y lógica de reensamblado completamente diferente.

¿Cómo se defienden los WAF contra la evasión por segmentación TCP? Los WAF efectivos reconstruyen el request HTTP completo a partir del stream TCP reensamblado antes de aplicar pattern matching de firmas o reglas, en lugar de inspeccionar paquetes o segmentos individuales. Esto asegura que un patrón dividido a través de múltiples segmentos diminutos todavía se detecte una vez que el stream completo está disponible para inspección.

¿La evasión por segmentación TCP sigue siendo relevante dado el uso generalizado de cifrado TLS? Sí, aunque el objetivo cambia. Con TLS, el pattern matching a nivel de payload ocurre después del descifrado en un dispositivo que termina TLS, así que la evasión por segmentación contra ese punto de inspección todavía importa si el dispositivo no reensambla por completo el stream descifrado antes de analizarlo. Los ataques de agotamiento de reensamblado basados en segmentación también siguen siendo completamente relevantes sin importar el cifrado, ya que apuntan al estado de conexión y buffer en lugar del contenido del payload.

¿Cómo puedo detectar ataques de segmentación TCP en mi red? Busca un patrón sostenido de segmentos TCP con tamaños de payload muy por debajo del MSS negociado de la conexión, profundidad elevada de cola fuera de orden (TCPOFOQueue vía nstat -az), y retransmisiones con rangos de secuencia superpuestos que portan datos distintos. Correlacionar estas señales con líneas base de anomalía a nivel de conexión, en lugar de depender del contenido de cualquier paquete individual, da la detección más confiable.

Fuentes

  • IETF. “Transmission Control Protocol.” RFC 793. 1981.
  • IETF. “TCP Extensions for High Performance.” RFC 7323. 2014.
  • Ptacek, Thomas H., y Timothy N. Newsham. “Insertion, Evasion, and Denial of Service: Eluding Network Intrusion Detection.” Secure Networks, Inc. 1998.
  • IETF. “Security Considerations for IP Fragment Filtering.” RFC 1858. 1995.
  • CISA. “Understanding and Responding to Distributed Denial-of-Service Attacks.”
  • 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.