180 Garcia Zuluaga Nelson Andres 2007
180 Garcia Zuluaga Nelson Andres 2007
180 Garcia Zuluaga Nelson Andres 2007
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
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
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.
4.1 IDS
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.
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.
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.
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:
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)
[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.
[2]
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.
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
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
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
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
*
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.
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
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.
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.
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
-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)
Training-Blue Goal-Black
-1
10
-2
10
-3
10
0 500 1000 1500 2000 2500
2854 Epochs
# 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 %
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.
Por otra parte a nivel de Hardware los requerimientos mnimos y que de hecho hoy
en da se consiguen en el mercado son:
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/
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.
Se define como lineamiento principal los casos de uso que abarquen todo lo
indicado, es por esto que se tiene como los siguientes aspectos:
Diagramas de Clase
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.
Es donde se especifica cada uno de los paquetes en forma tal que se evidencien
las clases que estos contiene:
<< read-only>>
JDPacketAnalyzer
<< read-only>> << read-only>> << read-only>> << read-only>> << read-only>> << read-only>>
<< dataType>>
UDPAnalyzer EthernetAnalyzer TelnetAnalyzer ARPAnalyzer IPv6Analyzer IPv4Analyzer
JDPacketAnalyzer[]
Paquete Stat
<< read-only>>
JDStatisticsTaker
<< read-only>> << read-only>> << read-only>> << read-only>> << read-only>>
TransportProtocolStat NetworkProtocolStat PacketStat FreeMemStat ApplicationProtocolStat
<< dataType>>
JDStatisticsTaker[]
Paquete ui
Package Overview: ui
~ text
<< read-only>>
TableMap
~ table
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
Abrir un archivo
Guardar un archivo
Lectura de Tramas
MDULO DE ESTADSTICAS
Informacin general
Memoria libre