Argumento de Optimización de Sistemas de Detección de Intrusos en Red Utilizando Técnicas Computacionales Avanzadas
Actualmente los sistemas informáticos gestionan gran cantidad de datos a través de la red. Este continuo crecimiento ha provocado a su vez un aumento en el número de accesos y la manipulación de datos no autorizados con las consiguientes violaciones de seguridad.
En este contexto nos encontramos con una serie de políticas y procedimientos de seguridad de primer nivel, como pueden ser, los cortafuegos, la encriptación, antivirus, etc. Esta primera línea de defensa está siendo complementada con herramientas que permiten monitorizar el comportamiento del tráfico y las actividades de los usuarios de la red. En este ámbito, surgen los sistemas de detección de intrusos (IDS) como uno de los campos más investigados en los últimos años.
Un IDS se define como el proceso de monitorización de eventos que suceden en un sistema informático o en una red y el análisis de dichos eventos en busca de intrusiones.
Los IDS pueden ser clasificados en dos grandes grupos, atendiendo al tipo de analizador o procesador de eventos: IDS basados en usos indebidos e IDS basados en anomalías.
Los IDS basados en uso indebido analizan el tráfico de la red y lo comparan con unas firmas (o reglas) previamente definidas. Las reglas estas compuestas por diferentes elementos que permiten identificar el tráfico. Por ejemplo, en el IDS Snort las partes de una regla son la cabecera (p.e. dirección origen y destino, puertos) y las opciones de una regla (p.e. payload, metadatos). Para determinar si el tráfico de la red se corresponde o no con una determinada regla, este tipo de IDS utiliza técnicas de reconocimiento de patrones. Algunos de los IDS basados en uso indebido más conocidos son: Snort, Network Flight Recorder, Network Security Monitor y Network Intrusion Detection.
Los IDS basados en anomalías se centran en buscar actividades sospechosas en el sistema. Para ello, durante una fase inicial se debe entrenar el IDS para que este se haga una idea de lo que se considera como actividad normal y legítima. A partir de ahí, el sistema informa de cualquier actividad que encuentre sospechosa.
Tanto los IDS basados en detección de usos indebidos como los basados en detección de anomalías presentan ventajas e inconvenientes que hacen que ninguna de las dos soluciones sea claramente superior a la otra. Así, aunque los IDS basados en patrones resultan más fiables y proporcionan mejores rendimientos frente a ataques conocidos, no son capaces de detectar nuevos ataques que no se encuentren en la base de datos de firmas. Por el contrario, los IDS basados en anomalías poseen la capacidad de detectar ataques desconocidos, aunque suelen incurrir en falsas alarmas.
Otra tendencia muy importante que esta surgiendo para incorporarle inteligencia a los IDS para reconocer nuevos ataques es el reconocimiento automático de patrones. El reconocimiento automático de patrones permite generar de forma automática los patrones que hay en un tráfico malicioso para poder reconocer dichos ataques. El problema que surge en el reconocimiento automático de patrones es identificar de forma unívoca el patrón que reconoce el ataque para intentar que el sistema no falle nunca.
En cualquier caso, y sin desdeñar la necesidad de proteger los sistemas frente a ataques previamente registrados, resulta de vital importancia disponer de sistemas que sean capaces de reaccionar ante nuevos ataques, al resultar éstos los más dañinos precisamente por la ausencia de defensas preestablecidas. Por ello, se puede pensar que los sistemas de detección de intrusos basados únicamente en uso indebido (patrones), como es el caso de Snort, mejorarían su eficiencia mediante la inclusión de nuevas funcionalidades.
Dado que el IDS debe ser inteligente, ha de tomar decisiones, que pueden ser correctas o erróneas. Por lo tanto, se pueden dar cuatro posibles situaciones: Falso Positivo (FP), Falso Negativo (FN), Verdadero Positivo (VP) y Verdadero Negativo (VN).
El principal objetivo de la tesis es el desarrollo de una nueva versión de Snort, denominada Hybrid Snort (H-Snort) que complementa las funcionalidades de Snort con las siguientes características: Reconocimiento automático de patrones. Utilizando técnicas computacionales avanzadas el sistema debe ser capaz de detectar de forma automática los patrones característicos de un determinado ataque; Detección de anomalías a nivel de red. Además, como cada vez existen redes que trabajan a mayores velocidades se determinarán estrategias para mejorar el rendimiento de Snort.
Lógicamente, dependiendo de la calidad de las reglas que genera H-Snort de forma automática y de la sensibilidad del sistema el IDS generará más aciertos o fallos. Por lo tanto, se debe optimizar H-Snort para mejorar su comportamiento teniendo en cuenta los siguientes objetivos: minimizar el número de falsos positivos, minimizar el número de falsos negativos y reducir el número de reglas generadas.
En general, entendemos un problema de optimización como aquél en el cuál se ha de encontrar la combinación de valores más adecuada para un conjunto de variables de modo que consigamos minimizar (o maximizar) el valor de una función, denominada función objetivo, f(X), dependiente de dichas variables. Además, los problemas de optimización se clasifican en dos tipos: por un lado encontramos los llamados problemas de optimización mono-objetivo, en los cuales existe una única función objetivo a optimizar; por otro lado encontramos los problemas de optimización multi-objetivo donde se deben optimizar dos o más objetivos de forma simultánea, lo que conlleva aumentar sensiblemente la dificultad del proceso de optimización, sobre todo en los casos en los que ambos objetivos sean contrapuestos, es decir, cuando la mejora de uno de los objetivos suele conllevar el deterioro del otro. En aquellos problemas donde el número de combinaciones posibles de las variables a optimizar es elevado resulta inviable encontrar la solución óptima debido a la imposibilidad de evaluar todas las posibilidades en un tiempo acotado. El problema del diseño óptimo de un IDS que distinga adecuadamente entre el tráfico normal y los ataques es uno de estos problemas de alta complejidad, razón por la cual resulta conveniente aplicar técnicas computacionales basadas en meta-heurísticas.
Por todo lo anterior, podemos decir que el problema se puede enfocar desde dos puntos de vista: mono-objetivo o multi-objetivo. En el enfoque mono-objetivo, el algoritmo a diseñar deberían minimizar el número de falsos positivos siguiendo una función objetivo. Si además se desea minimizar el número de falsos negativos será necesario aplicar técnicas multi-objetivo, para lo cual dos alternativas: utilizar el concepto de óptimo de Pareto para que se optimice simultáneamente los objetivos o diseñar una función objetivo basada en suma de pesos que combine de forma ponderada en una sola función ambos objetivos. El mayor inconveniente que plantea la suma de pesos es como escoger los valores de los pesos que determinan la importancia de cada objetivo, ya que este puede ser dependiente del problema, y más concretamente de la cantidad de tráfico anómalo a detectar en función del total del tráfico. La opción que parece más apropiada es aplicar el concepto de optimización basada en frentes de Pareto, en la cual se optimizan los dos objetivos simultáneamente.
Por tanto, el algoritmo implementado para extender el IDS a la formulación multi-objetivo, evalúa el tráfico existente y mediante la detección de usos indebidos y de anomalías clasifica el tráfico como anómalo (positivo) o normal (negativo). Dicho algoritmo permite al sistema ir aprendiendo de forma que consiga un frente de soluciones no dominadas. El objetivo ideal es que el IDS reconozca todos los ataques y no se equivoque nunca.0