Clasificacion de intrusos a traves de analisis de comandos
1. Clasificación de intrusos a través del análisis de comandos
Universidad Tecnológica Nacional - Facultad Regional Buenos Aires
Romina Bin Julio Rossini
Año 2005
Abstract. El objetivo de esta investigación fue clasificar intrusos
aplicando métodos de agrupamiento (K-Means y X-Means) y
clasificación (Perceptrón multicapa), mediante la utilización de
herramientas de procesamiento automático aplicadas a datos
colectados en un honeypot. Luego de realizar un agrupamiento
manual donde se infirieron 5 grupos de intrusos que fueron
contrastados con los resultantes del procesamiento automático, se
determinaron errores de clasificación que oscilaban entre 50 y 70%.
Sin embargo, se cree que los resultados se debieron mayormente a la
dificultad de tratar algunos parámetros y a carencia de información
relacionada con parámetros de red.
1 Introducción
Desde hace muchos años se ha estudiado y comprobado la precisión de los resultados
arrojados por el análisis de los tiempos de la dinámica de tecleo (keystroke dynamics),
considerándose esta técnica biométrica como una de las que poseen la menor tasa de error en
cuanto a la falsa aceptación de usuarios [JKMW03].
Existen otras características en el patrón de tipeo relacionadas con la “personalidad” y
“costumbres” del usuario que, sumadas al análisis de tecleo, podrían utilizarse para la
identificación [1] de usuarios y/o clasificación [2] de los mismos.
La identificación temprana de usuarios no solo incrementaría la seguridad de los sistemas
existentes sino que también podría ayudar en el tratamiento adecuado de las intrusiones,
permitiendo que se tomasen acciones preventivas y/o correctivas anticipadamente.
Por los motivos mencionados, el grupo SI6 de CITEFA [3] emprendió un proyecto llamado
Paranoid, cuya finalidad es “... desarrollar un sistema de identificación de intrusos a través de
su comportamiento en la red. Esto se realizará a través del análisis de parámetros de host
(patrón de tipeo, comandos utilizados, lenguaje, errores, etc.) y de parámetros de red
(direcciones IP, routers, sistema operativo, etc.).”
El objetivo de la investigación emprendida por nuestro equipo fue analizar los archivos de
captura del honeypot [4] de CITEFA, para comprobar la factibilidad de clasificar intrusos
mediante patrones de comportamiento. Los utilizados en nuestra investigación fueron:
comandos y parámetros [5], uso de caracteres de corrección (delete, backspace), utilización
de caracteres de separación de comandos [Pel03] y editores preferidos.
1
2. 2 Limitaciones y restricciones de la investigación
Se descartó la información relacionada con tiempos entre teclas, ya que la misma sumaba
complejidad al análisis abriendo nuevas líneas de investigación. Esto excedía los alcances y
los tiempos fijados previamente por la cátedra de Proyecto Final, a través de la cual nuestro
equipo tuvo la posibilidad de participar en esta investigación.
En el juego de datos recibido no existía separación de sesiones realizada en forma automática
ya que, por un inconveniente en el programa que capturaba la actividad del honeypot, no se
pudo disponer de la información relacionada con las terminales de origen. Por lo expuesto,
este proceso debió realizarse en forma manual, utilizando diferentes técnicas de inspección y
agrupamiento detalladas posteriormente en la sección de Metodología de este documento.
En los comandos donde fue presionada la tecla “tabulador” (ASCII 9) para
“autocompletar”[9] fue considerada únicamente la parte del lexema correspondiente hasta
dicha tecla, ya que resultaba imposible determinar cual fue el comando completo digitado
previamente por el intruso.
En las herramientas de análisis automático elegidas (PCP versión 1.2 [Lju05] y WEKA
versión 3.5.1 [WiFr05]: [6]) se encontraron algunas limitaciones a saber:
Existe escasa documentación acerca de los detalles de implementación de los
métodos de minería de datos.
PCP posee restricciones respecto de la cantidad de atributos y de vectores que pueden
ser evaluados.
PCP en diversas oportunidades se cerró abruptamente en medio del procesamiento,
sin devolver código de error alguno. En consecuencia no pudimos interpretar con
exactitud cuales eran las causas de ello.
Falla en la visualización de resultados en WEKA al analizar vectores con muchas
dimensiones (no se pudo determinar la cantidad exacta de dimensiones en la que
comenzaba a fallar la herramienta).
3 Adaptación de los datos
Para comenzar con la adaptación de los datos provenientes del honeypot previamente se
desarrolló una macro en planilla de cálculo de modo que se pudiesen recuperar las teclas de
forma legible, ya que se encontraban en formato hexadecimal. El paso siguiente fue separar
los datos en sesiones. Para ello como primera medida se separaron por fecha, terminal de
usuario e identificación de usuario. Posteriormente, se utilizó un tiempo promedio de
inactividad de 10 minutos (calculado a través de las diferencias de tiempo entre una tecla y su
antecesora), que luego tuvo que ser analizado en detalle, ya que en algunos casos este tiempo
no era el determinante del fin de sesión. Adicionalmente, se detectaron como finalizadores de
sesión la utilización de los comandos “exit”, “shutdown”, “kill -9 $$” y “kill -9 0” (también
se verificó que en todos los casos existiera coherencia en lo digitado en forma global). Por
ejemplo, existió también una excepción en el día 22/04/2005. A priori parecían existir varias
2
3. sesiones, pero luego de un intenso análisis se llegó a la conclusión de que se trataba de una
sola sesión de varias horas de duración, donde el intruso cambiaba la identificación de
usuario a través de la ejecución del comando “su”.
Una vez identificadas las sesiones, se reconstruyeron los comandos digitados, generando una
segunda macro. La función principal de la macro fue concatenar las teclas de cada sesión en
diferentes líneas, considerando como determinante de una nueva línea las siguientes teclas:
(expresadas en valor ASCII): 10, 13, 59.
Luego, los datos adaptados se importaron a una base de datos MS SQL Server1 con el fin de
obtener la información por vectores [7], aptos para ser procesados con PCP y posteriormente
con Weka.
Para comprender mejor el proceso, en [Anexo I] se adjunta un diagrama con los pasos
efectuados.
4 Metodología adoptada para el análisis de los datos
En [DHS01] se enumeran los pasos para efectuar clasificación de patrones: Identificación del
Modelo, Pre-procesamiento, Segmentación, Extracción de características distintivas,
Utilización de conjunto de datos de entrenamiento, Costo, Teoría de la decisión, Límites de
decisión, Generalización y Análisis por síntesis.
Para poder clasificar a los intrusos se adoptó, en parte, la metodología enumerada, tomándose
en cuenta sólo aquellas que eran aplicables al modelo de investigación emprendido.
4.1 Pre-procesamiento: agrupamiento manual de sesiones
Previo al agrupamiento manual de sesiones se debió realizar una nueva y exhaustiva
verificación y “reconstrucción” de los comandos digitados, ya que la información de los
mismos contenía los errores cometidos y las posteriores correcciones por parte de los intrusos
(se entiende por “reconstrucción” la obtención del comando finalmente digitado por el
intruso). Asimismo, fueron eliminados aquellos comandos en los cuales la sintaxis final no
era clara o bien cuando se podían identificar como comandos erróneos.
El agrupamiento de sesiones se realizó por inspección, evaluando cada sesión como un
“todo”. Se buscaron comportamientos comunes considerando:
Acceso a destinos similares (dominios y/o direcciones IP)
Directorios accedidos
Comandos utilizados en general, para comprender el accionar del intruso
Shell utilizado
Editores preferidos
De este modo se infirieron 5 grupos de intrusos, dentro de los cuales se pudieron diferenciar
claramente tres grupos de intrusos rumanos y dos grupos de sesiones contenían
1
Marca registrada de Microsoft Corporation.
3
4. comportamiento similar entre si, pero cuya procedencia no pudo ser identificada.
Adicionalmente, se detectó un grupo correspondiente a la actividad de la administración del
honeypot (CITEFA). Para comprender mejor como se distribuyen los grupos según
características distintivas, ver imágenes en [Anexo III].
4.2 Extracción de características distintivas
Algunas de las características distintivas detectadas fueron las siguientes:
Ratio de errores cometidos: de esta información pudieron inferirse dos
comportamientos excluyentes: el uso de las teclas Del ó Backspace (expresadas en
ASCII: 127 y 8 respectivamente). No se incluyó el uso de “x” en el caso de
equivocaciones cometidas por usuarios que utilizaban “vi” como editor de Shell.
Ratio de presión de tecla Tabulador (expresada en ASCII: 9).
Ratio de uso de tecla “;”para separación de comandos.
Ratio de uso de comandos.
Uso de editores (Vi, Pico).
Comandos utilizados sin parámetros.
Comandos utilizados acompañados de parámetros.
Respecto al último punto mencionado, se debe realizar una aclaración: en los casos donde el
parámetro variaba, fue generalizado [8] con el objetivo de facilitar el procesamiento
automático. Casos típicos fueron: directorios accedidos, IPs, nombres de archivos y número
de puertos.
Se menciona el ejemplo “ls <DIR>”: si se tomaba en cuenta el parámetro completo, producía
un muy bajo ratio de ocurrencia, no permitiendo determinar en forma automática el perfil de
la sesión que lo contenía.
Por otra parte, tomar sólo una porción (la más relevante) de esos parámetros representaba un
alto nivel de complejidad y además requería una decisión respecto de hasta donde cortar el
parámetro mencionado. De este modo se favorecía una incorrecta clasificación debido al
elevado número de atributos característicos a evaluar en un vector correspondiente a una
sesión.
Se entiende por Ratio la razón porcentual entre la cantidad de veces que se digitó la tecla y el
total de teclas digitadas o entre la repeticiones de un comando respecto al total de comandos.
Estos totales son los correspondientes a cada sesión.
5 Procesamiento automático de vectores
5.1 Método de clasificación
El método de clasificación elegido fue Multi-layer Perceptron (red neuronal multicapa) con
herramienta PCP, ya que el grupo de investigación tenía mejor dominio del método
mencionado.
Luego de cargar los archivos conteniendo cada clase (entendiéndose por clase cada uno de
los grupos generados en forma manual), se procesaron los datos con los siguientes
parámetros:
4
5. Enter number of hidden layers (>= 1) [1]: 15 //cantidad de capas ocultas (también
llamada capa intermedia).
Number of inputs is: 394. //cantidad de atributos (características), que representan
una entrada en la red
Number of output nodes is: 6. //cantidad de nodos de salida.
Enter number of nodes in hidden layer [1-10]: 60 nodes //cantidad de nodos en capa
oculta
Enter number of nodes in hidden layer [11-15]: 40 nodes //cantidad de nodos en cada capa
oculta
Enter seed for pseudo-random number generator [ 1]: 1
Enter amplitude of initial weights [ 1.00]: 1.00
Enter optimization method - conj. grad (1), grad. descent (2) [ 1]: 1 //método del
conjunto gradiente
Enter number of iterations (-1 for no iterations) [ 100]: 100 //cantidad de iteraciones
Error rate: 46.51 %
Avg. error per ouput node: 0.0741
Nota: luego de sucesivas pruebas se determinó que con 15 capas ocultas y con cantidad de
nodos mayores o iguales a 40, se obtuvo la menor tasa de error.
Con grandes cantidades de nodos el procesamiento fue muy inestable, ya que producía
errores en la ejecución de PCP, tal como fue comentado anteriormente.
En cuanto a la cantidad de iteraciones, se utilizó la cantidad por defecto que ofrecía PCP ya
que, para cantidades de iteraciones mayores, los resultados no se vieron afectados.
| Class | Actual/predicted card. | Error rate |
| Total | 43/43 | 46.51% ( 20/ 43) |
| 1/citefa | 7/0 | 100.00% ( 7/ 7) |
| 2/Grupo1 | 3/0 | 100.00% ( 3/ 3) |
| 3/Grupo2 | 11/16 | 9.09% ( 1/ 11) |
| 4/Grupo3 | 6/0 | 100.00% ( 6/ 6) |
| 5/Grupo4 | 14/27 | 7.14% ( 1/ 14) |
| 6/Grupo5 | 2/0 | 100.00% ( 2/ 2) |
| Vector | Actual class | MLP prediction |
| 4 | citefa | Grupo4 |
| 8 | citefa | Grupo4 |
| 15 | citefa | Grupo4 |
| 19 | citefa | Grupo4 |
| 23 | citefa | Grupo2 |
| 32 | citefa | Grupo4 |
| 41 | citefa | Grupo2 |
| 5 | Grupo1 | Grupo4 |
| 6 | Grupo1 | Grupo4 |
| 7 | Grupo1 | Grupo4 |
| 12 | Grupo2 | Grupo4 |
| 1 | Grupo3 | Grupo4 |
| 14 | Grupo3 | Grupo4 |
| 20 | Grupo3 | Grupo2 |
| 22 | Grupo3 | Grupo4 |
| 31 | Grupo3 | Grupo4 |
| 42 | Grupo3 | Grupo4 |
| 10 | Grupo4 | Grupo2 |
| 18 | Grupo5 | Grupo2 |
| 27 | Grupo5 | Grupo2 |
Referencias:
Citefa: sesiones con terminal vc/1 ó vc/2
Grupo1: Otros 1
5
6. Grupo2: Otros 2
Grupo3: Rumania 1
Grupo4: Rumania 2
Grupo5: Rumania 3
Actual Class: Clase determinada con agrupamiento manual.
Los resultados expuestos fueron los que menor tasa de error retornaron. Esto pudo
determinarse luego de pruebas sucesivas con la herramienta PCP, ya que se estimó que el
promedio de rango de error se encontraba entre 50 y 70%. Observar que las sesiones
correspondientes a CITEFA fueron clasificadas en su totalidad como intrusos dentro de las
sesiones agrupadas manualmente como grupos rumanos.
5.2 Métodos de agrupamiento (clustering)
Los métodos de clustering escogidos para el estudio fueron K-Means [DHS01].y X-Means
[PeMo00], ya que posibilitaron realizar una agrupación de sesiones mediante las
características elegidas y comparar los resultados con la pre-agrupación manual. La
herramienta elegida para el procesamiento automático fue WEKA. En una primera etapa se
procesaron los datos con PCP, pero debido a los inconvenientes mencionados en la sección
de “limitaciones”, la herramienta fue desestimada.
En la forma de procesamiento elegida, el cálculo de error está basado en la comparación
realizada entre el agrupamiento manual y el cluster creado por el método elegido.
Las pruebas se realizaron configurando los vectores con diferentes dimensiones (variando la
cantidad de propiedades elegidas). Además se usaron diferente semillas de números
aleatorios, y otros parámetros propios del método Xmeans. Para mayor detalle ver [WiFr05]
y [PeMo00].
El error obtenido en todos los casos superó el 50%. Utilizando los mismos métodos, en los
juegos de datos de prueba de dominio público (ejemplo Iris, Leukemia, Landsat), el error en
términos generales no superaba el 20%, a excepción de aquellos casos en los cuales la semilla
elegida generaba un punto de ensilladura o un extremo local.
Los resultados expuestos a continuación se encuentran reducidos a los efectos de agilizar su
comprensión. Asimismo, los resultados expuestos fueron los que se consideraron más
significativos.
Se adjuntan referencias de los parámetros utilizados en las configuraciones de los dos
métodos elegidos:
binValue: -B
cutOffFactor: -C
debugLevel: -U
maxIterations: -I
maxKMeans: -M
maxKMeansForChildren: -J
maxNumClusters: -H
minNumClusters: -L
seed: -S
numClusters: -N
6
7. 5.2.1 Resultados con método K-Means
Scheme: weka.clusterers.SimpleKMeans -N 5 -S 10
Incorrectly clustered instances : 26.0 60.4651 %
Scheme: weka.clusterers.SimpleKMeans -N 4 -S 10
Incorrectly clustered instances : 27.0 62.7907 %
5.2.2 Resultados con método X-Means
Scheme: weka.clusterers.XMeans -I 1 -M 1000 -J 1000 -L 3 -H 7 -B 1.0 -C
0.5 -D "weka.core.EuclideanDistance " -S 10
Incorrectly clustered instances : 24.0 55.814 %
Scheme: weka.clusterers.XMeans -I 1 -M 1000 -J 1000 -L 2 -H 4 -B 1.0 -C
0.5 -S 1234
Incorrectly clustered instances : 22.0 51.1628 %
6 Conclusiones
En el agrupamiento manual se infirieron cinco grupos de intrusos, más un grupo adicional
resultante de la actividad de CITEFA. Por el comportamiento observado, dichos grupos
determinan diferentes “perfiles”.
A partir del agrupamiento manual realizado, suponiendo que el mismo fue correcto,
emprendimos la desafiante tarea de analizar la información.
Luego de haber determinado características propias de cada sesión, al procesarlas de forma
automática según el método empleado, resultaron identificados hasta 3 grupos (cuando
hablamos de grupos estamos haciendo referencia tanto a clusters determinados por métodos
de agrupamiento como a clases determinadas mediante redes neuronales).
Sin embargo, los resultados no son desalentadores. Creemos que uno de los factores
determinantes del alto porcentaje de error fue que los métodos de clustering seleccionados no
posibilitan la asignación de pesos intencionales a las características elegidas y algunas de
ellas resultaron tener más relevancia que otras (este es el caso de las características
mencionadas para realizar el agrupamiento manual).
Otro de los factores que puede haber incidido en todos los métodos aplicados –y con mayor
peso que el primero mencionado– fue la imposibilidad de incluir en el procesamiento
automático los parámetros que brindaban mayor información acerca de los intrusos:
directorios accedidos, IPs, etc. pero que debieron generalizarse por la dificultad que
representaba tratarlos.
Consideramos que, a futuro, existe mucho por hacer. Mencionamos algunos puntos que
podrían tenerse en cuenta: observar resultados mediante otros métodos de agrupamiento y
clasificación, encontrar una forma (no manual) de considerar los parámetros que en nuestra
investigación se descartaron, así como también incluir parámetros de red.
7
8. 7 Reconocimientos
Al grupo SI6 de CITEFA, por abrirnos sus puertas e invitarnos a colaborar en este proyecto.
A los Ingenieros Sebastián García (CITEFA) y Jorge Garay (UTN), por el apoyo y tutoría
brindados. Al Lic. Carlos Tomassino, por facilitar nuestra participación desde la materia
Proyecto Final en esta investigación.
8 Referencias
[JKMW03] Lucy Jin, Xian Ke, Ryan Manuel, Matt Wilkerson, “Keystroke Dynamics - A
Software-based Biometric Solution”, Massachusetts Institute of Technology, Diciembre
2003.
[Lju05] Ljubomir J. Buturovic, “PCP - Pattern Classification Program, version 1.2 - User’s
Guide”, February 27, 2005. Obtenido el 15/04/2005 de http://pcp.sourceforge.net
[DHS01] Richard O Duda, Peter E Hart, David G Stork, “Pattern Classification”, 2Ed – J.
Wiley & Son’s, 2001.
[Pel03] Bob Pelletier, “Honeypots: An exploration”, 2003.
[WiFr05] Ian H. Witten and Eibe Frank, "Data Mining: Practical machine learning tools and
techniques", 2nd Edition, Morgan Kaufmann, San Francisco, 2005.
[PeMo00] Dan Pelleg, Andrew Moore, "X-means: Extending K-means with Efficient
Estimation of the number of clusters", School of Computer science, Carneguie Mellon
university, Pittscburgh, 2000
9 Bibliografía
[WMM98] Walpole Ronald, Myers Raymod y Myers Sharon, “Probabilidad y Estadística
para ingenieros”, Sexta Edición, 1998.
[Much00] Muchnik Jorge Daniel, “Autómatas finitos y expresiones regulares”, Editorial
CEIT, 2000.
[McC04] Bill McCarty, “Honeypot Forensics, Part I: Analyzing the network”, 2004.
[McC04] Bill McCarty , “Honeypot Forensics, Part II: Analyzing the Compromised Host”,
2004.
[DVT02] Vu N. P. Dao, Rao Vemuri, Steven J. Templeton, "Profiling Users in the UNIX OS
Environment", 2002.
[Bach02] Johann Bacher, "Cluster Analysis", Chair of Sociology, University Erlangen-
Nuremberg, 2002.
[VeMa00] Jeroen K. Vermunt, Jay Magidson, "Latent class cluster analysis", 2000
[GaJi99] James K. Galbraith, Lu Jiaqing, “Cluster and Discriminant analysis on Time-Series
as a Research Tools”, 1999.
http://www.rae.es/
http://www.citefa.gov.ar/SitioSI6_EN/si6.htm
8
9. 10 Glosario
[1] Identificar: Reconocer si una persona o cosa es la misma que se supone o se busca. –
Diccionario de la Real Academia Española.
[2] Clasificar: Ordenar o disponer por clases. - Diccionario de la Real Academia Española.
[3] SI6 es el Laboratorio de Investigación en Seguridad Informática del Instituto de
Investigaciones Científicas y Técnicas de las Fuerzas Armadas (CITEFA), dependiente
del Ministerio de Defensa, República Argentina.
[4] Honeypot: es un sistema instalado en una red como cebo para los atacantes. Un honeypot
pretente descubrir a las personas que utilizan la red para actividades no autorizadas. Por
ese motivo, el solo hecho de que un usuario acceda a un Honeypot lo convierte en
atacantes. Cualquier interacción con un Honeypot implica una actividad no autorizada.
Esta es la verdadera esencia de los mismos La idea es engañar a los atacantes, haciendo
que el Honeypot se comporte como un sistema legítimo.
[5] Comando: lexema. Se encuentran definidos dentro del lenguaje del sistema operativo.
Parámetro: lexema que sucede a un Comando
Lexemas: secuencias de caracteres escritas que poseen un significado único.
Sentencia: conjunto de lexemas finalizados con un caracter separador de sentencias. Los
caracteres separadores de sentencias son {Enter, ; , | }.
[6] PCP: Pattern Classification Program
Weka: Waikato Enviroment for Knowledge Analysis
[7] Vectores: conjunto de características distintivas de una sesión. Posee una dimensión de 1
fila por “n” columnas, donde las “n” columnas corresponden a las características
evaluadas.
[8] Generalización: acción de generalizar. Abstraer lo que es común y esencial a muchas
cosas, para formar un concepto general que las comprenda todas.
[9] Autocompletar: es un automatismo de algunos intérpretes de comando (Shell) que
permiten inferir el comando completo utilizando las primeras teclas digitadas.
9
11. II. Referencia breve de método de Clustering K-Means
Dado un k, el algoritmo k-means realiza 4 pasos:
1. Repartir los objetos (vectores para PCP y Weka) en k subconjuntos no vacíos.
2. Determinar los puntos semilla como los centroides de los clusters. El centroide es el centro (punto
medio) del cluster.
3. Asignar cada objeto al cluster con el punto semilla más cercano.
4. Volver al punto 2 y detenerse cuando no haya más asignaciones nuevas para realizar.
11
12. III. Imágenes de dispersión de datos
Se adjuntan dos pantallas que muestran la dispersión del ratio de errores y la dispersión del ratio de tabs
digitados, respecto del agrupamiento manual realizado.
Gráfico 1: Ratio errores vs agrupamiento manual.
Eje horizontal: Grupos inferidos a partir de agrupamiento manual.
Eje vertical: Ratio de errores de tecla Delete.
Cada punto representa el ratio teclas Delete digitadas en una sesión determinada.
12
13. Gráfico 2: Ratio Tabs vs. agrupamiento manual.
Eje horizontal: Grupos inferidos a partir de agrupamiento manual.
Eje vertical: Ratio de teclas Tabs respecto del total de teclas digitadas en la sesión.
Cada punto representa el ratio de teclas Tabs digitadas en una sesión determinada.
13