Академический Документы
Профессиональный Документы
Культура Документы
ESPECIALITAT TELEMTICA
NDICE
PRESENTACION
1. INTRODUCCIN
6
9
10
10
12
12
12
17
19
22
26
27
28
30
32
33
34
35
36
37
40
40
43
44
45
45
45
46
48
50
51
52
52
52
55
58
4.4.1 Pruebas ST
4.4.2 Pruebas IT
4.4.3 Pruebas PR
59
59
61
5. CONCLUSIONES
64
6. RECURSOS UTILIZADOS
65
7. MANUAL
66
7.1 Introduccin
7.2 Requisitos
7.3 Caractersticas
7.4 Descripcin de la aplicacin
7.5 Mensajes de error
66
66
66
67
69
PRESENTACIN
Una ruta, en telemtica, es el camino que los datos deben seguir desde un
origen hasta llegar a su destino. En una arquitectura o topologa de red, es de
gran importancia que todas las entidades que forman parte de la misma,
ordenadores o routers, se puedan comunicar entre ellos. Una topologa de
red, puede ser tan simple como dos ordenadores conectados punto a punto, o
una gran red conmutada. Por esta razn es necesario que exista un
mecanismo que permita la comunicacin, sea cual sea la topologa de red. A
este mecanismo se le denomina encaminamiento, y determina las rutas que
deben seguir los datos.
En las redes que utilizan el protocolo TCP/IP, las mquinas encargadas de
encaminar la informacin se denominan routers. Los routers son mquinas
que tienen diversos interfaces de red. Cuando un router recibe una trama de
datos por una interfaz observa su cabecera IP para ver la direccin IP donde
va dirigida la trama. Segn el destino donde va dirigida la trama, sta va a ser
reenviada por un interfaz o por otro. La decisin sobre por qu lugar se debe
reenviar una trama se toma a partir de la informacin contenida en las tablas
de encaminamiento de un router. Esta informacin se puede configurar de
forma manual (proceso muy laborioso) por parte del administrador o se puede
obtener de forma automtica mediante la utilizacin de protocolos de
encaminamiento. Un protocolo de encaminamiento es utilitzado por los routers
de una red para intercambiar la informacin necesaria para que cada router
pueda configurar sus tablas de encaminamiento.
Uno de los protocolos de encaminamiento ms antiguos y conocidos, es el
Protocolo RIP, de las siglas en ingls, Routing Informacition Protocol. Pero,
Es realmente RIP un buen protocolo de encaminamiento? Este proyecto,
pretende demostrar las vulnerabilidades y problemas de seguridad que
presenta la utilizacin del protocolo RIP en redes conmutadas.
Primeramente, se analiza el protocolo, como funciona, que particularidades
tiene. A continuacin se hace un estudio de los posibles problemas de
seguridad del protocolo. Y por ltimo, se muestra la implementacin de una
aplicacin para ejecutar un ataque de denegacin de servicio en una red
conmutada que utilice el protocolo RIP como protocolo de encaminamiento.
Este ataque tiene como finalidad interferir en el correcto funcionamiento de la
red en cuestin. El ataque consiste en introducir en la red un equipo que
inserte mensajes falsos. Estos mensajes falsos, al ser recibidos y procesados
por los routers causaran su desconfiguracin de las tablas de
encaminamiento.
Para una buena comprensin de los temas tratados en el presente
proyecto, se recomienda que el lector tenga conocimientos bsicos en
configuracin de redes, conocimientos del protocolo TCP/IP, y conocimientos
del lenguaje de programacin JAVA.
1 INTRODUCCIN
1.1 TABLA DE ENCAMINAMIENTO
La funcin de encaminamiento de una red trata de encontrar las rutas de
mnimo coste a travs de la red, estando el parmetro de coste basado en el
nmero de saltos, el retardo esperado u otras mtricas.
Una red de comunicaciones puede ser muy simple. Por ejemplo, dos
ordenadores conectados mediante un cable determinan una red de
comunicaciones. En una red de estas caractersticas es evidente que el flujo
de datos que ira de un ordenador a otro ser siempre por el cable que los une.
Fig 1.
Pero, lo habitual encontrarnos arquitecturas de red ms complejas. En ese
caso, los routers deben estar configurados para que los datos enviados entre
dos mquinas cualquiera lleguen a su destino. Por ejemplo, en la Fig 2. se
muestra una red con 4 ordenadores.
Fig 2.
Puerta enlace
B
B
Interfaz
1
1
1
Puerta enlace
Interfaz
1
3
2
Puerta enlace
Destino
C
B
A
Puerta enlace
Interfaz
2
1
2
Interfaz
1
3
2
Fig. 3
Gateway
0.0.0.0
192.168.1.2
Genmask
255.255.255.0
255.255.255.0
Iface
eth0
eth0
Ordenador B
Destination
192.168.1.0
192.168.2.0
Gateway
0.0.0.0
0.0.0.0
Genmask
255.255.255.0
255.255.255.0
Iface
eth0
eth1
Gateway
192.168.2.1
0.0.0.0
Genmask
255.255.255.0
255.255.255.0
Iface
eth0
eth0
10
Fig. 4
11
2 RIP
2.1 INTRODUCCIN A RIP
RIP, de las siglas en ingles Routing Information Protocol, es un protocolo
de encaminamiento dinmico basado en el Algoritmo de Bellman-Ford (o
Vector de Distancia). La descripcin de este algoritmo fue a manos de Ford
and Fulkerson, de ah que este algoritmo a veces tambin se le denomine
como el Algoritmo Ford-Fulkerson. El trmino Bellman-Ford tambin es usado
para referirse a este algoritmo. Viene del hecho que la formulacin se basa en
la ecuacin del Bellman, la base de la Programacin Dinmica. El algoritmo
del Vector de Distancia, define los procedimientos utilizados en el protocolo
RIP para llevar a cabo en encaminamiento, as como de otros protocolos de
encaminamiento como IGRP y EIGRP de Cisco.
Este protocolo se ha utilizado para el encaminamiento de redes de
ordenadores desde la aparicin de ARPANET. La red ARPANET naci en
1969 como resultado de un proyecto de investigacin del Departamento de
Defensa norteamericano, que trataba de encontrar una va de comunicacin
alternativa a la comunicacin a travs de radio, ya que se prevea que en el
caso de una guerra nuclear, temor con fundamento en aquella poca, las
comunicaciones por radio se veran fuertemente afectadas. ARPANET se
considera como el origen de Internet.
RIP Comenz a ser un estndar de facto para intercambiar informacin de
encaminamiento entre routers y hosts. Se utiliz para dicho propsito por la
mayora de los vendedores comerciales de routers IP.
El protocolo RIP se usa como un IGP. Fue diseado para trabajar con un
tamao de red moderado. Por consiguiente, esta pensado para redes que no
sean demasiado grandes. No est pensado para el uso en ambientes muy
complejos.
12
- Interfaz: La conexin fsica que se debe usar para alcanzar la primera puerta
de enlace.
- Mtrica: Parmetro que mide el coste de la ruta. En RIP, la mtrica utilizada
es el nmero de saltos que se debe realizar para alcanzar el destino.
-Temporizador: Indica cuando fue la ltima actualizacin de la ruta.
Fig. 5
Fig. 6
14
ESTACION
A
B
C
D
E
F
Vector de distancia
[A:0]
[B:0]
[C:0]
[D:0]
[E:0]
[F:0]
Cada estacin puede llegar a ella misma con mtrica 0. Con la informacin
enviada, las estaciones aprenderan las rutas a las estaciones vecinas que
tienen directamente conectadas, con un coste de 1.
ESTACION
A
B
C
D
E
F
Rutas aprendidas
[A:0, B:1:i1, C:1:i2]
[B:0, A:1:i1, D:1:i2]
[C:0, A:1:i1, E:1:i2]
[D:0, B:1:i1, E:1:i2]
[E:0, C:1:i3, D:1:i1, F:1:i2]
[F:0, E:1:i1]
Vector de distancia
[A:0, B:1, C:1]
[B:0, A:1, D:1]
[C:0, A:1, E:1]
[D:0, B:1, E:1]
[E:0, C:1, D:1, F:1]
[F:0, E:1]
ESTACION
A
B
C
D
E
F
Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DB:2:i1, EC:2:i2]
[B:0, A:1:i1, D:1:i2, CA:2:i1, ED:2:i2]
[C:0, A:1:i1, E:1:i2, BA:2:i1, DE:2:i2, FE:2:i2]
[D:0, B:1:i1, E:1:i2, FE:2:i2, CE:2:i2, AB:2:i1]
[E:0, C:1:i3, D:1:i1, F:1:i2, BD:2:i1, AC:2:i3]
[F:0, E:1:i1, DE:2:i1, CE:2:i1]
15
Vector de distancia
[A:0, B:1, C:1, D:2, E:2]
[B:0, A:1, D:1, C:2, E:2]
[C:0, A:1, E:1, B:2, D:2, F:2]
[D:0, B:1, E:1, F:2, C:2, A:2]
[E:0, C:1, D:1, F:1, B:2, A:2]
[F:0, E:1, D:2, C:2]
Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DB:2:i1, EC:2:i2, FC:3:i2]
[B:0, A:1:i1, D:1:i2, CA:2:i1, ED:2:i2, FD:3:i2]
[C:0, A:1:i1, E:1:i2, BA:2:i1, DE:2:i2, FE:2:i2]
[D:0, B:1:i1, E:1:i2, FE:2:i2, CE:2:i2, AB:2:i1]
[E:0, C:1:i3, D:1:i1, F:1:i2, BD:2:i1, AC:2:i3]
[F:0, E:1:i1, DE:2:i1, CE:2:i1, BE:3:i1, AE:3:i1]
16
Fig. 7
17
Rutas aprendidas
[A:0, B:1:i1, C:1:i2, DC:2:i2]
[B:0, A:1:i1, C:1:i2, DC:2:i2]
[C:0, A:1:i3, B:1:i1, D:1:i2]
ESTACION
A
B
C
Vector de distancia
[A:0, B:1, C:1, D:2]
[B:0, A:1, C:1, D:2]
[C:0, A:1, B:1, D:1]
Fig. 8
La estacin A y la estacin C se ven afectadas por este cambio de
topologa y marcan sus rutas como invlidas. Se incluyen las rutas invlidas
con una mtrica de 16, es decir, inalcanzables:
ESTACION
A
B
C
Rutas aprendidas
[A:0, B:1:i1, C:16, D:16]
[B:0, A:1:i1, C:1:i2, DC:2:i2]
[C:0, A:16, B:1:i1, D:1:i2]
18
ESTACION
A
B
C
Rutas aprendidas
[A:0, B:1:i1, CB:2:i1, DB:3:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, AB:2:i1, B:1:i1, D:1:i2]
Fig. 9
19
Rutas aprendidas
[A:0, B:1:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1]
Fig. 10
Vector de A: [A:0, B:1]
Vector de C: [C:0, B:1]
Fig. 11
Vector de B: [B:0, A:1, C:1]
Rutas aprendidas
[A:0, B:1:i1, CB:2:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1, AB:2:i1]
20
Fig. 12
En la siguiente actualizacin B no recibe el vector de distancia de A.
Transcurrido un tiempo sin recibir informacin sobre la estacin A, la ruta a la
estacin A que tiene almacenada la estacin B, caduca, y se marca como
inalcanzable, es decir con mtrica 16. Recurdese que en RIP, el tiempo de
caducidad de una ruta, es de 180 segundos.
ESTACION
A
B
C
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, AB:2:i1]
Fig. 13
Vector de C: [C:0, B:1, A:2]
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:3:i2, C:1:i2]
[C:0, B:1:i1, AB:2:i1]
21
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:3:i2, C:1:i2]
[C:0, B:1:i1, AB:4:i1]
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, AC:5:i2, C:1:i2]
[C:0, B:1:i1, AB:4:i1]
Rutas aprendidas
[A:0, B:1:i1, CB:2:i1]
[B:0, A:1:i1, C:1:i2]
[C:0, B:1:i1, AB:2:i1]
22
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, AB:2:i1]
ESTACION
A
B
C
Rutas aprendidas
[A:0, B:16, C:16]
[B:0, A:16, C:1:i2]
[C:0, B:1:i1, A:16]
Fig. 14
23
ESTACION
N
A
B
C
D
Rutas aprendidas
[N:0, A:1:i1, CA:2:i1, BA:2:i1, DA:3:i1]
[A:0, N:1:i3, B:1:i1, C:1:i2, DB:2:i1]
[B:0, A:1:i2, D:1:i1, CA:2:i2, NA:2:i2]
[C:0, A:1:i2, D:1:i1, BA:2:i2, NA:2:i2]
[D:0, B:1:i1, C:1:i2, AB:2:i1, NB:3:i1]
Fig. 15
24
Fig. 16
Fig. 17
Como la estacin D aprendi la ruta a la estacin N gracias a la estacin
B, no incluye en el vector de distancia dirigido a B esta ruta. Pero, en el vector
de distancia dirigido a la estacin C si que incluye esta ruta. Debido a esto, la
estacin C cree encontrar una ruta alternativa a travs de la estacin D y
activa de nuevo la ruta a la estacin N con mtrica 4 va D.
En las siguientes actualizaciones se entra en un proceso de cuenta a
infinito de la ruta N:
25
Fig. 18
26
Fig. 19
27
1 por salto. Sin embargo, un administrador del sistema puede fijar la mtrica
de cada red manualmente.
Cada entidad que usa RIP debe tener una tabla de encaminamiento. Esta
tabla de encaminamiento debe tener una entrada para cada destinacin
posible en el sistema. Cada entrada contiene por lo menos la informacin
siguiente:
La direccin IP del destino o un rango de direcciones indicado mediante
direccin de red + mscara
-
28
7
8
15 16
COMANDO (1)
VERSIN (1)
ADDRESS FAMILY IDENTIFIER
ADDRESS (4)
0 (4)
0 (4)
MTRICA (4)
31
0 (2)
0 (2)
29
30
Fig. 20
En la Fig. 20 se muestran dos redes: La red 10.0.0.0 y la red 192.168.1.0.
Para que el ordenador A se pueda comunicar con la red 192.168.1.0 no es
necesario que almacene en su tabla de encaminamiento la ruta a cada uno de
los ordenadores de esta red, ya que todos estos son accesibles a travs de la
puerta de enlace B, con direccin 10.0.0.2. Por lo tanto su tabla de
encaminamiento sera:
RED
10.0.0.0
192.168.1.0
GW
DC
10.0.0.2
Mtrica
0
1
GW: Gateway
DC: Directamente conectado
Si se incluyen las rutas a los ordenadores individuales la tabla de
encaminamiento sera ms complicada:
RED
10.0.0.0
192.168.1.0
192.168.1.2
192.168.1.3
192.168.1.4
GW
DC
10.0.0.2
10.0.0.2
10.0.0.2
10.0.0.2
Mtrica
0
1
1
1
1
Claramente se puede ver que en este caso se puede resumir las rutas a
los ordenadores individuales por la ruta a la red.
Por tanto, los routers que utilizan RIP, al encaminar un datagrama, primero
deben comparar su direccin de destino con la lista de direcciones ya
aprendida, para ver si es posible emparejarla con una direccin de subred o
una red ya aprendida.
Cuando un router evala una destinacin nueva que recibe, su
interpretacin depender de si conoce o no la mscara de subred que se le
aplica. Si la conoce, es posible determinar que tipo de direccin es. Por
ejemplo, considrese que la red 128.6.0.0 tiene una mscara de subred de
255.255.255.0. Por tanto la direccin 128.6.0.0 es de red, la 128.6.4.0 es de
31
2.6 TEMPORIZADORES
Para determinar la caducidad de una ruta es necesario el uso de
temporizadores. Cada router asocia tres temporizadores para cada ruta que
tiene almacenada:
- Tiempo de actualizacin cada 30 segundos. Cada vez que el temporizador
llega a 30 segundos se produce una actualizacin. El proceso de RIP
despierta y enva un mensaje de respuesta no solicitado con el vector de
distancia, a todos los routers vecinos.
- Tiempo de En cancelacin a los 180 segundos. Una vez transcurridos 180
segundos sin recibir actualizacin de una ruta, se considera no vlida. Sin
embargo la ruta se retiene un cierto periodo de tiempo, lo cual permite advertir
a los vecinos que la ruta ha sido eliminada.
- El temporizador del recolector de basura, a los 120 segundos. Una vez
transcurridos 120 segundos, despus de que una ruta haya pasado al estado
En cancelacin, la ruta es definitivamente eliminada de la tabla de
encaminamiento. El nombre de este temporizador, recolector de basura,
viene del hecho que esta asociado a todas aquellas rutas residuales que se
deben ir borrando de la tabla de encaminamiento.
32
Una ruta puede ser marcada como no vlida por dos razones:
- El temporizador de En cancelacin expire.
- La mtrica de la ruta es 16.
En cualquier caso, se sigue el siguiente proceso para cancelar una ruta:
- El temporizador de recolector de basura se fija a 120 segundos.
- La mtrica para la ruta se fija a 16 (infinito). Esto hace que la ruta sea
quitada del servicio.
- Se activa una bandera indicando que ha cambiado esta entrada. Esto implica
el envo inmediato del nuevo vector de distancia (Trigger Update).
Hasta que expira el contador de tiempo de recolector de basura, la ruta se
incluye en todas las actualizaciones enviadas, con una mtrica de 16. Cuando
expira el contador, la ruta se suprime de la base de datos y no se incluye en
los vectores de distancia.
Si se encuentra una nueva ruta a esta red mientras el contador recolector
de basura esta activo, la nueva ruta substituye la que est a punto de ser
suprimida, y el contador se desactiva.
33
7
1 (Request)
15
16
VERSIN
0
31
0
0
0
0
0
16 (Metrica)
Este tipo de mensaje suele ser enviado por routers que acaban de ser
reiniciados o routers que se ponen en funcionamiento por primera vez. A
excepcin de este caso especial, el proceso es muy simple. Para cada
entrada, se mira la destinacin en la base de datos de encaminamiento. Si
hay una ruta, poner la mtrica de esa ruta en el campo mtrica
correspondiente del datagrama. Si no hay ruta para esa destinacin
especificada, poner a infinito, es decir, 16, en el campo mtrica. Una vez que
se hayan completado todas las entradas, poner el comando en respuesta, es
decir comando a valor 2, y enviar el datagrama nuevo por el puerto por el cual
vino.
Si la peticin es de la tabla completa, se hace el proceso normal con horizonte
dividido. Por tanto ciertas entradas de la tabla de encaminamiento no sern
mostradas. En cambio, si la peticin es de un nmero especfico de entradas,
se enviarn las pedidas, pero no se aplicara el proceso de horizonte dividido.
Normalmente esto ltimo se utiliza para hacer diagnsticos.
34
Inicializar el temporizador.
36
Fig. 21
Se trata de un conjunto de 4 redes y 3 routers dispuestos en serie. Cada
router tiene dos interfaces y se han asignado direcciones IP respetando la
singularidad en la red.
Inicialmente los routers tienen en sus tablas de encaminamiento las redes
a las que estn directamente conectadas. Cada 30 segundos, los routers
envan sus tablas por sus interfaces a todos sus vecinos. Para ello utilizan la
direccin de broadcast.
Router A
Destino
Mscara
Gateway IF
Mtrica
192.168.0.0 255.255.255.0 0.0.0.0
eth0 0
192.168.1.0 255.255.255.0 0.0.0.0
eth1 0
37
Router B
Mtrica
Destino
Mscara
Gateway IF
192.168.1.0 255.255.255.0 0.0.0.0
eth0 0
192.168.2.0 255.255.255.0 0.0.0.0
eth1 0
Router C
Destino
Mscara
Gateway IF
Mtrica
192.168.2.0 255.255.255.0 0.0.0.0
eth0 0
192.168.3.0 255.255.255.0 0.0.0.0
eth1 0
7 8
1 (Request)
0 (Cero)
15
16
1 (Versin)
31
0
0
0
0
0
16 (Mtrica)
7
2 (Response)
15
16
1 (Versin)
31
0
0
192.168.2.0
0
0
1 (Mtrica)
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.1.2
IF
eth0
eth1
eth1
Mtrica
0
0
1
38
De forma similar el resto de routers del sistema tambin aprendern las rutas.
Router B
Destino
192.168.1.0
192.168.2.0
192.168.3.0
192.168.0.0
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.1.1
IF
eth0
eth1
eth1
eth0
Mtrica
0
0
1
1
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.2.2
IF
eth0
eth1
eth0
Mtrica
0
0
1
Router C
Destino
192.168.2.0
192.168.3.0
192.168.1.0
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.1.2
192.168.1.2
IF
eth0
eth1
eth1
eth1
Mtrica
0
0
1
2
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.1.1
IF
eth0
eth1
eth1
eth0
Mtrica
0
0
1
1
Mscara
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Gateway
0.0.0.0
0.0.0.0
192.168.2.2
192.168.2.2
IF
eth0
eth1
eth0
eth0
Mtrica
0
0
1
2
Router B
Destino
192.168.1.0
192.168.2.0
192.168.3.0
192.168.0.0
Router C
Destino
192.168.2.0
192.168.3.0
192.168.1.0
192.168.0.0
Con esto, los routers aprenden todas las rutas del sistema, y la red llega a
su equilibrio con rapidez.
39
2.10.1
RIP v2 tambin usa el puerto 520 UDP para enviar y recibir datagramas. El
formato de RIP v2 permite que los routers compartan informacin adicional
importante. La cabecera del mensaje es el mismo para los RIP v1 y los RIP
v2. En cambio el resto del mensaje cambia sustancialmente:
0
7 8
15 16
COMANDO (1)
VERSIN (1)
0 (2)
ADDRESS FAMILY IDENTIFIER
ETIQUETA DE RUTA (2)
CABECERA EXTRA (20)
IP ADDRESS (4)
MSCARA DE SUBRED (4)
SIGUIENTE SALTO (4)
MTRICA (4)
31
40
7 8
15
COMANDO (1)
VERSIN (1)
0XFFFF
16
31
SIN USO (2)
TIPO DE AUTENTIFICACIN (2)
AUTENTIFICACIN (16)
41
Fig. 22
En la Fig. 22, se muestra un ejemplo de aplicacin del campo Siguiente
salto. En este ejemplo se estn usando dos protocolos de encaminamiento
diferentes. Por una parte se esta utilizando RIPv2, y por otra, se esta
utilizando el protocolo OSPF. Como A y C utilizan un protocolo de
encaminamiento diferente no se entienden y entonces A no puede aprender
nuevas rutas a travs de C. Por tanto todas las rutas las debe aprender a
travs de B. No obstante, B puede utilizar el campo Siguiente salto para
indicar al router A que reencamine directamente sus paquetes al router C, y
de esta forma conseguir un encaminamiento ms ptimo.
Obsrvese que el salto siguiente es un campo de consulta. Es decir, si se
ignora la informacin proporcionada, se puede encaminar pero es posible que
no de la forma ptima. Si el salto siguiente recibido no es directamente
accesible, debe ser tratado como 0.0.0.0.
42
El protocolo esta limitado para redes que no superen los 15 saltos en sus
rutas. Los diseadores pensaron que el diseo bsico del protocolo era
inapropiado para redes ms grandes. Ntese que este lmite asume un coste
unitario para cada salto. Esta es la manera que RIP se configura
normalmente. Si el administrador del sistema elige utilizar costes ms
grandes, el lmite superior de 15 puede convertirse en un problema.
Otro limitacin es la cuenta al infinito en ciertas situaciones inusuales. Si
en un sistema, una ruta de encaminamiento implicar a todos los routers, la
resolucin de la ruta requerira mucho tiempo (si la frecuencia de las
actualizaciones de la informacin de encaminamiento es limitada) o ancho de
banda (si las actualizaciones fueran enviadas siempre que los cambios fueran
detectados). Tal ruta consumira una cantidad grande de ancho de banda de
la red antes de que la ruta fuera corregida. Creemos que en casos realistas,
esto no ser un problema excepto en lneas lentas. Incluso entonces, el
problema ser bastante inusual, puesto que se toman varias precauciones
para prevenir estos problemas.
Este protocolo usa mtrica fija para comparar rutas alternativas. Esto no
es apropiado para situaciones donde se requiere un servicio a tiempo real,
fiabilidad, o balanceo de carga.
43
44
3. DISEO DE ATAQUE
3.1 INTRODUCCIN
Una vez se tienen todos los detalles del funcionamiento del protocolo RIP,
descritos en el apartado anterior, ya se est en condiciones para iniciar el
diseo de una estrategia para provocar una denegacin de servicio en una
red conmutada que utilice este protocolo para enrutar.
Se parte de la idea de que se dispone de una entidad o PC, dentro de la
red, la cual se controla completamente. La red podr ser cualquier topologa
posible, por lo tanto, se debe determinar cuando ser posible y cuando no una
denegacin de servicio utilizando la estrategia de ataque que se define en
este apartado.
La definicin de la estrategia de ataque presentada en este apartado es
terica. Esto quiere decir que hace falta una puesta a la prctica para
confirmar el correcto funcionamiento.
01
15
16
VERSIN (1)
0
31
0 (2)
0 (2)
IP ADDRESS (4)
0 (4)
0 (4)
16
45
Fig. 23
Supngase que el ordenador A de la Fig. 23 es la entidad controlada
dentro de un sistema RIP. El ordenador B presentara la siguiente tabla de
encaminamiento:
Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0
Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
Gateway
0.0.0.0
0.0.0.0
2.0.0.2
2.0.0.2
2.0.0.2
2.0.0.2
IF
eth0
eth1
eth1
eth1
eth1
eth1
Mtrica
0
0
1
2
3
4
46
02
15
16
VERSIN (1)
2
31
0 (2)
0 (2)
1.0.0.0
0 (4)
0 (4)
1
2
0 (2)
2.0.0.0
0 (4)
0 (4)
1
0 (2)
3.0.0.0
0 (4)
0 (4)
1
0 (2)
4.0.0.0
0 (4)
0 (4)
1
2
0 (2)
5.0.0.0
0 (4)
0 (4)
1
0 (2)
6.0.0.0
0 (4)
0 (4)
1
Cuando el ordenador B reciba este vector, mirar si hay alguna ruta mejor
que las que tiene almacenadas en su tabla de encaminamiento. En este caso,
encontrar que la ruta a la red 4.0.0.0 es mejor, ya que la entidad controlada
le esta proporcionando una alternativa con mtrica 1 y el ordenador B tiene
esta ruta con mtrica 2. Por tanto el ordenador B actualizara su tabla de
encaminamiento. Por el mismo motivo, la ruta a la red 5.0.0.0 y la red 6.0.0.0
tambin cambiaran:
47
Destino
1.0.0.0
2.0.0.0
3.0.0.0
4.0.0.0
5.0.0.0
6.0.0.0
Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
Gateway
0.0.0.0
0.0.0.0
2.0.0.2
1.0.0.1
1.0.0.1
1.0.0.1
IF
eth0
eth1
eth1
eth0
eth0
eth0
Mtrica
0
0
1
1
1
1
Fig. 24
Fig. 25
48
Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
Gateway
2.0.0.1
0.0.0.0
0.0.0.0
3.0.0.2
3.0.0.2
3.0.0.2
IF
eth0
eth0
eth1
eth1
eth1
eth1
Mtrica
1
0
0
1
2
3
Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
Gateway
2.0.0.1
0.0.0.0
0.0.0.0
3.0.0.2
3.0.0.2
2.0.0.1
IF
eth0
eth0
eth1
eth1
eth1
eth0
Mtrica
1
0
0
1
2
2
49
Mscara
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
255.0.0.0
Gateway
0.0.0.0
0.0.0.0
2.0.0.2
2.0.0.2
2.0.0.2
2.0.0.2
IF
eth0
eth1
eth1
eth1
eth1
eth1
Mtrica
0
0
1
2
3
4
02
15
16
VERSIN (1)
2
31
0 (2)
0 (2)
1.0.0.0
0 (4)
0 (4)
16
2
0 (2)
2.0.0.0
0 (4)
0 (4)
16
0 (2)
3.0.0.0
0 (4)
0 (4)
16
0 (2)
4.0.0.0
0 (4)
0 (4)
16
2
0 (2)
5.0.0.0
0 (4)
0 (4)
1
0 (2)
6.0.0.0
0 (4)
0 (4)
16
50
3.6 PERSISTENCIA
Hasta el momento se ha visto que es posible realizar una denegacin de
servicio enviando mensajera falsa, y provocando la actualizacin de las tablas
de encaminamiento de nuestros vecinos.
No obstante, para conservar la denegacin de servicio es necesario enviar
mensajes falsos peridicamente. Esto es as, ya que en RIP las rutas tienen
una caducidad. Por tanto, para conservar la denegacin de servicio, la entidad
controlada dentro del sistema RIP debe enviar mensajeria falsa
periodicamente.
51
4. DESARROLLO
4.1 INTRODUCCION
Tomando como punto de partida la estrategia de ataque definida en el
bloque anterior, ha llegado la hora de implementar una aplicacin que ayude a
demostrar la base terica de la estrategia de ataque, y provoque una
denegacin de servicio en una red RIP.
Como lenguaje de programacin se ha escogido Java. Para ello se ha
instalado un kit de desarrollo y el programa IDE NetBeans como apoyo. El kit
de desarrollo java utilizado es el JAVA 2 SDK en su versin 1.3.1. Java 2
SDK incluye herramientas tiles para desarrollar y probar programas escritos
en el lenguaje de programacin Java y que se ejecutan en la plataforma Java.
Estas herramientas estn diseadas para que se utilicen desde la lnea de
comandos. Para desarrollar de una manera ms cmoda se ha utilizado el
programa Netbeans. NetBeans es una plataforma para el desarrollo de
aplicaciones usando Java y un Entorno integrado de desarrollo (IDE)
desarrollado por la Plataforma NetBeans.
Para simplificar la implementacin se ha considerado que la entidad
controlada dentro del sistema RIP tiene una nica interfaz. Esto es as porque
se entiende que la entidad controlada ser un ordenador personal.
La aplicacin dispone, por una parte, de una interfaz grfica donde se
informa de los eventos y de los posibles errores, y por otra parte, la lgica que
trata los datagramas o paquetes de datos RIP que se reciben y se envan a la
red atacada. Recurdese que el protocolo RIP utiliza el puerto UDP 520. Por
lo tanto, para recibir y enviar datagramas se utilizan sockets UDP
configurados en el puerto 520. Este puerto es posible que este ocupado por
alguna otra aplicacin a la hora de ejecutar la aplicacin. Si es as, se debe
matar el proceso para dejar libre el puerto 520.
52
Fig. 26
RIP1
RIP2
Ataque Mtrica 0
RIP1 + Ataque Mtrica 1
RIP2 + Ataque Mtrica 1
Ataque Mtrica 16
RIP1 + Ataque Mtrica 16
RIP2 + Ataque Mtrica 16
53
Fig. 27
54
Fig. 28
55
56
Fig. 29
57
Mensaje mostrado
Socket: El puerto 520 lo esta usando
otra aplicacin, cirrela para poder
iniciar el ataque
Socket: No se ha podido enviar la
peticin. Revise las conexiones de red
Socket: Socket cerrado
IOException
Exception Java
Receive timed out
Mensaje mostrado
E/S: Los vecinos no estn
contestando a la peticin RIP
4.4 PRUEBAS
Un plan de pruebas es necesario para demostrar el correcto
funcionamiento de la aplicacin. Se definen tres entornos de pruebas:
- ST (SystemTest): Abarca el proceso de desarrollo y programacin de la
aplicacin. Se ha comprobado la compilacin del programa y el buen
funcionamiento a nivel local.
- IT (Integracin): Abarca la comunicacin del programa con la red. Se han
hecho pruebas de comunicacin con un router.
- PR (Produccin): Se ha escogido un caso real para probar el ataque.
58
4.4.1 PRUEBAS ST
Las pruebas ST, consisten en comprobar el buen funcionamiento del
cdigo de la aplicacin a nivel local. Estas pruebas se reducen a que el cdigo
compile correctamente, y se comporte segn lo descrito en el anlisis
funcional y anlisis tcnico. Se han realizado las siguientes comprobaciones:
- Botones de conectar y stop: Se ha comprobado que se inicie el hilo de
ejecucin al hacer clic a conectar, y que finalice al hacer clic en stop.
- Desplegables: Se ha comprobado que se recoge la versin y el tipo de
ataque de forma correcta, desde la interfaz grfica.
- Formato mensajes: Se ha comprobado que los mensajes que salen por la
pantalla tengan el formato deseado, en especial, los retornos de carro y la
hora que se produjo el evento.
- Datagramas: Se ha comprobado que la confeccin de los datagramas sea
la correcta, para prevenir posibles errores en las pruebas IT.
4.4.2 PRUEBAS IT
59
Fig. 30
El programa Wireshark es un analizador de protocolos utilizado para
realizar anlisis y solucionar problemas en redes de comunicaciones para
desarrollo de software y protocolos, y como una herramienta didctica para
educacin. Cuenta con todas las caractersticas estndar de un analizador de
protocolos.
Como otros analizadores de protocolos, Wireshark soporta la utilizacin de
filtros. En este caso, para capturar solo el trfico del protocolo RIP se ha
utilizado el siguiente filtro:
- udp port 520
Con este filtro solo se captura el trfico UDP que venga del puerto 520, el
utilizado por el protocolo RIP.
Para comprobar el buen funcionamiento del programa se han testeado los
siguientes temas:
- Comprobar que se enva el datagrama de peticin de la tabla de
encaminamiento y se recibe una respuesta correcta por parte del router.
- Comprobar el formateo de la tabla de encaminamiento, y la correcta
insercin en la lista de entradas.
- Comprobar el buen funcionamiento del programa en la confeccin de los
datagramas de ataque, prestando atencin en la versin y el tipo de ataque
que se debe realizar en cada caso.
- Comprobar que los datagramas falsos de ataque se envan correctamente.
Para realizar las pruebas se han utilizado trazas en el cdigo, para mostrar
por consola las actividades que se realizaban, y se ha utilizado el programa
Wireshark para ver la comunicacin entre la entidad controlada que ejecuta la
aplicacin y el router.
60
4.4.3 PRUEBAS PR
Se ha configurado una red de pruebas:
Fig. 31
61
Genmask
255.255.255.0
255.255.255.0
Use Iface
0 eth0
0 eth1
Use Iface
0 eth0
0 eth1
Use Iface
0 eth0
0 eth1
Use Iface
0 eth1
La tabla de encaminamiento de B:
Kernel IP routing table
Destination
Gateway
192.168.3.0
0.0.0.0
192.168.2.0
0.0.0.0
Genmask
255.255.255.0
255.255.255.0
La tabla de encaminamiento de C:
Kernel IP routing table
Destination
Gateway
192.168.4.0
0.0.0.0
192.168.3.0
0.0.0.0
Genmask
255.255.255.0
255.255.255.0
La tabla de encaminamiento de D:
Kernel IP routing table
Destination
Gateway
192.168.4.0
0.0.0.0
Genmask
255.255.255.0
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
UG
UG
U
UG
U
Metric
2
1
0
0
0
0
Ref
0
0
0
0
0
0
Use
0
0
0
0
0
0
Iface
eth0
eth0
eth0
eth0
eth1
eth1
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
UG
U
UG
U
UG
Metric
1
0
0
0
0
1
Ref
0
0
0
0
0
0
Use
0
0
0
0
0
0
Iface
eth0
eth0
eth0
eth1
eth1
eth1
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
U
UG
U
UG
Metric
0
0
0
0
1
Ref
0
0
0
0
0
Use
0
0
0
0
0
Iface
eth0
eth0
eth1
eth1
eth1
En el ordenador B:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.3.2
192.168.3.0
192.168.3.1
192.168.3.0
0.0.0.0
192.168.2.0
192.168.2.2
192.168.2.0
0.0.0.0
192.168.1.0
192.168.2.1
En el ordenador C:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.4.1
192.168.4.0
0.0.0.0
192.168.3.0
192.168.3.2
192.168.3.0
0.0.0.0
192.168.2.0
192.168.3.1
62
192.168.1.0
192.168.3.1
255.255.255.0
UG
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
U
UG
UG
UG
Metric
0
0
1
2
3
Ref
0
0
0
0
0
0 eth1
En el ordenador D:
Kernel IP routing table
Destination
Gateway
192.168.4.0
192.168.4.2
192.168.4.0
0.0.0.0
192.168.3.0
192.168.4.1
192.168.2.0
192.168.4.1
192.168.1.0
192.168.4.1
Use
0
0
0
0
0
Iface
eth1
eth1
eth1
eth1
eth1
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
UG
UG
U
UG
U
Metric
1
1
0
0
0
0
Ref
0
0
0
0
0
0
Use
0
0
0
0
0
0
Iface
eth1
eth0
eth0
eth0
eth1
eth1
La ruta con mtrica 2 ha sido atacada. Ahora cada vez que A se quiera
comunicar con la red 192.168.4.0 enviara los paquetes hacia nuestra entidad
controlada. Segn este experimento se puede afirmar que la estrategia de
ataque enviando mensajes falsos con mtrica 1 es efectiva para atacar rutas
con mtricas igual o mayor de 2.
El ataque tiene que ser persistente. Si no lo fuera el ordenador A vuelve a
tomar la ruta correcta.
Una posible aplicacin, aparte de denegar el servicio, con este tipo de
ataque es poder escuchar datos de una red que en cualquier otro caso no
tenemos acceso. Segn este caso se puede capturar el trfico que el
ordenador A enva a la red 192.168.4.0, y luego redireccionar los paquetes
otra vez a su destinacin real.
Iniciamos el ataque enviando mensajes con mtrica 16. Obtenemos lo
siguiente:
Kernel IP routing table
Destination
Gateway
192.168.2.0
192.168.2.1
192.168.2.0
0.0.0.0
192.168.1.0
192.168.1.2
192.168.1.0
0.0.0.0
Genmask
255.255.255.0
255.255.255.0
255.255.255.0
255.255.255.0
Flags
UG
U
UG
U
Metric
0
0
0
0
Ref
0
0
0
0
Use
0
0
0
0
Iface
eth0
eth0
eth1
eth1
63
5. CONCLUSIONES
Tras realizar las pruebas, se puede observar que el protocolo RIP es
vulnerable tanto utilizando el ataque de mtrica 16 como utilizando el ataque
de mtrica 1.
No obstante, en las pruebas se han configurado los routers para que utilice
RIP en todas las redes que tiene directamente conectadas. Esto, en un caso
real no seria necesario. Retomemos el caso de pruebas:
Fig. 32
El protocolo RIP participa en todas las interfaces. Pero se puede ver que
en la interfaz Ethernet, que conecta con la red donde se encuentra la entidad
controlada no sera necesario configurar RIP. Esto es as porque no hay
ningn router que le pueda interesar la informacin que enva RIP. Adems,
en el caso que el administrador de la red le interesase que la red Ethernet
utilizar RIP, puede configurarlo de forma pasiva, de esta forma los mensajes
de respuesta que reciba el ordenador A por esa interfaz son rechazados
directamente.
Por lo tanto, se puede concluir que RIP, aunque es vulnerable, es til en
un entorno de confianza, y hay que prestar especial atencin a la hora de
configurarlo y no utilizarlo en las interfaces donde no haga falta.
6. RECURSOS UTILIZADOS
Para desarrollar el presente proyecto se han utilizado diferentes tipos de
recursos. Por una parte, se ha hecho uso de recursos bibliogrficos para la
documentacin sobre el protocolo RIP. Para ello se han consultado los RFCs
(Request For Comments) nmero 1058 y 2453. Internet tambin ha sido en
diversas ocasiones una fuente de inspiracin.
64
65
7. MANUAL
7.1 INTRODUCCIN
Este documento recoge la gua de usuario de la aplicacin Java de ataque
al protocolo de encaminamiento RIP.
Mediante esta herramienta, el usuario puede realizar un ataque a una red
conmutada que utilice RIP como protocolo de encaminamiento, desde un
ordenador conectado a dicha red.
7.2 REQUISITOS
Para al ejecucin correcta de la aplicacin se debe disponer de la mquina
virtual java instalada en el ordenador que vaya a realizar el ataque. Adems
se debe disponer de acceso a la red atacada.
7.3 CARACTERSTICAS
La principal caracterstica de la aplicacin de ataque al protocolo RIP, es
la capacidad para realizar un ataque de red sin necesidad de tener
conocimientos tcnicos del protocolo, simplemente utilizando una sencilla
interfaz grfica. El ataque es posible en cualquier topologa de red, desde un
ordenador conectado a la red.
Adems la aplicacin soporta tanto RIP en su versin 1, como la versin
2. El tipo de ataque que se consigue es una denegacin de servicio en la red,
y es posible realizarlo siguiendo dos estrategias diferentes.
66
Fig. 33
67
Fig. 34
-Intentando crear Socket UDP 520...: La aplicacin intenta iniciar una conexin
por el puerto 520, utilizado por el protocolo RIP.
-Versin escogida: Se muestra la versin que se ha escogido.
-Ataque escogido: Se muestra el tipo de ataque escogido.
-Socket creado con xito: Indica que la aplicacin ha conseguido iniciar la
conexin.
-Ejecutando rutina: Peticin de tabla de encaminamiento: La aplicacin enva
un mensaje RIP solicitando al router la tabla de encaminamiento. El formato
del mensaje depender de la versin escogida antes de conectar.
Fig. 35
68
Mensaje
Socket: El puerto 520 lo esta usando
otra aplicacin, cirrela para poder
iniciar el ataque
Socket: No se ha podido enviar la
peticin. Revise las conexiones de
red.
Socket: Socket cerrado
Descripcin
El programa no se puede
ejecutar porque el puerto 520,
que utiliza RIP, esta ocupado
por otra aplicacin.
Se ha producido un problema
de comunicacin con la red.
El socket se ha cerrado.
Normalmente cuando se clica
en el botn stop.
Si los vecinos tardan ms de
30 segundos en contestar una
peticin
Si se recibe un datagrama que
no es de respuesta.
La red que se esta intentando
atacar no utiliza RIP1
La red que se esta intentando
atacar no utiliza RIP2
69