UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias...

136
UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias Matemáticas y Físicas Carrera de Ingeniería en Sistemas Computacionales “ESCÁNER DE RED” PROYECTO DE TESIS DE GRADO CURSO DE GRADUACIÓN Previo a la Obtención del Título de: INGENIERO EN SISTEMAS COMPUTACIONALES Autor(es): FAUSTOS AYALA RUTH ELIZABETH MENDOZA SANTANA MARIANA BEATRIZ RIVERA BRIONES JOSE ENRIQUE GUAYAQUIL-ECUADOR Año: 2007

Transcript of UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias...

Page 1: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

UNIVERSIDAD DE GUAYAQUIL

Facultad de Ciencias Matemáticas y Físicas

Carrera de Ingeniería en SistemasComputacionales

“ESCÁNER DE RED”

PROYECTO DE TESIS DE GRADOCURSO DE GRADUACIÓN

Previo a la Obtención del Título de:

INGENIERO EN SISTEMAS COMPUTACIONALES

Autor(es):

FAUSTOS AYALA RUTH ELIZABETH

MENDOZA SANTANA MARIANA BEATRIZ

RIVERA BRIONES JOSE ENRIQUE

GUAYAQUIL-ECUADOR

Año: 2007

Page 2: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos
Page 3: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

II

AGRADECIMIENTO

Agradecemos a Dios, sobre todas las

cosas, ya que sin él nuestras vidas no

hubiesen sentido esa gran fuerza espiritual

que siempre nos acompañó y poder así al

final concretar con una de nuestras metas

que un día nos propusimos cumplir.

Ruth, Beatriz y José

Page 4: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

III

DEDICATORIA

Dedico este proyecto a mis padres,

Consuelito y Francisco, que siempre

estuvieron a mi lado, brindándome su

apoyo incondicional a todo lo que me

proponga, de esta manera poder

cumplir con mi meta profesional.

Gracias Mami y Papi, que Dios los

bendiga siempre.

Ruth Faustos Ayala

Page 5: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

IV

DEDICATORIA

A los mejores Padres del Mundo…

los míos, por su esfuerzo constante y

apoyo innegable; quienes con

sabiduría y acertado conducción,

hicieron posible la culminación de mi

carrera.

… a ellos mil gracias por todo lo

recibido.

Beatriz Mendoza Santana.

Page 6: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

V

DEDICATORIA

Este proyecto lo dedico primero que nadie a

Dios, gracias por otorgarme la sabiduría y la

salud para lograrlo.

Gracias a mis padres… Gracias a los

intercambios y exposiciones de ideas con

mis compañeros y amigos de estudios

durante mi vida universitaria.

José Rivera Briones.

Page 7: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

VI

TRIBUNAL DE GRADUACIÓN

Page 8: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

VII

DECLARACIÓN EXPRESA

“La autoría de la tesis de grado corresponde exclusivamente a los suscritos

perteneciendo a la Universidad de Guayaquil los derechos que generen la

aplicación de la misma”

(Reglamento de Graduación de la Carrera de Ingeniería en Sistemas

computacionales, Art. 26)

Page 9: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

VIII

RESUMEN

Las redes de computadoras son canales de comunicación compartidos. El

compartir, significa que las computadoras pueden recibir información

proveniente de otras maquinas. El capturar la información que viene de otra

parte de la red se le llama "sniffing", es decir, husmear la información que se

esta transfiriendo en la red.

La más popular manera de conectar computadoras es a través del Ethernet.

El cableado Ethernet trabaja por el envío de paquetes de información por

todos los nodos de la red. El paquete contiene en su cabecera la dirección de

la maquina destino. Solo la maquina que contenga dicha dirección podrá

aceptar el paquete. Una maquina que acepte todos los paquetes sin importar

los que contenga la cabecera, se dice que esta en estado promiscuo.

El Escáner de Red puede ser utilizado para "captar", lícitamente o no, los

datos que son transmitidos en la red. Nuestro proyecto también puede leer

los datos dentro del paquete así como la dirección de destino.

Page 10: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

IX

ÍNDICE GENERAL

AGRADECIMIENTO II

DEDICATORIA III

TRIBUNAL DE GRADUACIÓN VI

DECLARACIÓN EXPRESA VII

RESUMEN VIII

ÍNDICE GENERAL IX

ÍNDICE DE FIGURAS XII

PARTE INTRODUCCIÓN

CAPÍTULO 1

ESCÁNER DE RED

1.1 Antecedentes 1

1.2. Problemáticas y soluciones 2

1.2.1 Violación a la DISPONIBILIDAD: Denegación de servicios 2

1.2.2 Violación a la CONFIDENCIALIDAD: Sniffers de red 3

1.2.3 Autenticación e integridad: firmas y certificados digitales 4

Page 11: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

X

1.3. Misión 5

1.4. Visión 5

1.5. Objetivos generales 5

1.6. Objetivos específicos 5

1.7 . Alcance del proyecto 6

1.7.1 Funcionalidad 6

1.7.2 Interacción del programa 6

1.8 Beneficios 7

CAPITULO 2

ANÁLISIS

2.1. Antecedentes 8

2.2. Requerimientos 9

2.3. Análisis de requerimientos 11

2.4. Diagrama de Estado 13

2.5. Diagramas de Casos de Uso 14

2.6. Especificación de procesos: Captura de Paquetes 17

2.7. Diagrama de Eventos 18

2.8. Diagrama de Objetos 19

2.9. Diagrama de Flujo de Datos 20

Page 12: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

XI

CAPITULO 3

DISEÑO

3.1. Diseño Arquitectónico 21

3.1.1. Arquitectura y Funcionalidad del proyecto 21

3.2. Diseño de Interfaz 22

CAPITULO 4

PRUEBAS

4.1. Pruebas de las paginas de la Aplicación 36

4.2 Pruebas de las clases utilizadas en la Aplicación 37

4.3 Pruebas del Sistema 38

CAPITULO 5

DESARROLLO E IMPLEMENTACIÓN

5.1. Desarrollo del sistema 39

5.2. Implementación del sistema 40

CAPITULO 6

RECOMENDACIONES Y CONCLUSIONES6.1 Recomendaciones 44

6.2 Conclusiones 45

GLOSARIOS DE TÉRMINOS

Page 13: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

XII

ÍNDICE DE FIGURAS

Pág.

Fig. 2.1 Requerimientos 10

Fig. 2.2 Análisis de requerimientos 11

Fig. 2.3 Diagrama de estado 13

Fig. 2.4 Diagrama de caso de uso “Búsqueda de IP” 15

Fig. 2.5 Diagrama de caso de uso “Búsqueda de la MAC” 16

Fig. 2.6 Especificación de procesos de Captura de paquetes 17

Fig. 2.7 Diagramas de eventos 18

Fig. 2.8 Diagramas de objetos 19

Fig. 2.9 Diagramas de flujos de datos 20

Fig. 3.1 Diseño Arquitectónico y Funcionalidad 21

Fig. 3.2 Interfaz de ingreso de Usuario Administrador 22

Fig. 3.3 Menú principal del Escáner de Red 22

Fig. 3.4 Selección de tarjeta de red (LAN o Wireless) a capturar 23

Fig. 3.5 Proceso de inicio de captura de tramas de red 23

Page 14: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

XIII

Fig. 3.6 Opción para finalizar el proceso de capturar tramas 24

Fig. 3.7 Trama de red capturada 24

Fig. 3.8 Selección de Reportes Acumulativos 25

Fig. 3.9 Selección de Reportes Continuo 25

Fig. 3.10 Selección de detalles del paquete “Capa de enlace de datos” 26

Fig. 3.11 Selección de detalles de Ethernet “capa de enlace de datos” 26

Fig. 3.12 Selección de detalles de IPv4 en la capa de red 27

Fig. 3.13 Selección de detalles de IPv6 en la capa de red 27

Fig. 3.14 Selección de detalles de ARP/RARP en la capa de red 28

Fig. 3.15 Selección de detalles de TCP en la capa de transporte 28

Fig. 3.16 Selección de detalles de UDP en la capa de transporte 29

Fig. 3.17 Selección de detalles de ICMP en la capa de transporte 29

Fig. 3.18 Selección de detalles de HTTP en la capa de aplicación 30

Fig. 3.19 Pestaña Extra, con resolver IP 30

Fig. 3.20 Ventana de Resolución de Direcciones IP 31

Fig. 3.21 Reporte Acumulativo de la información General

de la trama capturada 31

Fig. 3.22 Reporte Acumulativo de protocolo “Capa de Red ”

de la trama capturada 32

Fig. 3.23 Reporte Acumulativo de protocolo “Capa de Transporte ”

de la trama capturada 32

Fig. 3.24 Reporte Acumulativo “Memoria Libre” de la trama capturada 33

Page 15: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

XIV

Fig. 3.25 Reporte Continúo de la información General 33

Fig. 3.26 Reporte Continúo de protocolo “Capa de Red ” 34

Fig. 3.27 Reporte Continúo de protocolo “Capa de Transporte ” 34

Fig. 3.28 Reporte Continúo “Memoria Libre” 35

Fig. 4.1 Mensaje de error de clave de usario incorrecto 37

Fig. 4.2 Mensaje de error 37

Page 16: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

1

CAPITULO 1

ESCANER DE RED

1.1 Antecedentes

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

transmisión sea compartido por varias computadoras y dispositivos de red, lo

que hace posible que un ordenador capture tramas de información no

destinadas a el.

Para conseguir esto el sniffer pone la tarjeta de red o NIC en un estado

conocido como modo promiscuo, en el cual la capa de enlace de datos no

son descartadas las tramas no destinadas a la MAC address de la tarjeta; de

esta manera se puede obtener todo tipo de información de cualquier aparato

conectado a la red.

Page 17: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

2

1.2. Problemáticas y soluciones

Actualmente, una gran cantidad de tráfico confidencial viaja en claro, sin

ningún tipo de cifrado, por las redes de la mayoría de las empresas. Ese es

el entorno ideal para un "intruso malicioso" que puede acceder de forma

transparente a esa información y permitir que alguien abuse de su

conocimiento.

Basándonos en los principios de seguridad de la red, podemos clasificar en

tres tipos de problemas:

1.2.1. Violación a la DISPONIBILIDAD: Denegación de servicios

Algunas Técnicas DoS (Denial of Service) conocidas:

Envenenamiento de la cache ARP (ARP poissoning)

Inundación de Pings (Ping Flood o Smurf)

Ping de la muerte (Ping of Dead)

Bombas de Redirección

Fragmentación de IP (Teardrop)

Inundación por conexiones TCP semiabiertas (TCP SYN Flood)

Agotamiento de conexiones TCP (TCP Conection Exhaustion)

Inundación de UDP (UDP flood)

Ataque DoS Distribuido (DDoS)

Etc.

Page 18: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

3

SOLUCION

Cerrar todos los puertos del sistema que no sean necesarios.

Proteger los sistemas y la red mediante un FIREWALL.

1.2.2. Violación a la CONFIDENCIALIDAD: Sniffers de red

Los Sniffers es una herramienta capaz de capturar toda la información

que circula a través de la tarjeta red.

Capturar nombres de usuarios y contraseñas de acceso a un

sistema

Capturar información privada que viaja por la red

o Correo electrónico y ficheros transmitidos por FTP, NFS, etc.

o Nº de tarjetas de crédito, PINs de acceso a cuentas bancarias.

SOLUCION

Uso de comunicaciones encriptadas

o Sustituir protocolos inseguros (Telnet, FTP, etc.) por

protocolos encriptados SSH, Telnet Seguro)

o Utilizar un sistema de encriptación de clave pública para:

Envío de correo electrónico

Transacciones de comercio electrónico, banca electrónica.

Uso de redes con switch

Page 19: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

4

o En este tipo de redes el campo de acción del sniffer es mucho

más limitado

Uso de herramientas anti-sniffers

o Existen herramientas para detectar sniffers y tarjetas en modo

promiscuo

1.2.3. Autenticación e integridad: firmas y certificados digitales

Problemas de la firma digital:

¿Cómo tener certeza de que la clave pública de un usuario

corresponde realmente a ese individuo y no ha sido falsificada

por otro?

¿Quién verifica la identidad del poseedor de la clave pública?

SOLUCION

Certificados digitales

Page 20: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

5

1.3. Misión

Detectar cada uno de los puertos de los elementos de la red, controlando y

detectando cada uno de los posibles huecos o brechas que se encuentren en

la red. Como también se analizará cada una de las direcciones IP y

Direcciones MAC que tengan asignados estos elementos.

1.4. Visión

Detectar y controlar los elementos existentes en la red, como también poder

analizar cada uno de los paquetes de información que la red este

transfiriendo.

1.5. Objetivos generales

Analizar toda la red.

Proporcionar la información de cada IP.

Identificar todas las posibles brechas de inseguridad.

Alertar al administrador de las debilidades antes de que un “intruso”

pueda encontrarlas.

1.6. Objetivos específicos

Obtener la dirección IP del equipo.

Obtener la dirección del MAC del equipo.

Page 21: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

6

Identificar el nombre del equipo, tanto de la red principal como de las

sub redes.

Obtener paquetes de información de cada una de las máquinas.

Identificar las máquinas que se encuentren activas y no activas.

Desempaquetar y mostrar los paquetes de información que se

transfieren en la red en archivos de texto, para verificar que

información es la que se esta transfiriendo.

Categorizar los paquetes extraídos de cada maquina por protocolos de

comunicación, etc.

1.7. Alcance del proyecto

1.7.1. Funcional

Este escáner de red va a tener una funcionalidad hibrida, es decir, va

a funcionar como un simple scanner de red analizando la red existente

mediante diversos métodos potenciales que un “intruso” podría utilizar

para atacarla obteniendo información de cada máquina y a su vez

como un Escaner de Red, vamos a obtener los paquetes de

información que se están transfiriendo y desempaquetándolos para

que puedan ser legibles por el usuario.

1.7.2. Interacción del programa

La interacción va a ser en su gran mayoría grafica, facilitando su uso.

Page 22: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

7

Uso de menús fácilmente comprensibles.

1.8. Beneficios

Como principal beneficio es la resolución de problemas de la red, tales como

el análisis del tráfico y la detección de posible problemas de configuración

(cables de red desconectados y tablas de rutas mal configuradas).

Además, con la experiencia del Administrador de la red, se podrá utilizarlo

como detector de intrusos, de tal forma que sea ubicado estratégicamente

para monitorizar el tráfico de la red.

Page 23: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

8

CAPITULO 2

ANALISIS

2.1. Antecedentes

El software de sistema son conjuntos de programas escritos para servir a

otros programas. Algunos programas procesan datos en gran medida

indeterminados.

En cualquier caso, el área del software de sistemas se caracteriza por una

fuerte interacción con el hardware de la computadora; una gran utilización de

múltiples usuarios; una operación concurrente que requiere planificación, una

compartición de recursos y una sofisticada gestión de procesos; unas

estructuras de datos complejas y múltiples interfaces externas.

Page 24: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

9

Todo el desarrollo del software se puede caracterizar como bucle de

resolución de problemas en el que se encuentran cuatro etapas distintas:

Status quo, definición de problemas, desarrollo técnico e integración de

soluciones.

Status quo, representa el estado actual de sucesos; la definición de

problemas identifica el problema especifico a resolverse; el desarrollo

técnico, resuelve el problema a través de la aplicación de alguna tecnología y

la integración de soluciones, ofrece los resultados a los que solicitan la

solución en primer lugar.

Todas las etapas descritas anteriormente coexisten simultáneamente en

algún nivel de detalle.

2.2. Requerimientos

Se necesita un aplicativo que realice un escaneo de una red, si importar que

esta sea lambrica o inalámbrica, reconociendo todas las maquinas que estén

conectadas a la red sin importar que esta este activa o no.

El medio de reconocer las maquinas conectadas podría variar entre un

simple mensaje de contestación de aceptación o de verificación o un

Page 25: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

10

escaneo de puertos abiertos el medio podría variar según la facilidad de la

aplicación.

Una vez que la maquina que tenga el aplicativo este conectada o enlazada a

la red, tendría información de los equipos conectados como dirección MAC,

dirección IP, nombre del equipo entre otras características adicionales que

también serian importantes para identificar claramente los equipos.

Hay que aclarar que un requerimiento importante seria que al escanear la

red, se pueda ingresar un rango de direcciones IP para agilitar el escaneo o

mejor aun si se conoce una dirección IP especifica.

Fig. 2.1 Requerimientos

Page 26: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

11

Además de los requerimientos anteriores se necesita también que el

aplicativo también ejerza la función de sniffer de red con la característica

fundamental que el aplicativo pueda abrir los paquetes que se están

transfiriendo en la red desde un equipo a otro.

Esta de más aclarar que no solo basta con abrir el paquete si no también

poder leerlo, es decir poder armar el contenido y poder visualizarlo en un

archivo de texto donde este sea guardado si el usuario lo requiere.

2.3. Análisis de requerimientos

Fig. 2.2 Análisis de requerimientos

Analizando los principios básicos del escáner de red tenemos como

características principales los elementos mostrados en el gráfico anterior, los

cuales desglosaremos de una manera más detallada más adelante, para este

gráfico se toma cada elemento como una caja negra de manera general, de

lo que se tendría que emplear el escáner de red.

Enlaza a laRed

Verifica Recopila

Escáner de red

Page 27: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

12

El primer factor se trata de enlace de red, es decir, que la maquina en la que

se encuentra la aplicación debe conectarse a una red determinada sea esta

lambrica como inalámbrica, lo cual seria indiferente ya que lo único

fundamental en este punto seria que la maquina implicada tenga acceso a

una red.

Segundo elemento seria el de verificar las maquinas existentes tanto en la

red como en una sub red, estableciendo comunicación con las maquinas

existentes dentro de la red como en sus sub redes, estableciendo

comunicación mediante un mensaje que será enviado desde la maquina en

la cual se encuentra la aplicación hacia la maquina o maquinas conectadas a

la red, la cual o cuales enviaran una señal o mensaje de respuesta como

confirmación que se encuentre activa o no.

Tercer factor se encuentra la recopilación de la información que es

proporcionada por las maquinas que se encuentran en la red, esta

información consta de la dirección IP de la maquina, nombre de la maquina,

el MAC address y de la tasa de transferencia de la red.

Page 28: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

13

2.4. Diagrama de Estados

Los diagramas de estados muestran el comportamiento de los objetos, es

decir, el conjunto de estados por los cuales pasa un objeto durante su vida,

junto con los cambios que permiten pasar de un estado a otro.

Identifica un periodo de tiempo del objeto (no instantáneo) en el cual el objeto

esta esperando alguna operación, tiene cierto estado característico o puede

recibir cierto tipo de estímulos.

Fig. 2.3 Diagrama de estado

Page 29: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

14

2.5. Diagramas de Casos de Uso

Identificar los actores:

Administrador de Red

Encargado de gestionar, controlar y administrar cada uno de los

componentes de la red.

Verificando seguridad y comunicación de la red.

Solucionar congestionamiento y configurar correctamente la red

para que esto no ocurra.

Tareas que realiza el administrador de red

Seguridad de la red

Configuración de la red

Verificar de puertos físicos y lógicos

Manejo de grupos de conexión

Page 30: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

15

Matriz caso de uso: Obtener direcciones IP del equipo

Nombre Buscar Dirección IP

Actor Administrador de red

Función

Buscar Dirección IP que permite realizar una consulta para

verificar y además encontrar elementos de la red.

Se envía una consulta a cada uno de los elementos,

esperando la respuesta de ellos.

La búsqueda retornará la información requerida, o un

mensaje en el caso que no haya ninguna información

Nombre Obtener Dirección IP

Actor Administrador de red

Función Retorna la información de la IP requerida

Si no existe retornará un mensaje de error o aviso

Fig. 2.4 Diagrama de caso de uso “Busquedad de IP”

Page 31: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

16

Matriz caso de Uso: Obtener direcciones MAC del equipo

Nombre Buscar Dirección MAC

Actor Administrador de red

Función

Permite verificar el identificador asignado, en cada unas de

los equipos.

Buscar Dirección MAC que permite realizar una consulta

para verificar y además encontrar elementos de la red.

Se envía una consulta a cada uno de los elementos,

esperando la respuesta de ellos.

La búsqueda retornará la información requerida.

Nombre Obtener Dirección MAC

Actor Administrador de red

Función Retorna la información de la MAC requerida

Si no existe retornará un mensaje de error o aviso

Fig. 2.5 Diagrama de caso de uso “Busquedad de la MAC”

Page 32: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

17

2.6. ESPECIFICACION DE PROCESOS: CAPTURA DE PAQUETES

Fig. 2.6 Especificación de procesos de Captura de paquetes

Page 33: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

18

2.7. DIAGRAMA DE EVENTOS

Permiten mostrar los escenarios, identificando los eventos y los objetos que

intercambian eventos, o los agentes que intercambian eventos con el

sistema.

Son una representación de la realidad indicando la secuencia de eventos

Fig. 2.7 Diagramas de eventos

Page 34: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

19

2.8. DIAGRAMA DE OBJETOS

Los diagramas de objetos modelan las instancias de elementos contenidos

en los diagramas de clases. Se utilizan para visualizar, especificar, construir

y documentar la existencia de ciertas instancias en el sistema, junto a las

relaciones entre ellas.

Fig. 2.8 Diagramas de objetos

Page 35: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

20

2.9. DIAGRAMA DE FLUJO DE DATOS

Los diagramas de flujo son una manera de representar visualmente el flujo

de datos a través de sistemas de tratamiento de información. Los diagramas

de flujo describen que operaciones y en que secuencia se requieren para

solucionar un problema dado.

Son representación diagramático que ilustra la secuencia de las operaciones

que se realizarán para conseguir la solución de un problema.

Fig. 2.9 Diagramas de flujos de datos

Page 36: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

21

CAPITULO 3

DISEÑO

3.1. Diseño Arquitectónico

3.1.1. Arquitectura y Funcionalidad del proyecto

Fig. 3.1 Diseño Arquitectónico y Funcionalidad

Page 37: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

22

3.2. Diseño de Interfaz

La interfaz que se ha desarrollado en este sistema se detalla a continuación:

Fig. 3.2 Interfaz de ingreso de Usuario Administrador

Fig. 3.3 Menú principal del Escaner de Red

Page 38: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

23

Fig. 3.4 Selección de tarjeta de red (LAN o Wireless) a capturar

Fig. 3.5 Proceso de inicio de captura de tramas de red

Page 39: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

24

Fig. 3.6 Opción para finalizar el proceso de capturar tramas

Fig. 3.7 Trama de red capturada

Page 40: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

25

Fig. 3.8 Selección de Reportes Acumulativos

Fig. 3.9 Selección de Reportes Continuo

Page 41: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

26

Fig. 3.10 Selección de detalles del paquete “Capa de enlace de datos”

Fig. 3.11 Selección de detalles de Ethernet en la capa de enlace de datos

Page 42: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

27

Fig. 3.12 Selección de detalles de IPv4 en la capa de red

Fig. 3.13 Selección de detalles de IPv6 en la capa de red

Page 43: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

28

Fig. 3.14 Selección de detalles de ARP/RARP en la capa de red

Fig. 3.15 Selección de detalles de TCP en la capa de transporte

Page 44: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

29

Fig. 3.16 Selección de detalles de UDP en la capa de transporte

Fig. 3.17 Selección de detalles de ICMP en la capa de transporte

Page 45: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

30

Fig. 3.18 Selección de detalles de HTTP en la capa de aplicación

Fig. 3.19 Pestaña Extra, con resolver IP

Page 46: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

31

Fig. 3.20 Ventana de Resolución de Direcciones IP

Fig. 3.21 Reporte Acumulativo de la información General

de la trama capturada

Page 47: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

32

Fig. 3.22 Reporte Acumulativo de protocolo “Capa de Red ”

de la trama capturada

Fig. 3.23 Reporte Acumulativo de protocolo “Capa de Transporte ”

de la trama capturada

Page 48: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

33

Fig. 3.24 Reporte Acumulativo “Memoria Libre”

de la trama capturada

Fig. 3.25 Reporte Continúo de la información General

de la trama capturada

Page 49: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

34

Fig. 3.26 Reporte Continúo de protocolo “Capa de Red ”

de la trama capturada

Fig. 3.27 Reporte Continúo de protocolo “Capa de Transporte ”

de la trama capturada

Page 50: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

35

Fig. 3.28 Reporte Continúo “Memoria Libre”

de la trama capturada

Page 51: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

36

CAPITULO 4

PRUEBAS

4.1. PRUEBAS DE LAS PÁGINAS DE LA APLICACIÓN

Para nuestro proyecto “Escaner de Red”, hemos reaiizado las siguientes

pruebas:

Menú Principal

Cada opción del menú principal invoca a la página que le corresponde.

Tipos de datos

Se verificó que al elegir una o varias opciones en el detalle, sólo se

mostrará la información escogida por el usuraio.

Se verificó que en los tipos de datos, no envien datos inconsistentes.

Page 52: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

37

Se verificó que en los campos obligatorios sean ingresados con datos

validos.

Fig. 4.1 Mensaje de error de clave de usario incorrecto

Fig. 4.2 Mensaje de error

Consultas

Se ha verficado que se muestre los datos de manera correcta.

4.2 PRUEBA DE LAS CLASES UTILIZADAS EN LA APLICACION

Se ha realizado pruebas con cada una de las clases, de tal manera que cada

método solo trabaje con su misma funcionalidad, de manera independiente,

es decir, que cada entidad va a realizar sus propias actividades sin que ella

intervenga en las demás. Tratando de encapsular dentro de cada clase una

entidad que las permita identificarse de manera adecuada.

Page 53: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

38

4.3 PRUEBAS DEL SISTEMA

Las interfases que han sido desarrolladas en este sistema son amigables, de

fácil comprensión y manejo para el usuario, cabe recalcar que este sistema

debe ser utilizado como detector de intrusos, tomando en consideración la

experiencia del Administrador de la red, de tal forma que sea ubicado

estratégicamente para monitorizar el tráfico de la red administrado por

personas que tengan los conocimientos suficientes en lo que se refiere al

manejo de redes, o a su vez, bases solidades en sistemas de información.

Page 54: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

39

CAPITULO 5

DESARROLLO E IMPLEMENTACION

5.1. Desarrollo del sistema

El aplicativo “Escaner de Red” se desarrolló utilizando una arquitectura

orientada a objetos, ya que a cada entidad del aplicativo se relaciona como

un objeto, con sus propias características y funcionalidades.

Las creaciones de las clases están siendo utilizadas de tal manera, que cada

método es asignado con un rol específico, es decir, que cada clase

contendrá solo la funcionalidad de ella misma. Tratando de encapsular dentro

de cada clase una entidad que las permita identificarse de manera adecuada.

Page 55: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

40

5.2. Implementacion del sistema

Para nuestro proyecto se consideró como principal objetivo la correcta

delegación de las actividades a cada una de las entidades que intervienen en

el aplicativo “Escaner de Red”, es decir, que cada entidad va a realizar sus

propias actividades sin que ella intervenga en las demás.

Es importante mencionar que al usar la programación orientada a objetos,

significa que la única manera de acceder a los atributos de un objeto es

mediante sus métodos, de otra manera no se puede acceder a la

información.

La jerarquía se desarrollo de acuerdo a las categorías de las clases, es decir,

podemos mencionar como ejemplo a los paquetes de la interfaz gráfica

donde se encontrarán las respectivas clases y métodos concernientes a todo

lo que tiene que ver con la presentación del aplicativo.

De acuerdo al patrón o estructura de desarrollo que estamos siguiendo

también hay que tener en cuenta que cada clase tendrá los correspondientes

métodos que proporcionan información importante de cada objeto que se

esta usando.

Page 56: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

41

El paquete de la trama es capturado por la clase “JDcaptor”, proporcionando

la información para cada una de las entidades. Cada clase en el momento de

realizar la “instancia” hace una conversión o un “cast” de tipo paquete

(packet) al tipo de objeto que se está utilizando en ese momento. Teniendo

como clase principal “JpcapSniffer”, cuyo propósito es de instanciar a las

demás clases: ARPAnalyzer, EthernetAnalyzer, FTPAnalyzer,

HTTPAnalyzer, ICMPAnalyzer, IPv4Analyzer, IPv6Analyzer,

JDPacketAnalyzer, PacketAnalyzer, POP3Analyzer, SMTPAnalyzer,

SSHAnalyzer, TCPAnalyzer, TelnetAnalyzer, UDPAnalyzer; dentro de esta

clase principal hacemos referencia que vamos a utilizar las librerías JPCAP.

Una vez que el usuario escoge la interfaz de red, en la cual se va a realizar la

captura, en ese instante se activará la tarjeta de red en modo promiscuo, a

manera de programación se diría que en ese momento se hace la invocación

del método que dispara un hilo (tread), es decir, se crea un ciclo en la cual

siempre va a estar escuchando los paquetes que transitan por la red, de esta

manera capturarlos para luego presentarlos en una interfaz gráfica.

Se ha definido un máximo de paquetes capturados, que en este caso son

10.000 paquetes, ya que al momento de llegar a la base se realiza el proceso

de cola, es decir, si esta lleno el repositorio y si ingresa una nueva trama,

Page 57: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

42

entonces se eliminará el primero que ingresó a la cola para dar cabida al

último en ingresar.

En la presentación de los reportes estadísticos, JPCAP dispone de métodos

que nos proporcionan una interfaz gráfica porcentual (diagramas de pasteles

y de líneas), proporcionado al usuario una mejor visualización de la

información de la trama, en cuanto a los protocolos que mas han sido

utilizados.

Además, el proyecto consta de un archivo que carga por defecto la

configuración de nuestro aplicativo e inclusive sólo proporciona los datos

escogidos a interés del usuario, muestra la información de los detalles de los

protocolos que intervienen en el modelo OSI, como por ejemplo: IP Fuente,

IP Destino, Puerto Fuente, Puerto Destino, MAC fuente, Tiempo de captura,

longitud de la captura, etc. Obteniendo como resultado que el aplicativo sea

mucho más amigable para el usuario y parametrizable a la vez, dejándole al

usuario la elección de la información que quiera ver.

Explicando un poco mas a fondo denotamos que el aplicativo esta dividido o

modula rizado por medio de paquetes, cada paquete contiene clases que

realizan una actividad especifica.

Page 58: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

43

Conforme a la presentación de la información de los paquetes los hacemos

mediante tablas usando las librerías de java.awt y java.swing, entre otras.

Este aplicativo se ejecuta en Stand Alone, además que la información que se

presenta se actualiza constantemente, por ello, es que se requiere de cierta

cantidad de memoria para que se pueda visualizar sin inconvenientes,

evitando que la máquina se vuelva lenta o que de la impresión que el

aplicativo se ha inhibido.

Page 59: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

44

CAPITULO 6

RECOMENDACIONES Y CONCLUSIONES

6.1 Recomendaciones

El Aplicativo debe ser instalado por la versión JPCAP 5.0.1

Que en el Sniffer se instale un gateway, con el objetivo de capturar la

información que transita por la red

Que al equipo al que le vamos a instalar tenga un mínimo de memoria

de 512 MB, debido a que la información de la interfaz se recarga cada

cierto tiempo

No guardar información innecesaria

Page 60: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

45

6.2 Conclusiones

Todo organización ya sea grande o pequeña debe contener herramientazas

a nivel de seguridad que puedan proporcionarles a esta cual es el estado del

flujo de la información que transita a través de la red, y así de esta manera

tomar las medidas necesarias y poder controlar la información que pueden

ser accedidas por individuos.

Y de esta manera proteger unos de los recursos mas importantes de una

organización como es la información

Page 61: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

1

GLOSARIO

Acceso directo: En los sistemas operativos de Microsoft es un ícono que

permite abrir más fácilmente un determinado programa o archivo. Tiene un

papel similar a los enlaces simbólicos de los sitemas Unix, pero con la

diferencia de que es solamente reconocido por la interfaz visual (el "shell").

Adjunto: Se llama así a un archivo de datos (por ejemplo una plantilla de

cálculo o una carta de procesador de textos) enviado junto a un mensaje de

correo electrónico.

Algoritmo: Conjunto de reglas bien definidas para la resolución de un

problema. Un programa de software es la transcripción, en lenguaje de

programación, de uno o más algoritmos.

AGP: Puerto acelerador de gráficos. Permite enviar las imágenes más

velozmente desde la memoria del ordenador a la de la tarjeta gráfica, que es

la que genera la señal de video que sale para el monitor.

Page 62: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

2

Ancho de banda (bandwidth) Término técnico que determina el volumen

de información que puede circular por un medio físico de comunicación de

datos, es decir, la capacidad de una conexión. A mayor ancho de banda,

mejor velocidad de acceso y mayor tráfico.

Antivirus son programas cuya función es detectar y eliminar Virus

informáticos y otros programas maliciosos (a veces denominados malware).

Normalmente un antivirus tiene un componente que se carga en memoria y

permanece en ella para verificar todos los archivos abiertos, creados,

modificados y ejecutados en tiempo real. Es muy común que tengan

componentes que revisen los adjuntos de los correos electrónicos salientes

y entrantes, así como los scripts y programas que pueden ejecutarse en un

navegador web (ActiveX, Java, JavaScript).

ARP Es un protocolo de nivel de red responsable de encontrar la dirección

hardware (Ethernet MAC) que corresponde a una determinada dirección IP.

Para ello se envía un paquete (ARP request) a la dirección de multidifusión

de la red (broadcast (MAC = ff ff ff ff ff ff)) conteniendo la dirección IP por la

que se pregunta, y se espera a que esa máquina (u otra) responda (ARP

reply) con la dirección Ethernet que le corresponde. Cada máquina mantiene

una caché con las direcciones traducidas para reducir el retardo y la carga.

Page 63: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

3

ARP permite a la dirección de Internet ser independiente de la dirección

Ethernet, pero esto solo funciona si todas las máquinas lo soportan.

Base o banco de datos Es un conjunto de datos que pertenecen al mismo

contexto almacenados sistemáticamente para su posterior uso. En este

sentido, una biblioteca puede considerarse una base de datos compuesta en

su mayoría por documentos y textos impresos en papel e indexados para su

consulta.

Backbone (eje central) Nivel más alto en una red jerárquica. Se garantiza

que las redes aisladas (stub) y de tránsito (transit) conectadas al mismo eje

central están interconectadas. Conexión de alta velocidad que conecta a

computadoras encargadas de circular grandes volúmenes de información.

Los backbones conectan ciudades, o países, y constituyen la estructura

fundamental de las redes de comunicación. Usado para interconectar redes

entre sí utilizando diferentes tipos de tecnologías.

Backup Término habitualmente usado en informática. Se refiere al hecho de

crear una copia de seguridad de datos alojados en un determinado medio. Se

hace para prevenir una posible pérdida de información. Los datos alojados en

Page 64: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

4

el backup sirven para volver a un estado anterior de la información en caso

de un desastre.

Bit abreviatura de binary digit (dígito binario). El bit es la unidad más

pequeña de almacenamiento en un sistema binario dentro de una

computadora.

Browser Buscador (navegador o visualizador) Programa que permite leer

documentos en la Web y seguir enlaces (links) de documento en documento

de Hipertexto. Los navegadores "piden" archivos (páginas y otros) a los

servidores de Web según la elección del usuario y luego muestran en el

monitor el resultado.

Byte unidad de información utilizada por las computadoras. Cada byte está

compuesto por ocho bits.

Buffer Un buffer de datos es una ubicación de la memoria en una

computadora o en un instrumento digital reservada para el almacena miento

Page 65: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

5

temporal de información digital, mientras que está esperando ser procesada.

Por ejemplo, un analizador TRF tendrá uno o varios bufers de entrada, donde

se guardan las palabras digitales que representan las muestras de la señal

de entrada.

CPU unidad central de proceso o simplemente procesador. Es el

componente en una computadora digital que interpreta las instrucciones y

procesa los datos contenidos en los programas de computadora. Los CPU

proporcionan la característica fundamental de la computadora digital, la

programabilidad, y son uno de los componentes necesarios encontrados en

las computadoras de cualquier tiempo, junto con el almacenamiento primario

y las facilidades de entrada/salida. Es conocido como microprocesador el

CPU que es manufacturado con circuitos integrados.

Dirección Existen tres tipos de dirección de uso común dentro de Internet:

"Dirección de correo electronico" (email address); "IP" (dirección internet); y

"dirección hardware" o "dirección MAC" (hardware or MAC address).

Dirección Internet Dirección IP que identifica de forma inequívoca un nodo

en una red internet

Page 66: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

6

E-mail, es un servicio de red para permitir a los usuarios enviar y recibir

mensajes mediante sistemas de comunicación electrónicos. Principalmente

se usa este nombre para denominar al sistema que provee este servicio en

Internet, mediante el protocolo SMTP, aunque por extensión también puede

verse aplicado a sistemas análogos que usen otras tecnologías. Por medio

de mensajes de correo electrónico se puede enviar, no solamente texto, sino

todo tipo de documentos. Su eficiencia, conveniencia y bajo costo están

logrando que el correo electrónico desplace al correo normal para muchos

usos habituales.

Emulación proceso de compatibilización entre computadoras mediante un

software.

Ethernet es el nombre de una tecnología de redes de computadoras de área

local (LANs) basada en tramas de datos. El nombre viene del concepto físico

de ether. Ethernet define las características de cableado y señalización de

nivel físico y los formatos de trama del nivel de enlace de datos del modelo

OSI. Ethernet se refiere a las redes de área local y dispositivos bajo el

estándar IEEE 802.3 que define el protocolo CSMA/CD, aunque actualmente

se llama Ethernet a todas las redes cableadas que usen el formato de trama

Page 67: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

7

descrito más abajo, aunque no tenga CSMA/CD como método de acceso al

medio.

Extranet parte de una intranet de acceso disponible a clientes y otros

usuarios ajenos a la compañía.

Fast Ethernet Un nuevo estándar de Ethernet que provee velocidad de 100

Mb por segundo (a diferencia de los 10 Mb por segundo de las redes

Ethernet convencionales).

FDDI (Fiber Distributed Data Interface): Interfaz de datos distribuidos por fibra

óptica. Se trata de una red de 100 Mb por segundo en topología en estrella o

anillo muy utilizada en backbones, hoy desplazada por nuevas tecnologías

como ATM.

Firewall (muralla de fuego): es un software especial que un ordenador o

computadora corre para prevenir el acceso de usuarios no autorizados a la

red. Todo el tráfico de la red e Internet pasa primero a través del firewall.

Page 68: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

8

Fibra óptica Tecnología para transmitir información como pulsos luminosos

a través de un conducto de fibra de vidrio. La fibra óptica transporta mucha

más información que el Cable de cobre convencional. La mayoría de las

líneas de larga distancia de las compañías telefónicas utilizan la fibra óptica.

FIFO es el acrónimo inglés de First In, First Out (primero en entrar, primero

en salir). se utiliza también en estructuras de datos para implementar colas.

La implementación puede realizarse con ayuda de arrays o vectores, o bien

mediante el uso de punteros

FTP (Protocolo de Transferencia de Ficheros) Protocolo que permite a un

usuario de un sistema acceder, y transferir a y desde, otro sistema de una

red. FTP es también habitualmente el nombre del programa que el usuario

invoca para ejecutar el protocolo.

Gateway (pasarela) Hoy se utiliza el término "router" (direccionador) en lugar

de la definición original de "gateway". Actualmente una pasarela es un

programa o dispositivo de comunicaciones que transfiere datos entre redes

que tienen funciones similares pero operativas diferentes utilizado para

conectar diferentes tipos de ambientes operativos. Típicamente se usan para

conectar redes LAN a minicomputadores o mainframes.

Page 69: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

9

GNU/Linux (GNU con Linux o GNU+Linux) es la denominación defendida

por Richard Stallman y otros para el sistema operativo que utiliza el kernel

Linux en conjunto con las aplicaciones de sistema creadas por el proyecto

GNU y de varios otros proyectos/grupos de software. Comúnmente este

sistema operativo es denominado como Linux

Gusano es un virus informático o programa autoreplicante que no altera los

archivos sino que reside en la memoria y se duplica a sí mismo. Los

gusanos utilizan las partes automáticas de un sistema operativo que

generalmente son invisibles al usuario. Es algo usual detectar la presencia

de gusanos en un sistema cuando, debido a su incontrolada replicación, los

recursos del sistema se consumen hasta el punto de que las tareas

ordinarias del mismo son excesivamente lentas o simplemente no pueden

ejecutarse.

Hacker (pirata) Una persona que goza alcanzando un conocimiento profundo

sobre el funcionamiento interno de un sistema, de un ordenador o de una red

de ordenadores. Este término se suele utilizar indebidamente como

peyorativo, cuando en este último sentido sería más correcto utilizar el

término "cracker".

Page 70: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

10

Header (cabecera) Parte inicial de un paquete, que precede a los datos

propiamente dichos y que contiene las direcciones de origen y destino,

control de errores y otros campos. Una cabecera es también la porción de un

mensaje de correo electrónico que precede al mensaje propiamente dicho y

contiene, entre otras cosas, el emisor del

mensaje, la fecha y la hora.

Host (sistema central) Ordenador que permite a los usuarios comunicarse

con otros sistemas centrales de una red. Los usuarios se comunican

utilizando programas de aplicación, tales como el correo electrónico, Telnet y

FTP.

Housig Es una modalidad de alojamiento Web destinado principalmente a

grandes empresas y a empresas de servicios Web. Consiste básicamente

en vender o alquilar un espacio físico de un centro de datos para que el

cliente coloque ahí su propio ordenador. La empresa le da la corriente y la

conexión a Internet, pero el servidor lo elige completamente el cliente,

incluso el hardware

Hub Concentrador. Dispositivo que se utiliza típicamente en topología en

estrella como punto central de una red, donde por ende confluyen todos los

enlaces de los diferentes dispositivos de la red.

Page 71: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

11

Internet Si bien "internet" es una red, el término "internet" se usa

habitualmente para referirse a un conjunto de redes interconectadas

mediante direccionadores (rotures).

Intranet es una red de ordenadores de una red de área local (LAN) privada

empresarial o educativa que proporciona herramientas de Internet, la cual

tiene como función principal proveer lógica de negocios para aplicaciones de

captura, reportes, consultas, etc. con el fin de auxiliar la producción de

dichos grupos de trabajo; es también un importante medio de difusión de

información interna a nivel de grupo de trabajo. No necesariamente

proporciona Internet a la organización; normalmente, tiene como base el

protocolo TCP/IP de Internet y, por ser privada, puede emplear mecanismos

de restricción de acceso a nivel de programación como lo son usuarios y

contraseñas de acceso o incluso a nivel de hardware como un sistema

firewall (cortafuegos) que pueda restringir el acceso a la red organizacional.

La Intranet fue creada para mayor seguridad para poder compartir archivos,

carpetas y recursos.

Interfaz Elemento de transición o conexión que facilita el intercambio de

datos. El teclado, por ejemplo, es una interfaz entre el usuario y la

computadora.

Page 72: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

12

IP Protocolo de Internet.

Kernel es la parte fundamental de un sistema operativo. Es el software

responsable de facilitar a los distintos programas acceso seguro al hardware

de la computadora o en forma más básica, es el encargado de gestionar

recursos, a través de servicios de llamada al sistema. Como hay muchos

programas y el acceso al hardware es limitado, el núcleo también se encarga

de decidir qué programa podrá hacer uso de un dispositivo de hardware y

durante cuánto tiempo, lo que se conoce como multiplexado. Acceder al

hardware directamente puede ser realmente complejo, por lo que los núcleos

suelen implementar una serie de abstracciones del hardware. Esto permite

esconder la complejidad, y proporciona una interfaz limpia y uniforme al

hardware subyacente, lo que facilita su uso para el programador.

Lenguaje de Programación es un lenguaje que puede ser utilizado para

controlar el comportamiento de una máquina, particularmente una

computadora. Consiste en un conjunto de reglas sintácticas y semánticas

que definen su estructura y el significado de sus elementos,

respectivamente.

Page 73: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

13

Linux Es la denominación de un sistema operativo tipo-Unix y el nombre de

un núcleo. Es uno de los paradigmas más prominentes del software libre y

del desarrollo del código abierto, cuyo código fuente está disponible

públicamente y cualquier persona puede libremente usarlo, estudiarlo,

redistribuirlo y, con los conocimientos informáticos adecuados, modificarlo[1].

Paquete (packet): La parte de un mensaje que se transmite por una red.

Antes de ser enviada a través de Internet, la información se divide en

paquetes.

Protocolo Un conjunto de reglas formales que describen como se trasmiten

los datos, especialmente a través de la red, para la comunicación entre dos

entidades pares. Informalmente: lenguaje que utilizan, por ejemplo, dos

computadoras para comunicarse a cierto nivel. Los protocolos de más bajo

nivel definen los estándares eléctricos y físicos que deben observarse.

Ejemplos típicos de protocolos de comunicaciones: PPP, IP, TCP, UDP,

HTTP, FTP

Page 74: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

14

RAM Se trata de una memoria de semiconductor en la que se puede tanto

leer como escribir información. Es una memoria volátil, es decir, pierde su

contenido al desconectar la energía eléctrica. Se utiliza normalmente como

memoria temporal para almacenar resultados intermedios y datos similares

no permanentes. Se dicen "de acceso aleatorio" o "de acceso directo"

porque los diferentes accesos son independientes entre sí. Por ejemplo, si

un disco rígido debe hacer dos accesos consecutivos a sectores alejados

físicamente entre sí, se pierde un tiempo en mover la cabeza hasta la pista

deseada (o esperar que el sector pase por debajo, si ambos están en la

misma pista), tiempo que no se pierde en la RAM.

ROM: Read Only Memory: Memoria de sólo lectura. Memoria incorporada

que contiene datos que no pueden ser modificados. Permite a la

computadora arrancar. A diferencia de la RAM, los datos de la memoria ROM

no se pierden al apagar el equipo.

Router (enrutador o encaminador): sistema constituido por hardware y

software para la transmisión de datos en la Internet. El emisor y el receptor

deben utilizar el mismo protocolo.// Dispositivo que dirige el tráfico entre

redes y que es capaz de determinar los caminos más eficientes, asegurando

un alto rendimiento.

Page 75: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

15

Servidor Es una aplicación informática o programa que realiza algunas

tareas en beneficio de otras aplicaciones llamadas clientes. Algunos servicios

habituales son los servicios de archivos, que permiten a los usuarios

almacenar y acceder a los archivos de un ordenador y los servicios de

aplicaciones, que realizan tareas en beneficio directo del usuario final. Este

es el significado original del término. Es posible que un ordenador cumpla

simultáneamente las funciones de cliente y de servidor.

Switch (en castellano "conmutador") es un dispositivo electrónico de

interconexión de redes de computadoras que opera en la capa 2 (nivel de

enlace de datos) del modelo OSI (Open Systems Interconection). Un

conmutador interconecta dos o más segmentos de red, funcionando de

manera similar a los puentes (bridges), pasando datos de un segmento a

otro, de acuerdo con la dirección MAC de destino de los datagramas en la

red

SMTP protocolo simple de transferencia de correo electrónico. Protocolo de

red basado en texto utilizado para el intercambio de mensajes de correo

electrónico entre computadoras o distintos dispositivos (PDA's, teléfonos

móviles, etc.). Está definido en el RFC 2821 y es un estándar oficial de

Internet.

Page 76: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

16

Sniffer es un programa de captura de las tramas de red. Generalmente se

usa para gestionar la red con una finalidad docente, aunque también puede

ser utilizado con fines maliciosos.

Socket designa un concepto abstracto por el cual dos programas

(posiblemente situados en computadoras distintas) pueden intercambiarse

cualquier flujo de datos, generalmente de manera fiable y ordenada.

Tarjeta de red Pieza de hardware encargada de comunicar el ordenador con

otros ordenadores

Page 77: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

ÍNDICE GENERAL

MANUAL DE USUARIO

1. Ingreso al sistema 1

2. Menú principal 2

3. Sistema 4

4. Archivo 4

5. Ingreso al sistema “Escáner de Red” 5

6. Capturar la trama de red 6

7. Detalles 8

8. Reportes / Estadísticas 13

9. Extra 15

MANUAL TÉCNICO

1. Herramientas utilizadas 16

1.1. Descripción del Jpcap 16

1.2. Instalación del Jpcao 17

1.3. Instalación de Eclipse 18

2. Codificación del programa 19

2.1. Clases principales 19

2.1.1. JDCaptor. Java 19

2.1.2. JpcapSniffer. Java 25

Page 78: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

2.1.3. JDPacketAnalyzerLoader 28

2.1.4. JDStatisticsTakerLoader 29

2.2 Clases de los protocolos 30

2.2.1. ARPAnalyzer 30

2.2.2. EthernetAnalyzer 33

2.2.3. FTPAnalyzer 35

2.2.4. HTTPAnalyzer 36

2.2.5. ICMPAnalyzer 38

2.2.6. IPv4Analyzer 41

2.2.7. IPv6Analyzer 44

2.2.8. JDPacketAnalyzer 46

2.2.9. PacketAnalyzer 47

2.2.10. POP3Analyzer 49

2.2.11. SMTPAnalyzer 50

2.2.12. SSHAnalyzer 51

2.2.13. TCPAnalyzer 52

2.2.14. TelnetAnalyzer 54

2.2.15. UDPAnalyzer 55

Page 79: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

ÍNDICE DE FIGURAS

Pág.

Fig. 1.1 Acceso directo al “Escaner de Red” 1

Fig. 1.2 Interfaz de ingreso de usario-administrador 1

Fig. 1.3 Clave de usario incorrecta 2

Fig. 2.1 Escaner de Red 2

Fig. 3.1 Pestaña “Sistema” 4

Fig. 4.1 Pestaña “Archivo” 4

Fig. 5.1 Inicia la captura de la trama de red 5

Fig. 5.2 Selección de la tarjeta de red 5

Fig. 6.1 Proceso de capturar la trama de red 6

Fig. 6.2 Finaliiza la captura de la trama de red 7

Fig. 7.1 Pestaña de Detalles 8

Fig. 7.2 Detalle de información del paquete “Capa de Enlace de datos” 9

Fig. 7.3 Detalle de Ethernet “Capa de Enlace de datos” 9

Fig. 7.4 Detalle de IPv4 “Capa de Red” 9

Fig. 7.5 Detalle de IPv6 “Capa de Red” 10

Fig. 7.6 Detalle de ARP/RARP “Capa de Red” 10

Fig. 7.7 Detalle de TCP “Capa de Transporte” 11

Fig. 7.8 Detalle de UDP “Capa de Transporte” 11

Fig. 7.9 Detalle de ICMP “Capa de Transporte” 12

Fig. 7.10 Detalle de HTTP “Capa de Aplicación” 12

Page 80: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

Fig. 8.1 Pestaña “Reportes/Estadisticos” 13

Fig. 8.2 Reporte Acumulativo “Reportes/Estadisticos” 13

Fig. 8.3 Reporte Continuo “Reportes/Estadisticos” 13

Fig. 8.4 Reporte Acumulativo 14

Fig. 8.5 Reporte Continuo 14

Fig. 9.1 Ventana de Resolución de Direcciones IP 15

Page 81: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

1

MANUAL DE USUARIOESCANER DE RED

1.Ingreso al sistema

Para realizar el ingreso al sistema de “Escaner de Red”, realizamos los

siguientes pasos:

a. Dar doble clic sobre el icono de acceso directo del sistema que se

encuentra en el escritorio de la computadora.

Fig. 1.1 Acceso directo al “Escaner de Red”

b. Después de realizar el paso anterior, aparecerá la pantalla de inicio

de sesión

Fig. 1.2 Interfaz de ingreso de usario-administrador

En esta pantalla se debe ingresar el nombre del usuario y su

contraseña

Page 82: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

2

Fig. 1.3 Clave de usario incorrecta

Si la clave del usario y/o contraseña es incorrecta, se presentará el

siguiente mensaje. El administrador solo podra ingresar al sistema

cuando haya ingresado correctamente su clave y la contraseña.

2. Menú Principal

Fig. 2.1 Escaner de Red

Page 83: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

3

En esta pantalla encontramos las pestañas de: Sistemas, Archivo, Capturar,

Reportes/Estadisticos, Ayuda y Resolución de Nombres.

Si hacemos clic en Sistema encontraremos las opciones: Nueva Ventana y

Salir.

Si hacemos clic en Archivo encontraremos las opciones: Abrir y Guardar.

Si hacemos clic en Capturar encontraremos las opciones: Inicio y Fin.

Si hacemos clic en Reportes/Estadisticos encontraremos las opciones:

Acumulativo y Continúo, en donde apararecerá para ambas lo siguiente:

Información general, Ratio-Protocolo Capa/red, Ratio-Protocolo

Capa/transporte, Ratio-Protocolo Capa/aplicación y Memoria libre.

Si hacemos clic en Detalles encontraremos las siguientes opciones: Capa de

enlace, Capa de red, Capa de transporte y capa de aplicación.

Si hacemos clic en Ayuda encontraremos las opciones: Acerca de y

referencia.

Si hacemos clic en Resolución de nombres nos muestra una ventana para

el ingreso de la dirección IP.

Page 84: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

4

3. Sistema

Al dar click en la pestaña “Sistema” nos mostrará dos opciones:

Nueva Ventana, el administrador podrá visualizar en varias ventanas

el proceso de captura de trama en la red al mismo tiempo.

Salir, permite al administrador salir del sistema.

Fig. 3.1 Pestaña “Sistema”

4. Archivo

Al dar click en la pestaña “Archivo” nos mostrará dos opciones:

Abrir, el administrador podrá abri un archivo existente , previo al

proceso de captura de trama en la red.

Guardar, el administrador podrá guardar la trama, al finalizar el

proceso de capturar paquetes.

Fig. 4.1 Pestaña “Archivo”

Page 85: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

5

5. Ingreso al sistema “Escaner de Red”

Para realizar el ingreso al sistema, realizamos los siguientes pasos:

Dar click sobre la pestaña de Capturar y elegir la opcion .

Fig. 5.1 Inicia la captura de la trama de red

Luego aparecerá la siguiente venta:

Fig. 5.2 Selección de la tarjeta de red

En esta ventana podemos seleccionar la tarjeta de red a capturar, bien sea

por LAN o Wireless dependiendo de las tarjetas de red que estén habilitadas

en el computador en donde se instalo el sistema “Escaner de Red”.

Para la captura de los paquetes existe una opcion en donde se podrá elegir

la longitud de la trama de red, en la cual nos proporciona las siguientes

opciones: solo cabeceras, paquetes completos y otros, en donde no puede

ser mayor a l paquete completo.

Page 86: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

6

En esta ventana también contiene un “filtro de captura”, es opcional, en la

cual nos permite ver la trama de red que ingresa y sale de una IP específica.

Una vez que el administrador ingreso sus requerimientos para la captura de

las tramas de red, da click al boton , en la cual da inicio proceso o al

boton , para cancelar el proceso.

6. Capturar la trama de red

Fig. 6.1 Proceso de capturar la trama de red

Page 87: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

7

En esta ventana podemos visualizar la información del contenido de la trama

de red en detalle. El administrador podrá finalizar este proceso cuando el lo

vea conveniente, haciendo click en “Fin”.

Fig. 6.2 Finaliiza la captura de la trama de red

En la pantalla mostrará tres divisiones, en la parte superior de la

pantalla, el administrador podrá visualizar la información que nos

proporciona el paquete capturado.

En la parte inferior del lado izquierdo de la pantalla nos mostrará la

información de la trama en forma de lista.

Page 88: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

8

En la parte inferior del lado derecho de la pantalla nos mostrará la

información de la trama codificada, es decir tal como se captura..

7. Detalles

Una vez que se ha finalizado el proceso de capturar la trama de red, el

administrador puede escoger entre varias opciones que se encuentran en la

pestaña de detalles. Estas opciones estan divididas de acuerdo al modelo de

referencia OSI (Open Systems Interconection), Interconexión de Sistemas

Abiertos.

Fig. 7.1 Pestaña de Detalles

Al darr click en ls pestaña Detalles, se encontrará varias opciones en

donde nos proporciona información del contenido de la trama de la red

que se ha capturado.

El administrador podrá elegir a su criterio y conveniencia la información

que el desea visualizar, de esta manera no se mostrará en la pantalla

datos inecesarios para él.

Page 89: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

9

Fig. 7.2 Detalle de información del paquete “Capa de Enlace de datos”

Fig. 7.3 Detalle de Ethernet “Capa de Enlace de datos”

Fig. 7.4 Detalle de IPv4 “Capa de Red”

Page 90: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

10

Fig. 7.5 Detalle de IPv6 “Capa de Red”

Fig. 7.6 Detalle de ARP/RARP “Capa de Red”

Page 91: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

11

Fig. 7.7 Detalle de TCP “Capa de Transporte”

Fig. 7.8 Detalle de UDP “Capa de Transporte”

Page 92: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

12

Fig. 7.9 Detalle de ICMP “Capa de Transporte”

Fig. 7.10 Detalle de HTTP “Capa de Aplicación”

Page 93: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

13

8. Reportes / Estadisticos

Al dar click en la pestaña de Reportes/EStadisticos, se mostrará dos

opciones: Acumulativos y Continúo.

Fig. 8.1 Pestaña “Reportes/Estadisticos”

Ambas opciones nos muestran la Información General, Protocolo de

Capa/Red, Protocolo/transporte, Protocolo/Aplicación y la Memoria Libre

Fig. 8.2 Reporte Acumulativo “Reportes/Estadisticos”

Fig. 8.3 Reporte Continuo “Reportes/Estadisticos”

Page 94: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

14

El administrador de la red, podrá visualizar los siguientes reportes:

Reportes Acumulativos, en la cual le muestrará los reporte de datos de

todos los paquetes.

Fig. 8.4 Reporte Acumulativo

Reportes Continuo, hace referencia al tiempo en que se está capturando la

trama en la red.

Fig. 8.5 Reporte Continuo

Page 95: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

15

9. Extra

En esta ventana podemos averiguar el nombre del equipo ingresando la

dirección IP de l mismo, al dar click en el boton .

Fig. 9.1 Ventana de Resolución de Direcciones IP

Page 96: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

16

MANUAL TECNICO

1. Herramientas utilizadas

Para el desarrollo de este sistema, se requieren las herramientas que

permitan capturar y/o enviar paquetes a la red, tal como se describe a

continuación:

1.1. Descripción del Jpcap

Jpcap está basado en libpcap/winpcap y Enchufe Crudo API. Por lo

tanto, Jpcap, como se supone, trabaja sobre cualquier sistema

operativo sobre el cual libpcap/winpcap ha sido puesto en

práctica. Corrientemente, Jpcap ha sido probado sobre FreeBSD 3.x,

Linux RedHat 6.1, el Corazón de Sombrero 4, Solaris, y Microsoft el

Windows 2000/XP.

Jpcap apoya los tipos siguientes de paquetes: Ethernet, IPv4, IPv6,

ARP/RARP, TCP, UDP, y ICMPV4. Otros tipos de paquetes son

capturados como paquetes crudos (p. ej., los casos de la clase de

Paquete) que contiene los datos enteros de los paquetes. Esto

permite a usos Javaneses analizar tipos de paquete inapoyados

Page 97: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

17

1.2. Instalación del Jpcap

Si desea instalarlo en Windows 9x, NT, 2000:

1. Transmisión e instalar el Javatm2 Plataforma, Edición Estándar

(J2SEtm) JRE o JDK.

2. La transmisión e instalación del último WinPcap.

3. Transmisión y controlador de Mí Instalador.

4. Siga la instrucción del instalador.

Si usted no quiere usar al instalador, usted también puede instalar a

mano.

1. Trasvase y extraiga el código original Jpcap de la página de

Transmisión.

2. Copie "lib\Jpcap.dll" en " [JRE el directorio] \bin " " [o JRE el

directorio] \lib\ext\x86 "

3. Copie "lib\jpcap.jar" en " [JRE el directorio] \lib\ext "

4. Si usted instalara JDK, usted también tiene que copiar

"lib\jpcap.jar" en " [JDK el directorio] \jre\lib\ext ".

Nota: [JRE es el directorio] es por lo general " C:\Program

Files\Java\j2re*".

[ JDK el directorio] es por lo general " C:\Program Files\Java\jdk * ".

Page 98: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

18

1.3. Instalación de Eclipse

1. Ejecutar el paquete Eclipse SDK, versión 3.2.1 y copiarla en el

directorio /usuario/localhost.

2. Ejecutar el paquete en nlpackeg eclipse sdk y copiar la carpeta en

su lugar.

3. Correspondientemente dentro de la carpeta eclipse en el plugings y

features.

4. Una vez realiazada la instalación de Eclipse se crea un icono en el

escritorio para tener un acceso directo.

5. Para ejecutar Eclipse se hace doble click sobre el icono de acceso

directo y se carga la aplicación.

Page 99: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

19

2. Codificación del programa

2.1 Clases principales

2.1.1. JDCaptor. Java

package jpsniffer;

import java.io.File;import java.util.Vector;

import javax.swing.JFileChooser;import javax.swing.JOptionPane;

import jpcap.JpcapCaptor;import jpcap.PacketReceiver;import jpcap.JpcapWriter;import jpcap.packet.Packet;import jpcap.packet.TCPPacket;import jpsniffer.stat.JDStatisticsTaker;import jpsniffer.ui.JDCaptureDialog;import jpsniffer.ui.JDContinuousStatFrame;import jpsniffer.ui.JDCumlativeStatFrame;import jpsniffer.ui.JDFrame;import jpsniffer.ui.JDStatFrame;

/****clase que captura la data**/

public class JDCaptor {long MAX_PACKETS_HOLD=10000;

Vector packets = new Vector();

JpcapCaptor jpcap=null;

boolean isLiveCapture;boolean isSaved = false;

Page 100: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

20

JDFrame frame;

public void setJDFrame(JDFrame frame){this.frame=frame;

}

public Vector getPackets(){return packets;

}

public void capturePacketsFromDevice() {if(jpcap!=null)

jpcap.close();//obtiene el dispositivo q se eligio para capturarjpcap = JDCaptureDialog.getJpcap(frame);clear();

if (jpcap != null) {isLiveCapture = true;frame.disableCapture();//inicia la captura de la tramastartCaptureThread();

}}

public void loadPacketsFromFile() {isLiveCapture = false;clear();

int ret =JpcapSniffer.chooser.showOpenDialog(frame);

if (ret == JFileChooser.APPROVE_OPTION) {//obtiene la ruta del archivo

String path =JpcapSniffer.chooser.getSelectedFile().getPath

();String filename =JpcapSniffer.chooser.getSelectedFile().getNam

e();

try {if(jpcap!=null){

Page 101: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

21

"No se puede abrir el archivo: " +path);

e.printStackTrace();return;

}

frame.disableCapture();

startCaptureThread();}

}

private void clear(){packets.clear();frame.clear();

for(int i=0;i<sframes.size();i++)((JDStatFrame)sframes.get(i)).clear();

}

public void saveToFile() {if (packets == null)

return;

int ret =JpcapSniffer.chooser.showSaveDialog(frame);

if (ret == JFileChooser.APPROVE_OPTION) {File file =

JpcapSniffer.chooser.getSelectedFile();

if (file.exists()) {if (JOptionPane

.showConfirmDialog(frame,

"Sobreescribir " +file.getName() + "?",

"Sobreescribir?",

JOptionPane.YES_NO_OPTION)== JOptionPane.NO_OPTION)

{return;

}

Page 102: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

22

writer.writePacket((Packet)packets.elementAt(i));

}

writer.close();isSaved = true;

//JOptionPane.showMessageDialog(frame,file+" wassaved correctly.");

} catch (java.io.IOException e) {e.printStackTrace();JOptionPane.showMessageDialog(

frame,"No se puede guardar el

archivo: " +file.getPath());

}}

}

public void stopCapture() {stopCaptureThread();

}

public void saveIfNot() {if (isLiveCapture && !isSaved) {

int ret =JOptionPane.showConfirmDialog(

null,"Guarda estos datos?","Guarda estos datos?",

JOptionPane.YES_NO_OPTION);if (ret == JOptionPane.YES_OPTION)

saveToFile();}

}

Vector sframes=new Vector();public void addCumulativeStatFrame(JDStatisticsTaker

taker) {

Page 103: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

23

}

public void closeAllWindows(){for(int i=0;i<sframes.size();i++)

((JDStatFrame)sframes.get(i)).dispose();}

private Thread captureThread;//proceso de capturar la trama

private void startCaptureThread() {if (captureThread != null)

return;

captureThread = new Thread(new Runnable(){//body of capture threadpublic void run() {

while (captureThread != null) {if (jpcap.processPacket(1,

handler) == 0&& !isLiveCapture)

stopCaptureThread();Thread.yield();

}

jpcap.breakLoop();//jpcap = null;frame.enableCapture();

}});captureThread.setPriority(Thread.MIN_PRIORITY);

frame.startUpdating();for(int i=0;i<sframes.size();i++){

((JDStatFrame)sframes.get(i)).startUpdating();}

captureThread.start();}

Page 104: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

24

}}

private PacketReceiver handler=new PacketReceiver(){public void receivePacket(Packet packet) {

packets.addElement(packet);

/* System.out.println("paquete"+packet.getClass());

System.out.println("paquete header"+packet);

//TCPPacket tcpp = (TCPPacket)packet;System.err.println("paquete antes de");System.err.println("paquete

"+packet.data.length);System.err.println("paquete despues de

de");*/

while (packets.size() >MAX_PACKETS_HOLD) {

packets.removeElementAt(0);}if (!sframes.isEmpty()) {

for (int i = 0; i < sframes.size();i++)

((JDStatFrame)sframes.get(i)).addPacket(packet);}isSaved = false;

}};

}

Page 105: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

25

2.1.2. JpcapSniffer. Java

package jpsniffer;import java.util.*;import java.io.*;import javax.swing.JOptionPane;import jpsniffer.ui.JDFrame;

public class JpcapSniffer{

public static Properties JDProperty;

public static javax.swing.JFileChooser chooser=newjavax.swing.JFileChooser();

static Vector frames=new Vector();

public JpcapSniffer(){

/* try{Class

c=Class.forName("jpcap.JpcapCaptor");}catch(ClassNotFoundException e){

JOptionPane.showMessageDialog(null,"Jpcapno esta

instalado. por favor descargue e instale paraejecutar la

aplicación.");System.exit(0);

}

JDPacketAnalyzerLoader.loadDefaultAnalyzer();//carga la parte grafica de los reportes//JDStatisticsTakerLoader.loadStatisticsTaker();loadProperty();

openNewWindow();*/ }

public static void main(String[] args){try{

Page 106: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

26

JDPacketAnalyzerLoader.loadDefaultAnalyzer();//carga la parte grafica de los reportesJDStatisticsTakerLoader.loadStatisticsTaker();loadProperty();

//openNewWindow();

}

public static void saveProperty(){if(JDProperty==null) return;try{

JDProperty.store((OutputStream)newFileOutputStream("JpcapSniffer.property"),"Jp

capSniffer");

}catch(IOException e){}catch(ClassCastException e){}

}

static void loadProperty(){try{

JDProperty=new Properties();JDProperty.load((InputStream)newFileInputStream("JpcapSniffer.property"));

}catch(IOException e){}

}

public static void openNewWindow(){JDCaptor captor=new JDCaptor();//instancio el

objeto para capturarlos paquetes

frames.add(JDFrame.openNewWindow(captor));}

public static void closeWindow(JDFrame frame){frame.captor.stopCapture();//detiene el proceso

nde capturaframe.captor.saveIfNot();

Page 107: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

27

System.exit(0);}

}

protected void finalize() throws Throwable{saveProperty();

}}

Page 108: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

28

2.1.3. JDPacketAnalyzerLoader

package jpsniffer;import java.util.*;import jpsniffer.analyzer.*;

public class JDPacketAnalyzerLoader{

static Vector analyzers=new Vector();static void loadDefaultAnalyzer(){

analyzers.addElement(new PacketAnalyzer());analyzers.addElement(new EthernetAnalyzer());analyzers.addElement(new IPv4Analyzer());analyzers.addElement(new IPv6Analyzer());analyzers.addElement(new TCPAnalyzer());analyzers.addElement(new UDPAnalyzer());analyzers.addElement(new ICMPAnalyzer());analyzers.addElement(new HTTPAnalyzer());analyzers.addElement(new FTPAnalyzer());analyzers.addElement(new TelnetAnalyzer());analyzers.addElement(new SSHAnalyzer());analyzers.addElement(new SMTPAnalyzer());analyzers.addElement(new POP3Analyzer());analyzers.addElement(new ARPAnalyzer());

}

public static JDPacketAnalyzer[] getAnalyzers(){JDPacketAnalyzer[] array=new

JDPacketAnalyzer[analyzers.size()];

for(int i=0;i<array.length;i++)

array[i]=(JDPacketAnalyzer)analyzers.elementAt(i);

return array;}public static JDPacketAnalyzer[] getAnalyzersOf(int

layer){Vector v=new Vector();

for(int i=0;i<analyzers.size();i++)

if(((JDPacketAnalyzer)analyzers.elementAt(i)).layer==lay

Page 109: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

29

2.1.4. JDStatisticsTakerLoader

package jpsniffer;import java.util.*;

import jpsniffer.stat.ApplicationProtocolStat;import jpsniffer.stat.FreeMemStat;import jpsniffer.stat.JDStatisticsTaker;import jpsniffer.stat.NetworkProtocolStat;import jpsniffer.stat.PacketStat;import jpsniffer.stat.TransportProtocolStat;

public class JDStatisticsTakerLoader{

static Vector stakers=new Vector();

static void loadStatisticsTaker(){stakers.addElement(new PacketStat());stakers.addElement(new NetworkProtocolStat());stakers.addElement(new TransportProtocolStat());stakers.addElement(new ApplicationProtocolStat());stakers.addElement(new FreeMemStat());

}

public static JDStatisticsTaker[] getStatisticsTakers(){JDStatisticsTaker[] array=new

JDStatisticsTaker[stakers.size()];

for(int i=0;i<array.length;i++)

array[i]=(JDStatisticsTaker)stakers.elementAt(i);

return array;}

public static JDStatisticsTaker getStatisticsTakerAt(intindex){

return (JDStatisticsTaker)stakers.get(index);}

}

Page 110: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

30

2.2 Clases de los protocolos

2.2.1. ARPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class ARPAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Tipo Hardware","Tipo/Protocol","Longitud/Dir. HW","Longitud/Dir. de Protocolo","Operacion","Dir./ HW emisor","Dir./ Protocolo emisor","Dir./ HW destino","Dir./ Protocolo destino"

};private ARPPacket arp;

public ARPAnalyzer(){layer=NETWORK_LAYER;

}

public boolean isAnalyzable(Packet p){return (p instanceof ARPPacket);

}

public String getProtocolName(){return "ARP/RARP";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){if(!isAnalyzable(p)) return;arp=(ARPPacket)p;

}

Page 111: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

31

return getValueAt(i);

return null;}

Object getValueAt(int index){switch(index){

case 0:switch(arp.hardtype){

case ARPPacket.HARDTYPE_ETHER:return

"Ethernet ("+arp.hardtype+")";case ARPPacket.HARDTYPE_IEEE802:return

"Token ring("+arp.hardtype+")";case

ARPPacket.HARDTYPE_FRAMERELAY: return"Frame relay

("+arp.hardtype+")";default: return new

Integer(arp.hardtype);}case 1:switch(arp.prototype){

case ARPPacket.PROTOTYPE_IP:return "IP

("+arp.prototype+")";default: return new

Integer(arp.prototype);}case 2: return new Integer(arp.hlen);case 3: return new Integer(arp.plen);case 4:switch(arp.operation){

case ARPPacket.ARP_REQUEST:return "ARP

Request";case ARPPacket.ARP_REPLY: return

"ARP Reply";case ARPPacket.RARP_REQUEST:

return "Reverse

Page 112: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

32

public Object[] getValues(){Object[] v=new Object[valueNames.length];for(int i=0;i<valueNames.length;i++)

v[i]=getValueAt(i);

return v;}

}

Page 113: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

33

2.2.2. EthernetAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class EthernetAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Tipo/Frame","MAC Fuente","MAC Destino"

};private EthernetPacket eth;

public EthernetAnalyzer(){layer=DATALINK_LAYER;

}

public boolean isAnalyzable(Packet p){return (p.datalink!=null && p.datalink instanceof

EthernetPacket);}

public String getProtocolName(){return "Ethernet Frame";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){if(!isAnalyzable(p)) return;eth=(EthernetPacket)p.datalink;

}

public Object getValue(String valueName){for(int i=0;i<valueNames.length;i++)

if(valueNames[i].equals(valueName))return getValueAt(i);

return null;}

Page 114: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

34

Object getValueAt(int index){switch(index){case 0: return new Integer(eth.frametype);case 1: return eth.getSourceAddress();case 2: return eth.getDestinationAddress();default: return null;}

}

public Object[] getValues(){Object[] v=new Object[3];for(int i=0;i<3;i++)

v[i]=getValueAt(i);

return v;}

}

Page 115: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

35

2.2.3. FTPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class FTPAnalyzer extends JDPacketAnalyzer{

public FTPAnalyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==20 ||((TCPPacket)p).dst_port==20 ||

((TCPPacket)p).src_port==21 ||((TCPPacket)p).dst_port==21))

return true;else return false;

}

public String getProtocolName(){return "FTP";

}

public String[] getValueNames(){return null;}

public void analyze(Packet p){}

public Object getValue(String s){ return null; }public Object getValueAt(int i){ return null; }public Object[] getValues(){ return null; }

}

Page 116: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

36

2.2.4. HTTPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;import java.util.*;import java.io.*;

public class HTTPAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Metodo","Cabecera"

};String method;Vector headers=new Vector();

public HTTPAnalyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==80 ||((TCPPacket)p).dst_port==80))return true;

else return false;}

public String getProtocolName(){return "HTTP";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){method="";headers.removeAllElements();if(!isAnalyzable(p)) return;

try{BufferedReader in=new BufferedReader(new

Page 117: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

37

if(method==null ||method.indexOf("HTTP")==-1){

// this packet doesn't contain HTTPheader

method="No cabecera HTTP";return;

}

String l;//read headerswhile((l=in.readLine()).length()>0)

headers.addElement(l);}catch(IOException e){}

}

public Object getValue(String valueName){if(valueNames[0].equals(valueName)) return

method;if(valueNames[1].equals(valueName)) return

headers;return null;

}

Object getValueAt(int index){if(index==0) return method;if(index==1) return headers;return null;

}

public Object[] getValues(){Object[] values=new Object[2];values[0]=method;values[1]=headers;

return values;}

}

Page 118: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

38

2.2.5. ICMPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;import java.util.*;

public class ICMPAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Tipo","Code","ID","Secuencia","Redireccion/Dirección","Dirección/Mascara","Timestamp Original","Timestamp Recibido","Transmision Timestamp"

};

private static final String[] typeNames={"Echo Reply(0)","Unknown(1)","Unknown(2)","Destination Unreachable(3)","Source Quench(4)","Redirect(5)","Unknown(6)","Unknown(7)","Echo(8)","Unknown(9)","Unknown(10)","Time Exceeded(11)","Parameter Problem(12)","Timestamp(13)","Timestamp Reply(14)","Unknown(15)","Unknown(16)","Address Mask Request(17)","Address Mask Reply(18)"

};

private Hashtable values=new Hashtable();

Page 119: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

39

public boolean isAnalyzable(Packet p){return (p instanceof ICMPPacket);

}

public String getProtocolName(){return "ICMP";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){if(!isAnalyzable(p)) return;values.clear();

ICMPPacket icmp=(ICMPPacket)p;if(icmp.type>=typeNames.length){

values.put(valueNames[0],String.valueOf(icmp.type));}else{

values.put(valueNames[0],typeNames[icmp.type]);}values.put(valueNames[1],new

Integer(icmp.code));

if(icmp.type==0 || icmp.type==8 ||(icmp.type>=13 &&

icmp.type<=18)){values.put(valueNames[2],new

Integer(icmp.id));values.put(valueNames[3],new

Integer(icmp.seq));}

if(icmp.type==5)values.put(valueNames[4],icmp.redir_ip);

if(icmp.type==17 || icmp.type==18)

values.put(valueNames[5],(icmp.subnetmask>>12)+"."+

Page 120: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

40

Long(icmp.trans_timestamp));}

}

public Object getValue(String valueName){return values.get(valueName);

}

public Object getValueAt(int index){if(index<0 || index>=valueNames.length) return

null;return values.get(valueNames[index]);

}

public Object[] getValues(){Object[] v=new Object[valueNames.length];

for(int i=0;i<valueNames.length;i++)v[i]=values.get(valueNames[i]);

return v;}

}

Page 121: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

41

2.2.6. IPv4Analyzer

package jpsniffer.analyzer;import jpcap.packet.*;import java.net.InetAddress;import java.net.UnknownHostException;import java.util.*;

public class IPv4Analyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Version","TOS: Prioridad","TOS: Throughput","TOS: Confiabilidad","Longitud","Identificación","Fragment: No fragmentado","Fragment: Fragmentado","Fragment Offset","Tiempo de vida","Protocolo","IP Fuente","IP Destino",

// "Nom.Equi. Fuente",// "Nom.Equi. Destino"

};private Hashtable values=new Hashtable();

public IPv4Analyzer(){layer=NETWORK_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof IPPacket &&

((IPPacket)p).version==4) return true;else return false;

}

public String getProtocolName(){return "IPv4";

}

Page 122: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

42

public void analyze(Packet packet) throwsUnknownHostException{

values.clear();if(!isAnalyzable(packet)) return;IPPacket ip=(IPPacket)packet;

values.put(valueNames[0],new Integer(4));values.put(valueNames[1],new Integer(ip.priority));values.put(valueNames[2],new

Boolean(ip.t_flag));values.put(valueNames[3],new

Boolean(ip.r_flag));values.put(valueNames[4],new Integer(ip.length));values.put(valueNames[5],new Integer(ip.ident));values.put(valueNames[6],new

Boolean(ip.dont_frag));values.put(valueNames[7],new

Boolean(ip.more_frag));values.put(valueNames[8],new Integer(ip.offset));values.put(valueNames[9],new

Integer(ip.hop_limit));values.put(valueNames[10],new

Integer(ip.protocol));

values.put(valueNames[11],ip.src_ip.getHostAddress());

values.put(valueNames[12],ip.dst_ip.getHostAddress());//InetAddress addres =

InetAddress.getByName(ip);// byte[] bytes = ip.src_ip.getAddress();

// ip.src_ip = ip.src_ip.getByAddress(bytes);// Get the host name// String hostname = addres.getHostName();

//values.put(valueNames[13],ip.src_ip.getHostName());

//values.put(valueNames[14],ip.dst_ip.getHostName());

}

public Object getValue(String valueName){/*if((valueNames[13].equals(valueName) &&

values.get(valueName) instanceofInetAddress) ||

Page 123: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

43

values.put(valueNames[index],((InetAddress)values.get(valueNames[index])).

getHostName());}

return values.get(valueNames[index]);}

public Object[] getValues(){Object[] v=new Object[valueNames.length];

for(int i=0;i<valueNames.length;i++)v[i]=getValueAt(i);

return v;}

}

Page 124: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

44

2.2.7. IPv6Analyzer

package jpsniffer.analyzer;import jpcap.packet.*;import java.util.*;

public class IPv6Analyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Version","Clase","Flow Label","Longitud","Protocolo","Limite / Salto","IP Fuente","IP Destino"//,//"Source Host Name",//"Destination Host Name"};

Hashtable values=new Hashtable();

public IPv6Analyzer(){layer=NETWORK_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof IPPacket &&

((IPPacket)p).version==6) return true;else return false;

}

public String getProtocolName(){return "IPv6";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet packet){values.clear();

Page 125: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

45

values.put(valueNames[2],newInteger(ip.flow_label));

values.put(valueNames[3],new Integer(ip.length));values.put(valueNames[4],new

Integer(ip.protocol));values.put(valueNames[5],new

Integer(ip.hop_limit));

values.put(valueNames[6],ip.src_ip.getHostAddress());

values.put(valueNames[7],ip.dst_ip.getHostAddress());

//values.put(valueNames[8],ip.src_ip.getHostName());

//values.put(valueNames[9],ip.dst_ip.getHostName());}

public Object getValue(String valueName){return values.get(valueName);

}

Object getValueAt(int index){if(index<0 || index>=valueNames.length) return

null;return values.get(valueNames[index]);

}

public Object[] getValues(){Object[] v=new Object[valueNames.length];

for(int i=0;i<valueNames.length;i++)v[i]=values.get(valueNames[i]);

return v;}

}

Page 126: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

46

2.2.8. JDPacketAnalyzer

package jpsniffer.analyzer;import java.net.UnknownHostException;

import jpcap.packet.*;

public abstract class JDPacketAnalyzer{

public int layer=DATALINK_LAYER;public static int DATALINK_LAYER=0;public static int NETWORK_LAYER=1;public static int TRANSPORT_LAYER=2;public static int APPLICATION_LAYER=3;

public abstract boolean isAnalyzable(Packet packet);public abstract void analyze(Packet packet) throws

UnknownHostException;public abstract String getProtocolName();public abstract String[] getValueNames();public abstract Object getValue(String valueName);abstract Object getValueAt(int index);public abstract Object[] getValues();

}

Page 127: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

47

2.2.9. PacketAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class PacketAnalyzer extends JDPacketAnalyzer{

private static final String[]valueNames={"Tiempo/captura","Longitud/Captura"};private Packet packet;

public boolean isAnalyzable(Packet packet){return true;

}

public String getProtocolName(){return "Información/Paquete";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){packet=p;

}

public Object getValue(String name){if(name.equals(valueNames[0]))

return new java.util.Date (packet.sec*1000+packet.usec/1000).toString();

else if(name.equals(valueNames[1]))return new Integer(packet.caplen);

else return null;}

Object getValueAt(int index){switch(index){

case 0: return newjava.util.Date(packet.sec*1000+

packet.usec/1000).toString();case 1: return new Integer(packet.caplen);default: return null;

Page 128: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

48

public Object[] getValues(){Object[] v=new Object[2];v[0]=new java.util.Date (packet.sec*1000+

packet.usec/1000).toString();

v[1]=new Integer(packet.caplen);

return v;}

}

Page 129: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

49

2.2.10. POP3Analyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class POP3Analyzer extends JDPacketAnalyzer{

public POP3Analyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==110 ||((TCPPacket)p).

dst_port==110))return true;

else return false;}

public String getProtocolName(){return "POP3";

}

public String[] getValueNames(){return null;}

public void analyze(Packet p){}

public Object getValue(String s){ return null; }public Object getValueAt(int i){ return null; }public Object[] getValues(){ return null; }

}

Page 130: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

50

2.2.11. SMTPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class SMTPAnalyzer extends JDPacketAnalyzer{

public SMTPAnalyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==25 ||((TCPPacket)p)

.dst_port==25))return true;

else return false;}

public String getProtocolName(){return "SMTP";

}

public String[] getValueNames(){return null;}

public void analyze(Packet p){}

public Object getValue(String s){ return null; }public Object getValueAt(int i){ return null; }public Object[] getValues(){ return null; }

}

Page 131: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

51

2.2.12. SSHAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class SSHAnalyzer extends JDPacketAnalyzer{

public SSHAnalyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==22 ||((TCPPacket)p).dst_port==22))

return true;else return false;

}

public String getProtocolName(){return "SSH";

}

public String[] getValueNames(){return null;}

public void analyze(Packet p){}

public Object getValue(String s){ return null; }public Object getValueAt(int i){ return null; }public Object[] getValues(){ return null; }

}

Page 132: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

52

2.2.13. TCPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;import java.util.*;

public class TCPAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Puerto Fuente","Puerto Destino","Número/Secuencia","Numero/Ack","URG Flag","ACK Flag","PSH Flag","RST Flag","SYN Flag","FIN Flag","Tamaño/Ventana"};

Hashtable values=new Hashtable();

public TCPAnalyzer(){layer=TRANSPORT_LAYER;

}

public boolean isAnalyzable(Packet p){return (p instanceof TCPPacket);

}

public String getProtocolName(){return "TCP";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){values.clear();if(!isAnalyzable(p)) return;TCPPacket tcp=(TCPPacket)p;values.put(valueNames[0],new

Page 133: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

53

values.put(valueNames[4],new Boolean(tcp.urg));values.put(valueNames[5],new Boolean(tcp.ack));values.put(valueNames[6],new Boolean(tcp.psh));values.put(valueNames[7],new Boolean(tcp.rst));values.put(valueNames[8],new Boolean(tcp.syn));values.put(valueNames[9],new Boolean(tcp.fin));values.put(valueNames[10],new

Integer(tcp.window));}

public Object getValue(String valueName){return values.get(valueName);

}

Object getValueAt(int index){if(index<0 || index>=valueNames.length) return

null;return values.get(valueNames[index]);

}

public Object[] getValues(){Object[] v=new Object[valueNames.length];

for(int i=0;i<valueNames.length;i++)v[i]=values.get(valueNames[i]);

return v;}

}

Page 134: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

54

2.2.14. TelnetAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class TelnetAnalyzer extends JDPacketAnalyzer{

public TelnetAnalyzer(){layer=APPLICATION_LAYER;

}

public boolean isAnalyzable(Packet p){if(p instanceof TCPPacket &&

(((TCPPacket)p).src_port==23 ||((TCPPacket)p).

dst_port==23))return true;

else return false;}

public String getProtocolName(){return "Telnet";

}

public String[] getValueNames(){return null;}

public void analyze(Packet p){}

public Object getValue(String s){ return null; }public Object getValueAt(int i){ return null; }public Object[] getValues(){ return null; }

}

Page 135: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

55

2.2.15. UDPAnalyzer

package jpsniffer.analyzer;import jpcap.packet.*;

public class UDPAnalyzer extends JDPacketAnalyzer{

private static final String[] valueNames={"Puerto Fuente","Puerto Destino","Longitud/Paquete"

};private UDPPacket udp;

public UDPAnalyzer(){layer=TRANSPORT_LAYER;

}

public boolean isAnalyzable(Packet p){return (p instanceof UDPPacket);

}

public String getProtocolName(){return "UDP";

}

public String[] getValueNames(){return valueNames;

}

public void analyze(Packet p){if(!isAnalyzable(p)) return;udp=(UDPPacket)p;

}

public Object getValue(String valueName){for(int i=0;i<valueNames.length;i++)

if(valueNames[i].equals(valueName))return getValueAt(i);

return null;}

Page 136: UNIVERSIDAD DE GUAYAQUIL Facultad de Ciencias …repositorio.ug.edu.ec/bitstream/redug/12159/1/B...XII ÍNDICE DE FIGURAS Pág. Fig. 2.1 Requerimientos 10 Fig. 2.2 Análisis de requerimientos

56

case 1: return new Integer(udp.dst_port);case 2: return new Integer(udp.length);default: return null;

}}

public Object[] getValues(){Object[] v=new Object[3];for(int i=0;i<3;i++)

v[i]=getValueAt(i);

return v;}

}