Principios de los ataques de denegación de servicio
SYN Flood es uno de los métodos más populares de DoS (Denial of Service) y DDoS (Distributed Denial Of Service). Es un método que aprovecha fallos en el protocolo TCP para enviar una gran cantidad de datos falsificados. La solicitud de conexión TCP hace que la parte atacada agote sus recursos (la CPU está completamente cargada o la memoria es insuficiente).
El proceso de ataque SYN Flood se denomina protocolo de enlace de tres vías en el protocolo TCP, y el ataque de denegación de servicio SYN Flood se implementa mediante un protocolo de enlace de tres vías.
(1) El atacante envía un mensaje TCP que contiene el indicador SYN al servidor atacado. SYN (Sincronizar) es un mensaje de sincronización. El mensaje de sincronización indicará el puerto utilizado por el cliente y el número de secuencia inicial de la conexión TCP. En este momento, se establece el primer protocolo de enlace con el servidor atacado.
(2) Después de recibir el mensaje SYN del atacante, el servidor víctima devolverá un mensaje SYN ACK, lo que indica que se acepta la solicitud del atacante y el número de secuencia TCP aumenta en uno, ACK (Reconocimiento) es confirmado, estableciendo así un segundo protocolo de enlace con el servidor atacado.
(3) El atacante también devuelve un mensaje de confirmación ACK al servidor víctima. El número de secuencia TCP también aumenta en uno. En este punto, se completa una conexión TCP y se completa el protocolo de enlace de tres vías. .
El principio específico es: en el protocolo de enlace de tres vías de una conexión TCP, suponiendo que un usuario falla o se desconecta repentinamente después de enviar un mensaje SYN al servidor, el servidor no podrá recibir al cliente. después de enviar un mensaje de respuesta SYN ACK del cliente (el tercer protocolo de enlace no se puede completar, en este caso, el servidor generalmente volverá a intentarlo (enviará SYN ACK al cliente nuevamente) y esperará un período de tiempo antes de descartar el mensaje. conexión inacabada. La duración de este período de tiempo se denomina tiempo de espera SYN. En términos generales, este tiempo es del orden de minutos (entre 30 segundos y 2 minutos, no es un gran problema para un usuario tener una excepción y provocar un hilo de tiempo); El servidor debe esperar 1 minuto. Pero si un atacante malintencionado simula esta situación (direcciones IP falsificadas) a gran escala, el servidor consumirá muchos recursos para mantener una lista de semiconexiones muy grande. Incluso un simple guardado y recorrido consumirá mucho tiempo de CPU y memoria, sin mencionar el reintento constante de SYN ACK para las IP en esta lista. De hecho, si la pila TCP/IP del servidor no es lo suficientemente potente, el resultado final suele ser un fallo por desbordamiento de la pila; incluso si el sistema del lado del servidor es lo suficientemente potente, el lado del servidor estará ocupado procesando las solicitudes de conexión TCP falsificadas del atacante. y no tendrá tiempo para prestar atención a las solicitudes normales del cliente (después de todo, la proporción de solicitudes normales del cliente es muy pequeña. En este momento, desde la perspectiva de un cliente normal, el servidor pierde respuesta). El servidor está sujeto a un ataque de inundación SYN (ataque de inundación SYN).
El firewall SYN COOKIE es una extensión de la cookie SYN que se basa en la pila TCP y proporciona protección para el sistema operativo Linux. El firewall de cookies SYN es una característica importante de Linux. Puede utilizar un firewall para proteger su red de ataques de inundación SYN.
El siguiente es el principio del firewall de cookies SYN
servidor firewall del cliente
------ ---------- - -- ---
1. SINC----------- - - - - - - - - - -gt;
2. --- ----------SYN-ACK(cookie)
3 ACK---------- - - - - - - - - -gt. ;
p>4. - - - - - - -SYN---------------gt;
5. - - - - - - - ------------SYN-ACK
6. ----gt ;
7. -----------gt; retransmite el -------gt;
lt;-- ----- ---- conexión lt; -------
1: Se envía un paquete SYN de C a S
2: El firewall desempeña el papel El papel de S aquí para responder Se envía un paquete SYN-ACK con una cookie SYN a C
3: C envía un paquete ACK y luego se establece la conexión entre el firewall y C.
4: El firewall desempeña el papel de C y envía un SYN a S
5: S devuelve un SYN a C
6: El firewall desempeña el papel de función de C y envía un SYN a S El paquete de confirmación ACK se envía a S. En este momento, se establece la conexión entre el firewall y S
7: El firewall reenvía los datos entre C y S
Si el sistema sufre una inundación SYN, entonces el tercer paso no habrá, y ni el firewall ni S recibirán el paquete SYN correspondiente en el primer paso, por lo que repelimos este ataque de inundación SYN. Los atributos estáticos del ataque incluyen principalmente el modo de control de ataque, el modo de comunicación de ataque, el principio de tecnología de ataque, el protocolo de ataque y la capa de protocolo de ataque, etc.
(1) Método de control de ataques
El método de control de ataques está directamente relacionado con el grado de ocultación de la fuente del ataque. Según la forma en que el atacante controla la máquina de ataque, se puede dividir en los siguientes tres niveles: método de control directo (Direct), método de control indirecto (Indirect) y método de control automático (Auto).
Los primeros ataques de denegación de servicio generalmente se llevaban a cabo manualmente, es decir, la determinación del objetivo, el inicio y la terminación del ataque los realizaba el usuario directamente en el host atacante. Este tipo de ataque es relativamente fácil de rastrear. Si el paquete de ataque se puede rastrear con precisión, generalmente se puede encontrar la ubicación del atacante. Debido a las deficiencias del método de control directo y la necesidad del atacante de controlar una gran cantidad de máquinas de ataque para lanzar ataques a mayor escala, los atacantes comenzaron a construir una red de ataque de múltiples capas. La estructura de múltiples capas de la red de ataque plantea grandes dificultades para el seguimiento de este tipo de ataque. Después de que la víctima rastrea la máquina atacante, aún necesita continuar rastreando el controlador desde la máquina atacante si el atacante llega a la última capa. controlador, cuando hay varios trampolines, se requieren múltiples seguimientos para finalmente encontrar al atacante. Este seguimiento no solo requiere operación manual, lleva mucho tiempo y también tiene altos requisitos técnicos. Este modo de ataque es actualmente el modo de ataque más utilizado. El método de ataque automático consiste en preestablecer el modo de ataque en el gusano o programa de ataque lanzado, de modo que pueda atacar al objetivo especificado en un momento específico. En este tipo de ataque, a menudo es difícil rastrear al atacante desde la máquina atacante, pero este tipo de ataque de control también tiene altos requisitos técnicos. Los ataques del gusano Mydoom a los sitios web de SCO y de Microsoft pertenecen al tercer tipo [TA04-028A].
(2) Método de comunicación del ataque
En un ataque de control indirecto, se pueden usar una variedad de métodos de comunicación entre el controlador y la máquina atacante, y el método de comunicación usado entre ellos también afecta Uno de los factores importantes en el seguimiento de la dificultad. Los métodos de comunicación de ataque se pueden dividir en tres métodos, a saber: método de comunicación bidireccional (bi), método de comunicación unidireccional (mono) y método de comunicación indirecta (indirección).
El método de comunicación bidireccional significa que el paquete de control recibido por el extremo del ataque contiene la dirección IP real del controlador. Por ejemplo, cuando el controlador usa TCP para conectarse a la máquina de ataque, el método de comunicación. es comunicación bidireccional. Este método de comunicación facilita encontrar el controlador de nivel superior del avión atacante.
La comunicación unidireccional significa que cuando un atacante envía instrucciones a la máquina atacante, el paquete de datos no contiene la información de la dirección real del remitente. Por ejemplo, se utiliza un paquete UDP con una dirección IP falsificada para enviar. instrucciones a la máquina atacante. Es difícil para este tipo de ataque encontrar el controlador de la máquina atacante. Sólo a través de métodos de seguimiento de IP, como el marcado de paquetes, es posible encontrar la dirección real de la máquina que envía instrucciones a la máquina atacante. Sin embargo, este método de comunicación tiene varias limitaciones en el control, por ejemplo, es difícil para el controlador obtener información y el estado de la aeronave atacante.
El método de comunicación indirecta es un método de comunicación bidireccional intercambiado a través de un tercero. Este método de comunicación tiene las características de fuerte ocultamiento, dificultad de seguimiento, monitoreo y filtrado, etc., y es difícil de usar. auditar y rastrear la máquina atacante. A menudo sólo se puede rastrear hasta un servidor público utilizado como intermediario de comunicación y es difícil continuar. Este método de comunicación se ha descubierto principalmente a través de IRC (Internet Relay Chat) [José Nazario]. A partir de la herramienta de ataque DDoS llamada Trinity que apareció en agosto de 2000, se han adoptado una variedad de herramientas de ataque DDoS y gusanos. En una red títere basada en IRC, varios atacantes se conectan a un servidor IRC en Internet y envían instrucciones al servidor títere a través del programa de chat del servidor.
(3) Principio de ataque
Los principios de ataque DoS se dividen principalmente en dos tipos, a saber: ataque semántico (Semantic) y ataque de fuerza bruta (Brute).
Los ataques semánticos se refieren a ataques de denegación de servicio en el host de destino mediante la explotación de defectos y vulnerabilidades en la implementación del sistema de destino. Este ataque a menudo no requiere que el atacante tenga un gran ancho de banda de ataque y, a veces, no se requiere que el atacante tenga un gran ancho de banda. Solo necesita enviar un paquete de datos para lograr el propósito del ataque. Para evitar este tipo de ataque, solo necesita reparar los defectos en el sistema. Los ataques de fuerza bruta no requieren que el sistema de destino tenga vulnerabilidades o defectos, sino que solo se basan en enviar una cantidad de solicitudes de servicio que exceden las capacidades de servicio del sistema de destino para lograr el propósito del ataque, lo que comúnmente se conoce como ataque de tormenta. Por lo tanto, la defensa contra este tipo de ataque debe depender de la ayuda del enrutador ascendente de la víctima para filtrar o desviar los datos del ataque. Algunos métodos de ataque tienen las características de ataques semánticos y de fuerza bruta. Por ejemplo, el ataque de tormenta SYN aprovecha las fallas del propio protocolo TCP, pero aún requiere que el atacante envíe una gran cantidad de solicitudes de ataque para defenderse. ataque, los usuarios no solo necesitan mejorar el sistema en sí, sino que también es necesario aumentar las capacidades de servicio de los recursos. También existen algunos métodos de ataque que explotan fallas de diseño del sistema para generar datos de comunicación con mayor ancho de banda que el atacante para llevar a cabo ataques de fuerza bruta, como ataques de solicitud de DNS y ataques Smurf. Consulte la Sección 4.2.3 y la literatura [IN-2000-. 04] y [CA-1998-01]. Estos métodos de ataque pueden eliminar o reducir el daño después de mejorar el protocolo y el sistema, por lo que pueden clasificarse como ataques semánticos.
(4) Capa de protocolo de ataque
La capa de protocolo TCP/IP donde se ubica el ataque se puede dividir en las siguientes cuatro categorías: capa de enlace de datos, capa de red, capa de transporte y capa de aplicación.
Los ataques de denegación de servicio en la capa de enlace de datos [Convery] [Fischbach01][Fischbach02] están restringidos por el propio protocolo y sólo pueden ocurrir dentro de la LAN. Este tipo de ataque es relativamente raro.
Los ataques a la capa IP están dirigidos principalmente a vulnerabilidades que ocurren cuando el sistema de destino procesa paquetes IP, como los ataques de fragmentación de IP [Anderson01]. Los ataques a la capa de transporte ocurren más en la práctica, como tormentas SYN, tormentas ACK, etc. Hay muchos tipos de ataques, y también hay muchos ataques dirigidos a la capa de aplicación. Muchos ataques de paquetes venenosos que explotan las vulnerabilidades de las aplicaciones (como los ataques de desbordamiento del búfer) caen en este tipo.
(5) Protocolo de ataque
El protocolo específico de más alto nivel involucrado en el ataque, como SMTP, ICMP, UDP, HTTP, etc. Cuanto mayor sea la capa de protocolo involucrada en el ataque, mayores serán los recursos informáticos necesarios por la víctima para analizar el paquete de ataque. Los atributos dinámicos del ataque incluyen principalmente el tipo de dirección de origen del ataque, el modo de generación de datos del paquete de ataque y el tipo de objetivo del ataque.
(1) Tipo de dirección de origen del ataque
Los tipos de dirección de origen utilizados por los atacantes en los paquetes de ataque se pueden dividir en tres tipos: dirección real (True), dirección legal falsificada (Forge Legal). ) ) y falsificar direcciones ilegales (Forge Illegal).
El atacante puede utilizar una dirección IP legítima o una dirección IP falsificada durante el ataque. Las direcciones IP falsificadas pueden facilitar que los atacantes evadan el seguimiento y dificultar que las víctimas identifiquen y filtren los paquetes de ataque. Sin embargo, algunos tipos de ataques deben utilizar direcciones IP reales, como los ataques de agotamiento de la conexión. La proporción de ataques que utilizan direcciones IP reales ha disminuido gradualmente en los últimos años porque son fáciles de rastrear y defender. Los ataques que utilizan direcciones IP falsificadas se dividen en dos situaciones: una es utilizar una dirección IP que ya existe en la red. Este método de falsificación es también el tipo de dirección de origen necesaria para los ataques de reflexión; la otra es utilizar una dirección IP que ya existe. Aún no se ha asignado o está en la red. Direcciones IP reservadas (por ejemplo, 192.168.0.0/16, 172.16.0.0/12, etc. están reservadas para redes internas [RFC1918]).
(2) Modo de generación de datos del paquete de ataque
Hay cinco modos principales de información de datos incluidos en el paquete de ataque: sin necesidad de generar datos (Ninguno), modo de generación unificada (Único) , Modo de generación aleatoria (Aleatorio), modo de diccionario (Diccionario) y modo de función de generación (Función).
Cuando un atacante implementa un ataque de denegación de servicio de tormenta, el atacante necesita enviar una gran cantidad de paquetes de datos al host de destino. La carga útil de información de datos contenida en estos paquetes de datos puede tener múltiples modos de generación. Diferentes modos de generación tienen un gran impacto en la capacidad de la víctima para detectar y filtrar paquetes de ataque. Algunos paquetes de ataque no necesitan contener una carga útil o solo necesitan contener una carga útil fija adecuada, como los ataques de tormenta SYN y los ataques de tormenta ACK. Las cargas útiles en los paquetes de datos enviados por estos dos ataques están vacías, por lo que este ataque no puede pasar Cargas. son analizados. Pero para otros tipos de paquetes de ataque, deben transportar las cargas útiles correspondientes.
Hay cuatro formas de generar cargas útiles de paquetes de ataque: la primera es enviar paquetes con la misma carga útil. Dichos paquetes tienen características obvias y se detectan fácilmente. El segundo es enviar paquetes con cargas útiles generadas aleatoriamente. Aunque dichas cargas útiles generadas aleatoriamente son difíciles de detectar mediante el reconocimiento de patrones, las cargas útiles generadas aleatoriamente pueden generar una gran cantidad de paquetes sin importancia práctica en algunas aplicaciones. Estos paquetes sin sentido también se pueden filtrar fácilmente. pero los atacantes aún pueden diseñar cuidadosamente la generación aleatoria de cargas útiles para que la víctima solo pueda identificar los paquetes de ataque analizando el protocolo de la capa de aplicación, lo que aumenta la dificultad del filtrado. La tercera forma es que el atacante complete el paquete de ataque uno a la vez a partir de un conjunto de varias cargas útiles significativas de acuerdo con una regla determinada. De esta manera es más fácil detectar cuando el tamaño del conjunto es pequeño. El último método consiste en generar cargas diferentes cada vez de acuerdo con una regla determinada. Este método tiene diferentes dificultades de detección según la función de generación.
(3) Tipos de objetivos de ataque
Los tipos de objetivos de ataque se pueden dividir en las siguientes seis categorías: Aplicación (Aplicación), Sistema (Sistema), Recursos críticos de red (críticos), Red (Red), infraestructura de red (Infraestructura) e Internet (Internet).
Los archivos adjuntos contra aplicaciones específicas son un método de ataque más común, entre los cuales los más comunes son los ataques de paquetes venenosos. Incluyen ataques de denegación de servicio contra programas específicos, explotación de vulnerabilidades de aplicaciones y ataques contra un tipo de. Aplicación, ataque de denegación de servicio mediante agotamiento de la conexión. Los ataques contra el sistema también son muy comunes, como tormentas SYN, tormentas UDP [CA-1996-01] y ataques de paquetes venenosos que pueden provocar fallas y reinicios del sistema, lo que puede dificultar que todo el sistema proporcione servicios. Los ataques contra recursos clave de la red incluyen ataques a DNS y enrutadores específicos. Los ataques orientados a la red se refieren a ataques dirigidos a todos los hosts de toda la LAN. Los ataques a la infraestructura de la red requieren que los atacantes posean considerables recursos y tecnología. Los objetivos de los ataques son la infraestructura de la red, como los servidores de nombres de dominio raíz, los enrutadores centrales y los grandes servidores de certificados. Aunque estos ataques ocurren sólo en raras ocasiones, una vez que el ataque tiene éxito. El daño causado es inconmensurable [Naraine02]. Los ataques en Internet se refieren a ataques iniciados a través de gusanos y virus que se propagan por Internet y provocan denegación de servicio a una gran cantidad de hosts y redes. Las pérdidas de dichos ataques son particularmente graves.