Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO POSGRADO EN CIENCIA E INGENIERÍA DE LA COMPUTACIÓN SISTEMA PARA DETECCIÓN DE INTRUSOS EN LÍNEA BASADO EN ANOMALÍAS DE RED, USANDO REDES DE MEMORIA TEMPORAL JERÁRQUICA T E S I S QUE PARA OBTENER EL GRADO Maestro en Ingeniería de la Computación P R E S E N T A NAIM DE LUNA MENDOZA DIRECTOR DE TESIS DR. ENRIQUE DALTABUIT GODAS MÉXICO, D. F. 2011 UNAM – Dirección General de Bibliotecas Tesis Digitales Restricciones de uso DERECHOS RESERVADOS © PROHIBIDA SU REPRODUCCIÓN TOTAL O PARCIAL Todo el material contenido en esta tesis esta protegido por la Ley Federal del Derecho de Autor (LFDA) de los Estados Unidos Mexicanos (México). El uso de imágenes, fragmentos de videos, y demás material que sea objeto de protección de los derechos de autor, será exclusivamente para fines educativos e informativos y deberá citar la fuente donde la obtuvo mencionando el autor o autores. Cualquier uso distinto como el lucro, reproducción, edición o modificación, será perseguido y sancionado por el respectivo titular de los Derechos de Autor. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN ii RESUMEN La búsqueda por encontrar mecanismos y dispositivos que ayuden a mantener la seguridad informática en cualquier empresa, se ha vuelto compleja y costosa. En estos días para apoyar a la seguridad informática hay que pensar en cómo hacer un sistema que permita modelar el medio ambiente de una red de comunicaciones de una manera que el beneficio sea no costear licencias, sino promover solo su mantenimiento. Dentro de los dispositivos de la seguridad informática existe el sistema detector de intrusos (IDS), los cuales sirven para tomar acciones ante el tráfico malicioso generado dentro de una red de comunicaciones. Existen dos modalidades para los IDS, la más comercial es basada en firmas (identificación de eventos ya conocidos y registrados para su identificación) y la inusual la cual se basada en anomalías, donde los datos con que se alimenta el sistema proporcionan información, creando comportamientos anormales e identificando anomalías. La búsqueda de esta tesis es la elaboración de una de las características centrales de un IDS. Generando un sistema capaz de aprender patrones de tráfico de red, mediante la lectura, proceso y reconocimiento patrones no identificados en los paquetes que conforman el tráfico de la red de comunicaciones, es decir realizar la base de un IDS basado en anomalías. Se toman en cuenta las técnicas de la Inteligencia Artificial que pueden ayudar a crear el sistema detector, describiendo cada una de las técnicas y descartando y eligiendo una de las plataformas que más se acopla para resolver el objetivo. La plataforma NuPIC implementa las redes memoria temporal jerárquica (HTM), que son capaces de aprender, crear patrones y detectar nuevos patrones de comportamiento. La tesis expone dos tipos de sistemas detectores basados en anomalías. El primero Pasivo, usando lotes de archivos para realizar el entrenamiento con información creada en un proyecto para la detección de intrusos, simulando una red en producción. El segundo En línea, usando un equipo instalado en la red de comunicaciones de una empresa, la red de comunicaciones que es utilizada es una red en producción no simulada. El análisis muestra el rendimiento, eficiencia y limitantes del sistema detector de intrusos, así como la tecnología utilizada acota los resultados esperados. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN iii A mis padres y hermanos, a quienes debo lo que soy. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN iv CONTENIDO Página Resumen ..................................... ii Agradecimientos................................ iii Lista de abreviaturas ............................. vi Lista de Figuras................................. vii Lista de tablas.................................. viii Capitulado Página 1. Introducción............................................. 1.1. Seguridad Informática.................................... 1.2. Modelo de las 4 D ’s de la seguridad.......................... 1.2.1. Medio Ambiente y políticas de seguridad .................. 1.3. Sistemas Detectores de Intrusos (IDS)......................... 1.3.1. Funciones de los IDS................................. 1.3.2. Arquitectura de un IDS............................... 1.3.3. Objetivos de los IDS................................. 1.4. Objetivos de la tesis..................................... 2. Inteligencia Artificial....................................... 2.1. Técnicas de la Inteligencia Artificial .......................... 2.1.1. Lógica difusa (Fuzzy Logic)........................... 2.1.2. Redes neuronales artificiales (Artificial Neural Networks)..... 2.1.3. Sistemas Expertos (Expert Systems)..................... 2.1.4. Sistemas de razonamiento basado en casos (Case-based Reasoning Systems)....................... 2.1.5. Minería de datos (Data Mining)........................ 2.1.6. Redes Bayesianas (Bayesian Networks).................. 2.1.7. Redes y modelos ocultos de Márkov (Hidden Márkov .Models and Networks).................. 2.1.8. Redes de memoria temporal jerárquica (Hierarchical Temporal Memory Networks)............... 3. Redes Bayesianas......................................... 3.1. Método de Inferencia.................................... 3.1.1. Algoritmo de propagación de probabilidad para arboles........ 10 11 11 13 14 15 16 17 18 20 21 21 23 25 26 28 29 29 31 33 35 36 MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN v 3.2. Método de Aprendizaje .................................. 3.2.1. Aprendizaje paramétrico.............................. 3.2.2. Aprendizaje Estructural .............................. 3.2.3. Aprendizaje en poli-árboles............................ 3.2.4. Aprendizaje de redes................................ 3.3. Redes bayesianas dinámicas ............................... 3.4. Clasificadores bayesianos ................................. 4. Plataforma de Numenta..................................... 4.1. Teoría de la Memoria temporal jerárquica...................... 4.1.1. Redes HTM vs Redes bayesianas........................ 4.1.2. Redes HTM y procesamiento de datos sensoriales............ 4.1.3. Funciones de las Redes HTM........................... 4.2. Descubrimiento e Inferencia de causas........................ 4.3. Diseño de la redes HTM.................................. 4.3.1. Patrones......................................... 4.3.2. Memoria y tiempo.................................. 5. Implementación de un sistema Detector de Intrusos ................. 5.1. El problema.......................................... 5.1.1. Hipótesis........................................ 5.1.2. Mapeando el problema y usando una red HTM .............. 5.1.3. Formato de los datos................................ 5.2. Sistema Pasivo......................................... 5.2.1. Datos y Sensor de Monitoreo........................... 5.2.2. Entrenamiento del sistema pasivo........................ 5.2.3. Pruebas en el sistema pasivo........................... 5.2.4. Resultados y conclusiones............................. 6. Sistema en Línea.......................................... 6.1. Datos y Sensor de Monitoreo............................... 6.2. Entrenamiento del sistema pasivo........................... 6.3. Pruebas en el sistema pasivo............................... 6.4. Resultados y conclusiones................................. 38 38 38 39 40 40 41 45 46 4647 47 49 51 51 52 54 54 55 56 57 58 58 59 64 67 71 71 72 75 79 MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN vi Lista de abreviaturas DARPA Oficina de investigación y desarrollo para el Departamento de Defensa de Estados Unidos CERT Equipo de respuesta rápida de DARPA TCP Protocolo de control de transmisión TCP/IP Familia del protocolo de Internet con TCP IDS Sistema Detector de Intrusos RNA Red Neuronal Artificial CBR Razonamiento basado en casos RB Red bayesiana NuPIC Plataforma Numenta de Computación Inteligente HTM Red de Memoria Temporal Jerárquica TPC Tabla de probabilidad condicional MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN vii Lista de Figuras Figura Página 1.1 Modelo de las 4 D ’s para una seguridad adecuada............. 11 1.2 Ubicación de un IDS, controlado centralizadamente............ 17 2.1 Elementos básicos para la lógica difusa de control............. 22 2.2 Neurona Artificial................................... 24 2.3 Estructura general de una Red Neuronal Artificial............. 24 2.4 Sistema experto..................................... 26 2.5 Ciclo del razonamiento basado en casos.................... 27 2.6 Modelo oculto de Márkov.............................. 30 3.1 Red Bayesiana dinámica............................... 40 4.1 Red de Memorial Temporal jerárquica..................... 49 4.2 Nodo de una Red de Memorial Temporal jerárquica............ 50 5.1 Frame Ethernet..................................... 56 5.2 Red de Memoria Temporal Jerárquica implementada........... 57 5.3 Analizador Wireshark................................. 58 5.4 Extracción de información de los protocolos TCP e IP........... 59 5.5 Información para que ser leída por la red HTM............... 59 5.6 Generación de paquetes TCP/IP en la semana 1............... 60 5.7 Tiempos de procesamiento de 500,000 y 600,000 paquetes...... 61 5.8 Extrapolación en el tiempo de procesamiento................ 68 6.1 Ubicación del Sistema Detector de Intrusos en Línea........... 71 6.2 Vista del interior del IDS en Línea........................ 72 6.3 Grafica de la generación de paquetes en la red de Liconsa S.A. de C.V. y graficas de comparación de tiempo de generación contra tiempo de procesamiento ................................... 75 6.4 Proceso de recolección, filtrado, transformación para entrada de la red HTM y salida de la red HTM.......................... 79 MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN viii Lista de Tablas Tabla Página 3.1 Funciones de probabilidad para variables discretas............. 34 5.1 Elementos básicos del vector que alimenta de la red HTM......... 56 5.2 Cantidad de paquetes y tiempos utilizados en el entrenamiento de la tres redes HTM...................................... 62 5.3 Lista de ataque registrados en la semana 1 y 3................. 63 5.4 Lista de ataques registrados en los días jueves y viernes de la semana 5................................................ 64 5.5 Cantidad de paquetes y tiempos registrados en la fase de pruebas de las tres redes HTM.................................... 63 5.6 Porcentajes obtenidos en la detección de ataques en la fase de prueba de las tres redes HTM.................................. 66 5.7 Extrapolación en los tiempos de procesamiento............... 68 6.1 Paquetes, tiempos y porcentaje utilizados para el procesamiento en la red HTM........................................... 73 6.2 Ejemplo de Categorías................................. 78 MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1 Introducción MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 10 Introducción En el siglo XVI, Francois Bacon dijo “El conocimiento es poder”, esta frase dice algo que puede aplicarse a al surgimiento de la informática, ya que además de ser un fenómeno tecnológico con aplicaciones positivas, ha permitido por medio de las computadoras el manejo de manera rápida y eficiente el manejo de grandes cantidades de información, se facilita la concentración de datos referentes a las personas, lo cual representa poder para quien posea esta información. A finales de la década de 1940 surgen las primeras computadoras, a mediados de la década de 1960 surge la comunicación entre computadoras, en 1970 ya trabaja la primer red de comunicaciones, en 1974 Cerf y Kahn propone un protocolo para interconexión de redes de paquetes, a detalle es el diseño del protocolo de control de transmisión (TCP) y en 1983 la familia de protocolos TCP/IP es la utilizada para unir redes. A partir de la década de 1970 existe un gran crecimiento en el numero de archivos de información personal y todos ellos con distintos fines, publicitarios, comerciales, fiscales, políticos, etc. Para 1987 la Internet consta de más de 10,000 terminales y en ese momento todo era progreso en las redes, sin embargo en 1988 aparece el primer virus de tipo gusano y contamina un 10% de los servidores conectados a Internet. Ese fue el suceso parte aguas que alerto sobre la falta de mecanismos de seguridad. Por lo que la Oficina de investigación y desarrollo para el Departamento de Defensa de Estados Unidos (DARPA) crea un equipo de respuesta rápida (CERT) para mantener datos sobre las incidencias en red y las amenazas. Un sinnúmero de personas y/o situaciones han y siguen alterando los derechos de la sociedad mediante eventos maliciosos cibernéticos. Para entender esto y poder remediar estos eventos es necesario tener en cuenta que se debe tener control absoluto sobre el lugar donde se tienen los datos. Se debe tener claro el concepto de seguridad informática y el conjunto de factores que ayudan a tener control sobre los eventos que pueden suceder o que ocurren en un momento dado. Todo comienza con tener Políticas de seguridad adecuadas y así marcar las cosas que son prohibidas en el entorno de trabajo, se continua con el monitoreo el cual realiza un análisis del funcionamiento interno de lo que sucede, sin embargo también es vigilada la entrada y salida del entorno, por ultimo tenemos que tener un buen control jurídico adecuado, para hacer pagar las consecuencias de violar de lo que uno es responsable. En las secciones siguientes se detallará sobre las Políticas de seguridad, el Monitoreo, las responsabilidades y un modelo para la seguridad informática. Sin embargo el enfoque de esta tesis está orientado a un mecanismo de Monitoreo mediante una técnica de aprendizaje del trafico de red. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 11 1.1 Seguridad Informática La Seguridad informática se define como un conjunto de procesos, procedimientos, medidas y controles de protección implementados en sistemas de cómputo, dispositivos de cómputo y telecomunicaciones, para mantener la integridad, confidencialidad, disponibilidad, autenticidad y fiabilidad de los recursos de los sistemas (incluye hardware, software, datos, telecomunicaciones, etc.), y protegerse o controlar amenazas [1, 2]. Como objetivos de la seguridad informática tenemos: 1. Integridad: Es conservar la información, de manera oportuna, precisa, completa y coherente (sin embargo se habla de integridad en los datos cuando solo se cambian de manera establecida y autorizada, y de integridad en los sistemas, cuando los sistemas trabajan de manera incorruptible, es decir, libre de funciones de manipulación de datos no autorizadas). 2. Confidencialidad: Es la necesidad de mantener la información privada o confidencial para no ser mostrada a usuarios no autorizados. 3. Disponibilidad:Es la garantía de que el trabajo y servicios del sistema de información sean eficientes al no negar la autorización a usuarios permitidos. 4. Autenticidad: Es la garantía que se le otorga al usuario al recibir un autenticador, que es un dato que se relaciona con el usuario y se ocupa como evidencia incuestionable de quien lo exhibe es quien aparece en el registro y en caso contrario se lleva a la denegación del uso de los servicios. 5. Fiabilidad: Es el grupo de medidas de seguridad que se requieren en las operaciones realizadas por los componentes de hardware, software, equipos de comunicaciones, etc. 1.2 Modelo de las 4 D ’s de la seguridad. Figura 1.1 Modelo de las 4 D ’s para una seguridad adecuada MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 12 La definición de Seguridad Informática dice que se compone de procedimientos y controles para hacer medidas de protección y evitar eventos maliciosos que afectan a la red o sus elementos, la figura 1.1 indica que se debe contar con elementos que nos ayuden a detectar cualquier evento sospechoso mediante señales de anormalidad. La detección se realiza mediante técnicas de monitoreo en las actividades de la red, es decir el punto donde se observa es donde es analizando el comportamiento en el trafico de red. De esta manera se cuenta con tres posibilidades para solventar las anormalidades: Disuadir: Esto es mediante procedimientos de advertencia, que hace del conocimiento de quien este infringiendo que desista de su intento de violar la seguridad, por ejemplo con un mensaje en el monitor. Diferir: Es mediante procedimientos de retraso, para que un evento ocurra en un periodo más largo de lo previsto y evitar que se infrinja la seguridad o se realicen eventos no permitidos, por ejemplo limitar el acceso a un puerto de red. Detener: Es mediante procedimientos para evitar y/o ponerle remedio para algún evento que pueda vulnerar la seguridad, por ejemplo cerrar completamente un puerto o dar de baja la dirección IP de la maquina. El último pasó esta fuera del análisis y de las políticas de seguridad, pero que toda entidad debe tener, este se refiere a que se deben tomar medidas sobre la responsabilidad que tiene el ejecutor de los eventos maliciosos. En consecuencia se debe contar con un control jurídico adecuado, para hacer pagar las consecuencias por actos que afectan la información, sistemas e infraestructura informática. Julio Téllez Valdés en su libro define al Derecho informático como la rama de las ciencias jurídicas que contempla a la informática como instrumento (Informática jurídica) y como objeto de estudio (Derecho de la Informática) [3]. En México para la legislación informática a nivel federal contamos con la Constitución política federal, la ley de información estadística y geográfica, el código penal federal, la ley contra la delincuencia organizada, el código civil federal, el código de comercio, la ley federal del derecho de autor, la ley de propiedad industrial, la ley federal de trabajo, la ley de transparencia y acceso a la información pública gubernamental y algunas otras. La otra parte que ayuda es la Legislación Informática que contempla los siguientes rubros: Regulación de la información, Protección de los datos personales, Regulación del Internet, Protección intelectual, Delitos informáticos, Contratos informáticos, Comercio electrónico, aspectos laborales y Valor probatorio. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 13 Bibliografía: 1. NIST Special Publication on Intrusion Detection Systems, Rebecca Bace y Peter Mell, National Institute of Standards and Technology, web: http://www.dtic.mil/cgi- bin/GetTRDoc?AD=ADA393326&Location=U2&doc=GetTRDoc.pdf 2. Complete Guide to Security and Privacy Metrics: Measuring Regulatory Compliance, Operational Resilience, and ROI, Debra S. Herrmann, Estados Unidos, 2007. 3. Derecho Informático, Julio Téllez Valdés, Mc Graw Hill, México, 2003, ISBN 968-36- 1928-2, web: http://www.bibliojuridica.org/libros/1/322/24.pdf 1.2.1 Medio Ambiente y políticas de seguridad El medio ambiente es la especificación de los atributos técnicos del entorno del sistema. En el medio ambiente se encuentran desde los diagramas de red y mapas de especificación del número y ubicación de host, hasta el sistema operativo de cada host. Se incluye el número y tipos de dispositivos de red como routers, bridges y switches, el número y tipo de servidores de telefonía y la descripción de los servidores de red, sus configuraciones y software de aplicación, así como las versiones que se ejecutan en cada uno. [1] En un medio ambiente seguro se especifica el número, tipos y ubicación de los firewalls de red, servidores de identificación y autenticación, codificadores de datos y enlace, anti-virus, productos de control de acceso, redes privadas virtuales, etc. Se habla de contingencia cuando ocurre un evento potencial que interrumpe las operaciones de un sistema o daña el medio ambiente, obstaculizando procesos críticos y funciones de negocio. Cuando el evento es muy grande se llama desastre. Los objetivos de la seguridad en las entidades se definen a partir de un conjunto de normas, reglas y principios que deben de regirse irrefutablemente, en donde cada regla define una acción, mecanismo o procedimiento para lograr el orden y buen uso de los sistemas informáticos, ha esto se le llama Políticas de Seguridad. Las Políticas de Seguridad ayudan a prevenir la pérdida de la información, tener un uso adecuado y eficiente de los sistemas de cómputo y de telecomunicaciones, así como una forma de poder ir a la par con la tecnología. Las políticas son aplicadas para todo el personal que utilicen recursos informáticos de cualquier empresa, las políticas deberán basarse en los siguientes quehaceres: [2] Acceso a la información: por parte de los usuarios, se debe tener acceso sólo a la información necesaria para el desarrollo de sus actividades, esto es regulado mediante normas y procedimientos definidos. Administración de cambios: todos los cambios que afectan a los recursos informáticos deben ser solicitas, aprobados y documentados. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 14 Seguridad de la información: Todo usuario que utilice los recursos informáticos, es responsable de cuidar la integridad, confidencialidad, disponibilidad y confiabilidad de la información que maneje. Seguridad para los servicios informáticos: El correo electrónico, chat y otras utilidades existen solamente para funciones de la empresa. La empresa tiene el derecho a acceder a los mensajes. Seguridad en recursos informáticos: Se habla de administración de usuarios, rol de usuarios, planes de auditoría, ambientes de desarrollo de sistemas, control de acceso y autenticidad. Seguridad en comunicaciones: La topología de red, direcciones, configuraciones y diseño de sistemas de red, seguridad y comunicaciones son confidenciales. Además se debe contar con servicios de cifrado, verificación de datos, detección de ataques, detección intrusos y autenticación de usuarios. Otras de igual importancia son: Seguridad para usuarios terceros, Software utilizado, Actualización de hardware, Almacenamiento y respaldo, Contingencia, Auditoria y Seguridad física. Bibliografía: 1. NIST Special Publication on Intrusion Detection Systems, Rebecca Bace y Peter Mell, National Institute of Standards and Technology, web: http://www.dtic.mil/cgi- bin/GetTRDoc?AD=ADA393326&Location=U2&doc=GetTRDoc.pdf 2. Complete Guide to Security and Privacy Metrics: Measuring Regulatory Compliance, Operational Resilience, and ROI, Debra S. Herrmann, Estados Unidos, 2007. 1.3 Sistemas Detectores de Intrusos (IDS) El concepto de seguridad informática esmuy amplio al proponer un método, mecanismo o herramienta que ayude a reducir los eventos maliciosos, cabe señalar que tener un sistema o dispositivo que abarque todos los rubros de la seguridad es muy complejo. En esta tesis se aborda la parte de monitoreo y la parte de análisis, dejando para trabajos posteriores las acciones que se tomen cuando se detecto un evento no cotidiano en el trafico de la red. Será implementado un Sistema Detector de Intrusos, que analizará el flujo de tráfico con ayuda de una técnica de Inteligencia Artificial para detectar anormalidades. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 15 Antes de decir que es un Sistema Detector de Intrusos, esta la pregunta ¿Qué es la detección de intrusos? La detección de intrusiones es el proceso de seguimiento de acontecimientos que ocurren en un sistema de PC o red, y analizarlas para detectar signos de intrusiones, es decir, un intento de comprometer la confidencialidad, integridad, disponibilidad, o pasar por alto la seguridad mecanismos de una computadora o red. [1] Las intrusiones son causadas por los atacantes al intentar tener acceso a los sistemas de Internet o bien usuarios autorizados de los sistemas que intentan obtener privilegios adicionales para los que no están autorizados y los usuarios autorizados que hacen uso indebido de los privilegios que se les ha asignado. Los Sistemas de Detección de Intrusos son programas informáticos o productos de hardware que automatizan este proceso de seguimiento y análisis antes descrito. 1.3.1 Funciones de los IDS En general las funciones de los IDS son: [2] La Fuente de Información de eventos, es usada para examinarla y determinar si una intrusión ha existido, de aquí se pueden extraer a diferentes niveles, del sistema, de la red, de los host y del control de aplicaciones comunes. Existen tres tipos de información de origen para un IDS: a) Basado en Red, consisten en un conjunto de sensores colocados en varios puntos de una red, que monitorean el tráfico de red que afectan a varios hosts que están conectados al segmento de red. b) Basado en Host, la información es recogida desde dentro de un sistema informático individual, mediante pistas de auditoría y registros del sistema operativo. c) Basado en Aplicaciones, la fuente de la información proviene de los registros generados por las transacciones de cada aplicación. El Análisis, es la parte de los IDS donde se organiza y da sentido a los eventos derivados de la fuente de información, a partir de ese momento se decide si los eventos indican que las intrusiones se están produciendo o ya se han producido. Existen dos tipos de análisis: a) Detección de firmas, en este análisis se sabe que existen actividades "malas", a partir de un conjunto de eventos que coinciden con patrones predefinidos (ataque). Los patrones corresponden a ataques conocidos como firmas y es la técnica utilizada por la mayoría los IDS comerciales. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 16 b) Detección de anomalías, en este análisis se buscan patrones anormales de actividad en un host o red. Funciona por medio de la elaboración de perfiles que representan el comportamiento normal de usuarios, hosts u conexiones de red. Los perfiles se construyen a partir de datos recogidos durante un período de funcionamiento normal. Los sensores colectan todos los datos, ahí van inmersos los eventos. Sigue con el uso de varias mediciones para determinar cuándo una actividad se desvía de lo normal. Las medidas principales son el Umbral de detección (es la expresión de los atributos de los usuarios y el comportamiento del sistema) y Medidas estadísticas paramétricas (mediante la distribución de los atributos de perfil y su comparación y semejanza con un patrón particular) y no paramétricas (mediante la distribución de los atributos de perfil, aprendida de un conjunto de valores observados en el tiempo). La Respuesta, es el conjunto de acciones que el sistema toma una vez que se detecta intrusiones. Las acciones pueden ser: a) Activas por parte del sistema, es la recopilación de información del ataque, el cambio del medio ambiente para evitar nuevamente el ataque y para detener el ataque en curso y bloquear a la vez el acceso posterior del atacante. b) Pasivas por parte del administrador, su misión es proporcionar información a los usuarios del sistema, confiando en el administrador para tomar medidas posteriores. Emiten alarmas y notificaciones por mensajes, por correo de red o por la presentación de informes y archivos de historial. 1.3.2 Arquitectura de un IDS La arquitectura de un Sistema Detector de Intrusos esta en base a las funciones generales de un IDS, constando de tres componentes: Sensor de monitoreo, el subsistema de análisis (en donde corre el software detector de intrusos) y el Tomador de acciones que es el sistema que da seguimiento a los eventos registrados en el software detector de intrusos. Hay dos maneras de implementación: a) Mismo sitio, aquí el software detector de intrusos se encuentra en el mismo dispositivo que el Sensor de monitoreo y el Tomador de acciones. b) Distinto sitio, se encuentra separado el subsistema de sensor de monitoreo, del de análisis para detección de intrusos y del tomador de acciones. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 17 El control, es un conjunto de elementos del IDS que vigilan, verifican la gestión de entradas y salidas y son controladas por un sistema central, para ello hay tres modalidades: a) Centralizado, toda la supervisión, detección y presentación de informes es controlado directamente desde una ubicación central. En la figura 1.2 se muestra. Figura 1.2 Ubicación de un IDS, controlado centralizadamente. [2] b) Parcialmente distribuido, aquí se controla el monitoreo y la detección desde un nodo de control local, con una presentación de informes jerárquica de una o más localizaciones centrales. c) Completamente Distribuida, aquí el monitoreo y la detección se realiza mediante un enfoque basado en agentes, donde las decisiones de respuesta se llevan a cabo en el lugar de análisis. La Sincronización es el tiempo transcurrido entre el análisis de los acontecimientos y los eventos de control. Existen dos maneras, por lotes y continúo. a) Por lotes o pasivo, el intervalo de tiempo está divido en porciones de tiempo, es decir, no es continuo. Se puede decir que los datos se almacenan y se envían los datos para el análisis. b) Tiempo Real o Continuo, el IDS se alimenta directamente de las fuentes de información, aquí la detección realizada por el IDS es en tiempo real y produce resultados en un tiempo razonable para permitir que el IDS tome medidas contra el ataque detectado. 1.3.3 Objetivos de los IDS Existe varios objetivos para la detección de intrusos, pero principales son dos: a) Responsabilidad, es la capacidad de vincular un evento con su origen, esto es esencial en los casos en que una desea presentar cargos penales contra un atacante. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 1. Introducción 18 b) Respuesta, es la capacidad de reconocer un evento como un ataque y tomar acción para bloquearlo y evitar que afecte a sus objetivos. Para cubrir los objetivos, es necesario tomar en cuenta algunos aspectos, como el control sobre los elementos de un IDS, la sincronización entre la detección del evento, el reporte del evento y las acciones pasivas o activas. [2] Bibliografía: 1. An Introduction to Computer Security: The NIST Handbook, National Institute of Standards and Technology, Octubre 1995 Web: http://csrc.nist.gov/publications/nistpubs/800-12/handbook.pdf 2. NIST Special Publication on Intrusion Detection Systems, Rebecca Bace y Peter Mell,National Institute of Standards and Technology, web: http://www.dtic.mil/cgi- bin/GetTRDoc?AD=ADA393326&Location=U2&doc=GetTRDoc.pdf 1.4 Objetivos de la tesis Encontrar una metodología idónea para llevar a cabo la detección de intrusos, teniendo en cuenta que existen: métodos estadísticos, las redes neuronales artificiales y la minería de datos. Se recurre a estos métodos de inteligencia artificial ya que cada uno de ellos nos permite hacer un modelo de comportamiento de la información con que se alimentan. Desarrollar una herramienta utilizando la metodología elegida para detectar la detección de intrusos, hay que hacer notar que debe ser software libre preferentemente y así realizar una aplicación libre de licencias. Se implementará el subsistema para el Sensor de monitoreo, buscando herramientas que permitan monitorear y procesar de manera eficiente. Se implementará el subsistema para detección de intrusos, efectuando la técnica de detección de anomalías, que no requiere tener registros o historiales realizar la detección de anomalías. Dos modelos serán puestos a prueba, el primero de manera pasiva, es decir con datos previamente almacenados; el segundo en línea. Como observación, no se propondrán algoritmos o se analizaran los algoritmos que se ocupen en los procedimientos para la detección de intrusos o el sensor. Y tampoco será tocado el tema del subsistema Tomador de acciones. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2 Inteligencia Artificial MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 20 2. Inteligencia Artificial En 1937 se pública un articulo llamado “Números Calculables” y en octubre de 1950 se pública otro artículo llamado “Maquinas de computación e inteligencia”; un inglés matemático de nombre Alan Mathison Turing (1912-1964), presenta el primer artículo, considerado el origen oficial de la Informática Teórica y un segundo en donde propone un experimento llamado Prueba de Turing. Existe un campo de investigación con muchos retos en las ciencias de la Computación, específicamente en el área de ciencia Cognoscitiva. La inquietud del hombre por imitar la naturaleza del mundo o así mismo genera el estudio de la inteligencia humana, Alan M. Turing dio el primer paso y hoy en día no sea logrado aun, de ahí surge la Inteligencia Artificial en busca de imitar la inteligencia humana. Mucha gente ha aportado conocimiento en este campo, pero no hay una definición concreta, la idea básica de la Inteligencia Artificial es que estudia la manera en que se puede modelar la inteligencia humana por medio de sistemas computacionales. Algunas características humanas que asemeja son el aprendizaje, la adaptación, el razonamiento, la autocorrección, la predicción, el mejoramiento implícito de conocimiento y la percepción para modelar el mundo, así que sus objetivos están más allá de la inteligencia y dependerán del problema o del punto de vista para resolver problemas. Por otro lado el área de la Probabilidad ha aportado grandes avances en la Inteligencia Artificial. Por medio de este punto de vista se han creado sistemas de reconocimiento de voz, de imágenes, de patrones, etc. Noah Goodman es un científico del Instituto de Tecnología de Massachusetts trabaja en el laboratorio de Ciencias de la Computación e Inteligencia Artificial en el departamento de Ciencias Cognoscitivas y del Cerebro, opina que combinando los sistemas antiguos basados en reglas con sistemas probabilísticos actuales se puede desarrollar una manera de modelar mejor al mundo. Esto puede ayudar a las ciencias cognitivas, sin embargo para fines de esta tesis no será utilizado un sistema basado en firmas, sino en creencias aprendidas y predicción. Una rama de la Inteligencia Artificial tradicional está basada en el análisis formal y estadístico del comportamiento humano, es conocida como Inteligencia Artificial Simbólico- deductiva. Algunos problemas que resuelve son: Razonamiento basado en casos, soluciona nuevos problemas basándose en las soluciones de problemas anteriores. Por otro lado los sistemas expertos, infieren una solución a través del conocimiento previo y las Redes bayesianas proponen soluciones mediante inferencia estadística. [2] La Inteligencia Artificial sub simbólica-inductiva o Inteligencia Computacional, es el aprendizaje interactivo que se realiza basándose en datos empíricos. Combina elementos de aprendizaje, adaptación, evolución y Lógica difusa para crear programas que de alguna manera son inteligentes. Las técnicas más comunes son las Redes Neuronales Artificiales, Computación Evolutiva, Sistemas difusos, etc. [2] MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 21 A continuación se mencionan algunos campos y técnicas más comunes para la Inteligencia Artificial, sin embargo no son los únicos, pero si los más importantes para el interés de esta tesis: Redes de lógica difusa Redes neuronales artificiales Sistemas Expertos Sistemas de razonamiento basado en casos Minería de datos Redes Bayesianas Redes y modelos de ocultos de Márkov Redes jerárquicas de memoria temporal En las siguientes secciones se da una descripción general de estas técnicas, sin embargo las redes bayesianas tienen dedicado el capítulo 3 para más detalles en su metodología y el capítulo 4 es dedicado a las redes jerárquicas de memoria temporal, por su relevancia y contribución. Bibliografía: 1. Computing Machinery and Intelligence, A. M. Turing, Mind, New Series, Vol. 59, No. 236., Universidad de Oxford, Octubre de 1950, web: http://blog.santafe.edu/wp- content/uploads/2009/05/turing1950.pdf 2. Inteligencia Artificial, Camilo Duque, 2010, web: http://www.slideshare.net/camilorene/inteligencia-artificial-clase-1 2.1 Técnicas de la Inteligencia Artificial 2.1.1 Lógica difusa (Fuzzy Logic) El “Principio de Incompatibilidad”, dice que conforme aumenta la complejidad de un sistema, nuestra capacidad para ser precisos y construir instrucciones sobre su comportamiento disminuye hasta el umbral más allá del cual, la precisión y el significado son características excluyentes [2]. Fue en 1965, en la Universidad de Berkeley, en California, Estados Unidos, donde el ingeniero Lotfy A. Zadeh introduce el concepto de conjunto difuso y los elementos los describe como pares ordenados que indican el valor de un elemento y su grado de permanencia. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 22 La lógica difusa está asociada a la estructura del conjunto difuso, y como todo conjunto tiene las operaciones: Inclusión, Unión, Intersección, Complemento y algunas más especiales como el Producto cartesiano y la Relación difusa; también contiene propiedades que se aplican en el conjunto: Soporte, Altura, Núcleo, Conjunto difuso normal (el conjunto es constante) y Conjunto difuso convexo (el conjunto difuso es creciente, decreciente o con forma de campana) [2]. Hay modelos basados en lógica difusa: 1. Modelo difuso para control. Publicado en 1990 por Chuen Chien Lee en un artículo llamado “Fuzzy Logic in Control Systems: Fuzzy Logic Controller, se basa en un conjunto de reglas heurísticas donde las variables lingüísticas de las entradas y salidas se representan por conjuntos difusos. [1] Los componentes de un modelo difuso de control son: a) Interface de Fuzzificación, donde se transforman las variables de entrada del modelo (variables difusas). b) Base de conocimiento, que contiene las reglas lingüísticas del control y la información referente a las funciones de pertenencia de los conjuntos difusos. c) Lógica de toma de Decisiones (Motor de inferencia), calcula las variables de salida a partir de lasvariables de entrada, mediante las reglas del controlador y la inferencia difusa, entregando conjuntos difusos de salida. d) Interface de Defuzzificación, provee salidas discretas y determinísticas a partir de los conjuntos difusos obtenidos como resultado de la inferencia. 2. Modelo de Takagi y Sugeno. En el año 1985, en el Instituto de Tecnología de Tokio en Japón, Tomohiro TAKAGI y Michio Sugeno proponen el modelo Takaji-Sugeno que se define por medio de relaciones basadas en reglas difusas, donde las premisas de cada regla representan subespacios difusos y las consecuencias son una relación lineal de entrada-salida. Las variables de entrada en las premisas de cada regla son relacionadas por operadores "and", mientras que la variable de salida es una combinación lineal de las variables de estado, es decir, la salida de cada regla se obtiene por su respectivo grado de cumplimiento.[1] Figura 2.1 Elementos básicos para la lógica difusa de control [2] MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 23 Por último algunas de las aplicaciones de la lógica difusa son en el área de medicina diagnósticos, acupuntura, análisis de ritmos cardiacos, etc., en el área de control donde a partir de expresiones de lógica borrosa se formulan reglas orientadas al control de sistemas, en el área de control de sistemas en tiempo real para el control mediante órdenes por medio de voz del usuario en el sistema y en el sector automovilístico para sistemas de freno, y así se puede mencionar más ejemplos. Bibliografía: 1. Fuzzy Logic in Control Systems: Fuzzy Logic Controller - Part I, Chuen Chien Lee, IEEE Transactions on systems, man, and cybernetics, Vol. 20, No. 2, marzo - abril de 1990, web: http://www.gpa.etsmtl.ca/cours/sys843/pdf/Lee90_I.pdf 2. Lógica difusa, Tamara Benito Matías y María Isabel Durán Vicente, Universidad Carlos III de Madrid, España, 2009, web: http://www.it.uc3m.es/jvillena/irc/practicas/08- 09/10.pdf 2.1.2 Redes neuronales artificiales (Artificial Neural Networks) En 1945 Warren McCulloch y Walter Pitts, propusieron la estructura y funcionamiento base de una red conexionista llamada neurona de McCulloch-Pitts. En 1949 Donald Hebb propuso lo que ahora es la base de las reglas de aprendizaje, es la ‘regla de Hebb’ que es un mecanismo de regulación de las conexiones neuronales. En 1958 Frank Rosenblatt desarrollo la red neuronal más antigua, que es utilizada como identificador de patrones, llamada el ‘Perceptron’. [1] El Perceptron contenía tres tipos de neuronas: sensoriales (adquieren sus entradas del exterior de la red), asociativas (unidades ocultas) y de respuesta (propagan señales al exterior de la red). El principal rasgo del Perceptron fue el clasificar sus entradas. Años después en 1974 Paul Werbos, desarrolló la idea del algoritmo de aprendizaje de propagación hacia atrás (backpropagation). Las redes neuronales artificiales (RNA) son un modelo matemático o modelo computacional inspirado por los aspectos funcionales de las redes neuronales biológicas, las RNA consisten de un grupo de neuronas artificiales interconectadas y agrupadas en capas que trabajan en conjunto para producir una salida deseada bajo un estimulo en su entrada. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 24 Sus elementos son: Neurona: son los nodos de la red, algunos los llaman elemento de proceso. Conexiones: son las conexiones unidireccionales e inmediatas entre nodos, es decir solo hay conexiones entre niveles subsecuentes. Algunas observaciones son: Las neuronas pueden tener múltiples conexiones de entradas. Una sola señal de salida puede separarse en diferentes conexiones de salida. Las neuronas pueden tener su propia memoria local. Las neuronas tiene una función de transferencia que al recibir una señal de entrada, la modifica y produce una señal de salida. Las Redes Neuronales usan un proceso de aprendizaje que consiste en una adaptación progresiva de los valores de las conexiones para permitir a la red un comportamiento deseado. Mediante la entrada de los datos de entrenamiento, se compara la salida de la red con la salida de los datos de entrenamiento y la diferencia se usa para calcular el error de la respuesta de la red. Si se cuenta con un algoritmo apropiado (por ejemplo el Backpropagation) es posible reducir el error. Además son capaces de aprender de acuerdo a la experiencia (Aprendizaje Adaptativo), de generalizar de casos previos a nuevos casos (Auto-organización), de conceptualizar a partir de información irrelevante (Tolerancia a fallos), y de trabajar en tiempo real, etc. [1]. Las RNA son utilizadas para realizar predicciones, minería de datos, reconocimiento de patrones y control adaptativo. Pertenecen al área de la inteligencia artificial y de la vida artificial, y son combinadas con otras técnicas como la lógica difusa, los sistemas expertos, las estadísticas, etc. Sus aplicaciones son inmensas, algunas son: Control de la eficiencia de una máquina (área de control), Reconocimiento de firmas de personas, Reconocimiento de blancos mediante sonares marinos, Predicción en la bolsa de valores para los mercados financieros, etc. Figura 2.2. Neurona Artificial [3] Figura 2.3 Estructura general de una Red Neuronal Artificial (RNA) [3] MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 25 Bibliografía 1. Redes Neuronales: Conceptos Básicos y Aplicaciones, Damián Jorge Matich, Universidad Tecnológica Nacional, Argentina, Marzo de 2001, web: ftp://decsai.ugr.es/pub/usuarios/castro/Material-Redes-Neuronales/Libros/matich- redesneuronales.pdf 2. Redes Neuronales , Jorge Granados, Universidad de la Republica, Uruguay, Agosto 1996, web: http://www.ccee.edu.uy/ensenian/catcomp/ICAC/redes_neuronales.pdf 3. Aplicación de Técnicas de redes Neuronales Artificiales al diagnostico de procesos industriales, Antonio Muños San Roque, Tesis Doctoral, Madrid, España, 1996, web: https://www.iit.upcomillas.es/docs/TesisAntonioMuNoz.pdf 2.1.3 Sistemas Expertos (Expert Systems) Un sistema experto puede definirse como un sistema informático que simula a los humanos que son expertos en un área de especialización dada [1]. Edward Feigenbaum en la Universidad de Stanford los define como programas de computación inteligente que usan el conocimiento y los procedimientos de inferencia para resolver problemas que son difíciles como para requerir experiencia humana para su solución [2]. Tipos de Sistemas Expertos a) Problemas esencialmente deterministas o sistemas basados en reglas. Estos sistemas sacan sus conclusiones con el razonamiento algorítmico con ayuda de modelos como el de factores de Certeza, la Lógica difusa y la teoría de evidencia. Las conclusiones son asociadas a las medidas de propagación que tienen una incertidumbre baja, por ejemplo se resuelven problemas como transacciones bancarias y control de tráfico. [1] b) Problemas esencialmente estocásticos o sistemas probabilísticos. Como lo dice su nombre ocupan el conocimiento probabilístico y la distribución conjunta como un conjunto de variables para describir las relaciones de dependencia entre ellas. Se ocupan métodos como las redes de Márkov o las redes bayesianas, que permiten hacer la propagación y tener conclusiones con medidas de probabilidad, las cuales pueden tener más alto el nivel de incertidumbre. Algunos ejemplos de problemas de solución son la planificación, el diagnostico médico, agentes secretos. [1] MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 26 Las características típicas de un sistema experto son: Alto desempeño en la calidad de sus respuestas; Tiemposde respuesta adecuados en periodo pequeños de tiempo, Confiabilidad de ejecución e invulnerabilidad a caídas, Comprensible al poder explicarse los pasos de razonamiento que se están ejecutando y Flexible para añadir, modificar y eliminar conocimiento. Las características más avanzadas son: Enumerar, las razones en contra y a favor de una hipótesis; Explicar las consecuencias de una hipótesis; Predecir, dar predicciones si la hipótesis es cierta; Justificar preguntas y conocimiento del sistema. Las razones de las que las personas dependen son dadas principalmente por que proporcionan una explicación del razonamiento compresible para los hombres y porque mientras están en desarrollo, confirma el conocimiento aprendido y que se utilizará. Las áreas en que los sistemas expertos se han desarrollado son el control, el pronóstico, la planeación, la supervisión, el diagnostico, etc. Las ciencias en donde existen sistemas expertos son por ejemplo la Química, la Electrónica, la Medicina, la Ingeniería, la Geología, etc. Bibliografía: 1. Sistemas Expertos y Modelos de Redes Probabilísticas, Enrique Castillo, José Manuel Gutiérrez, Universidad de Cantabria, España, web: http://personales.unican.es/gutierjm/papers/BookCGH.pdf 2. Expert Systems Principles and Programming, Joseph C. Giarratano y Gary D. Riley, ISBN: 0534950531 2.1.4 Sistemas de razonamiento basado en casos (Case-based Reasoning Systems) El Razonamiento basado en casos (CBR) ayuda a tomar decisiones mientras se resuelven ciertos problemas concretos, recordando situaciones pasadas similares y utilizando la información y el conocimiento de esas situaciones ya experimentadas. Se le llama ‘caso’ a una situación problemática [1]. Figura 2.4 Sistema experto MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 27 El CBR comprende una gama de métodos diferentes para organizar, recuperar, utilizar e indexar conocimientos almacenados de casos anteriores, sin embargo es difícil apreciar cuál de ellos puede emplearse directamente en un problema concreto. Los métodos son: Recuperación de casos (encuentra uno o más casos que tengan una solución útil aplicable al problema actual), Reutilización de casos (recupera y sugiere una solución tentativa que reutiliza y aplica al problema actual), Revisión de casos (si la reutilización falla, entonces ratifica la solución, si es válida el sistema aprende y continua, en caso contrario repara la solución con ayuda de la información proporcionada por el usuario) y Retención de casos nuevos (permite actualizar y almacenar nuevo conocimiento de las nuevas soluciones). [2] En 1994 Agnar Aamodt y Enric Plaza crean el ciclo CBR que sus componentes se describen en el párrafo anterior. Los elementos básicos de RBC son: Representación del Conocimiento: (el conocimiento se representa en forma de ‘Casos’, que describen experiencias concretas), Medida de Similitud (es la capacidad de encontrar un caso relevante para el problema real), Adaptación (adaptar situaciones anteriores que son recuperadas y verificadas para que satisfagan la situación actual), y Aprendizaje (el sistema se mantiene actualizado y en constante desarrollo al resolver nuevos problemas). [1] Algunas aplicación del razonamiento basado en casos es el diagnóstico de generadores eléctricos, en el análisis de imágenes naturales (determinan de manera automática la cantidad de mala hierba a partir de fotos del cultivo), en la clasificación de fallos en sistemas dinámicos, en la Arquitectura de un sistema para la educación a distancia. Bibliografía: 1. Más allá del razonamiento basado en casos y una aproximación al modelado de sociedades utilizando minería de datos, Alberto Ochoa, José Alberto Hernández, Francisco J. Álvarez, Universidad Autónoma de Zacatecas, 2006, web: http://campusv.uaem.mx/cicos/memorias/5tocic2006/Articulos/articulo11.pdf 2. Case-Based Reasoning: Foundational Issues, Methodological Variations, and System Approaches, A. Aamodt y E. Plaza, AICom - Artificial Intelligence Communications, 1994, web: http://www.idi.ntnu.no/~agnar/publications/aicom-94.pdf Figura 2.5 Ciclo del razonamiento basado en casos MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 28 2.1.5 Minería de datos (Data Mining) El término Descubrimiento de Conocimiento en Bases de Datos (KDD) surge a principios de la década de 1990, debido a la gran cantidad de información disponible en las bases de datos y el manejo, análisis y la extracción de alguna información relevante. La Minería de datos (Data Mining) se define como una etapa dentro del proceso de descubrimiento de conocimiento en base de datos, que extrae y descubre hechos contenidos en las bases. Sin embargo el termino Data Mining es aceptado ya que reúne ventajas de áreas como la Estadística, la Inteligencia Artificial, la Computación Gráfica, las propias Bases de Datos y el Procesamiento Masivo, y su materia prima que son las bases de datos. La Minería de datos tiene como objetivos la exploración de los datos que se encuentran en las bases de datos, o en almacenes de datos (en ocasiones se tiene información almacenada durante años) y la consolidación de datos en almacenes y mercado de datos (más recientemente en servidores de Internet e Intranet). [2] En general los pasos que lleva a cabo la minería de datos son: Selección de un grupo de datos (variables a calcular y de las que se parte para la búsqueda de las primeras), Análisis de los datos (dispersión de la información, datos raros o faltantes son observados), Transformación de los datos (diferentes técnicas de procesamiento son aplicadas a los datos), Selección y técnicas de minería de datos para extraer el conocimiento (para construir un modelo predictivo, de clasificación o segmentación) e Interpretación y evaluación de datos (validación de conclusiones).[1] Algunas de las áreas donde la minería de datos es aplicada son la detección de fraudes y análisis de riesgos en créditos (en ambas como técnica de clasificación); clasificación de cuerpos celestes (como técnica de reconocimiento de patrones de imágenes), en el marketing apuntado a objetivos (como técnica de predicción automatizada de tendencias y comportamientos), etc. Bibliografía: 1. http://www.answermath.com/mineria_de_datos.htm 2. Minería de Datos, Sofía J. Vallejos, Universidad Nacional del Nordeste, Argentina, 2006, http://exa.unne.edu.ar/depar/areas/informatica/SistemasOperativos/Mineria_Datos _Vallejos.pdf MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 29 2.1.6 Redes Bayesianas (Bayesian Networks) Las Redes bayesianas (RB) proponen soluciones mediante inferencia estadística. Dentro de las aplicaciones están por ejemplo: OLAE (Off-Line Assessment of Expertise) para la evaluación en la resolución de problemas de física, SIETTE (Sistema Inteligente de Evaluación mediante Test para la Teleeducación) basado en la Teoría de Respuesta al Ítem como herramientas básicas para desarrollar sistemas de Tutorización inteligente [1], HYDRIVE desarrollado por la Fuerza Aérea de Estados Unidos para simular el funcionamiento del avión de combate, etc. En el siguiente capítulo se detalla más a fondo las ideas que hay atrás de las redes bayesianas, conceptos estadísticos, métodos y casos especiales, así como su funcionamiento. Bibliografía: 1. Sistemas de Tutorización Inteligente Basados en Redes Bayesianas, Jorge López Puga y Juan García García de la Universidad de Almería, España, Revista Electrónica de Metodología Aplicada, 2008, Vol. 13, web: http://www.psico.uniovi.es/REMA/v13n1/ vol13n1a2.pdf 2.1.7 Redes y modelos ocultos de Márkov (Hidden Márkov Models and Networks) El matemático ruso Andréi AndréyevichMárkov (1856 - 1922) basa sus trabajos en la teoría de los números y la teoría de probabilidades. Específicamente en el campo de los procesos estocásticos en los que se implican componentes aleatorios, los más renombrados son: Desigualdad de Márkov, Teorema de Gauss-Márkov, Propiedad de Márkov (característica de un proceso estocástico), Modelo oculto de Márkov y Red de Márkov o Campo al azar de Márkov. [1] Un proceso estocástico tiene la propiedad de Márkov, cuando la distribución de probabilidad condicional de los estados siguientes depende únicamente del estado actual. Una red de Márkov o un Campo al azar de Márkov es un modelo grafico en el cual el conjunto de sus variables tienen la propiedad de Márkov y definen una grafica no dirigida. Son similares a las redes bayesianas en donde los nodos representan variables aleatorias y las aristas representan la dependencia estadística entre los nodos, con la ventaja de que atiende las dependencias cíclicas y con la desventaja de que no atiende las dependencias inducidas. La independencia en un conjunto de nodos S se da si un nodo X es condicionalmente independiente de otro nodo Y en la red de Márkov, esto ocurre si todos los caminos de X a Y pasa a través de un nodo S. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 30 Los modelos de Márkov son una extensión de las cadenas de Márkov (las cadenas de Márkov son señales observables, representadas en un proceso aleatorio paramétrico, que pueden ser determinadas con gran precisión) con la diferencia de que las señales no son observables. El objetivo de los modelos de Márkov es determinar los parámetros ocultos de una cadena a partir de los parámetros observables. Algunas aplicaciones de los modelos de Márkov son el reconocimiento de patrones, el análisis criptográfico, reconocimiento del habla y de sonidos, y en la medicina para análisis farmacéutico de algunas enfermedades [2], modelado de grupo de secuencias de proteínas en el ADN, etc. Algunas aplicaciones de desarrollo son Hidden Márkov Model (HMM) Toolbox de Matlab, Hidden Márkov Model Toolkit (HTK) de Microsoft, Jahmm Java Library es una biblioteca de Java, el General Hidden Márkov Model library (GHMM) del Algorithmics group del Max Planck Institute for Molecular Genetics, etc. Bibliografía: 1. Márkov Random Fields and Their Applications, Ross Kindermann y J. Laurie Snell, Publicado por AMS, ISBN: 0-8218-3381-2, 1980, web: http://www.ams.org/publications/online-books/conm1-index 2. Pharmacoeconomics, Spanish research articles, 2006, Vol. 3, publicado por Adis Data Information BV., web: http://www.healthvalue.org/pdfs/Pharmacoeconomics%20SRA%22006d.pdf Figura 2.6 Modelo oculto de Márkov, donde ‘X’ es una variable aleatoria que va en la secuencia de estados. ‘Y’ es una variable aleatoria que van sobre la salida de cada estado. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 2. Inteligencia Artificial 31 2.1.8 Redes de memoria temporal jerárquica (Hierarchical Temporal Memory Networks) En 2005 Jeff Hawkins, Dileep George y Donna Dubinsky crean la empresa Numenta en California y con ella la Plataforma Numenta de Computación Inteligente (NuPIC) que pretende asemejar el funcionamiento de la neocorteza del cerebro por medio de las redes de memoria temporal jerárquica (HTM). Permite a las computadoras aprender, reconocer imágenes, comprender una lengua, verificar el tráfico de la red de telecomunicaciones, moverse con facilidad en un entorno complejo e interpretar los datos adquiridos de la misma forma que lo hace el cerebro humano en el proceso de pensamiento. El nombre proviene de: ‘H’ hierarchical, por su estructura en forma de árbol de nodos, cada uno de ellos implementa algoritmos de aprendizaje y memoria; ‘T’ temporal por requerir la presentación de los objetos a la red por medio de variaciones en el tiempo; ‘M’ memoria por que la memoria es ocupada para aprender patrones en las entradas e inferencia y determinar la probabilidad de que un objeto es uno de los ya conocidos. [1] Las funciones básicas que realizan son cuatro: Descubrimiento de causas, donde se van estableciendo creencias que son una distribución de probabilidades, que son representación de las causas que se van aprendiendo con el tiempo; Inferencia de causas mediante datos nuevos, esto asemeja, pero se logra con la sucesión de patrones no relacionados y la persista de la causa en la entrada; Predicciones, se realiza al combinar la memoria con nuevas secuencias de entrada y tratar de pronosticar los patrones siguientes y; Comportamiento, se realizar después de que la red HTM descubre las causas, entonces la red aprende comportamientos de los objetos modelados y aprende a predecir su actividad. Algunas aplicaciones desarrolladas por este entorno de programación son: el reconocimiento de caligrafía escrita a mano; el tratamiento de imágenes y sistemas de recuperación de imágenes; la identificación de canciones, el reconocimiento de mano, incluso con variaciones en el giro de la rotación de la mano; etc. Bibliografía: 1. Jeff Hawkins y Dileep George, Numenta Inc., web: http://www.numenta.com MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3 Redes Bayesianas MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 33 3. Redes Bayesianas (RB) Las redes bayesianas son una representación grafica de dependencias para razonamiento probabilístico y de conocimiento incierto, que permite establecer razonamientos basados en la teoría de la probabilidad, es decir las dependencia e independencias entre variables. Cada nodo de una red bayesiana está asociado a una variable aleatoria, que puede tomar valores dentro de un rango discreto o continuo y representa una entidad del mundo real. Dichos valores son exclusivos y exhaustivos para cada variable de la red. La información cuantitativa en una red bayesiana está dada por: la probabilidad a priori de los nodos que no tiene padres y la probabilidad condicionada de los nodos con padre. Formalmente una red Bayesiana para un conjunto de variables aleatorias X = {X1,…, Xn} es un par B = <G, T> [1] G es una gráfica acíclica dirigida, cuyos nodos se encuentran en correspondencia uno a uno con las variables en X y cada arco representa las relaciones de dependencia entre las variables, donde la dirección representa la dependencia del origen al destino T es un conjunto de funciones de probabilidad PB (xi|πxi) para cada variable de xi en Xi y cada posible valor πxi de Пxi, donde Пxi representa al conjunto de los padres de Xi en G De esta manera la red bayesiana B define una distribución de probabilidad sobre X de la siguiente manera (Teorema de la Factorización): P(X) = PB(X1, X2,…, Xn) = PB (xi|πxi). Dicha representación es importante porque nos permite describir una red bayesiana a partir de la probabilidad condicionada de cada nodo, en vez de una probabilidad conjunta que requiere un número exponencial en los parámetros para cada nodo, además sirve para verificar la separación direccional en la red. En general las funciones condicionadas tienen un número menor de variables que la función de probabilidad conjunta, es decir, el proceso de definición del modelo probabilístico es más sencillo. La discretización consiste en transformar los valores de una variable continua en un conjunto de valores discretos, donde se divide el dominio de la variable continua en un número finito de intervalos disjuntos que cubran completamente el dominio y luego se asigna a cada observación de la variable continua el valor correspondiente al intervalo que lo contiene. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 34Para realizar la discretización pueden emplearse alguno de los siguientes métodos [2]: Métodos Globales o Locales (los globales utilizan todas las observaciones para el proceso y los locales que sólo utilizan un subconjunto de las mismas). Métodos Supervisados o No Supervisados (los supervisados utilizan la información de la clase a la que pertenece cada observación para mejorar la calidad de la discretización en tomar en consideración esta información y los no supervisados lo contrario). Métodos Estáticos o Dinámicos (los estáticos son aquellos que discretizan cada variable independientemente de las demás y los dinámicos son aquellos que discretizan todas las variables simultáneamente tratando de utilizar las dependencias existentes entre ellas). Métodos “top-down” o “bottom-up” (los top-down –separación- comienzan con una lista vacía de puntos de corte, después estos se van agregando dividiendo los intervalos conforme el proceso de discretización se realiza y los métodos bottom-up - agrupamiento- comienzan con una lista completa de todos los valores continuos de la variable como puntos de corte, después estos se van eliminando juntando los intervalos conforme el proceso de discretización se realiza). Una distribución de probabilidad indica el rango de valores que pueden representarse para una variable y la probabilidad para cada uno de ellos, es similar a la distribución de frecuencias relativas, solo que en vez de describir el pasado, describe la probabilidad que un evento se realice en el futuro. La distribución de probabilidad es una función que asigna a cada valor de la variable (x) la probabilidad de que ocurra: Fx(x) = P(X ≤ x). Las funciones de probabilidad “Fx(x) = P(X ≤ x) = ” más comunes e importantes para variables discretas son presentadas en la siguiente tabla: Distribución binomial Distribución binomial negativa Distribución de Poisson F(x) = px(1-p)n X = {0, 1, 2, …, n} b*(x; k, θ) = θk (1-θ)x-k para x ≥k, x entero F (k; λ) = e-λλk / k! Tabla 3.1 Funciones de probabilidad para variables discretas Existen otras como la distribución geométrica, la distribución hipergeométrica y la distribución de Bernoulli. También existen distribuciones de probabilidad para variables continuas como la distribución χ, la distribución exponencial, la distribución normal, la distribución gamma, la distribución Beta y la distribución F. Debido a que la probabilidad conjunta es especificada por el producto d las probabilidades de cada variable dados sus padres, el tamaño de la tabla de probabilidad condicional crece exponencialmente con el número de padres de un nodo. Para realizar la reducción de las tablas se utilizan los métodos canónicos [1]: MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 35 Los Modelo de interacción disyuntiva (Noisy OR) Los Modelo de interacción conjuntiva (Noisy AND) La Compuerta Max (Noisy Max gate) y La Compuerta Min (Noisy Min gate). Bibliografía: 1. Luis Enrique Sucar, Chapter1. Redes Bayesianas. Santa María Tonanzintla, Puebla, México, web: http://ccc.inaoep.mx/~esucar/Clases-mgp/caprb.pdf 2. Carlos López de Castilla Vásquez, Clasificadores por redes bayesianas. Universidad de Puerto Rico, Campus Mayagüez, Estado Libre, Puerto Rico, 2005, web: http://grad.uprm.edu/tesis/lopezdecastilla.pdf 3.1 Método de Inferencia La inferencia estadística es un proceso que consiste en poder hacer afirmaciones sobre las características de una población con base en información observada únicamente en un pequeño subconjunto de la población. La inferencia se presenta cuando tenemos una red ya construida y valores concretos de algunas variables de una instancia y se trata de estimar los valores de otras variables de la misma instancia aplicando razonamiento probabilístico. La inferencia trata principalmente la estimación y la contrastación de hipótesis [1]. El proceso de inferencia en redes Bayesianas es de complejidad NP-duro, esto se debe a la presencia de ciclos no dirigidos en la red. En general los algoritmos se consideran manejables cuando el tiempo necesario para ejecutar el algoritmo es polinomial en el número de parámetros, es decir, el número de nodos en la red. El razonamiento probabilístico o propagación de probabilidades consiste en propagar los efectos de la evidencia a través de la red para conocer la probabilidad a posteriori de las variables, en otras palabras es, la evidencia es cuando se dan valores a ciertas variables y se obtiene la probabilidad posterior de las demás variables, dadas las variables conocidas (puede ser vacío u obtener las probabilidades a priori). Existen diferentes algoritmos para calcular las probabilidades posteriores, que dependen del tipo de estructura de la grafica y de la cantidad de probabilidades obtenidas, además son computacionalmente menos complejos. El teorema de factorización proporciona un primer método de actualización de las probabilidades dada la evidencia disponible. Los principales tipos de algoritmos de inferencia son [3]: MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 36 Algoritmo de eliminación para una variable en cualquier estructura. Algoritmo de propagación de Pearl para cualquier variable en estructuras sencillamente conectadas. Cualquier variable en cualquier estructura: Agrupamiento (junction tree), Simulación estocástica y Condicionamiento. Los algoritmos de propagación dependen de la estructura de la red como: Árboles, poliárboles y Redes multiconectadas. 3.1.1 Algoritmo de propagación de probabilidad para arboles El algoritmo de propagación de probabilidades para redes con forma de árbol consta de dos fases: Fase de inicialización: en esta fase se obtienen las probabilidades a priori de todos los nodos de la red, obteniendo un estado inicial de la red (S0). Fase de actualización: Cuando una variable se instancia, se actualiza el estado de la red, obteniéndose las probabilidades a posteriori de las variables de la red basadas en la evidencia considerada, adoptando la red un estado (S1). Este paso se repite cada vez que una variable se instancia, obteniéndose los sucesivos estados de la red. La idea principal del algoritmo es que, cada vez que una variable se instancia o bien cuando actualiza su probabilidad, informa a sus nodos vecinos mediante el paso de mensajes, de la siguiente forma [2]: • El nodo hijo B envía a su padre A un λ-mensaje para informarle de que ha cambiado su valor/probabilidad. λB (Ai) = (Bj | Ai) λ(Bj) • El nodo B envía a todos sus hijos SK un mensaje πK (Bi) para informarlos de que ha cambiado su valor/probabilidad. πK(Bi) = α π(Bj) (Bj) Así, la información se va propagando por la red tanto en sentido descendente hasta llegar las hojas como ascendente hasta llegar a la raíz o un nodo instanciado, al finalizar cada nodo tiene un vector λ y un vector π y entonces se obtiene la probabilidad simplemente multiplicando ambos P*(Bi)=αλ(Bi)π(Bi). La propagación se realiza una sola vez en cada sentido (hacia la raíz y hacia las hojas). MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 37 El algoritmo de propagación de probabilidades para redes con forma de red milticonectadas, se aplica a grafos en el que hay múltiples trayectorias entre nodos. Para realizar el algoritmo de propagación existen diversas técnicas, pues no aplican las de los árboles, siendo estas: Condicionamiento, Simulación estocástica y Agrupamiento, siendo este último el más común. El método de agrupamiento consiste en transformar la estructura de la red para obtener un árbol, mediante agrupación de nodos usando la teoría de grafos. Para ello, se hace una transformación de la red a un árbol de uniones (gruposde nodos) mediante el siguiente procedimiento: Eliminar la direccionalidad de los arcos y ordenar de los nodos por máxima cardinalidad. Moralizar el grafo (arco entre nodos con hijos comunes) y triangular el grafo. Obtener los cliques, ordenar y construir un árbol de cliques (es un subconjunto de nodos completamente conectados máximo, de forma que hay un arco entre cada par de nodos y no existe un conjunto completamente conectado del que éste sea subconjunto). Para la propagación de probabilidades en este árbol de cliques se realiza obteniendo la probabilidad conjunta de cada clique. A partir de esta se puede obtener la probabilidad individual de cada variable en el clique, sin embargo hay que notar que la propagación en una red probabilística con una estructura compleja es un problema de complejidad NP-duro. Bibliografía: 1. Luis Enrique Sucar, Chapter1. Redes Bayesianas. Santa María Tonanzintla, Puebla, México, web: http://ccc.inaoep.mx/~esucar/Clases-mgp/caprb.pdf 2. Eva Millán Valldeperas, Redes Bayesianas. Málaga, España, web: http://www.lcc.uma.es/~eva/aic/Redes%20Bayesianas.pdf 3. David A. Velasco Villanueva redes Bayesianas, Valladolid, España, mayo de 2007, web:http://www.infor.uva.es/~calonso/IAII/Aprendizaje/TrabajoAlumnos/ RBmemoria.pdf MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 38 3.2 Método de Aprendizaje El problema del aprendizaje bayesiano es que dado un conjunto de entrenamiento D = {x1, x2,..., xn} de instancias de U, se encuentre la red bayesiana que se ajuste mejor a D., es decir, se induce un modelo, estructura y parámetros asociados, a partir de un conjunto de datos. Los tipos de aprendizaje que hay son: Aprendizaje estructural, se obtiene la estructura o topología de la red. Aprendizaje paramétrico, dada la estructura, se obtienen las probabilidades asociadas correspondientes a cada nodo. 3.2.1 Aprendizaje paramétrico Cuando se tienen datos completos y suficientes para todas las variables en el modelo, es relativamente fácil obtener los parámetros, asumiendo que la estructura está dada. El método más común es el llamado estimador de máxima verosimilitud, bajo el cual se estiman las probabilidades en base a las frecuencias de los datos. Para una red bayesiana se tienen dos casos [1]: Nodos raíz. Se estima la probabilidad marginal. Nodos hoja. Se estima la probabilidad condicional de la variable dados sus padres. Dado que normalmente no se tienen suficientes datos, se tiene incertidumbre en las probabilidades estimadas. Esta incertidumbre se puede representar mediante una distribución de probabilidad, para el caso de variables binarias se modela con una distribución Beta y para variables multivaluadas mediante la distribución Dirichlet. Cuando los datos de entrenamiento no están completos se pueden plantear dos tipos de información incompleta: Valores faltantes (faltan algunos valores de uno o varias variables) y de Nodo oculto (en donde faltan todos los valores de una variable). Para tratar el primer problema se ocupan los métodos de considerar un nuevo valor adicional para la variable, considerar el valor más probable a partir de los datos de la misma en las demás instancias y considerar el valor más probable en base a las demás variables. Para tratar el segundo problema usualmente se ocupa el algoritmo “Expectation Maximization”, para asignar valores aleatorios, completar el conjunto de datos con valores estimados y recalcular las probabilidades de la red. 3.2.2 Aprendizaje Estructural Consiste en encontrar las relaciones de dependencia entre las variables, de forma que se pueda determinar la topología o estructura de la red bayesiana. De acuerdo al tipo de estructura, podemos dividir los métodos de aprendizaje estructural en árboles, poliárboles y e redes multiconectadas, para este ultimo están los métodos basados en medidas y búsqueda, y basados en relaciones de dependencia [1]. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 39 La tarea de explorar un espacio de grafos es muy compleja, ya que cuando poco a poco se incrementa el número de variables, el número de posibles grafos a construir con ellas se incrementa. El aprendizaje de árboles se basa en un algoritmo para aproximar una distribución de probabilidad por un producto de probabilidades de segundo orden (Chow y Liu). La probabilidad conjunta de n variables es: P(X1, X2,…, Xn) = (Xi | Xj (i)) donde Xj (i) es el padre de Xi. Podemos entonces encontrar el árbol óptimo mediante el siguiente algoritmo (equivale al problema del maximum weight spanning tree): Calcular la información mutua entre todos los pares de variables (si hay n variables, tenemos n(n-1)/2) Ordenar las informaciones mutuas de mayor a menor Seleccionar la rama de mayor valor como árbol inicial. Agregar la siguiente rama mientras no forme un ciclo, en caso contario desechar. Repetir el paso anterior hasta que se cubran todas las variables (n-1 ramas del árbol). 3.2.3 Aprendizaje en poliárboles Es una extensión del algoritmo de Chow y Li, realizado por Rebane y Pearl, y aplicado para poliárboles. Este algoritmo se basa en probar las relaciones de dependencia entre todas las tripletas de variables en el esqueleto. Dadas 3 variables, existen tres casos posibles: Arcos divergentes, Arcos secuenciales y Arcos convergentes. La probabilidad conjunta es: P(x) = (Xi | Xj1 (i), Xj2 (i),…, Xjm (i)), en donde {Xj1 (i), Xj2 (i),…, Xjm (i)} es el conjunto de padres de la variable [1].El algoritmo consiste en: Obtener el esqueleto utilizando el algoritmo de Chow y Liu. Recorrer la red hasta encontrar una tripleta de nodos que sean convergentes (tercer caso) -nodo multipadre-. A partir de un nodo multipadre determinar las direcciones de los arcos utilizando la prueba de tripletas hasta donde sea posible (base causal). Repetir 2-3 hasta que ya no se puedan descubrir más direcciones. Si quedan arcos sin direccionar utilizar semántica externa para obtener su dirección. MAESTRÍA EN INGENIERÍA DE LA COMPUTACIÓN Capitulo 3. Redes Bayesianas 40 3.2.4 Aprendizaje de redes Existen dos métodos para el aprendizaje genérico de redes bayesianas (también para redes milticonectadas) los cuales son: medidas de ajuste y búsqueda, y pruebas de independencia. El método de aprendizaje basado en medidas globales hace una evaluación global de la estructura respecto a los datos. Existen algunas variantes: 1. Basado en medida de ajuste de la estructura a los datos (medida bayesiana y la medida basada en el principio de longitud de mínima, y 2. Basado en la búsqueda de la mejor estructura. El método de aprendizaje basado en pruebas de independencia considera una medida global, es decir se centra en medidas de dependencia local entre subconjuntos de variables. Bibliografía: 1. David A. Velasco Villanueva redes Bayesianas, Valladolid, España, mayo de 2007, web: http://www.infor.uva.es/~calonso/IAII/Aprendizaje/TrabajoAlumnos/ RBmemoria.pdf 3.3 Redes bayesianas dinámicas Las redes bayesianas representan el estado de las variables en un cierto momento en el tiempo, pero al representar procesos dinámicos existe una extensión a estos modelos llamada red bayesiana dinámica. La cual consiste en una representación de los estados del proceso en un tiempo (red estática) y en las relaciones temporales entre dichos procesos (red de transición). Algo parecido a una generalización de las cadenas ocultas de Márkov [1]. Esta tiene las siguientes suposiciones: Proceso markoviano, el estado actual sólo depende del estado anterior, en caso si hay arcos entre tiempos consecutivos. Proceso estacionario en el tiempo, las probabilidades condicionales en
Compartir