escaneo SYN, pregunta de paquete TCP

2

durante las exploraciones SYN, muchos paquetes pequeños de TCP se envían a varios puertos para determinar qué puertos están abiertos o no. Pero cuando estás transmitiendo medios, ¿no estás recibiendo muchos?

Un tipo de sistema de identificación, el algoritmo de células dendríticas se utiliza para determinar si se están realizando exploraciones SYN en un host. Ahora, una parte (de 7) determina la proporción de paquetes TCP a paquetes totales que se envían a un "host malicioso". ¿Cómo podría esta parte determinar si el host (sería víctima) está sembrando un torrente, o si estaban siendo analizados por SYN por un atacante?

La siguiente parte de este DCA calcula el tamaño promedio de los paquetes y la desviación estándar. El tamaño promedio del paquete se convierte en 40 bytes porque gran parte del tráfico es solo de paquetes de SYN de 40 bytes. Ahora, la razón por la que se incluye la desviación estándar es que muchas de las combinaciones infinitas de tamaños de paquetes de red podrían tener un promedio de 40 bytes, por lo que esto es una garantía. Esto parece bastante seguro, pero no conozco mucha información al respecto, ¿existen otros tipos comunes de paquetes que se puedan enviar en grandes cantidades a una red (a varios puertos o incluso a un solo puerto) que tengan aproximadamente 40 bytes?

    
pregunta Feng Huo 07.04.2013 - 08:51
fuente

2 respuestas

4

Los paquetes SYN son un TCP concept . TCP se trata de abrir y luego usar una conexión , es decir, un túnel bidireccional. Una conexión comienza con handshake de tres vías : un paquete con el indicador SYN del cliente, luego un paquete con los indicadores SYN y ACK del servidor, luego un paquete con el indicador ACK del cliente . Por lo tanto, para una conexión normal, habrá un solo paquete entrante con el indicador SYN, incluso si los gigabytes son datos que luego se intercambian a través de la conexión.

Con UDP , no hay ningún "SYN" en absoluto. "SYN" es un indicador escrito en el encabezado TCP de algunos paquetes. Sin TCP, sin encabezado TCP, por lo tanto no hay SYN.

Para un servidor que "transmite medios", la proporción de paquetes SYN debería ser muy baja: o el protocolo de transmisión usa TCP, en cuyo caso solo hay un SYN entrante por conexión, o el protocolo de transmisión usa UDP, en en cuyo caso no hay SYN en absoluto.

El uso de paquetes tamaño como una forma de detectar paquetes SYN parece un poco estúpido. Un paquete SYN puede reconocerse sin ambigüedades como tal en virtud de que el indicador SYN está escrito en él . Cualquier sistema IDS decente debería poder decodificar encabezados TCP y UDP, ver qué paquete es cuál y mirar el indicador SYN. Consulte el estándar TCP para el formato del encabezado: el indicador SYN es el bit 7º del 14º byte del encabezado . Confiar en el tamaño del paquete, en lugar de simplemente mirar ese bit, huele a incompetencia.

Además, el tamaño del paquete no está garantizado. Un paquete "SYN" es un paquete IP que contiene un encabezado TCP que presenta el indicador SYN. Tanto el encabezado IP como el encabezado TCP pueden contener "opciones", lo que permite cambiar el tamaño a voluntad. Un paquete SYN no tiene necesariamente 40 bytes de longitud; Este es el tamaño habitual. Si los sistemas IDS comienzan a usar el tamaño de paquete como una forma de detectar escaneos, entonces los escáneres pronto aleatorizarán el tamaño de sus paquetes SYN como una contramedida.

    
respondido por el Tom Leek 07.04.2013 - 16:28
fuente
3
  

Pero cuando estás transmitiendo contenido multimedia, ¿no estás recibiendo muchos?

Los medios de transmisión por secuencias son ligeramente diferentes a su conexión TCP habitual, ya que, por lo general, usted transmite los medios a través de UDP. La razón de esto es que el costo de construir en tiempo real la verificación secuencial en los medios de transmisión es, aunque no prohibitivo, potencialmente suficiente para interrumpir la transmisión.

UDP, por otro lado, es un protocolo de "explosión y olvido". Usted envía el segmento actual de los medios de comunicación varias veces y espera que el otro extremo lo haya recibido. Si no fue así, el otro extremo es responsable de encontrar una manera adecuada de manejar esa información faltante: la corrección de errores en el nivel del códec es una posibilidad.

  

... determina la proporción de paquetes TCP a paquetes totales que se envían a un "host malicioso". ¿Cómo podría esta parte determinar si el host (sería víctima) está sembrando un torrente, o si estaban siendo analizados por SYN por un atacante?

Sé muy poco sobre el protocolo de bittorrent, sin embargo, creo que el punto general de que los dos pueden ser indistinguibles es probablemente correcto. De acuerdo con lo que he leído, bittorrent utiliza una serie de pequeñas conexiones TCP para transmitir datos. Si el escaneo de sincronización se limita a un rango pequeño y la siembra de bittorrent a un rango grande, supongo que podría ser difícil diferenciar estadísticamente los dos.

Sin embargo, hay algunas posibilidades. En primer lugar, es probable que el rango de puertos válidos para una semilla bittorrent no implique puertos reservados que puedan ser utilizados por otros servicios. Como resultado de esto, también es probable que utilice un rango de puertos más estrecho en general, mientras que un análisis de sincronización es probable que pruebe todos los puertos que pueda.

Entonces, sospecho que depende de la red, pero todavía es posible diferenciar las dos. De hecho, otra dimensión es que podría analizar los patrones de tráfico en general. Las exploraciones de sincronización no implican transferencia de datos, mientras que Bittorrent sí lo hace, lo que significa que los tiempos entre sincronización / ack serían diferentes

Otra observación: las conexiones de sincronización de bittorrent deben (es de esperar) ser reconocidas, mientras que una exploración de sincronización puede hacer muchas conexiones a puertos cerrados.

  

Esto parece bastante seguro, pero no conozco mucha información al respecto, ¿existen otros tipos comunes de paquetes que se pueden enviar en grandes cantidades a una red (a varios puertos o incluso a un solo puerto) que son aproximadamente 40? bytes?

Es posible. De acuerdo con esta respuesta de stackoverflow el tamaño mínimo para un paquete UDP es de 28 bytes con un datagrama vacío. Si desea confundir las estadísticas, puede enviar solicitudes de udp al host con una carga útil de 12 bytes.

Dicho esto, no conozco ningún protocolo en uso genuino a tiempo completo que tenga exactamente 40 bytes con tal regularidad (es decir, la desviación estándar sería muy pequeña). Sospecho que esta es una medida bastante precisa.

    
respondido por el user2213 07.04.2013 - 15:19
fuente

Lea otras preguntas en las etiquetas