Anomaly-Based Network Intrusion Detection System

Anuncio
Anomaly-Based Network
Intrusion Detection System
L. J. G. Villalba, Senior Member, IEEE, A. L. S. Orozco and J. M. Vidal
Abstract— This paper presents a system for detecting intrusions
when analyzing the network traffic payload looking for malware
evidences. The system implements the detection algorithm as a
Snort preprocessor component. Since they work together, a highly
effective system against known attacks has been achieved (based on
Snort rules) and a highly effective system against unknown threats
(which was the main aim of the designed system). As the majority
of such systems, the proposal consists of two phases: a training
phase and a detection phase. During the training phase a statistical
model of the legitimate network usage is created through Bloom
Filters and N-grams techniques. Subsequently, the results obtained
by analyzing a dataset of attacks are compared with such model.
This will allow a set of rules to be developed which will be able to
determine whether the packets payloads contain malware. In the
detection phase, the traffic to analyze is compared with the model
created in the training phase and the results obtained when
applying rules. The performed experiments showed really
satisfactory results, with 100% malware detection and just 0.15%
false positives.
Keywords— Anomaly, Bloom Filter, IDS, Intrusion Detection
System, Malware, N-Gram, NIDS, Payload, Preprocessor,
Network Intrusion Detection System, Snort.
A
I.
INTRODUCCIÓN
CTUALMENTE, cualquier experto en seguridad podría
afirmar que uno de los principales problemas de la
seguridad de las redes es la proliferación de malware,
especialmente malware nuevo así como específico para alguna
red determinada. Podríamos nombrar algunas causas de este
hecho: incremento del tamaño de las redes, aumento del valor
de la información contenida en dichas redes, mejora tanto de
las prestaciones de las conexiones a Internet como de la
capacidad de procesamiento de las computadoras conectadas a
las mismas, etc. Sea cual sea la causa hay un dato indiscutible:
cada día es mayor el número de malware nuevo que surge.
Ante esta problemática han surgido diversos sistemas basados
en reglas para detectar el envío de malware (así como para
detectar otros tipos de ataques). Sin embargo, estos sistemas
tienen el inconveniente de ir un paso por detrás de los
desarrolladores de malware. Diariamente salen a la luz nuevos
especímenes que no comparten características con el malware
ya conocido por lo que no existen reglas que sean capaz de
identificarlo, lo que lo convierte en indetectable hasta que es
demasiado tarde, puesto que lógicamente es necesario detectar
previamente un determinado malware para poder determinar
algunas características del mismo a partir de las que se pudiese
obtener alguna regla que lo identificase. Por esta razón han
surgido también diversos proyectos que se han propuesto
L. J. G. Villalba, Universidad Complutense de Madrid (UCM), Madrid,
España, [email protected]
A. L. S. Orozco, Universidad Complutense de Madrid (UCM), Madrid,
España, [email protected]
J. M. Vidal, Universidad Complutense de Madrid (UCM), Madrid,
España, [email protected]
evitar este inconveniente de manera que la detección del
malware no dependa de un análisis detallado del mismo, sino
que, por ejemplo, se base en la comparación con algún modelo
construido o por el paso de unos determinados filtros para
poder reconocerlos, de manera que se pueda detectar malware
nuevo desde el primer momento de su propagación.
Visto el interés en este campo se decidió realizar un sistema
de detección de intrusiones en red (Network Intrusion
Detection System ó NIDS). Dados los buenos resultados
obtenidos se decidió continuar mejorando el sistema con un
conjunto de ideas que por cuestiones de plazos no pudieron ser
implementadas para dicha versión inicial. Aunque ésta
consistía en un trabajo conjunto entre Snort [1] y el algoritmo
diseñado, para esta última versión se decidió construir el
sistema integrándolo dentro de Snort, de manera que fuese un
preprocesador dinámico del mismo. A pesar de que dicho
proceso fue inicialmente costoso debido principalmente a la
escasez de documentación relativa puede afirmarse que los
beneficios obtenidos han compensado dicho esfuerzo: con este
tipo de diseño se puede aprovechar el proceso de reensamblado de paquetes (lo cual incrementa las prestaciones
del sistema desarrollado), así como la detección por firmas
que realiza Snort. Además, al poder integrarse dentro de Snort
(uno de los NIDS con mayor difusión), la instalación y uso del
preprocesador desarrollado es mucho más amigable para
aquellos usuarios que ya han trabajado con Snort y a su vez su
difusión puede ser mayor. Si bien actualmente hay
desarrollada una primera versión inicial con resultados
satisfactorios, se está trabajando en un conjunto de mejoras
que han surgido de la experiencia hasta la fecha.
Este artículo se estructura en cinco secciones, siendo la
primera la presente introducción. La sección segunda presenta
el estado del arte de los NIDS basados en el análisis de la
carga útil. La sección tercera especifica el sistema de
detección de intrusos diseñado. La sección cuarta contiene los
resultados de la experimentación realizada. Finalmente, la
sección quinta resume las principales conclusiones extraídas
de este trabajo e indica líneas futuras de investigación.
II.
TRABAJOS RELACIONADOS
Los NIDS basados en el análisis de la carga útil detectan el
código malicioso analizando la carga útil de los paquetes que
circulan por la red. Constan típicamente de una fase de
entrenamiento y otra de detección. La fase de entrenamiento
se realiza con tráfico limpio que represente estadísticamente al
tráfico usual del sistema, creándose un patrón de dicho tráfico.
Por otro lado, durante la fase de detección, el tráfico a analizar
se modela y se compara con este patrón para determinar si
puede ser clasificado como peligroso.
A continuación, se explican varias propuestas que realizan el
análisis de la carga útil para la detección de código malicioso.
En general, todas son variantes de PAYL [2], una de las
primeras propuestas que usó esta técnica con éxito. El sistema
PAYL clasifica el tráfico basándose en 3 características: el
puerto, el tamaño del paquete y la dirección del flujo (entrada
o salida). Mediante estos 3 parámetros clasifica la carga útil
creando una serie de patrones para definir lo que sería un
comportamiento normal dentro de cada clase. PAYL utiliza 1gram para el análisis de estos patrones debido a la enorme
cantidad de patrones que se crearán durante el entrenamiento
del sistema. La razón de usar un tamaño de n-gram tan bajo es
para evitar un tamaño de memoria demasiado grande. Aun así,
los resultados con 1-gram son significativos.
Poseidon [3] se desarrolló para corregir los errores que surgen
en la construcción de modelos en PAYL cuando se aplica
clustering sobre el tamaño de los paquetes. El funcionamiento
del sistema es similar al de PAYL, si bien añade algunas
mejoras, especialmente el uso de mapas auto organizativos
(SOM) para clasificar el tráfico. Así, los paquetes son
procesados por medio del SOM que da como salida las
diferentes clases en que deben clasificarse los paquetes. En
este modelo, en lugar de clasificar los paquetes atendiendo al
puerto, dirección y tamaño de los mismos, se clasifican
teniendo en cuenta el puerto, la dirección y las clases
devueltas por SOM. Con esto se consigue reducir
considerablemente el número de clases mejorándose los
resultados obtenidos por PAYL.
La combinación de múltiples clasificadores de una clase [4]
[5] es una técnica, también basada en PAYL, desarrollada para
eliminar la vulnerabilidad del sistema original ante los ataques
mimicry [6] [7]. El sistema tiene varios detectores de una sola
clase o detectores Support Vector Machine (SVM). La
precisión del sistema aumenta a medida que aumente el
número de detectores. Los detectores de una clase sólo
distinguen dos posibilidades: pertenencia o no a la clase. El
entrenamiento de cada detector sólo se hace con muestras de
la clase que va a detectar. De ahí la necesidad de tener varios
detectores para abarcar diferentes clases.
PCNAD [8] surge para corregir el defecto de PAYL de no
poder procesar los paquetes grandes en las redes rápidas con la
suficiente velocidad. La característica principal de este sistema
es que no analiza toda la carga útil de los paquetes,
dividiéndolos y reduciéndolos para realizar los patrones y las
comparaciones. De esta forma se consigue procesar todo el
tráfico en redes rápidas. Para la creación de los patrones y la
posterior comparación del tráfico se usa el mismo sistema que
en PAYL, es decir, se usa 1-gram y se guarda la frecuencia de
aparición de los distintos bytes de cada clase. Se realiza un
patrón para cada servicio que tiene el terminal, por lo cual se
debe entrenar el sistema en cada máquina en que se ejecute.
Para dividir la carga útil se usa el algoritmo de particionado
CPP: el tráfico se va procesando con una ventana de 1-gram.
Para cada 1-gram se ejecuta el rabin fingerprint, es decir, se
obtiene un número entero que lo representa. A continuación,
se mira si este número cumple una condición asignada
previamente. Por ejemplo, que el módulo 1000 del número
esté entre 100 y 200. Los 1-gram cuyos fingerprints cumplan
dicha condición serán los que delimiten las particiones de la
carga útil que se analizarán. A la hora de construir los perfiles
de cada servicio se define un parámetro n que determina el
número de particiones de la carga útil que se analizarán (se
procesarán las n primeras particiones de cada paquete). Con
un valor adecuado de n, el perfil obtenido mediante el análisis
de las particiones es muy similar al obtenido si se hubiera
utilizado toda la carga útil. Durante la fase detección los
paquetes también son divididos mediante el algoritmo CPP y
se usan sus n primeras particiones para realizar las
comparaciones con los perfiles, teniendo n el mismo valor que
en la fase de entrenamiento. Para realizar las comparaciones
de los perfiles se usa, al igual que en PAYL, la distancia
reducida de Mahalanobis.
Anagram [9] es otra evolución de PAYL desarrollada para
corregir las deficiencias que tenía el sistema original. Al igual
que en PAYL, el sistema se basa en n-grams para procesar los
paquetes y crear los patrones de comportamiento. Sin
embargo, usa Bloom Filters para poder dividir los paquetes en
n-grams de tamaños mayores que 1 sin que el coste en espacio
y rendimiento del sistema se vea perjudicado. El Bloom Filter
es una estructura para almacenar de forma binaria la aparición
o no de un determinado n-gram pero no el número de veces
que aparece, es decir, en este caso no se almacena la
frecuencia de distribución de cada byte sino su aparición
dentro de los paquetes. Durante la fase de entrenamiento se
rellenan dos Bloom Filters: uno con el tráfico normal y
legítimo de la red, y otro con los n-grams que aparecen en
virus conocidos. El proceso para rellenar esta última estructura
debe ser supervisado debido a la utilización de ataques. Es por
esto que se dice que el entrenamiento del sistema es semisupervisado. Durante la fase de detección se obtienen los ngrams de cada paquete y se comprueba si aparecen en alguno
de los dos Bloom Filters. A continuación, se asigna una
puntuación a este paquete teniendo en cuenta los n-grams que
no aparecen en el patrón del tráfico legítimo y los que
aparecen en el patrón del código malicioso. Si esta puntuación
supera un determinado umbral, el paquete se considera un
ataque. El uso de n-grams más grandes permite una mayor
precisión ya que se tienen en cuenta las dependencias entre
bytes. Por otro lado, al no tener en cuenta la frecuencia de
aparición de los n-grams pueden detectarse ataques ocultos
entre tráfico legítimo. Aunque mejora los resultados de PAYL
requiere de un entrenamiento muy controlado, puesto que no
tolera ruido durante dicho entrenamiento.
La búsqueda del gen de auto replicación [10] [11] considera
que una de las características que define a la mayoría de
programas maliciosos es que intentan auto replicarse para
expandirse por la red. Los métodos para que un programa
pueda reproducirse son conocidos y relativamente pocos
(alrededor de 50). Esta técnica analiza el código de los
programas buscando estos métodos (gen de auto replicación)
para detectar código malicioso. La principal dificultad es que
las instrucciones de auto replicación pueden estar ocultas entre
el resto de instrucciones o, aún peor, estar cifradas. Por tal
motivo la búsqueda del gen de auto replicación puede
entenderse como la búsqueda de una serie de palabras dentro
de un array de letras teniendo en cuenta los siguientes puntos:
• Todas las palabras se posicionan a lo largo de un string y
deben leerse de izquierda a derecha, en orden de ejecución.
• Las palabras pueden estar fragmentadas. Por ejemplo, si se
busca la palabra REPLICACION, ésta puede estar dividida
en dos partes: RE y PLICACION. Esto implica que una
vez encontrada la primera letra (R) hay que ser capaz de
ver si con el resto de letras se puede completar la palabra.
Para ello existen diversas técnicas de descifrado.
• El código malicioso puede llegar parcialmente codificado
y decodificarse en un orden determinado. Por ello, durante
el proceso de decodificación se tienen que hacer diversas
interrupciones para analizar la composición de la imagen
del ejecutable.
Random Forest [12] es una técnica híbrida que combina
detección por patrones con detección por anomalías. Aunque
también detecta código malicioso está pensado para detectar
cualquier ataque o intrusión que pueda sufrir una red. Este
sistema se caracteriza por la utilización de random forest para
la clasificación del tráfico durante las fases de entrenamiento y
detección. El algoritmo de clasificación del tráfico se basa en
la creación de múltiples árboles de decisión. Estos árboles
tienen características discriminantes en cada uno de sus nodos
de forma que una muestra recorrerá el árbol desde la raíz hasta
alguna de las hojas. En cada nodo intermedio la muestra se
evalúa y elige el camino que mejor se ajuste a sus
características. Las hojas del árbol son las diferentes clases en
las que se dividirá el tráfico, es decir, que cuando una muestra
llega a una hoja, ésta define la clase a la que pertenece. La
ventaja de usar árboles de decisión para la clasificación es la
rapidez en que se procesa el tráfico. Sin embargo, para
mantener esta rapidez y no saturar el sistema, los árboles no
deben ser muy grandes ni complejos. En caso contrario, se
obtendría poca precisión a la hora de clasificar. Para
solucionar este problema se usa el algoritmo de random forest
que consiste en crear varios árboles de decisión distintos pero
similares en cuanto a las características usadas en sus nodos.
Para clasificar, una muestra se introduce en cada uno de estos
árboles y una vez obtenido los resultados se calcula la moda,
es decir, se calcula la hoja más repetida que ha alcanzado la
muestra en los árboles. Esta hoja será la clase a la que
pertenezca la muestra. El algoritmo se caracteriza por dos
parámetros fundamentales: el número de árboles que
compondrán el bosque y las características que se usarán en
los nodos para discriminar las muestras. Además, para
aumentar el rendimiento y la precisión del sistema se usan
otras técnicas como:
• El mecanismo outlier, que se encarga de medir el grado de
pertenencia de una muestra a una clase determinada. Se
basa en el cálculo de un tipo de distancia entre la muestra y
todas las clases. Se usa en el módulo de detección de
anomalías.
• El algoritmo de selección de características se encarga de
determinar cuáles serán las características que usen los
árboles para clasificar los paquetes. Para ello analiza todas
las características disponibles, las evalúa otorgándoles una
puntuación y elige las más apropiadas, es decir las de
mejor puntuación. Normalmente se define un umbral para
determinar si una característica es buena.
• Las técnicas de sampling se encargan de equilibrar las
muestras de ataques usadas en el aprendizaje para obtener
mayor precisión en la detección posterior. Se intenta que la
frecuencia de aparición sea parecida para entrenar al
sistema contra los ataques poco comunes que suelen ser los
más peligrosos.
Los sistemas inmunológicos artificiales [13] [14] [15] imitan
el sistema biológico inmunitario (SBI), es decir, tratan una
intrusión en un sistema informático de la misma forma que los
seres vivos tratan sus infecciones. El SBI es capaz de detectar
organismos extraños y eliminarlos sintetizando unas proteínas
llamadas anticuerpos que tienen, a su vez, varios tipos de
detectores. Cuando un anticuerpo detecta un intruso se
multiplica para ser más efectivo hasta que la amenaza es
eliminada. Después de esto la mayoría de los anticuerpos
mueren, aunque algunos permanecen creando una memoria
inmunitaria para poder reaccionar rápidamente en caso de
contraer de nuevo la infección. Las técnicas que se engloban
dentro de este tipo de sistemas intentan imitar este
comportamiento para detectar el código malicioso.
Rate Limiting [16] detectan comportamiento anómalo en las
conexiones basándose en la premisa de que un host infectado
tratará de conectarse a muchas máquinas diferentes en un
período corto de tiempo. Estas propuestas detectan PortScans
colocando a aquellas conexiones que exceden cierto umbral en
una cola.
El Método de Máxima Entropía [17] estima la distribución del
tráfico benigno usando una estimación de máxima entropía.
En el período de entrenamiento se agrupan los paquetes en
clases distintas y se determina una distribución para cada
clase. Luego se observa la distribución de los paquetes en
tiempo real y se compara con la distribución base. Se dispara
una alarma cuando una clase supera un umbral de diferencia.
PHAD [18] utiliza algunos campos del encabezado tales como
direcciones IP, puertos, protocolos y banderas TCP. Durante
la etapa de entrenamiento se le asigna una puntuación a cada
valor de cada uno de los campos del encabezado y luego se
suman para obtener una puntuación total de anomalía para
cada paquete. Los primeros n paquetes con mayor puntuación
son considerados peligrosos.
NIDES [19] es un detector estadístico que compara los
perfiles de tráfico recolectados durante un gran período de
tiempo con los recolectados en un corto período sobre datos en
tiempo real, disparando una alarma si hay una desviación
importante.
Otros trabajos relevantes son: [20] [21] [22] [23] [24] [25]
[26].
III.
APAP
APAP (Advanced Payload Analyser Preprocessor) [27] es un
sistema de detección de intrusiones que opera sobre redes en
busca de anomalías estadísticas en la carga útil de los paquetes
con respecto al tráfico habitual de la red, considerando dichas
anomalías una amenaza potencial para el sistema al que brinda
protección. Su objetivo es identificar los paquetes con
contenido malintencionado antes de que se produzca su
llegada al sistema víctima.
APAP consta de dos fases: una fase de entrenamiento y una
fase de detección. Durante la fase de entrenamiento se
construye la representación del tráfico habitual y legítimo de
la red, así como la representación del tráfico malicioso. En la
fase de detección se aplican las características de los paquetes
monitorizados a la base de reglas y se obtiene su etiquetado.
Al igual que Anagram, APAP incorpora en su diseño el uso de
la técnica n-gram y el de las estructuras Bloom Filter.
La técnica n-gram, frecuentemente utilizada en el
procesamiento del lenguaje natural, tiene por objetivo
predecir, dentro de una sucesión de elementos, el siguiente
elemento conociendo los anteriores y las distintas frecuencias
de aparición. Una de sus múltiples variantes consiste en
utilizar esta técnica para resumir una cierta cantidad de datos,
que de otra manera sería imposible almacenar o analizar,
debido a limitaciones de almacenamiento en memoria o de
tiempo de cómputo. El sistema actúa como una ventana de
tamaño n por la que pasan los bytes de la carga útil del
paquete de forma secuencial. Cada secuencia de n bytes
consecutivos que tenga el paquete, se procesa como si fuese
una entidad propia. El resultado de procesar el paquete
completo viene determinado por la unión de los resultados
obtenidos al analizar cada uno de los valores en los que ngram haya podido descomponer su carga útil. Esta técnica
permite resumir el contenido de los paquetes y buscar
dependencias y similitudes entre ellos. La principal ventaja de
su uso es el bajo consumo de recursos y su facilidad de
implementación. Sin embargo, la generación de muchas
ventanas n-gram y el uso de valores n muy altos requiere de
alguna técnica auxiliar que permita resumir la información en
memoria y agilice su direccionamiento.
Los Bloom Filter son estructuras de datos probabilísticas
utilizadas para determinar si un dato pertenece a un conjunto
de datos o no. Anagram adoptó por primera vez el uso de este
tipo de estructuras como una mejora frente a PAYL para
permitir trabajar con ventanas n-gram de tamaños mayores.
La Figura 1 muestra en detalle las distintas etapas de APAP.
Filter que modela el tráfico legítimo es lo suficientemente
representativo. El principal indicio del final del entrenamiento
es que cualquier traza adicional con que se pretenda
sobreentrenar el sistema produzca cambios no significativos.
Para ello se trabaja con la media de los porcentajes de error
entre los valores del Bloom Filter en el momento actual del
entrenamiento y los valores que se generan tras aplicar un
nuevo paso de entrenamiento. En la Figura 2 se muestra la
evolución del porcentaje de error en uno de los experimentos
de APAP realizados con los datasets de tráfico publicados por
la agencia norteamericana DARPA en el año 1999. En la
gráfica el eje Y representa el porcentaje de error medio y el eje
X el número de pasos del entrenamiento base llevados a cabo.
Se ve claramente cómo el porcentaje de error medio tiende a
disminuir, y cómo al llegar a un determinado valor, en este
caso el 2%, se produce un estado de saturación. Esa
característica es el indicio del final del entrenamiento base, ya
que la realización de nuevos pasos de entrenamiento no aporta
nueva información relevante al Bloom Filter que representa el
tráfico legítimo.
pct error medio
45
40
35
30
25
20
15
10
5
0
1
2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 19 20 21
Figura 2. Porcentaje de error medio en el entrenamiento base.
Figura 1. Esquema de las fases del sistema APAP.
La Fase de Entrenamiento es una de las partes más
importantes de APAP. En ella se definen las estructuras de
datos que van a permitir la diferenciación del tráfico legítimo
de las anomalías y se procede a su relleno. A partir de ellas se
crean las reglas con las que el detector identifica las amenazas.
La fase de entrenamiento consta, a su vez, de diferentes
etapas.
Inicialización: En esta fase se inicializan las estructuras que
son empleadas para representar el tráfico limpio y el tráfico
malicioso.
Entrenamiento Base: En el entrenamiento base se construye el
modelo de tráfico legítimo. Para su elaboración es necesaria
una colección de trazas representativas de tráfico limpio, es
decir, trazas que correspondan al modo de uso habitual y
legítimo de la red a proteger. A partir de ellas se procede al
relleno de las estructuras que las van a representar. El
entrenamiento base concluye cuando el contenido del Bloom
Entrenamiento de Referencias: Una vez que el entrenamiento
base ha terminado de rellenar el Bloom Filter que representa el
modo de uso legítimo de la red, se procede a llevar a cabo el
entrenamiento de referencias. El conjunto de valores K es
definido en APAP como un conjunto de valores que permiten
representar de una manera simplificada el contenido del
Bloom Filter. La motivación a la hora de elegir esta
representación es la siguiente: trabajar directamente con
Bloom Filters rellenos de tráfico legítimo y con el contenido
de los ataques requiere un enorme coste computacional, tanto
en rendimiento como en consumo de memoria. Aunque esa
opción puede ser la más precisa a nivel de resultados, no es en
absoluto deseable para un sistema que pretende tomar
decisiones en tiempo real.
Entrenamiento Determinar-K: Una vez establecidos los
valores K de referencia del Bloom Filter del tráfico legítimo,
se generan las reglas que permiten identificar las anomalías.
Para generar dichas reglas se emplea un conjunto de trazas de
entrenamiento correspondiente a tráfico malicioso. El primer
paso a realizar es la generación de las propias K de los
ataques. En función de las características del modelado del
tráfico legítimo y del malicioso se establecen las reglas de
detección.
La Fase de Detección analiza el tráfico entrante paquete a
paquete. Para cada uno de ellos procesa su carga útil mediante
el desplazamiento de una ventana n-gram. A partir de los
valores obtenidos, genera una estructura Bloom Filter que
almacena sus frecuencias de aparición y establece sus propios
valores K. Una vez definidas los valores K, se aplican las
reglas de detección generadas en la fase de entrenamiento. Si
el valor de la frecuencia acumulada por alguna de ellas es
superado por el valor de su K correspondiente del
entrenamiento, el sistema considera la carga útil del paquete
cómo anómala, emitiendo una alerta.
IV.
EXPERIMENTACIÓN REALIZADA
Para poder evaluar APAP se han utilizado las trazas de tráfico
capturadas por la agencia norteamericana DARPA en el año
1999 y publicadas por el MIT Lincoln Laboratory [28]. En la
actualidad esta colección representa un estándar funcional
para la evaluación de NIDS permitiendo contrastar los
resultados con los de otras propuestas de detección. Para la
comparación de APAP con otras propuestas similares se ha
tomado como referencia los resultados obtenidos por
estrategias similares: PAYL [2], Poseidon [3], Anagram [9] y
McPAD [5]. El entrenamiento base con las trazas de tráfico de
DARPA del año 1999 concluye con un error aproximado del
2%. La Figura 3 muestra que la tasa de verdaderos positivos
de APAP es del 100% y una tasa de falsos positivos del
0,15%. Esta penalización es compensada por una mayor
reducción del consumo de tiempo de ejecución y memoria y
por la incorporación de un sistema que facilita su
escalabilidad.
diversas propuestas de mejora del sistema propuesto,
continuación de lo expuesto en [29] [30] [31]. Asimismo, se
está trabajando en su fortalecimiento frente a diferentes
técnicas de evasión [32].
AGRADECIMIENTOS
Los autores agradecen el apoyo brindado por el "Programa
de Financiación de Grupos de Investigación UCM validados
de la Universidad Complutense de Madrid – Banco
Santander".
REFERENCIAS
[1]
Snort 2.1 Intrusion Detection (Second Edition), pp. 99-164, 2004.
[2]
K. Wang, S. J. Stolfo. Anomalous Payload-based Network Intrusion
Detection. Proceedings of the Seventh International Symposium on
Recent Advances in Intrusion Detection (RAID), Sophia Antipolis,
France. Lecture Notes in Computer Science, Springer, Vol. 3224, pp.
203-222, September 2004.
[3]
D. Bolzoni, S. Etalle, P. Hartel, E. Zambon. POSEIDON: a 2-tier
Anomaly-Based Network Intrusion Detection System. Proceedings of
the Fourth IEEE International Workshop on Information Assurance
(IWIA), London, United Kingdom, pp. 144-156, April 2006.
[4]
R. Perdisci, G. Gu, W. Lee. Using an Ensemble of One-Class SVM
Classifiers to Harden Payload-based Anomaly Detection Systems.
Proceedings of the Sixth IEEE International Conference on Data
Mining (ICDM), Hong Kong, pp. 488-498, December 2006.
[5]
R. Perdisci, D. Ariu, P. Fogla, G. Giacinto, W. Lee. McPAD: A Multiple
Classifier System for Accurate Payload-Based Anomaly Detection,
Computer Networks, Vol. 53 (6), pp. 864-881, April 2009.
[6]
D. Wagner, P. Soto. Mimicry Attacks on Host-Based Intrusion
Detection Systems. Proceedings of the Ninth ACM Conference on
Computer and Communications Security (CCS), Washington, DC,
USA, pp. 255-264, November 2002.
[7]
C. Parampalli, R. Sekar, R. Johnson. A Practical Mimicry Attack
Against Powerful System-Call Monitor. Proceedings of the ACM
Symposium on Information, Computer and Communications Security
(ASIACCS), Tokyo, Japan, pp. 255–264, March 2008.
[8]
S. A. Thorat, A. K. Khandelwal, B. Bruhadeshwar, K. Kishore. Payload
Content based Network Anomaly Detection, Proceedings of the First
International Conference on the Applications of Digital Information
and Web Technologies (ICADIWT), Ostrava, Czech Republic, pp. 127132, August 2008.
[9]
K. Wang, J. J. Parekh, S. J. Stolfo. Anagram: A Content Anomaly
Detector Resistant to Mimicry Attack. Proceedings of the Ninth
International Symposium on Recent Advances in Intrusion Detection
(RAID), Hamburg, Germany. Lecture Notes in Computer Science,
Springer, Vol. 4219, pp. 226-248, September 2006.
Figura 3. Comparativa de APAP con otras propuestas.
V.
CONCLUSIONES Y TRABAJO FUTURO
A la vista de los resultados, APAP es una buena alternativa a
las estrategias actuales de detección de anomalías en la carga
útil del tráfico de una red. Esto es debido a que además de
ofrecer una tasa de aciertos del 100% y una tasa muy baja de
falsos positivos, plantea una estrategia innovadora para la
reducción de los costes de modelado de la red. Esta ventaja
permite su funcionamiento en tiempo real sobre redes con
mucha densidad de tráfico. Por otro lado, el uso de reglas va a
permitir una fácil escalabilidad del sistema, permitiendo al
operador adaptarse a nuevos entornos de red mediante la
aplicación de pequeños cambios sobre el sistema desplegado.
En resumen, APAP supone una solución sencilla y efectiva
para hacer frente a las amenazas desconocidas que pretenden
atentar contra la seguridad de una red. Actualmente existen
[10] V. A. Skormin, D. H. Summerville, J. S. Moronski. Detecting
Malicious Codes by the Presence of Their “Gene of Self-replication”.
Proceedings of the Second International Workshop on Mathematical
Methods, Models, and Architectures for Computer Network Security,
St. Petersburg, Russia. Lecture Notes in Computer Science, Springer,
Vol. 2776, pp 195-205, September 2003.
[11]
Y. Zhang, T. Li, J. Sun, R. Qin. An FSM-Based Approach for Malicious
Code Detection Using the Self-Relocation Gene, Proceedings of 4th
International Conference on Intelligent Computing (ICIC), Shanghai,
China. Lecture Notes in Computer Science, Springer, Vol. 5226, pp
364-371, September 2008.
[12] J. Zhang, M. Zulkernine, A. Haque. Random-Forests-Based Network
Intrusion Detection Systems. IEEE Transactions on Systems, Man, and
Cybernetics—Part C: Applications and Reviews, Vol. 38, No. 5, pp.
649-659, September 2008.
[13] M. Z. Shafiq, S. A. Khayam, M. Farooq, Improving Accuracy of
Immune-Inspired Malware Detectors by using Intelligent Features.
Proceedings of the Tenth Annual Conference on Genetic and
Evolutionary Computation (GECCO), Atlanta, Georgia, USA, pp. 119126, July 2008.
[14] Artificial Immune System based General Purpose Intrusion Detection
System (AISGPIDS). Technical Report, FAST National University of
Computer & Emerging Sciences, Islamabad Pakistan, pp. 1-29, January
2009.
[15] S. B. Medhdi, A. K. Tanwani, M. Farooq. IMAD: In-Execution
Malware Analysis and Detection. Proceedings of the Eleventh Annual
Conference on Genetic and Evolutionary Computation Conference
(GECCO), Montreal, Quebec, Canada, pp. 1553-1560, July 2009.
[16] J. Jung, V. Paxson, A. W. Berger, H. Balakrishnan, Fast Portscan
Detection Using Sequential Hypothesis Testing. Proceedings of the
IEEE Symposium on Security and Privacy, Oakland, CA, pp. 211-225,
May 2004.
[17] Y. Gu, A. McCallum, D. F. Towsley. Detecting Anomalies in Network
Traffic Using Maximum Entropy Estimation. Proceedings of the Fifth
ACM SIGCOMM Conference on Internet Measurement (IMC),
Berkeley, California, USA, pp. 345-350, October 2005.
[18] M. V. Mahoney, P. K. Chan, PHAD: Packet Header Anomaly Detection
for Identifying Hostile Network Traffic. Florida Institute of Technology
Technical Report CS-2001-04, 2001.
[19] D. Anderson, T. Frivold, A. Valdes. Next-generation Intrusion
Detection Expert System (NIDES): A Summary. Computer Science
Laboratory, SRI International, Computer Science Laboratory, Technical
Report SRI-CSL-95-07, May 1995.
[20] P. S. Almeida, C. Baquero, N. Preguica, D. Hutchison. Scalable Bloom
Filters, Information Processing Letters, Vol. 101, No. 6, pp. 255–261,
March 2007.
[21] M. Z. Shafiq, S. M. Tabish, M. Farooq, On the Appropriateness of
Evolutionary Rule Learning Algorithms for Malware Detection,
Proceedings of the International Workshop on Learning Classifier
Systems (IWLCS), held in conjunction with Genetic and Evolutionary
Computation Conference (GECCO), Montreal, Canada, pp. 2609-2616,
July 2009.
[22]M. Z. Shafiq, S. M. Tabish, M. Farooq, S. A. Khayam. Embedded
Malware Detection Using Markov n-Grams, Proceedings of the Fifth
International Conference on Detection of Intrusions and Malware, and
Vulnerability Assessment (DIMVA), Paris, France. Lecture Notes in
Computer Science, Springer, Vol. 5137, pp 88-107, July 2008.
[23]F. Putze, P. Sanders, J. Singler. Cache-, Hash- and Space-Efficient Bloom
Filters, Proceeding of the 6th International Workshop on Experimental
Algorithms (WEA), Rome, Italy. Lecture Notes in Computer Science,
Springer, Vol. 4525, pp. 108–121, June 2007.
[24] A. Pagh, R. Pagh, S. Srinivasa Rao. An Optimal Bloom Filter
Replacement. Proceedings of the Sixteenth Annual Symposium on
Discrete Algorithms, Vancouver, British Columbia, pp. 823-829,
January 2005.
[25] M. Z. Shafiq, S. M. Tabish, F. Mirza, M. Farooq, PE-Miner: Mining
Structural Information to Detect Malicious Executables in Realtime, in
Proceedings of the Twelfth International Symposium on Recent
Advances in Intrusion Detection (RAID), Saint-Malo, France. Lecture
Notes in Computer Science, Springer, Vol. 5758, pp. 121-141,
September 2009.
[26] B. Chazelle, J. Kilian, R. Rubinfeld, A. Tal. The Bloomier Filter: An
Efficient Data Structure for Static Support Lookup Tables. Proceedings
of the Fifteenth Annual ACM-SIAM Symposium on Discrete
Algorithms (SODA), Philadelphia, USA, pp. 30-39, January 2004.
[27] L. J. García Villalba, J. D. Mejía Castro, A. L. Sandoval Orozco, J.
Martínez Puentes. Malware Detection System by Payload Analysis of
Network Traffic (Poster Abstract). Proceedings of the Fifteenth
International Symposium on Recent Advances in Intrusion Detection
(RAID), Amsterdam, The Netherlands. Lecture Notes in Computer
Science, Vol. 7462, pp. 397-398, September 2012.
[28] J. McHugh. Testing Intrusion Detection Systems: A Critique to the
1998 and 1999 DARPA Intrusion Detection System Evaluations as
Performed by Lincoln Laboratory. ACM Transactions on Information
and System Security, Vol.3 (4), pp. 262-294, November 1999.
[29] J. A. Pinto, L. J. García Villalba. Trie Data Structure to Compare
Traffic Payload in a Supervised Anomaly Detection System (Poster
Abstract). Proceedings of the Fifteenth International Symposium of
Research in Attacks, Intrusions, and Defenses (RAID), Amsterdam,
The Netherlands. Lecture Notes in Computer Science, Springer, Vol.
7462, pp. 386-387, September 2012.
[30] H. Villanúa Vega, J. Maestre Vidal, J. D. Mejía Castro, L. J. García
Villalba. Improvement of an Anagram Based NIDS by Reducing the
Storage Space of Bloom Filters (Poster Abstract). Proceedings of the
Fifteenth International Symposium of Research in Attacks, Intrusions,
and Defenses (RAID), Amsterdam, The Netherlands. Lecture Notes in
Computer Science, Springer, Vol. 7462, pp. 393-394, September 2012.
[31] J. Maestre Vidal, H. Villanúa Vega, J. D. Mejía Castro, L. J. García
Villalba. Concurrency Optimization for NIDS (Poster Abstract).
Proceedings of the Fifteenth International Symposium of Research in
Attacks, Intrusions, and Defenses (RAID), Amsterdam, The
Netherlands. Lecture Notes in Computer Science, Springer, Vol. 7462,
pp. 395-396, September 2012.
[32] J. Maestre Vidal, J. D. Mejía Castro, A. L. Sandoval Orozco, L. J.
García Villalba. Evolutions of Evasion Techniques against network
Intrusion Detection Systems. Proceedings of the Sixteenth International
Conference on Information Technology (ICIT), Amman, Jordania.
Mayo 2013.
Luis Javier García Villalba, IEEE Senior Member, received
a Telecommunication Engineering degree from the
Universidad de Málaga (Spain) in 1993 and holds a M.Sc. in
Computer Networks (1996) and a Ph.D. in Computer Science
(1999), both from the Universidad Politécnica de Madrid
(Spain). Visiting Scholar at COSIC (Computer Security and
Industrial Cryptography, Department of Electrical Engineering, Faculty of
Engineering, Katholieke Universiteit Leuven, Belgium) in 2000 and Visiting
Scientist at IBM Research Division (IBM Almaden Research Center, San
Jose, CA, USA) in 2001 and 2002, he is currently Associate Professor of the
Department of Software Engineering and Artificial Intelligence at the
Universidad Complutense de Madrid (UCM) and Head of Complutense
Research Group GASS (Group of Analysis, Security and Systems,
http://gass.ucm.es/) which is located in the Faculty of Information Technology
and Computer Science at the UCM Campus. His professional experience
includes research projects with Hitachi, IBM, Nokia and Safelayer Secure
Communications. His main research interests are Computer Networks and
Computer Security. Dr. García Villalba is an Associate Editor in Computing
for IEEE Latin America Transactions since 2004. He is also an Associate
Editor in other journals such as IET Communications, IET Networks, IET
Wireless Sensor Systems, International Journal of Ad Hoc and Ubiquitous
Computing, among others.
Ana Lucila Sandoval Orozco received a Computer Science
Engineering degree from the Universidad Autónoma del
Caribe (Colombia) in 2001. She holds a Specialization Course
in Computer Networks (2006) from the Universidad del Norte
(Colombia), and holds a M.Sc. in Research in Computer
Science (2009) and a Ph.D. in Computer Science (2014), both
from the Universidad Complutense de Madrid (Spain). She is currently a
Research Assistant at Complutense Research Group GASS. Her main research
interests are Computer Networks and Computer Security.
Jorge Maestre Vidal received a Computer Science
Engineering degree from the Universidad Complutense de
Madrid (Spain) in 2012. He holds an MSc in Research in
Computer Science from the Universidad Complutense de
Madrid (Spain) in 2013. He is currently a PhD Student at the
Universidad Complutense de Madrid (Spain) and a Research
Assistant at Complutense Research Group GASS. His main
research interests are in the field of the anomaly-based network intrusion
detection systems.
Descargar