stringtranslate.com

Ataque de fragmentación de IP

Los ataques de fragmentación de IP son un tipo de ataque de seguridad informática basado en cómo el Protocolo de Internet (IP) requiere que se transmitan y procesen los datos. En concreto, invoca la fragmentación de IP , un proceso utilizado para dividir los mensajes (la unidad de datos de servicio (SDU); normalmente un paquete ) de una capa de una red en múltiples cargas útiles más pequeñas que pueden caber dentro de la unidad de datos de protocolo (PDU) de la capa inferior. Cada enlace de red tiene un tamaño máximo de mensajes que se pueden transmitir, denominado unidad máxima de transmisión (MTU). Si la SDU más los metadatos añadidos en la capa de enlace superan la MTU, la SDU debe fragmentarse. Los ataques de fragmentación de IP explotan este proceso como un vector de ataque .

Parte del conjunto TCP/IP es el Protocolo de Internet (IP), que reside en la capa de Internet de este modelo. IP es responsable de la transmisión de paquetes entre los puntos finales de la red. IP incluye algunas características que proporcionan medidas básicas de tolerancia a fallos (tiempo de vida, suma de comprobación), priorización del tráfico (tipo de servicio) y compatibilidad con la fragmentación de paquetes más grandes en varios paquetes más pequeños (campo de identificación, desplazamiento de fragmentos). La compatibilidad con la fragmentación de paquetes más grandes proporciona un protocolo que permite a los enrutadores fragmentar un paquete en paquetes más pequeños cuando el paquete original es demasiado grande para los marcos de enlace de datos que lo respaldan. Los ataques de fragmentación de IP utilizan el protocolo de fragmentación dentro de IP como un vector de ataque.

Según [Kurose 2013], en un tipo de ataque de fragmentación de IP, "el atacante envía un flujo de pequeños fragmentos al host de destino, ninguno de los cuales tiene un desplazamiento de cero. El objetivo puede colapsar mientras intenta reconstruir datagramas a partir de los paquetes degenerados". [1] Otro ataque implica el envío de fragmentos superpuestos con desplazamientos no alineados, lo que puede hacer que los sistemas operativos vulnerables no sepan qué hacer, lo que provoca que algunos se bloqueen. [1]

Proceso

El algoritmo de fragmentación en IPv4.

Los paquetes IP se encapsulan en tramas de enlace de datos y, por lo tanto, la MTU del enlace afecta a los paquetes IP más grandes y los obliga a dividirse en partes iguales o más pequeñas que el tamaño de la MTU.

Esto se puede lograr mediante varios enfoques:

En el encabezado IP se utilizan tres campos para implementar la fragmentación y el reensamblado: los campos "Identificación", "Indicadores" y "Desplazamiento de fragmentos".

Banderas:

Un campo de 3 bits que indica si el paquete es parte de un marco de datos fragmentado o no.
Bit 0: reservado, debe ser cero (a menos que el paquete cumpla con RFC 3514)
Bit 1: (AF) 0 = Puede fragmentar, 1 = No fragmentar.
Bit 2: (AF) 0 = Último fragmento, 1 = Más fragmentos.

El desplazamiento del fragmento especifica la posición del fragmento dentro del paquete original, medida en unidades de 8 bytes.

En consecuencia, cada fragmento, excepto el último, debe contener un múltiplo de 8 bytes de datos. Es obvio que el desplazamiento de fragmento puede contener 8192 (2^13) unidades, pero el paquete no puede tener 8192 * 8 = 65.536 bytes de datos porque el campo "Longitud total" del encabezado IP registra el tamaño total, incluidos el encabezado y los datos. Un encabezado IP tiene una longitud de al menos 20 bytes, por lo que el valor máximo de "Desplazamiento de fragmento" está restringido a 8189, lo que deja espacio para 3 bytes en el último fragmento.

Debido a que una red IP puede no tener conexión, los fragmentos de un paquete pueden intercalarse con los de otro en el destino. El "campo de identificación" identifica de forma única los fragmentos de un paquete en particular .

El sistema de origen establece el campo "Identificación" en cada paquete con un valor único para todos los paquetes que utilizan la misma dirección IP de origen, la misma dirección IP de destino y los mismos valores de "Protocolo" durante la vida útil del paquete en Internet. De esta manera, el destino puede distinguir qué fragmentos entrantes pertenecen a un paquete único y almacenarlos en búfer hasta que se reciba el último fragmento. El último fragmento establece el bit "Más fragmentos" en 0 y esto le indica a la estación receptora que comience a reensamblar los datos si se han recibido todos los fragmentos.

El siguiente es un ejemplo de fragmentación de la vida real:

Lo siguiente se obtuvo utilizando el analizador de protocolos Ethereal para capturar paquetes de solicitud de eco ICMP . Para simularlo, abra una terminal y escriba ping ip_dest -n 1 -l 65000.

Los resultados son los siguientes:

 No. Hora Origen Destino Protocolo Información 1 0.000000 87.247.163.96 66.94.234.13 Solicitud de eco ICMP (ping) 2 0.000000 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=1480) 3 0.002929 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=2960) 4 6.111328 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=4440) 5 6.123046 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=5920) 6 6.130859 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=7400) 7 6.170898 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=8880) 8 6.214843 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=10360) 9 6.239257 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=11840) 10 6.287109 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=13320) 11 6.302734 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=14800) 12 6.327148 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=16280) 13 6.371093 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=17760) 14 6.395507 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=19240) 15 6.434570 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=20720) 16 6.455078 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=22200) 17 6.531250 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=23680) 18 6.550781 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=25160) 19 6.575195 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=26640) 20 6.615234 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=28120) 21 6.634765 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=29600) 22 6.659179 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=31080) 23 6.682617 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=32560) 24 6.699218 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=34040) 25 6.743164 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=35520) 26 6.766601 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=37000) 27 6.783203 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=38480) 28 6.806640 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=39960) 29 6.831054 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=41440) 30 6.850586 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=42920) 31 6.899414 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=44400) 32 6.915039 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=45880) 33 6.939453 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=47360) 34 6.958984 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=48840) 35 6.983398 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=50320) 36 7.023437 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=51800) 37 7.046875 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=53280) 38 7.067382 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=54760) 39 7.090820 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=56240) 40 7.130859 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=57720) 41 7.151367 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=59200) 42 7.174804 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=60680) 43 7.199218 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=62160) 44 7.214843 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=63640) 45 7.258789 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=65120)Los detalles del primer paquete: No. Hora Origen Destino Protocolo Información 1 0.000000 87.247.163.96 66.94.234.13 Solicitud de eco ICMP (ping)Cuadro 1 (1514 bytes en el cable, 1514 bytes capturados)Ethernet II, Origen: OmronTat_00:00:00 (00:00:0a:00:00:00), Horario de verano: 40:0f:20:00:0c:00 (40:0f:20:00:0c:00)Protocolo de Internet, origen: 87.247.163.96 (87.247.163.96), horario de verano: 66.94.234.13 (66.94.234.13)Protocolo de mensajes de control de Internet Tipo: 8 (solicitud de eco (ping)) Código: 0 Suma de comprobación: 0x6b7d Identificador: 0x0600 Número de secuencia: 0x0200 Datos (1472 bytes)Los detalles del segundo paquete: No. Hora Origen Destino Protocolo Información 2 0.000000 87.247.163.96 66.94.234.13 IP Protocolo IP fragmentado (proto=ICMP 0x01, off=1480)Cuadro 2 (1514 bytes en el cable, 1514 bytes capturados)Ethernet II, Origen: OmronTat_00:00:00 (00:00:0a:00:00:00), Horario de verano: 40:0f:20:00:0c:00 (40:0f:20:00:0c:00)Protocolo de Internet, origen: 87.247.163.96 (87.247.163.96), horario de verano: 66.94.234.13 (66.94.234.13)Datos (1480 bytes)

Tenga en cuenta que solo el primer fragmento contiene el encabezado ICMP y todos los fragmentos restantes se generan sin el encabezado ICMP.

Dos puntos importantes aquí:

Hazañas

Fragmento de IP superpuesto
El exploit de fragmentos de IP superpuestos ocurre cuando dos fragmentos contenidos dentro del mismo paquete IP tienen desplazamientos que indican que se superponen entre sí en cuanto a la posición dentro del paquete . Esto podría significar que el fragmento A está siendo sobrescrito completamente por el fragmento B, o que el fragmento A está siendo sobrescrito parcialmente por el fragmento B. Algunos sistemas operativos no manejan adecuadamente los fragmentos que se superponen de esta manera y pueden generar excepciones o comportarse de otras maneras no deseadas al recibir fragmentos superpuestos. Esta es la base del ataque teardrop . Los fragmentos superpuestos también pueden usarse en un intento de eludir los sistemas de detección de intrusiones. En este exploit, parte de un ataque se envía en fragmentos junto con datos aleatorios adicionales; los fragmentos futuros pueden sobrescribir los datos aleatorios con el resto del ataque. Si el paquete completo no se vuelve a ensamblar correctamente en el IDS, el ataque no será detectado.
El búfer de fragmentación de IP está lleno
La explotación completa del buffer de fragmentación de IP ocurre cuando se detecta una cantidad excesiva de tráfico fragmentado incompleto en la red protegida. Esto podría deberse a una cantidad excesiva de paquetes fragmentados incompletos , una gran cantidad de fragmentos para paquetes individuales o una combinación de cantidad de paquetes incompletos y tamaño/número de fragmentos en cada paquete . Es muy probable que este tipo de tráfico sea un intento de eludir las medidas de seguridad o los sistemas de detección de intrusiones mediante la fragmentación intencional de la actividad de ataque.
Desbordamiento de fragmentos de IP
El exploit de desbordamiento de fragmentos de IP se produce cuando un paquete fragmentado reensamblado supera la longitud de datos IP declarada o la longitud máxima del paquete . Por definición, ningún paquete IP debe tener más de 65 535 bytes. Los sistemas que intentan procesar estos paquetes grandes pueden bloquearse y pueden ser un indicio de un intento de denegación de servicio.
Fragmento de IP con demasiados paquetes
El exploit "Too Many Packets" se identifica por una cantidad excesiva de paquetes fragmentados incompletos detectados en la red. Esto suele ser un ataque de denegación de servicio o un intento de eludir las medidas de seguridad. Un ejemplo de "Too Many Packets", "Incomplete Packet" y "Fragment Too Small" es el ataque Rose. [2]
Fragmento de IP de paquete incompleto
Esta vulnerabilidad se produce cuando un paquete no se puede volver a ensamblar por completo debido a la falta de datos. Esto puede indicar un ataque de denegación de servicio o un intento de burlar las políticas de seguridad del filtro de paquetes.
Fragmento de IP demasiado pequeño
Si un fragmento de IP es demasiado pequeño, esto indica que es probable que el fragmento haya sido creado intencionalmente. Cualquier fragmento que no sea el fragmento final y que tenga menos de 400 bytes podría considerarse demasiado pequeño. Los fragmentos pequeños pueden usarse en ataques de denegación de servicio o en un intento de eludir las medidas de seguridad o la detección.

Fragmentación para la evasión

Los equipos de infraestructura de red, como enrutadores , balanceadores de carga , cortafuegos e IDS, tienen una visibilidad inconsistente de los paquetes fragmentados. Por ejemplo, un dispositivo puede someter el fragmento inicial a una inspección y auditoría rigurosas, pero podría permitir que todos los fragmentos adicionales pasen sin control. Algunos ataques pueden usar este hecho para evadir la detección colocando datos incriminatorios de carga útil en fragmentos. Los dispositivos que funcionan en modo proxy "completo" generalmente no son susceptibles a este subterfugio.

Referencias

  1. ^ ab Kurose, James F. (2013). Redes informáticas: un enfoque descendente . Ross, Keith W., 1956- (6.ª ed.). Boston: Pearson. pág. 338. ISBN 9780132856201.OCLC 769141382  .
  2. ^ Hollis, Ken. "El ataque de fragmentación de Rose explicado". Archivado desde el original el 24 de febrero de 2012. Consultado el 25 de noviembre de 2013 .

Enlaces externos