Vous êtes sur la page 1sur 13

Seguridad Informática

Modulo 2 – Clase 4
Índice
Vigilancia de Red - Sniffering de paquetes...............................................2
Paquete de red.........................................................................................3
Paquete TCP..........................................................................................3
Paquete de IP........................................................................................8
Anatomía del paquete:..........................................................................10
Topología de redes y packet sniffers......................................................11
Utilidad...............................................................................................12

p. 1
Vigilancia de Red - Sniffering de paquetes
En informática, un packet sniffer (olfateador) es un programa de captura de los
paquetes de red.

Es algo común que, por topología de red y necesidad material, el medio de


transmisión (cable coaxial, UTP, fibra óptica etc.) sea compartido por varias
computadoras y dispositivos de red, lo que hace posible que un computador
capture los paquetes de información no destinados a él.

Para conseguir esto el sniffer pone la tarjeta de red o NIC en un estado conocido
como "modo promiscuo" en el cual en la capa de enlace de datos (niveles OSI)
no son descartados los paquetes no destinadis a la MAC address de la tarjeta; de
esta manera se puede capturar (sniff, olfatear) todo el tráfico que viaja por la
red.

Los packet sniffers tienen diversos usos como monitorear redes para detectar y
analizar fallos o ingeniería inversa de protocolos de red. También es habitual su
uso para fines maliciosos, como robar contraseñas, interceptar mensajes de
correo electrónico, espiar conversaciones de chat, etc.

p. 2
Paquete de red
Reciben este nombre cada uno de los bloques en que se divide, en el nivel de
Red, la información a enviar. Por debajo del nivel de red se habla de trama de
red, aunque el concepto es análogo.

En todo sistema de comunicaciones resulta interesante dividir la información a


enviar en bloques de un tamaño máximo conocido. Esto simplifica el control de la
comunicación, las comprobaciones de errores, la gestión de los equipos de
encaminamiento (routers), etc.

Estructura

Al igual que las tramas, los paquetes pueden estar formados por una cabecera,
una parte de datos y una cola. En la cabecera estarán los campos que pueda
necesitar el protocolo de nivel de red, en la cola, si la hubiere, se ubica
normalmente algún mecanismo de comprobación de errores.

Dependiendo de sea una red de datagramas o de circuitos virtuales (CV), la


cabecera del paquete contendrá la dirección de las estaciones de origen y destino
o el identificador del CV. En las redes de datagramas no suele haber cola, porque
no se comprueban errores, quedando esta tarea para el nivel de transporte.

Paquete TCP

Las aplicaciones envían flujos de bytes a la capa TCP para ser enviados a la red.
TCP divide el flujo de bytes llegado de la aplicación en segmentos de tamaño
apropiado (normalmente esta limitación viene impuesta por la unidad máxima de
transferencia (MTU) del nivel de enlace de datos de la red a la que la entidad
está asociada) y le añade sus cabeceras.

p. 3
Entonces, TCP pasa el segmento resultante a la capa IP, donde a través de la
red, llega a la capa TCP de la entidad destino. TCP comprueba que ningún
segmento se ha perdido dando a cada uno un número de secuencia, que es
también usado para asegurarse de que los paquetes han llegado a la entidad
destino en el orden correcto.

TCP devuelve un asentimiento por bytes que han sido recibidos correctamente;
un temporizador en la entidad origen del envío causará un timeout si el
asentimiento no es recibido en un tiempo razonable, y el (presuntamente
desaparecido) paquete será entonces retransmitido.

TCP revisa que no haya bytes dañados durante el envío usando un checksum; es
calculado por el emisor en cada paquete antes de ser enviado, y comprobado por
el receptor.

• Puerto de origen (16 bits): Identifica el puerto a través del que se


envía.

• Puerto destino (16 bits): Identifica el puerto del receptor.

• Número de secuencia (32 bits): Sirve para comprobar que ningún


segmento se ha perdido, y que llegan en el orden correcto. Su
significado varía dependiendo del valor de SYN:

1. Si el flag SYN está activo (1), entonces este campo indica el


número inicial de secuencia (con lo cual el número de secuencia
del primer byte de datos será este número de secuencia más
uno).

2. Si el flag SYN no está activo (0), entonces este campo indica el


número de secuencia del primer byte de datos.

• Número de acuse de recibo (ACK) (32 bits): Si el flag ACK está

p. 4
puesto a activo, entonces en este campo contiene el número de
secuencia del siguiente paquete que el receptor espera recibir.

• Longitud de la cabecera TCP (4 bits): Especifica el tamaño de la


cabecera TCP en palabras de 32-bits. El tamaño mínimo es de 5
palabras, y el máximo es de 15 palabras (lo cual equivale a un tamaño
mínimo de 20 bytes y a un máximo de 60 bytes). En inglés el campo se
denomina “Data offset”, que literalmente sería algo así como
“desplazamiento hasta los datos”, ya que indica cuántos bytes hay entre
el inicio del paquete TCP y el inicio de los datos.

• Reservado (4 bits): Bits reservados para uso futuro, deberían ser


puestos a cero.

• Bits de control (flags) (8 bits): Son 8 flags o banderas. Cada una


indica “activa” con un 1 o “inactiva” con un 0.

• CWR o “Congestion Window Reduced” (1 bit): Este flag se activa


(se pone a 1) por parte del emisor para indicar que ha recibido un
paquete TCP con el flag ECE activado. El flag ECE es una extensión del
protocolo que fue añadida a la cabecera en el RFC 3168. Se utiliza para
el control de la congestión en la red.

• ECE o “ECN-Echo” (1 bit): Indica que el receptor puede realizar


notificaciones ECN. La activación de este flag se realiza durante la
negociación en tres pasos para el establecimiento de la conexión. Este
flag también fue añadido a la cabecera en el RFC 3168.

• URG o “urgent” (1 bit, ver URG): Si está activo significa que el


campo “Urgente” es significativo, si no, el valor de este campo es
ignorado.

• ACK o “acknowledge” (1 bit, ver ACK): Si está activo entonces el

p. 5
campo con el número de acuse de recibo es válido (si no, es ignorado).

• PSH o “push” (1 bit, ver PSH): Activa/desactiva la función que hace


que los datos de ese segmento y los datos que hayan sido almacenados
anteriormente en el buffer del receptor deben ser transferidos a la
aplicación receptora lo antes posible.

• RST o “reset” (1 bit, ver Flag RST): Si llega a 1, termina la conexión


sin esperar respuesta.

• SYN o “synchronize” (1 bit, ver SYN): Activa/desactiva la


sincronización de los números de secuencia.

• FIN (1 bit, ver FIN): Si se activa es porque no hay más datos a enviar
por parte del emisor, esto es, el paquete que lo lleva activo es el último
de una conexión.

• Ventana (16 bits): Es el tamaño de la ventana de recepción, que


especifica el número de bytes que el receptor está actualmente
esperando recibir.

• Suma de verificación (checksum) (16 bits): Es una suma de


verificación utilizada para comprobar si hay errores tanto en la cabecera
como en los datos.

• Puntero urgente (16 bits): Si el flag URG está activado, entonces


este campo indica el desplazamiento respecto al número de secuencia
que indica el último byte de datos marcados como “urgentes”.

• Opciones (número de bits variable): La longitud total del campo de


opciones ha de ser múltiplo de una palabra de 32 bits (si es menor, se
ha de rellenar al múltiplo más cercano), y el campo que indica la
longitud de la cabecera ha de estar ajustado de forma adecuada.

p. 6
• Datos (número de bits variable): No forma parte de la cabecera, es
la carga (payload), la parte con los datos del paquete TCP. Pueden ser
datos de cualquier protocolo de nivel superior en el nivel de aplicación;
los protocolos más comunes para los que se usan los datos de un
paquete TCP son HTTP, telnet, SSH, FTP, etc.

Puertos TCP

TCP usa el concepto de número de puerto para identificar a las aplicaciones


emisoras y receptoras. Cada lado de la conexión TCP tiene asociado un número
de puerto (de 16 bits sin signo, con lo que existen 65536 puertos posibles)
asignado por la aplicación emisora o receptora. Los puertos son clasificados en
tres categorías: bien conocidos, registrados y dinámicos/privados. Los puertos
bien conocidos son asignados por la Internet Assigned Numbers Authority
(IANA), van del 0 al 1023 y son usados normalmente por el sistema o por
procesos con privilegios.

Las aplicaciones que usan este tipo de puertos son ejecutadas como servidores y
se quedan a la escucha de conexiones. Algunos ejemplos son: FTP (21), SSH
(22), Telnet (23), SMTP (25) y HTTP (80). Los puertos registrados son
normalmente empleados por las aplicaciones de usuario de forma temporal
cuando conectan con los servidores, pero también pueden representar servicios
que hayan sido registrados por un tercero (rango de puertos registrados: 1024 al
49151).

Los puertos dinámicos/privados también pueden ser usados por las aplicaciones
de usuario, pero este caso es menos común. Los puertos dinámicos/privados no
tienen significado fuera de la conexión TCP en la que fueron usados (rango de
puertos dinámicos/privados: 49152 al 65535, recordemos que el rango total de 2
elevado a la potencia 16, cubre 65536 números, del 0 al 65535)

p. 7
Paquete IP

El protocolo de red IP sólo tiene cabecera, ya que no realiza ninguna


comprobación sobre el contenido del paquete. Sus campos se representan
siempre alineados en múltiplos de 32 bits. Los campos son, por este orden:

• Versión: 4 bits, actualmente se usa la versión 4, aunque ya esta en


funcionamiento la versión 6. Este campo permite a los routers
discriminar si pueden tratar o no el paquete.

• Longitud de cabecera (IHL): 4 bits, indica el número de palabras de


32 bits que ocupa la cabecera. Esto es necesario porque la cabecera
puede tener una longitud variable.

• Tipo de servicio: 6 bits (+2 bits que no se usan), en este campo se


pensaba recoger la prioridad del paquete y el tipo de servicio deseado,
pero los routers no hacen mucho caso de esto y en la práctica no se
utiliza. Los tipos de servicios posibles serían:

◦ D: (Delay) Menor retardo, por ejemplo para audio o vídeo.

◦ T: (Throughput) Mayor velocidad, por ejemplo para envío de


ficheros grandes.

◦ R: (Reliability) Mayor fiabilidad, para evitar en la medida de lo


posible los reenvíos.

• Longitud del paquete: 16 bits, como esto lo incluye todo, el paquete


más largo que puede enviar IP es de 65535 bytes, pero la carga útil
será menor, porque hay que descontar lo que ocupa la propia
cabecera.

• Identificación: 16 bits, Es un número de serie del paquete, si un


paquete se parte en pedazos más pequeños por el camino (se

p. 8
fragmenta) cada uno de los fragmentos llevará el mismo número de
identificación.

• Control de fragmentación: son 16 bits que se dividen en:

◦ 1 bit vacío: sobraba sitio.

◦ 1 bit DF: del ínglés dont't fragment. Si vale 1 le advierte al router


que este paquete no se corta.

◦ 1 bit MF: del inglés more fragments indica que éste es un


fragmento de un paquete más grande y que, además, no es el
último fragmento.

• Desplazamiento de Fragmento: es la posición en la que empieza


este fragmento respecto del paquete original.

• Tiempo de vida: 8 bits, en realidad se trata del número máximo de


routers (o de saltos) que el paquete puede atravesar antes de ser
descartado. Como máximo 255 saltos.

• Protocolo: 8 bits, este campo codifica el protocolo de nivel de


transporte al que va destinado este paquete. Está unificado para todo
el mundo en Números de protocolos por la IANA Internet Assigned
Numbers Authority.

• Checksum de la cabecera: 16 bits, aunque no se comprueben los


datos, la integridad de la cabecera sí es importante, por eso se
comprueba.

• Direcciones de origen y destino: 32 bits cada una. Son las


direcciones IP de la estaciones de origen y destino.

• Opciones: Esta parte puede estar presente o no, de estarlo su


longitud máxima es de 40 bytes.

p. 9
Anatomía de los Paquetes

IP

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Versión| IHL |Tipo de Servic.| Tamaño Total |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identificación |Flags| Desplaz. del Fragmento |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Tiempo de Vida | Protocolo | Checksum de la cabecera |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dirección de Origen |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Dirección de Destino |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
TCP

+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Puerto de Origen | Puerto de Destino |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de Secuencia |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Número de Confirmación |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|Deplz. | |U|A|P|R|S|F| |
|de los | Reservado |R|C|S|S|Y|I| Ventana |
| Datos | |G|K|H|T|N|N| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Checksum | Puntero de Urgencia |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

p. 10
Topología de redes y packet sniffers
La cantidad de paquetes que puede obtener un sniffer depende de la topología
de red, del modo donde esté instalado y del medio de transmisión. Por ejemplo:

• Para redes antiguas con topologías en estrella, el sniffer se podría


instalar en cualquier nodo, ya que lo que hace el nodo central es
retransmitir todo lo que recibe a todos los nodos. Sin embargo en las
redes modernas, en las que solo lo retransmite al nodo destino, el
único lugar donde se podría poner el sniffer para que capturara todas
los paquetes sería el nodo central.

• Para topologías en anillo, doble anillo y en bus, el sniffer se podría


instalar en cualquier nodo, ya que todos tienen acceso al medio de
transmisión compartido.

• Para las topologías en árbol, el nodo con acceso a más paquetes


sería el nodo raíz, aunque con los switches más modernos, los
paquetes entre niveles inferiores de un nodo viajarían directamente y
no se propagarían al nodo raíz.

Es importante remarcar el hecho de que los sniffers sólo tienen efecto en redes
que compartan el medio de transmisión como en redes sobre cable coaxial,
cables de par trenzado (UTP, FTP o STP), o redes WiFi.

El uso de switch en lugar de hub (concentrador) incrementa la seguridad de la


red ya que limita el uso de sniffers al dirigirse los paquetes únicamente a sus
correspondientes destinatarios.

p. 11
Utilidad
Los principales usos que se le pueden dar son:

1. Captura automática de contraseñas enviadas en claro y nombres de


usuario de la red. Esta capacidad es utilizada en muchas ocasiones
por crackers para atacar sistemas a posteriori.

2. Conversión del tráfico de red en un formato inteligible por los


humanos.

3. Análisis de fallos para descubrir problemas en la red, tales como: ¿por


qué el computador A no puede establecer una comunicación con el
computador B?

4. Medición del tráfico, mediante el cual es posible descubrir cuellos de


botella en algún lugar de la red.

5. Detección de intrusos, con el fin de descubrir crackers. Aunque para


ello existen programas específicos llamados IDS (Intrusion Detection
System, Sistema de Detección de intrusos), estos son prácticamente
sniffers con funcionalidades específicas.

6. Creación de registros de red, de modo que los crackers no puedan


detectar que están siendo investigados.

7. Para los desarrolladores, en aplicaciones cliente-servidor. Les permite


analizar la información real que se transmite por la red.

Existen packet sniffers para Ethernet/LAN y algunos de ellos son Wireshark


(anteriormente conocido como Ethereal), Ettercap, TCPDump, WinDump,
WinSniffer, Hunt, Darkstat, traffic-vis, KSniffer) y para Redes inalámbricas como
Kismet o Network Stumbler.

p. 12

Vous aimerez peut-être aussi