180 Garcia Zuluaga Nelson Andres 2007

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 71

SISTEMA DE DETECCIN DE INTRUSOS UTILIZANDO REDES NEURONALES

PARA LA RED DE DATOS DE LA UNIVERSIDAD DE MANIZALES

NELSON ANDRS GARCA ZULUAGA


ROBINSON SALGADO GIRALDO

UNIVERSIDAD DE MANIZALES
FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA DE SISTEMAS Y TELECOMUNICACIONES
MANIZALES
2007
SISTEMA DE DETECCIN DE INTRUSOS UTILIZANDO REDES NEURONALES
PARA LA RED DE DATOS DE LA UNIVERSIDAD DE MANIZALES

NELSON ANDRS GARCA ZULUAGA


ROBINSN SALGADO GIRALDO

Trabajo de grado para optar al ttulo de Ingeniero de Sistemas y


Telecomunicaciones

Presidente
Lus Carlos Correa Ortiz
Ingeniero Electrnico

UNIVERSIDAD DE MANIZALES
FACULTAD DE INGENIERA
PROGRAMA DE INGENIERA DE SISTEMAS Y TELECOMUNICACIONES
MANIZALES
2007
Nota de Aceptacin:

______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________
______________________________________

______________________________________
Firma del Jurado

______________________________________
Firma del Jurado

______________________________________
Firma del Jurado
CONTENIDO

RESUMEN.... i
ABSTRACT.. ii
INTRODUCCIN
1. DESCRIPCIN DEL PROBLEMA ....................................................................4
2. OBJETIVOS......................................................................................................5
2.1 OBJETIVO GENERAL...............................................................................5
2.2 OBJETIVOS ESPECFICOS .....................................................................5
3. JUSTIFICACIN...............................................................................................6
4. MARCO TERICO ...........................................................................................7
4.1 IDS.............................................................................................................7
4.2 RED NEURONAL ......................................................................................9
4.2.1 Modelo Biolgico ................................................................................9
4.2.2 Unidad de Procesamiento de una Red Neuronal: ............................10
4.2.3 Aprendizaje de una Red Neuronal:...................................................13
4.2.4 El perceptrn multicapa (MLP): ........................................................13
4.2. LIBRERA JPCAP....................................................................................16
4.3. ATAQUES ...............................................................................................17
4.4. METODOLOGA DE DESARROLLO.......................................................18
4.4.1. Proceso Unificado ............................................................................18
4.4.2. Lenguaje Unificado de Modelado (UML) ..........................................19
4.4.3. NetBeans..........................................................................................19
4.4.4. Java..................................................................................................19
4.4.5. Rational Case ...................................................................................20
4.4.6. Back Orifice y Megaping...................................................................20
5. METODOLOGA .............................................................................................21
5.1. FASE 1: RECOLECCIN DE INFORMACIN........................................21
5.2. FASE 2: ADQUISICIN DE LOS PAQUETES. .......................................21
5.2. FASE 3: ENTRENAMIENTO DE LA RED NEURONAL...........................22
5.3. FASE 4: ANLISIS Y DISEO DEL SISTEMA .......................................23
5.4. FASE 5: IMPLEMENTACIN Y PRUEBAS.............................................23
7. CONCLUSIONES ...........................................................................................30
8. RECOMENDACIONES...................................................................................31
BIBLIOGRAFA ......................................................................................................32
LISTA DE FIGURAS

Figura 1. Modelo Biolgico. ...................................................................................10


Figura 2. Neurona Artificial ....................................................................................11
Figura 3. Funcionamiento Neurona Artificial ..........................................................12
Figura 4. Representacin de un Perceptrn Multicapa (MLP) ...............................14
Figura 5. Forma funcional de una sigmoide..........................................................14
Figura 6. Reglas.....................................................................................................24
Figura 7. Datos de ataque con reglas. ..................................................................25
Figura 8. Datos de ataques, (entrenamiento red neuronal). ..................................26
Figura 9. Entrenamiento con diez neuronas. ........................................................27
Figura 10. Entrenamiento MATLAB (10 neuronas) ................................................28
LISTA DE ANEXOS

ANEXO A. Modelo de Requisitos..........................................................................35


ANEXO B. Modelo de Anlisis ...............................................................................39
ANEXO C. Modelo de Diseo ................................................................................47
RESUMN

Por IDS se entienden una serie de herramientas que al instalarse permiten


monitorear y detectar posibles ataques informticos al interior de una red de datos.
El proyecto IDS Inteligente desarrolla en conjunto dos reas de la informtica: el
desarrollo de software para redes de computadores y la inclusin de una tcnica
inteligente; una red neuronal perceptrn multicapa, las cuales, mediante una
integracin adquieren tramas en el trfico de la red en la Universidad de Manizales
para ser analizadas y obtener conclusiones acerca de intrusos y posibles ataques.

Su base tecnolgica est soportada en las libreras de anlisis JPCAP con el


objetivo de lograr la integracin de una aplicacin grfica con la base fundamental
de prueba de paquetes.

Como producto final se obtiene un software basado en entornos visuales grficos,


construido en Java bajo IDE NetBeans e integrado con una red neuronal para
hacer el anlisis de los datos generados. No obstante, el proyecto es un inicio de
lo que puede ser un producto exitoso, dejando sealado un camino para que a
futuro se complemente su base conceptual y se realicen futuros desarrollos.

IDS: Sistema de Deteccin de Intrusos, por sus siglas en ingls, Intrusin Detection System.

JPCAP: Definicin original en Ingles: a network packet capture library for applications written in
Java
ABSTRACT

IDS consist in a kit of tools that allow scan and detect possible attacks inside
computer networks. The Intelligent IDS project develops as a whole two areas of
the computer science: the technological development of software for networks and
a multicap perceptron neuronal network that analyze plots in the traffic of the net in
Universidad de Manizales to be analyzed and to obtain conclusions about intruders
and possible attacks.

Its technological base is supported on the libraries of analysis JPCAP with the aim
to achieve the integration of a graphical application with the fundamental base of
packet testing.

As final product obtains software based on visual graphical environments, made in


Java under the NetBeans IDE and repaid with an artificial neural network for
analize the generated information. Nevertheless, the project is a beginning of what
can be a successful product, makes a way notable in order that to future his
conceptual base complements itself, and continue with further developments.
INTRODUCCION

Un IDS o Sistema de Deteccin de Intrusiones es una herramienta de seguridad


informtica que intenta detectar o monitorizar los eventos ocurridos en un
determinado sistema informtico o red informtica en busca de intentos de
comprometer la seguridad de dicho sistema. El proyecto IDS Inteligente pretende
unir dos ramas de la informtica: el estudio y anlisis de tramas para un uso en
particular y la aplicacin de tcnicas inteligentes para tales efectos.

El uso de herramientas existentes es el factor clave para lograr un buen


desempeo en el producto; lo que se efectu fue un inventario y procesamiento de
plataformas, herramientas y libreras que puedan ser usadas en el proyecto, es
entonces, como se logra adaptar el conjunto de libreras JPCAP para tratamiento
de paquetes.

En conjunto es necesario integrar el anlisis de tramas con un modelo inteligente


para lograr una mayor efectividad y lograr el objetivo bsico del IDS, para esto, se
adapta e implementa una herramienta que permita exportar y analizar las tramas
sospechosas basando sus tcnicas en la Inteligencia Artificial.

Como producto final, se tiene un software basado en tecnologas de ltima


generacin que captura tramas en una red de datos tradicional, las analiza y
efecta un procedimiento inteligente para identificar posibles nuevos ataques, todo
basado en el anlisis de puertos y una red neuronal perceptrn multicapa.
1. DESCRIPCIN DEL PROBLEMA

La vulnerabilidad en los sistemas computacionales tanto personales como


empresariales se ha convertido en una deficiencia de seguridad relacionada
directamente con los tipos de software producidos por las grandes compaas. El
incremento de intrusiones y malos usos en los sistemas informticos y redes
internas de una gran cantidad de empresas, ha provocado un aumento en la
preocupacin por la seguridad informtica. Desde hace algn tiempo se vienen
aplicando medidas basadas en software y hardware para combatir dicho
problema. La Universidad de Manizales cuenta con una serie de sistemas de
informacin vitales para ella, desde la informacin financiera de la institucin hasta
la informacin acadmica de los estudiantes.

Debido a esta situacin, se genera la necesidad de implementar constantemente


nuevas estrategias de seguridad a sus sistemas informticos. Es posible, si se
determina la naturaleza de un determinado paquete que circula por la red,
implementar herramientas para detectar su peligrosidad y prevenir ataques y
vulnerabilidades a una red de datos. A este tipo de sistemas se les conoce como
IDS, descritos en la introduccin

Por esto se propone el desarrollo de un IDS mediante el uso de redes neuronales,


en particular en una red perceptrn multicapa, y contrastar su desempeo con un
sistema tradicional basado en reglas de comportamiento de acuerdo con
diferentes patrones de los paquetes.
2. OBJETIVOS

2.1 OBJETIVO GENERAL

Disear, simular e implementar un sistema de deteccin de paquetes que


representen ataques a los sistemas de informacin de la Universidad de
Manizales, que involucre una red neuronal perceptrn multicapa.

2.2 OBJETIVOS ESPECFICOS

9 Adquirir y caracterizar una muestra significativa de paquetes normales y que


representen ataques en la red de datos de la U de Manizales.

9 Entrenar una red neuronal perceptrn multicapa a partir de los datos


recolectados.

9 Implementar un sistema de deteccin de paquetes que incorpore la red


neuronal entrenada y realizar pruebas que validen su comportamiento
adecuado.
3. JUSTIFICACIN

Debido a su constitucin y a sus fundamentos, las redes neuronales artificiales


presentan un gran nmero de caractersticas semejantes a las del cerebro. Por
ejemplo, son capaces de aprender de la experiencia, de generalizar de casos
anteriores a nuevos casos, de abstraer caractersticas esenciales a partir de
entradas que representan informacin irrelevante, etc. Esto hace que ofrezcan
numerosas ventajas y que este tipo de tecnologa pueda ser aplicado en una red
de informacin de tanta importancia como es la de la Universidad de Manizales.

Un sistema seguro debe contar con los siguientes aspectos: La confidencialidad


hace referencia a que los objetos de un sistema han de ser accedidos nicamente
por elementos autorizados a ello, y que esos elementos autorizados no van a
convertir esa informacin en disponible para otras entidades; la integridad significa
que los objetos slo pueden ser modificados por elementos autorizados, y de una
manera controlada. Por ltimo, la disponibilidad indica que los objetos del sistema
tienen que permanecer accesibles a elementos autorizados; es el contrario de la
negacin de servicio.

Estas razones justifican la implementacin de un IDS, y en particular la


investigacin y desarrollo en seguridad haciendo uso de esta estrategia.
4. MARCO TERICO

A continuacin se muestran los elementos conceptuales e histricos que soportan


el presente desarrollo, tales como los Sistemas de Deteccin de Intrusos y las
Redes Neuronales Artificiales.

Histricamente las empresas han buscado una solucin a la sistematizacin de


sus procesos, y normalmente instalan software que les permita lograr seguridad,
agilidad y control sobre sus procesos; en el caso de las universidades se tiene una
situacin particular: sus procesos son muy diversos y complejos, basados en lo
dismil de su objeto social, hecho que las convierte en un foco problemtico en el
mundo de la informtica.

Basados en la naturaleza de los procesos a sistematizar, la Universidad tiene las


siguientes opciones para buscar solucin a toda la problemtica:

9 Contratacin: mediante la modalidad de outsourcing, la compaa puede


contratar los servicios de una persona natural o empresas para que se
encargue de dar solucin a la problemtica existente.

9 Compra de software: consiste en la compra de un producto ya hecho, en el


mercado es difcil de encontrar un software que cumpla con las caractersticas
actuales respecto a los procedimientos llevados a cabo en el momento de
captar tramas en la red para ser analizas en forma inteligente para la deteccin
de intrusos.

9 Diseo e Implementacin de Software Propio: cuando la Universidad cuenta


con una serie de programas acadmicos en informtica, puede construir por si
misma el software necesario para dar solucin a sus problemticas, sea ste el
caso de la Universidad de Manizales.

4.1 IDS

Los IDS son sistemas de seguridad informtica. La Universidad de Manizales es


lder en la regin en estas temticas, prestigio ganado mediante la realizacin de
eventos de carcter regional, nacional e internacional. Sus docentes fueron
consultados al respecto, con el fin de realizar una primera aproximacin a las
herramientas existentes. Se llego a la conclusin que dichos sistemas se
encuentran por separado, es decir, los IDS estn muy desarrollados, existiendo
gran variedad de productos, tanto en software propietario como software libre; y
por otro lado se encuentran muchas aplicaciones en inteligencia artificial, ya sea
en aplicaciones o en modelos matemticos. El IDS desarrollado est
fundamentado en ambas temticas.

Hoy en da existen herramientas de administracin de redes, pero ninguna cumple


los tres aspectos que cumple JDumper (Capturar tramas, analizarlas por reglas y
por RNA). Generalmente implementan uno solo de los aspectos, y en todo caso
dos para los monitores, porque necesitan datos de los paquetes de red e incluyen
para ello un pequeo capturador de paquetes de red o sniffer.

Ya que el aumento en la inseguridad de las redes de datos va creciendo cada da


ms es necesario para cualquier entidad publica o privada contar con un IDS, ya
que la gravedad de estos ataques es cada da mas grave y mas aun cuando se
cuenta con un IDS que use RNA Hay que tener en cuenta que a veces los
diferentes IDS instalados en las empresas pueden generar una saturacin a la red
que comienzan a generar falsos positivos que son especies de ataques
detectados por el IDS que en verdad son inofensivos, con este IDS trataremos de
reducir esto al mximo.

Un IDS cuenta con un motor de anlisis el cual analiza los numerosos eventos que
ocurren en la red y los evala en su contexto. Puede operar tanto fuera de lnea
(offline), capturando los paquetes y analizndolos posteriormente, como en lnea
(online) este seria crtico para lanzar una respuesta rpida y efectiva a los
ataques. Los IDS aportan a nuestra seguridad una capacidad de prevencin y de
alerta anticipada ante cualquier actividad sospechosa. No estn diseados para
detener un ataque, aunque s pueden generar ciertos tipos de respuesta ante
stos.

Se debe tener muy en cuenta si la instalacin del IDS se realiza de manera pasiva
o de manera activa, la diferencia entre estas es que la pasiva almacena la alerta
en un blog y con la posibilidad de enviarlo a una base de datos con el fin de dar
parte al administrador de la red de las anomalas que se presentaron y la activa
genera la activacin del antivirus para cortar el trafico generado por la red
atacante.

Nombre del proyecto adoptado (con previo anlisis)

Redes Neuronales Artificiales


4.2 RED NEURONAL

Las Redes Neuronales surgieron del movimiento conexionista, que naci junto con
la IA simblica o tradicional. Esto fue hacia los aos 50, con algunos de los
primeros ordenadores de la poca y las posibilidades que ofrecan. La IA
simblica se basa en que todo conocimiento se puede representar mediante
combinaciones de smbolos, derivadas de otras combinaciones que representan
verdades incuestionables o axiomas. Este paradigma se expuso por primera vez
en el ao de 1943, en un artculo escrito por McCulloch y Pitts, en el cual realizan
una asociacin simblica del modelo neuronal biolgico vigente en ese entonces.
Las redes neuronales se usan principalmente en problemas que involucran el
reconocimiento de patrones y la clasificacin, entendiendo patrn como
instrumento de medida o medida materializada el cual se encarga de conservar
unos valores para luego servir como referencia.

4.2.1 Modelo Biolgico: Una neurona es una clula viva, y como tal, contiene
los mismos elementos que forman parte de todas las clulas biolgicas, adems,
de poseer elementos caractersticos que la diferencian. En general una neurona
consta de un cuerpo celular ms o menos esfrico de 5 a 10 micras de dimetro,
del que sale una rama principal el axn, y varias ramas ms cortas denominadas
dendritas. A su vez el axn puede producir ramas en torno a su punto de
arranque, y con frecuencia se ramifica extensamente cerca de su extremo. La
neurona est formada por el cuerpo de la clula, compuesta por el ncleo el cual
posee funciones de control.

Las dendritas esta compuesta por una red alrededor de la clula, el axn se
extiende generalmente un centmetro y en algunas ocasiones no muy explicitas
hasta un metro. Este tambin se ramifica en filamentos y subfilamentos mediante
los que establece conexin con las dendritas y los cuerpos de las clulas de otras
neuronas. A esta conexin se le conoce como sinapsis. Cada neurona puede
establecer conexin desde una docena de neuronas hasta miles y miles de
neuronas dependiendo su comportamiento, as como se puede observar en la
figura 1. Las neuronas, por medio de las dendritas y el axn, reciben seales
elctricas, impulsos de neuronas vecinas, con el fin de que estas puedan
excitarse, estimulando impulsos a otras neuronas, para que estas lo puedan recibir
y posteriormente excitarse, y de esta forma comunicarse entre todas las neuronas.
Figura 1. Modelo Biolgico.

4.2.2 Unidad de Procesamiento de una Red Neuronal: Los elementos


individuales de clculo que forman la mayora de los modelos de sistemas
neuronales artificiales no suelen denominarse neuronas artificiales; lo ms
frecuente es darles el nombre de nodos, unidades o elementos de procesamiento.
Cualquier modelo de red neuronal consta de dispositivos elementales de
procesamiento: las neuronas. A partir de ellas, se pueden generar
representaciones especficas, de tal forma que un estado conjunto de ellas pueda
significar una letra, un nmero o cualquier otro objeto. Su procesamiento es el
siguiente:

Las neuronas reciben estmulos externos, relacionadas con el aparato


sensorial, que tomarn la informacin de la entrada, denominadas unidades de
entrada.

Dicha informacin se transmite a ciertos elementos internos que se ocupan de


su proceso. Es la sinapsis y neuronas correspondientes a este segundo nivel
donde se genera cualquier tipo de representacin interna de la informacin.
Puesto que no tienen relacin directa con la informacin de entrada y de salida,
estos elementos se denominan unidades ocultas.
Una vez ha finalizado el periodo de procesado, la informacin llega a las
unidades de salida, cuya misin es dar la respuesta del sistema.

La tecnologa basada en redes neuronales artificiales trata de imitar el


funcionamiento de elementos biolgicos que en este caso los constituyen las
neuronas del cerebro.

El cerebro humano en su biologa est formado por miles de millones de neuronas


que se conectan entre s, transmitiendo informacin entre ellas, luego de que esta
procesa, se genera una respuesta en funcin del estmulo recibido. Si se tienen N
unidades (neuronas), ordenadas arbitrariamente, su trabajo es simple y nico,
consiste en recibir las entradas de las clulas vecinas y calcular un valor de salida,
el cual es enviado a todas las clulas restantes (neuronas).

Figura 2. Neurona Artificial

De esta manera se puede determinar los elementos principales que constituyen


una red neuronal artificial de la siguiente manera:

Las conexiones que unen a las neuronas de una RNA tienen asociado un
peso, que es el que hace que la red adquiera un conocimiento y una cantidad
determinada.
Una neurona o unidad de procesamiento se ve afectada por las salidas de las
neuronas con las cuales ella esta conectada. El efecto total de las salidas de
estas neuronas reflejado en la unidad de procesamiento que se est
analizando se conoce como neta.

Entre las unidades o neuronas que forman una red neuronal artificial existe un
conjunto de conexiones que las unen. Cada unidad transmite seales a
aquellas que estn conectadas a su salida. Asociada con cada unidad hay una
funcin de activacin, que transforma la entrada neta que la unidad presenta
como resultado de estar conectada con otras unidades que le suministran
informacin, en el valor de la salida.

De esta manera la red neuronal consiste nicamente en recibir las entradas de las
neuronas vecinas y calcular un valor de salida, que es enviado a todas las
neuronas restantes como se observa en la figura 2.

Figura 3. Funcionamiento Neurona Artificial

Las unidades de entrada reciben las seales desde el exterior, es decir de otras
neuronas vecinas. Estas entradas pueden provenir de sensores o de otros
sectores del sistema las cuales servirn para la activacin de la red. Las unidades
de salida envan la seal fuera del sistema neuronal, las cuales servirn de
entrada a otra neurona, a travs de la sinapsis. Estas salidas pueden controlar
directamente potencias u otros sistemas. En el cuerpo de la neurona, es donde se
produce la funcin de activacin que va permitir que esta enve la informacin a
otras neuronas y puedan comunicarse. Esta activacin se produce al sumar todas
sus entradas por sus pesos y su respectivo umbral de activacin.
4.2.3 Aprendizaje de una Red Neuronal: La modificacin del
comportamiento provocado por la interaccin con el entorno y como resultado
de experiencias adecuadas al establecimiento de nuevos modelos de
respuestas ante estmulos externos. En el caso de las redes neuronales
artificiales, se puede considerar que el conocimiento se encuentra
representado en los pesos de las conexiones entre las neuronas. Todo
proceso de aprendizaje implica cierto nmero de cambios en estas
conexiones. En realidad se puede decir que se aprende modificando los
pesos de la red. De igual manera existen algoritmos de aprendizaje que
ayudan al desempeo de la red neuronal, los algoritmos son los siguientes:

Supervisado: Este algoritmo produce una funcin que establece una


concordancia entre deseada del sistema entre las entradas y las salidas.
No supervisado: Es donde el modelamiento se realiza sobre unos
ejemplos formados slo por entradas al sistema.
Por refuerzo: Este algoritmo aprende alimentndose del entorno o del
mundo que lo rodea.
Transduccin: Como el supervisado pero no construye una funcin.
Multi-tarea: Usan conocimiento previamente aprendido por el sistema de
cara a enfrentarse a problemas parecidos a los ya vistos.

1
4.2.4 El perceptrn multicapa (MLP): Este es uno de los tipos de redes ms
comunes. Se basa en otra red mas simple llamada perceptrn simple solo que el
nmero de capas ocultas puede ser mayor o igual que una. Es una red
unidireccional (feedforward), cuya arquitectura puede observarse en la Figura 4.

1
PALACIOS, Francisco. Herramientas en GNU/Linux para estudiantes universitarios. Tipos de
Redes Neuronales. [En Lnea]. 2003. Disponible en:
http://softwarelibre.unsa.edu.ar/docs/descarga/2003/curso/htmls/redes_neuronales/index.html
Figura 4. Representacin de un Perceptrn Multicapa (MLP)

Las neuronas de la capa oculta usan como regla de propagacin la suma


ponderada de las entradas con los pesos sinpticos wij y sobre esa suma
ponderada se aplica una funcin de transferencia de tipo sigmoide, denomina as
por su forma de ese, la cual es acotada en respuesta y til para ampliar el rango
de respuesta de las capas ocultas a valores continuos entre 0 y 1; sobre la funcin
hardlimit, la cual solo tiene dos posibles valores 0 o 1. (Figura 5).

Figura 5. Forma funcional de una sigmoide

El aprendizaje supervisado que se suele usar en este tipo de redes recibe el


nombre de retropropagacion del error (backpropagation), debido a que,
inicialmente se calcula la salida de la red y se compara con la salida deseada.
Posteriormente, este error se utiliza para cambiar los pesos de las entradas de las
neuronas desde la ltima capa hasta la primera, de ah su nombre. Como funcin
de rendimiento global, se usa el error cuadrtico medio. Es decir, que dado un par
(x.f., dk) correspondiente a la entrada k de los datos de entrenamiento se obtiene la
salida deseada asociada se calcula el error mediante la siguiente ecuacin:

[1]

Donde se observa que es la suma de los errores parciales debido a cada patrn
(ndice p), resultantes de la diferencia entre la salida deseada dp y la salida que da
la red f(.) ante el vector de entrada xk. Si estas salidas son muy diferentes de las
salidas deseadas, el error cuadrtico medio ser grande. Por ltimo, f es la funcin
de activacin de las neuronas de la capa de salida E y la salida que proporcionan
las neuronas de la ultima capa oculta.

Sobre esta funcin de coste global se aplica algn procedimiento de minimizacin.


En el caso del MLP se hace mediante un descenso por gradiente. Las expresiones
que resultan aplicando la regla de la cadena son las siguientes:

[2]

Siendo y(k) las salidas de la capa oculta.


El aprendizaje por backpropagation puede describirse mediante el siguiente
procedimiento:

9 Inicializar los pesos y los umbrales iniciales de cada neurona. Hay varias
posibilidades de inicializacin siendo las ms comunes las que introducen
valores aleatorios pequeos.
9 Para cada patrn del conjunto de los datos de entrenamiento.
9 Obtener la respuesta de la red ante ese patrn. Esta parte se consigue
propagando la entrada hacia adelante, ya que este tipo de red es feedforward.
Las salidas de una capa sirven como entrada a las neuronas de la capa
siguiente, procesndolas de acuerdo a la regla de propagacin y la funcin de
activacin correspondientes.
9 Calcular los errores asociados segn la ecuacin [1].
9 Calcular los incrementos parciales (sumandos de las sumatorias). Estos
incrementos dependen de los errores calculados en [1].
9 Calcular el incremento total para todos los patrones, de los pesos y los
umbrales segn las expresiones en la ecuacin [2].
9 Actualizar pesos y umbrales.
9 Calcular el error actual y volver al paso 2 si no es satisfactorio.

Este entrenamiento se realiz utilizando Neural Networks Toolbox, incluido en el


paquete MATLAB, el cual posee los algoritmos implementados que ejecutan los
pasos descritos anteriormente, a partir de los datos capturados por el IDS
desarrollado.

4.2. LIBRERA JPCAP

JPCAP es una librera de Java para capturar y enviar paquetes en una red;
usando JPCAP se pueden desarrollar aplicaciones para capturar paquetes desde
una interfaz de red, visualizndolos y analizndolos en Java. Tambin es posible
desarrollar aplicaciones para enviar arbitrariamente paquetes a travs de una
interfaz de red.2

JPCAP ha sido evaluado en Microsoft Windows (98/2000/XP/Vista), Linux (Fedora,


Mandriva, Ubuntu), Mac OS X (Darwin), FreeBSD y Solaris. Esta librera
suministra facilidades para:

9 Capturar paquetes desconocidos desde el medio de transmisin.


9 Guardar paquetes capturados a un archivo fuera de lnea, y leer paquetes
capturados desde un archivo previamente generado. Identificar

2
JPCAP. A Java library for capturing and sending network packets. [En Lnea]. Fecha de Consulta:
03-08-2007. Home. Disponible en: http://netresearch.ics.uci.edu/kfujii/jpcap/doc/
automticamente tipos de paquetes y generar objetos correspondientes de
Java (para Ethernet, IPv4, IPv6, ARP/RARP, TCP, UDP, y paquetes ICMPv4).
9 Acordar filtros de paquetes para usuarios con reglas especficas antes de
despacharlos de la aplicacin.
9 Enviar paquetes desconocidos a la red.

4.3. ATAQUES

Dentro de los ataques hechos al sistema se destacan, virus troyanos y escaneo de


puertos.

Virus troyanos: Un troyano puede definirse como:

Un troyano o caballo de Troya es un programa que se


diferencia de los virus en que no se reproduce infectando otros
ficheros. Tampoco se propaga haciendo copias de s mismo
como hacen los gusanos. Su nombre deriva del parecido en su
forma de actuar con los astutos griegos de la mitologa. Llegan
al ordenador como un programa aparentemente inofensivo,
pero al ejecutarlo instala en el ordenador un segundo programa:
el troyano3.

Los efectos de los troyanos pueden ser muy peligrosos. Permiten realizar
intrusiones o ataques contra el ordenador afectado, realizando acciones tales
como capturar todos los textos introducidos mediante el teclado o registrar las
contraseas introducidas por el usuario.4 Los troyanos utilizados para el ataque
fueron los siguientes:

9 SubSARI
9 Deep Throat, Foreplay
9 Arctic
9 DRAT
9 ADM worm, Lion
9 DMSetup
9 BackGate
9 CDK, Firehotcker
9 RemoConChubo
9 Hidden
9 ProMail trojan
9 Invisible Identd Deamon, Kazimas
9 Happy99

3
SEGURIDAD EN LA RED.Virus, gusanos, troyanos y backdoors. [En Lnea]. Fecha de Consulta:
03-08-2007. Inicio. Disponible en: http://www.seguridadenlared.org/es/index10esp.html
4
Ibid.
9 Attack Bot, God Message, JammerKillah
9 Net Controller
9 Farnaz
9 Chode
9 Msinit, Qaz
9 Back Orifice
9 Chode
9 Chode, God Message worm, Msinit
9 Arctic

Escaneo de puertos: El escaneo de puertos puede definirse como:

El escaneo de puertos es una de las ms populares tcnicas


utilizadas para descubrir y mapear servicios que estn
escuchando en un puerto determinado. Usando este mtodo
un atacante puede crear una lista de las potenciales
debilidades y vulnerabilidades en un puerto para dirigirse a la
explotacin del mismo y comprometer el host remoto5.

4.4. METODOLOGA DE DESARROLLO

El desarrollo del proyecto se gui por la metodologa de Proceso Unificado (UP),


mientras el lenguaje para el proceso de Ingeniera del Software es el Lenguaje
Unificado de Modelado, UML. El desarrollo se implement usando Java, bajo el
uso y los lineamientos del IDE NetBeans. A continuacin se realiza una breve
descripcin de estos elementos:

4.4.1. Proceso Unificado: El Proceso Unificado se lleva a cabo en las


siguientes fases:

1. Modelo de Requisitos
2. Modelo de Anlisis
3. Modelo de Diseo
4. Pruebas
5. Implementacin
6. Gestin de la configuracin.

5
IT PRO MEXICO. Mtodos de Escaneo de Puertos. [En Lnea]. Fecha de Consulta: 03-08-
2007.Inicio. Disponible en: http://www.itpromexico.com.mx/paginas/articulos/scanportmet.htm
E incluye los siguientes artefactos relevantes:

9 Modelo de casos de uso: Incluye los casos de uso, el diagrama de los mismos
y los diagramas de diseo del sistema.
9 Modelo de Dominio.
9 Modelo de clases
9 Diagrama de estados del sistema
9 Diagramas de arquitectura
9 Diagramas de Actividad y Colaboracin

4.4.2. Lenguaje Unificado de Modelado (UML): Es el lenguaje de modelado


de sistemas de software ms conocido y utilizado en la actualidad; an cuando
todava no es un estndar oficial, est apoyado en gran manera por el OMG* Es
un lenguaje grfico para visualizar, especificar, construir y documentar un sistema
de software. UML ofrece un estndar para describir un "plano" del sistema
(modelo), incluyendo aspectos conceptuales tales como procesos de negocios y
funciones del sistema, y aspectos concretos como expresiones de lenguajes de
programacin, esquemas de bases de datos y componentes de software
reutilizables6.

4.4.3. NetBeans. NetBeans se refiere a una plataforma para el desarrollo de


aplicaciones de escritorio usando Java y a un Entorno integrado de desarrollo
(IDE) desarrollado usando la Plataforma NetBeans. La plataforma NetBeans
permite que las aplicaciones sean desarrolladas a partir de un conjunto de
componentes de software llamados mdulos. Un mdulo es un archivo Java que
contiene clases de java escritas para interactuar con las APIs de NetBeans y un
archivo especial (manifest file) que lo identifica como mdulo. Las aplicaciones
construidas a partir de mdulos pueden ser extendidas agregndole nuevos
mdulos. Debido a que los mdulos pueden ser desarrollados
independientemente, las aplicaciones basadas en la plataforma NetBeans pueden
ser extendidas fcilmente por otros desarrolladores de software7.

4.4.4. Java: Java es un lenguaje de programacin orientado a objetos


desarrollado por James Gosling y sus compaeros de Sun Microsystems al inicio
de la dcada de 1990. A diferencia de los lenguajes de programacin
convencionales, que generalmente estn diseados para ser compilados a cdigo
nativo, Java es compilado en un bytecode que es ejecutado (usando normalmente
un compilador JIT), por una mquina virtual Java.

*
Object Management Group.
6
OBJECT MANAGEMENT GROUP. Introduction to OMG's Unified Modeling Language (UML).
Fecha de Consulta: 03-08-2007. Inicio > Introduction to UML. Disponible en:
http://www.omg.org/gettingstarted/what_is_uml.htm
7
NETBEANS.ORG. Bienvenido A Netbeans. [En Lnea]. Fecha de Consulta: 03-08-2007. Inicio.
Disponible en: http://www.netbeans.org/index_es.html.
4.4.5. Rational Case: Rational es actualmente conocida como una familia de
software de IBM para el levantamiento de requerimientos, diseo, construccin,
pruebas y administracin de proyectos en el proceso desarrollo de software. Las
herramientas de Rational dan grandes beneficios sin limitar la libertad creativa de
los equipos de desarrollo. Permite seleccionar el nivel de abstraccin correcto para
cada tarea. Utiliza el ambiente de desarrollo y el IDE8 preferido y adecuado para el
equipo. Adapta el ambiente del proyecto a las necesidades especficas. No
importa cul sea la plataforma de desarrollo o las funciones dentro del equipo (rol),
hay alguna solucin de Rational que puede ayudar.

Las herramientas de Rational fortalecen el desarrollo con Java con la principal


plataforma de desarrollo para la comunidad Java. Nuestras herramientas
galardonadas, te permitirn trabajar intuitivamente, con mayor control, y con el
conjunto ms amplio de recursos Java. A partir de la adquisicin de Rational por
IBM, la integracin de las herramientas ha sido sin precedente, ofreciendo una
gran facilidad de uso. Otras alianzas estratgicas con Sun Microsystems, HP, y
otros asegura una compatibilidad total (end-to-end) en tu ambiente de desarrollo
Java seleccionado.

4.4.6. Back Orifice y Megaping

Back Orifice es una herramienta que fue creada por una organizacin de Hackers
en 1998, en el cual funciona como cliente servidor. El programa contiene una
serie de subprogramas que son instalados en el cliente el cual va a ser atacado,
estos subprogramas tambin llamados troyanos son enviados a travs de la red e
instalados en el equipo que se ejecuten. Ya instalados estos troyanos (virus), se
procede en el servidor, a travs de plugins que contiene varias caractersticas, a
realizar el debido dao. 9

Por otra parte Megaping es un software comercial que sirve para la visin general
de la configuracin de un sistema y la administracin fsica de una red en tiempo
real, en este caso se utiliz una versin shareware como escaneador de puertos
relevantes e irrelevantes de la red de datos.10

8
Ambiente Integrado de Desarrollo
9
BLOG DE SOFTWARE GENBETA. Back Orifice: especial software control remoto. [En Lnea].
Fecha de Consulta: 03-08-2007. Inicio. Disponible en: http://www.genbeta.com/2006/06/13-back-
orifice-especial-software-control-remoto
10
PIOJOSOFT - EL SITIO DE DESCARGAS. Megapin 4.3. [En Lnea]. Fecha de Consulta: 03-08-
2007. Inicio. Disponible en http://www.piojosoft.com/index.php?empezar=0&ide=200
5. METODOLOGA

Para llegar a determinar el funcionamiento y el anlisis del proyecto, se tuvieron


encuentra algunas aplicaciones de desarrollo libre como Fedora que es una
distribucin de Linux, desarrollada y patrocinado por Red Hat. Con esta
distribucin se instalaron programas de captura de tramas como Nmap, que
permiti determinar paquetes vulnerables en la red y as clasificar los paquetes a
utilizar en el proyecto.

De igual manera se utilizaron bajo esta distribucin, Windows XP y Windows 2003


Server aplicaciones denominadas sniffer (especficamente Snort y Ethereal) para
la captura de paquetes y deteccin de intrusos ya que monitorizan todo un dominio
de una red y son flexibles para el almacenamiento de sus datos.

De acuerdo con lo anterior se determin que las herramientas utilizadas no fueron


tiles para el presente proyecto, porque era necesario capturar datos propios en la
aplicacin final.

Como procedimiento final se llevaron acabo las siguientes fases.

5.1. FASE 1: RECOLECCIN DE INFORMACIN.

Se determin que los paquetes ms relevantes para la adquisicin son aquellos


relacionados con los protocolos UDP y TCP. El protocolo UDP proporciona una
comunicacin muy sencilla entre los ordenadores y en la captura de paquetes se
obtuvieron tramas con mensajes y datos perdidos y daados. A travs del
protocolo TCP se determin que en la captura de la trama los datos siempre
llegaron a la aplicacin de destino ya que por medio de este la informacin llega
de forma de correcta.

Para el entrenamiento de la red neuronal se utiliz la aplicacin MATLAB, la cual


trae una serie de herramientas denominadas Toolbox, especficamente el Neural
Networks Toolbox para entrenar una red neuronal perceptrn multicapa.

5.2. FASE 2: ADQUISICIN DE LOS PAQUETES.

Al ser necesario la captura de paquetes desde una aplicacin propia, para su


posterior clasificacin, se utiliz la librera JPCAP, la cual permite capturar los
paquetes recibidos por las tarjetas de red de un computador. Posteriormente se
Generaron los ataques previamente mencionados mediante las aplicaciones Back
Orifice y Megaping para as obtener los datos para el posterior entrenamiento y
validacin de la red neuronal multicapa. Adems para determinar cuales paquetes
son nocivos, se establecieron una serie de reglas. Esto permite una comparacin
entre lo detectado mediante dichas reglas y lo obtenido usando la red neuronal.

5.2. FASE 3: ENTRENAMIENTO DE LA RED NEURONAL.

MATLAB permite entrenar redes neuronales mostrndole pares de entrada y


salida para que calcule los pesos de la red neuronal de tal forma que cuando se le
presente una entrada, arroje la salida correspondiente, y as cuando se le presente
una entrada que no conoca generalice y obtenga una salida acorde con el
entrenamiento. Para este entrenamiento se tuvieron en cuenta las caractersticas y
variables propias de la arquitectura de la red neuronal y que son arrojadas en la
configuracin de la red las cuales son:

9 Entradas: Par de datos que alimentan la red neuronal. En este caso las
entradas son el puerto y el protocolo, los cuales se transformaron en variables
numricas. Se determina si el paquete es peligroso con reglas previamente
estudiadas, las cuales involucran como patrones, el puerto y el protocolo.
9 Capa: Conjunto de neuronas que comparten las mismas entradas. En este
caso, despus de mltiples pruebas, se obtuvo una red con dos capas, veinte
neuronas en la primera capa y una nica neurona de salida en la segunda
capa.
9 Pesos: Valores que ponderan las entradas. En este caso se tienen dos
conjuntos de pesos, lo que ponderan las entradas principales a la Capa 1
W1-, y los que ponderan la salida de dicha capa, que son a su vez entradas
para la Capa 2 compuesta de una nica neurona W2-.
9 Bias: Pesos adicionales que suponen una entrada 1. Se utilizan para dar
mayor grado de libertad al entrenamiento. Se tienen dos conjuntos de bias, los
correspondientes a la Capa 1, 20 valores en total y un nico valor
correspondiente a la neurona de la Capa 2.

El entrenamiento se realiz utilizando la interfaz grfica del Neural Networks


Toolbox, denominada nntool, la cual permite cargar los datos obtenidos en la
captura desde un archivo plano. Posteriormente se definen que datos de los
importados, corresponden a las entradas de la red neuronal, y cuales a la salida
conocida, es decir, si es o no un paquete peligroso (uno, si en un paquete normal,
y cero si es peligroso). Como parmetros de entrenamiento se tuvieron diez mil
pocas y un error mximo de 0.01, lo que significa que las posibles salidas (cero o
uno) podrn convertirse en valores por encima o por debajo 0.01 de ese valor.
Una vez realizado el entrenamiento, MATLAB arroja los valores de los pesos en
ambas capas y los bias, los cuales se validaron para diferentes valores de entrada
tal como se muestra a continuacin:

EntradaP= [139 6];


salida1=tansig (EntradaP*W1'+B1');

En esta lnea se multiplica la entrada (puerto y protocolo) por los pesos de la capa
uno, y se le suma el bias de la capa uno. A ese resultado se le saca la tangente
sigmoide, que es la funcin de activacin utilizada en este caso, y una de las ms
comunes en redes feedforward y en perceptrones multicapa. La funcin tangente
sigmoide se implemento en la aplicacin utilizando la funcin tangente hiperblica.

salida2=logsig (salida1*W2'+B2);

En esta lnea se multiplica la salida de la capa uno por los pesos de la capa dos, y
se le suma el bias de la capa dos, para posteriormente sacarle a ese nico valor la
logaritmo sigmoide, y as obtener la salida definitiva de la red, que ser uno o cero
de acuerdo con la informacin inicial introducida.

5.3. FASE 4: ANLISIS Y DISEO DEL SISTEMA

El anlisis y diseo se implemento bajo la metodologa UP (Proceso Unificado), el


lenguaje para el proceso de Ingeniera del Software es el lenguaje Unificado de
Modelado UML y su programacin se desarrollo en lenguaje Java, bajo el uso y
los lineamientos de NetBeans. Los anexos A y B contienen los diversos diagramas
que ilustran este proceso.

5.4. FASE 5: IMPLEMENTACIN Y PRUEBAS

La implementacin se realiz usando NetBeans, y para realizar las pruebas se


capturaron 856 tramas clasificadas en protocolos UDP y TCP. La clasificacin de
dichos paquetes se realiz tanto mediante unas reglas establecidas como se
muestra en la figura 6, as como mediante una red neuronal. Se realiz un clculo
de la efectividad de la red neuronal comparada con las reglas predefinidas.

De las 856 tramas clasificadas se entreno la red neuronal en MATLAB con los
primeros 400 campos, ya que era necesario saber si los resultados obtenidos por
la red neuronal eran validos al evaluarse con tramas que no se usaron en el
entrenamiento. Por esto se dejaron 456 tramas de prueba y se observo que los
resultados eran satisfactorios.
En la figura 6 que se muestra a continuacin se puede observar que las reglas
estn implementadas dentro de un archivo plano, donde existen 3 campos:
protocolo, puerto y descripcin del ataque respectivamente. La primera regla que
se encuentra en el archivo esta constituida de la siguiente manera: 6 | 50 | Drat |,
donde el 6 es el protocolo (UDP), 50 el puerto por donde se vulnero el sistema y
Drat el tipo de ataque que se quiso activar en el equipo.

Figura 6. Reglas
6. RESULTADOS

Como principal resultado de la investigacin se obtuvo un sistema donde se


pueden capturar todos los datos de una trama, pero teniendo en cuenta que son
los ms significativos ya que como mencionados anteriormente solo se utilizaron
ciertas caractersticas para el IDS. A continuacin se nombraran los resultados
obtenidos del proyecto de Investigacin:

La aplicacin cumpli con el objetivo principal: detectar intrusos por medio de


redes neuronales y determinar por medio de reglas la veracidad de su
funcionamiento as como se puede observar en la figura 7, figura 8
respectivamente:
La adaptacin de la librera JPCAP fue exitosa para dar solucin al problema.
Las herramientas utilizadas con el fin de vulnerar el sistema, fueron de utilidad,
ya que por medio de estas se pudieron determinar el tipo de ataques.
Se pudieron capturar tramas con las caractersticas necesarias para la
deteccin de intrusos.

Figura 7. Datos de ataque con reglas.


Figura 8. Datos de ataques, (entrenamiento red neuronal).

La informacin capturada se puede analizar mediante dos tcnicas; A travs de


reglas o mediante una RNA previamente entrenada utilizando MATLAB. Una
vez realizado el anlisis, es posible ver las conclusiones del mismo, tal como se
muestra en la Figura 6. El anlisis puede resumirse en: Datos identificados con un
1 si es inofensivo y con un 0 si es ataque (con su respectiva descripcin).

Adems de todo lo anterior en el IDS desarrollado se puede observar las


estadsticas de los paquetes recibidos con gran variedad de grficas, adems de
cambiar su aspecto y muchas caractersticas ms que junto con las mencionadas
anteriormente se podrn ver en el manual de usuario.

En este proceso de entrenamiento de la RNA realizado en MATLAB se


tuvieron diferentes parmetros de entrenamiento, entre ellos diez neuronas y
mil pocas, en la cual no se alcanza el error mnimo, tal como se observa en la
Figura 9; hasta que se encontr una arquitectura y un porcentaje de error tal
que el entrenamiento convergiera. En este caso se tiene un error del 1%, una
estructura de dos capas, con veinte neuronas en la primera capa y una
neurona de salida en la segunda capa. El entrenamiento se realiz durante
dos mil setecientas pocas, tal como se observa en la figura 10.

Figura 9. Entrenamiento con diez neuronas.

Performance is 0.0242527, Goal is 0.01


0
10
Training-Blue Goal-Black

-1
10

-2
10

-3
10
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
10000 Epochs
Figura 10. Entrenamiento MATLAB (10 neuronas)

Performance is 0.00995963, Goal is 0.01


0
10

Training-Blue Goal-Black

-1
10

-2
10

-3
10
0 500 1000 1500 2000 2500
2854 Epochs

Se realiz una comparacin entre la deteccin utilizando reglas y la realizada


mediante la red neuronal de las tramas capturadas, exportando esta
informacin desde la aplicacin a una hoja electrnica utilizando Microsoft
Office Excel. El resultado final fue el siguiente:

Se detectaron de 856 tramas los siguientes paquetes con su respectivo porcentaje

Deteccin por Reglas:

De 266 paquetes capturados determinados como ofensivos se detectaron 266


paquetes malos, obteniendo un porcentaje y un trabajo de funcionamiento del
100 %, del cual 590 paquetes buenos fueron capturados y establecidos como
buenos. Para el IDS que se implemento estos resultados sirven para validar la
deteccin alojada por el entrenamiento de la red neuronal.

# de Tipo de Porcentaje
paquetes paquetes
266 266 Malos 100%
590 590 Buenos 100 %
100 %
Deteccin mediante la Red Neuronal

# de Tipo de Porcentaje
paquetes paquetes
266 230 Malos 86.46 %
590 570 Buenos 96.61 %
91.535 %

Capturado 266 paquetes el sistema detecto 230 en los cuales la efectividad en la


deteccin en el peor caso es de 91.535%, este porcentaje indica la viabilidad de la
tcnica utilizada (Redes Neuronales), teniendo en cuenta que el aprendizaje se da
con la experiencia (entrenamiento) y que la deteccin podra ser mas puntual.
7. CONCLUSIONES

9 El uso de las reglas fue til al momento de establecer los datos de


entrenamiento de la red neuronal debido a que las reglas son definidas por el
usuario y son un 100% verdicas. De esta manera la red neuronal puede ser
comparada y reconstruida para un mejor funcionamiento en su deteccin de
paquetes de datos.

9 Se utiliz la librera JPCAP, ya que el API de Java cuenta con esta herramienta
que provee de varios elementos para la captura de tramas de bajo y alto nivel
de una red de datos. Su programacin y su codificacin se hace a la necesidad
del usuario y al operar sobre Java garantiza ser multiplataforma que ayud a
cumplir con los objetivos descritos inicialmente.

9 Las herramientas utilizadas para vulnerar la red de datos se mostraron muy


importantes durante la investigacin.

9 La alternativa estudiada como opcin para detectar intrusos en una red de


datos utilizando redes neuronales, es suficiente para conocer en el estado del
medio en que nos desempeamos, y as tomar decisiones sobre la base de la
informacin brindada por los medios obtenidos, en este caso el IDS ya
mencionado.
8. RECOMENDACIONES

En trminos generales, el presente proyecto se constituye en una primera etapa


de un proyecto de mayor envergadura y alcance, en el cual a la Universidad de
Manizales a travs de las investigaciones llevadas a cabo al interior de la Facultad
de Ingeniera, desarrolle sus propias herramientas de seguridad informtica y se
convierta en un lder a nivel regional, nacional y latinoamericano en elaboracin de
software.

Especficamente, se recomienda utilizar en un siguiente estadio de este proyecto


la realizacin de ms vulnerabilidades los cuales dependan de ms patrones que
no solo sean puerto y protocolo, generalizando las debilidades que un sistema de
informacin pueda tener, ya que la aplicacin da la posibilidad como herramienta
de seguir con este estudio.

Por otra parte a nivel de Hardware los requerimientos mnimos y que de hecho hoy
en da se consiguen en el mercado son:

9 Procesador Pentium IV en adelante.


9 AMD de 2200 MHZ en adelante
9 Memoria RAM de 128 en adelante
9 Tarjeta inalmbrica o tarjeta de red para la captura de datos
9 Cable de red RJ45 directo o Cruzado dependiendo la configuracin de la
red de datos.
BIBLIOGRAFA

BLOG DE SOFTWARE GENBETA. Back Orifice: especial software control remoto.


[En Lnea]. Fecha de Consulta: 03-08-2007. Inicio. Disponible en:
http://www.genbeta.com/2006/06/13-back-orifice-especial-software-control-remoto

IT PRO MEXICO. Mtodos de Escaneo de Puertos. [En Lnea]. Fecha de


Consulta: 03-08-2007.Inicio. Disponible en:
http://www.itpromexico.com.mx/paginas/articulos/scanportmet.htm

JPCAP. A Java library for capturing and sending network packets. [En Lnea].
Fecha de Consulta: 03-08-2007. Home. Disponible en:
http://netresearch.ics.uci.edu/kfujii/jpcap/doc/

MEMBERS.TRIPOD.COM. Redes Neuronales, Introduccin y conceptos Bsicos,


Primera y segunda parte, [En Lnea]: Fecha de consulta agosto de 2007.
Disponible en: http://members.tripod.com/jesus_alfonso_lopez/RnaIntro.html

NETBEANS.ORG. Bienvenido A Netbeans. [En Lnea]. Fecha de Consulta: 03-08-


2007. Inicio. Disponible en: http://www.netbeans.org/index_es.html.

OBJECT MANAGEMENT GROUP. Introduction to OMG's Unified Modeling


Language (UML). Fecha de Consulta: 03-08-2007. Inicio > Introduction to
UML. Disponible en: http://www.omg.org/gettingstarted/what_is_uml.htm

PALACIOS, Francisco. Herramientas en GNU/Linux para estudiantes


universitarios. Tipos de Redes Neuronales. [En Lnea]. 2003. Disponible en:
http://softwarelibre.unsa.edu.ar/docs/descarga/2003/curso/htmls/redes_neuronales
/index.html

PIOJOSOFT - EL SITIO DE DESCARGAS. Megapin 4.3. [En Lnea]. Fecha de


Consulta: 03-08-2007. Inicio. Disponible en
http://www.piojosoft.com/index.php?empezar=0&ide=200

SEGURIDAD EN LA RED.Virus, gusanos, troyanos y backdoors. [En Lnea].


Fecha de Consulta: 03-08-2007. Inicio. Disponible en:
http://www.seguridadenlared.org/es/index10esp.html

UNIVERSIDAD DE ANTIOQUIA. Historia de las Redes Neuronales. [En Lnea].


Fecha de Consulta: 30-01-2007. Disponible en:
http://ingenieria.udea.edu.co/investigacion/mecatronica/mectronics/redes.htm
WIDROW LIRA, Cristian. REDES NEURONALES ARTIFICIALES: POTENCIAL
DESARROLLO MILITAR. [En Lnea]. Disponible en:
http://www.revistamarina.cl/revistas/1998/5/widow.pdf
ANEXOS
ANEXO A. Modelo de Requisitos

Los paquetes enmarcan para el proyecto el contexto de la aplicacin en general,


tanto en las necesidades generadas, como en su estructura. Uno de los factores
importantes es la Seguridad, en ste se encuentran todas los requerimientos para
el acceso al medio; todo con el fin de obtener la informacin del trfico, los
Intrusos son una abstraccin de todo lo referente al acceso y deteccin de intrusos
en una red determinada y el procesamiento de la Informacin es un factor que
incide tanto en la captura como en anlisis requerido sobre la informacin.

Diagrama de paquetes (Requisitos)


Diagrama de Casos de Uso (Paquete Seguridad)

Diagrama de Casos de Uso (Paquete Intrusos)


Diagrama de Casos de Uso (Paquete Informacin)

Diagrama de actividad (lectura de tramas)

Uno de los requisitos ms relevantes es la lectura de tramas en la red; todo se


logra mediante el acceso al medio, pasando por un anlisis previo para la
identificacin y deteccin de intrusos, tambin es necesario obtener toda la
informacin contextual. Es posible observar en el siguiente diagrama se ilustra los
procesos y procedimientos bsicos y lineales para lograr dicha funcin.
Diagrama de Actividad (Lectura de Tramas)
ANEXO B. Modelo de Anlisis

Casos de Uso (Nivel Requisitos)

El anlisis de la aplicacin est basado en el modelo de requisitos, todo con el fin


de crear las diferentes interfaces, controles y entidades, tal y como lo establece la
ingeniera de modelos propuesta por el proceso unificado (UP) bajo la notacin
UML 2.0.

Se requiere la adaptacin de una librera de tal forma que permita estructurar las
caractersticas de la aplicacin en modelos vista controlador, es por esto que se
deben construir paquetes, tal y como se puede observar en el diagrama descrito.

Vista de modelos (Paquete Anlisis)

Se define como lineamiento principal los casos de uso que abarquen todo lo
indicado, es por esto que se tiene como los siguientes aspectos:

La lectura de tramas es un factor principalmente en el momento del anlisis de los


requerimientos, es por esto que se estructuran los casos de uso para abarcar
dicha temtica, por tal motivo se indica en un caso de uso independiente, para
luego ser tomada en el modelo de diseo como tal, as como se observa en el
diagrama:
Casos de Uso (Analisis de Lectura)

Casos de Uso para Anlisis y Procesamiento

Los casos de uso en el modelo de anlisis no ayuda a comprender, estructurar y


definir cmo es realmente la necesidad plasmada en el modelo de requisitos; en
ste caso de encuentran dos reas con un procesamiento y tratamiento diferente,
pero contextos diferentes, es entonces el caso de dos tipos de anlisis, el
acumulativo y el continuo.

Anlisis acumulativo: Para ste anlisis es apropiado tomar la lectura efectuada


en el medio (como lo indican los casos de uso anteriores) para determinar cual y
que tipo de informacin fue tomada de la red para el respectivo anlisis.

Anlisis continuo: Es un tipo de tratamiento que se diferencia del anterior


mostrando la informacin completa, ya sean rangos de transporte, informacin
general, estadsticas y entre otros.
Casos de Uso para Anlisis y Procesamiento

Diagramas de Clase

Diagramas de clase a nivel de ncleo

Los diagramas a nivel ncleo son las que se usan para lograr los objetivos
trazados en el proyecto, para implementar con mayor efectividad de reutilizacin y
mejorar las prestaciones de la librera a adaptar es necesario contextualizar las
clases en paquetes, observe el diagrama abajo descrito.

Diagramas de clase a nivel de ncleo (Paquetes)


Paquete analyzer

Es donde se especifica cada uno de los paquetes en forma tal que se evidencien
las clases que estos contiene:

Dicha informacin ser estipulada con mejor detalle en el modelo de diseo,


donde se construye todo lo referente al uso de dichas clases; cabe anotar que se
toman todas las caractersticas de una librera adecuada para lograr los objetivos.

Package Overview: analyzer

<< read-only>>
JDPacketAnalyzer

<< read-only>> << read-only>> << read-only>>


<< read-only>> << read-only>> << read-only>> << read-only>> << read-only>>
SSHAnalyzer PacketAnalyzer POP3Analyzer
ICMPAnalyzer
(dis crim inator) FTPAnalyzer TCPAnalyzer SMTPAnalyzer HTTPAnalyzer

<< read-only>> << read-only>> << read-only>> << read-only>> << read-only>> << read-only>>
<< dataType>>
UDPAnalyzer EthernetAnalyzer TelnetAnalyzer ARPAnalyzer IPv6Analyzer IPv4Analyzer
JDPacketAnalyzer[]

Paquete Stat

En el paquete stat encontraremos todo lo referente a la librera JPCAP, es decir,


todos los estados estipulados para las capas de transporte, aplicacin, y de red.
Como se indica en el diagrama, se logra mediante una herencia estipulada por
UML 2.0 como una generalizacin, esto se obtiene usando la herramienta
POSEIDON, la cual nos permite hacer un mejor anlisis de la estructura de la
librera en s, su principal objetivo es no cometer errores en el momento del
anlisis, debido a que esto influye directamente en el modelo de diseo.
Diagrama Paquete stat

Package Overview: s tat

<< read-only>>
JDStatisticsTaker

<< read-only>> << read-only>> << read-only>> << read-only>> << read-only>>
TransportProtocolStat NetworkProtocolStat PacketStat FreeMemStat ApplicationProtocolStat

<< dataType>>
JDStatisticsTaker[]

Paquete ui

Todo lo referente a interfaces debe ser concebido en forma independiente, para


acercar el modelo a vista controlador, y lograr mejorar sus prestaciones en cuando
a efectividad y calidad de software.
Diagrama Paquete ui

Package Overview: ui

<< read-only>> << read-only>>


JDTableTextArea JDStatFrame

~ text

<< read-only>> << read-only>> ~ tree << read-only>>


+ tablePane
JDFram e JDTablePane JDTableTree << read-only>> << read-only>>
JDCum lativeStatFrame JDContinuousStatFram e

<< read-only>>
TableMap

~ table

<< read-only>> << read-only>>


TableSorter JDTable
~ s orter

<< read-only>> << read-only>> << read-only>>


graph
JDCaptureDialog JDDetailTree JDTableRenderer
Diagramas de clase (anlisis de la aplicacin)

Para comenzar es necesario tener en cuenta los lineamientos que hay en el


proceso unificado de desarrollo de software, el cual se adapta a las herramientas
de desarrollo seleccionadas para el proyecto, entre las que se tiene a NETBEANS
6.0, IBM RATIONAL MODELER y POSEIDON.

El siguiente diagrama enmarca lo que es la ventana principal, teniendo en cuenta


tres tipos de clases para ste diagrama, interfaz, entidad y control; stos definen
las clases que se usan como aporte primordial en el modelo de diseo.

Inicio de la aplicacin

Para el inicio de la aplicacin es apropiado tener en cuenta las clases que


derivarn el arranque de la aplicacin, as de la siguiente manera:

Diagrama de Clases Inicio de la aplicacin

Lectura de Tramas

La lectura de las tramas se hace por medio de la interfaz principal, se puede llegar
por medio del men o por medio de otro elemento, el cual deber ser definido en
el modelo de diseo, abajo se observa un diagrama que muestra las clases que
afectan dicho procedimiento.
Diagrama de clases Lectura de Tramas
ANEXO C. Modelo de Diseo

Diseo de la aplicacin

Diagrama de componentes Ventana principal


Diseo Ventana Principal

Abrir un archivo

Diagrama de componentes (Abrir un archivo)


Diseo Abrir un archivo

Guardar un archivo

Diagrama de componentes Guardar un archivo


Diseo Guardar un archivo

Exportar para anlisis

Diagrama de componentes Exportar para anlisis


Diseo Exportar para anlisis

Lectura de Tramas

Diagrama de componentes Lectura de Tramas


Diseo Lectura de Tramas

MDULO DE ESTADSTICAS

Informacin general

Diagrama de componentes (Informacin general)


Diseo Informacin general

Rangos en capa de Red

Diagrama de componentes Rangos en capa de Red


Diseo Rangos en capa de Red

Rangos en capa de transporte

Diagrama de componentes Rangos en capa de transporte


Rangos en capa de transporte

Rangos en capa de aplicacin

Diagrama de componentes Rangos en capa de aplicacin


Diseo Diagrama de componentes Rangos en capa de aplicacin

Memoria libre

Diagrama de componentes Memoria libre


Diseo Memoria libre

Anlisis Estadstico Continuo

Diagrama de componentes Anlisis Estadstico Continuo


Diagrama de componentes Anlisis Estadstico continuo

Rangos en capa de red

Diagrama de componentes Rangos en capa de red

Diseo Rangos en capa de red


Rangos en capa de transporte

Diagrama de componentes Rangos en capa de transporte

Diseo Rangos en capa de transporte


Rangos en capa de aplicacin

Diagrama de componentes Rangos en capa de aplicacin

Diseo Rangos en capa de aplicacin


Memoria libre

Diagrama de componentes Memoria libre

Diseo Memoria libre


Deteccin por Reglas

Diagrama de componentes Deteccin por Reglas

Diseo Deteccin por Reglas


Detectar intrusos por reglas

Diagrama de componentes Detectar intrusos

Detectar intrusos por reglas


Deteccin por entrenamiento neuronal

Diagrama de componentes Deteccin por entrenamiento neuronal

Diseo Deteccin por entrenamiento neuronal

También podría gustarte