Red de conocimiento informático - Conocimiento informático - Cómo prevenir ataques TCP SYN Flood

Cómo prevenir ataques TCP SYN Flood

TCP SYN Principio de ataque de inundación mecanismo/detección y métodos de prevención y defensa Los atacantes de hoy están en todas partes. Para algunos métodos de ataque, muchos expertos lo ven a los ojos y no toman medidas preventivas importantes. Además de cambiar el puerto, cambiar la dirección IP, cambiar el nombre de dominio… ¿qué más se puede hacer? ¿Qué más se puede hacer? Este artículo presenta el principio de detección/mecanismo de ataque TCP SYN Flood, así como los métodos de prevención y defensa, espero que pueda darles a todos una idea. Mecanismo de ataque TCP SYN Flood El cliente solicita una conexión enviando un segmento de datos con el indicador SYN configurado en el encabezado TCP al servidor. Normalmente, el servidor devuelve un paquete posicionado SYN/ACK al cliente según la dirección de origen en el encabezado IP, y el cliente devuelve un ACK al servidor para completar una conexión completa (Figura 1). Cuando ocurre un ataque, la dirección IP de origen del cliente se falsifica y los mecanismos de enrutamiento de IP actuales solo verifican la dirección IP de destino y la reenvían. Una vez que el paquete de datos IP llega al host de destino, regresa al host de destino a través de una ruta que no se puede alcanzar mediante enrutamiento. Por lo tanto, el host de destino no puede establecer una conexión a través del protocolo de enlace TCP de tres vías. El host de destino no puede establecer una conexión mediante el protocolo de enlace TCP de tres vías. Al mismo tiempo, las nuevas solicitudes de conexión se rechazan porque la cola de caché TCP está llena. El host de destino continúa intentándolo hasta que se agota el tiempo de espera (aproximadamente 75 segundos). Este es el mecanismo básico de este tipo de ataque. El host atacante puede implementar el ataque con éxito enviando una pequeña cantidad de solicitudes de conexión SYN encubiertas e inalcanzables al puerto de servicio TCP del host de destino, llenando así la cola de caché TCP del host de destino. En las operaciones reales, esos ataques suelen ser sostenidos y de alta velocidad. Figura-3 El ataque SYN Flood requiere el uso de direcciones IP de origen enmascaradas e inalcanzables, porque el atacante no quiere que ningún host de terceros reciba SYN/ACK del sistema de destino, y el host de terceros devolverá RST (si el host no puede determinar cómo manejar la conexión, la conexión se restablece), evitando que el ataque continúe. Figura-4 Suplantación de IP Figura-4 Suplantación de IP Se puede ver que este ataque explota las debilidades del protocolo TCP/IP existente, y el atacante puede ocultarse efectivamente mediante la suplantación de IP. Los atacantes pueden ocultarse eficazmente mediante la suplantación de IP. Sin embargo, para el host de destino, es imposible determinar el verdadero origen del ataque. Pero el anfitrión de destino no puede determinar el verdadero origen del ataque y no puede tomar medidas defensivas eficaces. Detección y defensa de TCP SYN Flood 1. Análisis Del análisis anterior, se puede ver que el ataque remoto de denegación de servicio TCP SYN Flood tiene las siguientes características: apunta a los enlaces débiles del protocolo TCP/IP al lanzar el ataque; solo una pequeña cantidad de tráfico de datos puede producir efectos obvios: no se puede localizar la fuente del ataque; el servidor no puede distinguir si la solicitud de conexión TCP es legítima; No se puede localizar el origen del ataque. En términos generales, puede determinar si el sistema ha sufrido un ataque TCP SYN Flood mediante unos sencillos pasos de inspección. 1. El servidor no puede proporcionar servicios TCP normales. La solicitud de conexión fue rechazada o se agotó el tiempo de espera; 2. Verifique el sistema mediante el comando netstat -an y encontró una gran cantidad de estados de conexión SYN_RECV.

3. Prevención ¿Cómo realizar una prevención eficaz? 1. TCP Wrapper El uso de TCP Wrapper (solo los sistemas tipo Unix admiten esta función, los sistemas NT son inferiores) puede ser útil en algunas situaciones limitadas, como cuando el servidor solo procesa solicitudes de conexión TCP de fuentes IP limitadas y otras conexiones de fuentes no especificadas. La solicitud fue denegada. Esto no es adecuado cuando es necesario prestar servicios al público. Además, los atacantes pueden atacar directamente los servicios TCP protegidos por TCP Wrapper mediante suplantación de IP. Es más, los atacantes pueden disfrazarse de la dirección del propio servidor. 2. Aumentar la capacidad de trabajo pendiente de TCP Aumentar la capacidad de trabajo pendiente de TCP es una solución temporal en lugar de una solución permanente. Por un lado, ocupa más memoria del sistema y, por otro lado, prolonga el tiempo que tarda TCP en procesar la cola de caché. Mientras el atacante continúe realizando SYN Flood, puede lograr el propósito de denegar el servicio.

Acceso del ISP Cuando todos los ISP procesan paquetes IP que ingresan a la red troncal en la frontera, verificarán si la dirección de origen es legal. Si no está dentro del rango de direcciones IP de origen especificado, se considerará una suplantación de IP y se descartará. En un entorno real, el alcance de implementación de esta solución es demasiado amplio. Este es un problema social, no un problema técnico. Detección y prevención de inundaciones TCP SYN 1. Monitoreo de conexiones TCP (interceptación de TCP) Para prevenir eficazmente los ataques de inundaciones TCP SYN y al mismo tiempo garantizar que los usuarios normalmente puedan establecer conexiones legales con el servidor a través de redes lentas, es necesario minimizar la acumulación de TCP del servidor. tiempo de limpieza. La mayoría de los firewalls funcionan en modo de monitoreo de conexión TCP. La mayoría de los firewalls utilizan el modo de monitoreo de conexión TCP. 1. El firewall recibe la solicitud de conexión SYN del cliente Z y establece una entrada de monitoreo local para la conexión; 2. El firewall reenvía la solicitud de conexión al servidor A. 3. El servidor A responde a la solicitud de conexión y devuelve SYN/ACK; actualiza los elementos de la tabla de monitoreo relacionados con la conexión; 4. El firewall reenvía SYN/ACK al cliente Z. 5. El firewall envía ACK al servidor A, y el servidor envía el trabajo pendiente de TCP al servidor A y elimina el trabajo pendiente de TCP de la conexión; en el servidor A. entrada de la tabla; 6. En este momento, dependiendo de si la solicitud de conexión es legal, pueden ocurrir las dos situaciones siguientes: a. Si la solicitud de conexión del usuario Z es legal, el firewall reenviará la conexión al cliente Z; Si el usuario Z Si la solicitud de conexión del usuario Z es ilegal, el firewall reenviará la conexión al cliente Z. Si la solicitud de conexión del usuario Z es ilegal, el firewall reenviará la conexión al cliente Z; La solicitud de conexión del usuario Z es ilegal. Ilegal, el firewall reenviará la conexión al cliente Z. Si la solicitud de conexión del usuario Z es legal, el firewall reenviará el ACK al servidor A y el servidor A ignorará el ACK porque se ha establecido una conexión TCP completa. Si la solicitud de conexión del usuario Z es ilegal, el firewall lo hará. reenviado al servidor A, y el servidor A ignorará el ACK porque se ha establecido una conexión TCP completa c. Si la solicitud de conexión del usuario Z es ilegal, el firewall reenviará el ACK al servidor A, y el servidor A ignorará el ACK; Se ha establecido una conexión TCP completa. Si la solicitud de conexión del usuario Z es ilegal, el firewall reenviará la solicitud de conexión del usuario Z al servidor y envía RST para desconectarse. 7. Comienza el proceso de transferencia TCP. Se puede ver que este método tiene dos limitaciones: 1. Independientemente de si la solicitud de conexión legal se reenvía directamente al servidor A, primero debe juzgarse como una conexión ilegal (no se devuelve ningún ACK) y luego se tomarán medidas para terminar la conexión, lo que al final desperdicia tiempo del servidor. 2. El firewall crea entradas localmente para monitorear las conexiones (similar a la tabla de trabajos pendientes de TCP), que pueden ser explotadas por los atacantes. Puerta de enlace de defensa Skynet DoS El firewall Skynet adopta un método de monitoreo de conexión TCP optimizado. De esta manera, al procesar una solicitud de conexión TCP, el cliente Z primero se aísla del servidor A y luego se juzga si la solicitud de conexión es legal. 1. El firewall recibe la solicitud de conexión SYN del cliente Z; 2. El firewall devuelve un SYN/ACK especialmente procesado al cliente Z para verificar la legitimidad de la conexión. 3. En este momento, dependiendo de si la solicitud de conexión es legal; Puede aparecer un mensaje en una de las dos situaciones siguientes: a. El firewall recibe la respuesta ACK del cliente Z y la solicitud de conexión es legal.

Vaya al paso 4 para continuar; b. El firewall no recibe la respuesta ACK del cliente Z y la solicitud de conexión es ilegal y no será procesada. 4. El firewall establece una entrada de monitoreo orientada a la conexión localmente y registra la solicitud de conexión; -SYN relacionado se envía al servidor A; 5. El firewall recibe la respuesta SYN/ACK del servidor A; 6. El firewall devuelve un ACK, establece un firewall completo y envía ACK al cliente Z, indicando que el proceso de transmisión TCP puede comenzar. . Entre ellos, en el proceso de los pasos 2/3/4/7, se realizan las siguientes operaciones dentro del firewall: 1. En el paso 2, para verificar la legitimidad de la conexión, el firewall realiza un procesamiento especial en el SYN devuelto. /ACK y le indica al cliente que el Cliente Z no transmite datos válidos por el momento. 2. En el paso 3, el firewall recibe el ACK del cliente Z y verifica su legitimidad; 3. En el paso 4, el firewall crea localmente una entrada de monitoreo para la conexión y envía el SYN relacionado con la conexión al servidor A. 4. En el paso 7, el firewall transmite los datos TCP con la entrada de monitoreo Comparar, compare la secuencia. número y ventana, y ajuste el número de secuencia y la ventana para que coincidan. Inicie la transferencia de datos TCP. Aquí, el firewall Skynet proporciona la capacidad de más de 300.000 conexiones simultáneas a través de algoritmos eficientes (hashing de 64 K bits), lo que proporciona una sólida garantía para una transmisión de datos eficiente y confiable.

Espero que te ayude, por favor acepta.