pere barlet-ros eva codina josep solé-pareta {pbarlet, ecodina, pareta}@ac.upc
DESCRIPTION
Identificación de aplicaciones de red mediante técnicas de aprendizaje automático Jornadas Técnicas de RedIRIS 2007. Pere Barlet-Ros Eva Codina Josep Solé-Pareta {pbarlet, ecodina, pareta}@ac.upc.edu http://www.ccaba.upc.edu/smartxac. - PowerPoint PPT PresentationTRANSCRIPT
Centre de Comunicacions Avançadesde Banda Ampla (CCABA)
Universitat Politècnicade Catalunya (UPC)
Identificación de aplicaciones de red mediante técnicas de aprendizaje
automático
Jornadas Técnicas de RedIRIS 2007
Pere Barlet-Ros
Eva Codina
Josep Solé-Pareta
{pbarlet, ecodina, pareta}@ac.upc.edu
http://www.ccaba.upc.edu/smartxac
Agradecimientos: Este trabajo ha sido financiado parcialmente por el CESCA (convenio SMARTxAC) y el MEC (TSI2005-07520-C03-02 y TEC2005-08051-C03-01)
Índice
Introducción Monitorización pasiva de red Sistema SMARTxAC
Identificación de aplicaciones de red Técnicas tradicionales Método basado en técnicas de aprendizaje automático
Evaluación y resultados Precisión de identificación Porcentaje de clasificación
Conclusiones Resumen del método propuesto Conclusiones y trabajos futuros
Monitorización pasiva
Monitorización pasiva de red Permite observar el tráfico de un enlace en tiempo real Es no intrusiva Requiere acceso físico a la red
Utilidad para los operadores y administradores de red Soporte al dimensionado, evaluación rendimiento, … Localización y diagnóstico de fallos, anomalías, ... Tareas de seguridad: detección intrusiones, ataques, …
Ejemplos Tcpdump, Intel CoMo, AT&T Gigascope, Snort, etc. SMARTxAC: Monitorización continua de la Anella Científica
SMARTxAC
Sistema de Monitorización y Análisis de Tráfico para la Anella Científica (SMARTxAC) Convenio de colaboración CESCA-UPC Operativo desde julio de 2003
Características Plataforma de monitorización de bajo coste Monitorización continua de la Anella Científica en tiempo real Detección de anomalías y usos irregulares Las instituciones puedan conocer su uso de la red
Monitorización de 2 enlaces GbEth Enlace entre la Anella Científica y RedIRIS Tráfico actual: > 2 Gbps / > 300 Kpps
Índice
Introducción Monitorización pasiva de red Sistema SMARTxAC
Identificación de aplicaciones de red Técnicas tradicionales Método basado en técnicas de aprendizaje automático
Evaluación y resultados Precisión de identificación Porcentaje de clasificación
Conclusiones Resumen del método propuesto Conclusiones y trabajos futuros
Identificación de aplicaciones de red
Clasificación del tráfico a nivel de aplicación Es de especial interés para los operadores de red
– Políticas de QoS, servicio diferenciado, etc.
Tradicionalmente realizada utilizando núm. puerto Tabla estática de traducción (p.ej. well-known ports) No requiere inspección del contenido Computacionalmente simple
Métodos tradicionales ya no son válidos Aplicaciones basadas en web, túneles, puertos dinámicos, … Comportamiento de los usuarios, evasión cortafuegos, … Clasificación incompleta e incorrecta
Ejemplo utilizando núm. puerto
SMARTxAC: Anella Científica 2006
Evolución temporal del tráfico por aplicación
Porcentaje de tráfico por aplicación
Alternativas y requerimientos
Alternativa: reconocimiento por patrones (firmas) Costoso computacionalmente Requiere contenido de los paquetes Problemas
– Privacidad
– Encriptación de la conexión
– Ofuscación del protocolo
Requerimientos de nuestro método Identificación precisa y completa Aplicación en tiempo real en enlaces de alta velocidad Sin inspección del contenido de los paquetes Aplicable en el sistema SMARTxAC
Aprendizaje automático
Aprendizaje automático inductivo Rama de la inteligencia artificial Permite a las computadoras extraer conocimiento A partir de ejemplos (conjunto entrenamiento)
Aprendizaje automático no supervisado Encontrar mejor partición entre similitudes de los ejemplos
Aprendizaje automático supervisado Seleccionar atributos para predecir la clase de cada objeto Conjunto entrenamiento: <objeto, clase objeto>
– Objeto: Representado a partir de un vector de atributos
– Clase: Valor a predecir (obtenido “manualmente”)
Método propuesto
Identificación basada en el algoritmo C4.5 Desarrollado por Ross Quinlan como extensión del ID3 Basado en la construcción de un árbol de clasificación Selección de atributos para maximizar ganancia información
Conjunto de entrenamiento Flujos de tráfico real Pares <atributos flujo, aplicación> Vector de atributos contiene características de los flujos La aplicación se identifica “manualmente”
Atributos utilizados
Requerimientos Extracción en tiempo real No dependan del contenido de los paquetes
Ejemplo de atributos (total: 25) Contadores de paquetes y bytes por flujo Duración flujo Longitud mín./med./máx. paquetes Tamaño inicial, mín./med./máx. ventana TCP Mín./med./máx. interarrival time paquetes del flujo Paquetes con flags PUSH, URG, DF, … activados Incremento medio IPID Estimación SO (origen y destino) También puertos y protocolo (pero no de la forma tradicional) …
Fase de entrenamiento (I)
Captura del tráfico de entrenamiento Conjunto representativo del entorno a monitorizar Agregación por flujos (a nivel de transporte) Extracción de atributos
Clasificación manual de los flujos de entrenamiento Análisis off-line del contenido de los paquetes Utilizando técnicas de reconocimiento por patrones (L7-filter) Inspección manual del resto de flujos
Alternativa Generar tráfico sintéticamente en un entorno controlado Identificación manual no es necesaria Soluciona problemas de privacidad o encriptación
Fase de entrenamiento (II)
Generación del árbol de clasificación Algoritmo C4.5 Entrada: flujos de entrenamiento clasificados Salida: árbol de clasificación (contiene únicamente atributos)
Software utilizado: Weka Universidad de Waikato (Nueva Zelanda) Software libre (licencia GNU GPL) Escrito en Java http://www.cs.waikato.ac.nz/ml/weka
Implantación del árbol de clasificación
Implementación en el sistema SMARTxAC Clasificación del tráfico por flujos Extracción en tiempo real de atributos (único requerimiento) Clasificación de cada flujo utilizando el árbol de clasificación Computacionalmente simple y aplicable en tiempo real
No es necesario: Análisis del contenido de los paquetes Reconocimiento de patrones Confiar únicamente en los números de puerto Inspección manual de los flujos
Pero sí es necesario … Reentrenamiento del sistema cada cierto tiempo Aparición de nuevas aplicaciones o cambios en las existentes
Índice
Introducción Monitorización pasiva de red Sistema SMARTxAC
Identificación de aplicaciones de red Técnicas tradicionales Método basado en técnicas de aprendizaje automático
Evaluación y resultados Precisión de identificación Porcentaje de clasificación
Conclusiones Resumen del método propuesto Conclusiones y trabajos futuros
Escenario de prueba
Punto de captura2 x GigE full-dúplex
Precisión por grupo de aplicación
99,62
90,32
97,8695,43 95,20
96,87 97,22
80,73
92,9890,14
98,40 99,88
84,56
96,20 97,14
0,00
10,00
20,00
30,00
40,00
50,00
60,00
70,00
80,00
90,00
100,00
Precisión (%)
DNSFTP
GAMES
IRC
MULT
IMEDIA
NETFS
NETWORK
NEWS
OTHERSP2P
TELNET
UNIX
WW
W
TOTAL
Grupo de aplicación
Porcentaje de tráfico por aplicación (I)
Núm. puerto Aprendizaje automático
47.39%
10.34%
0.43%
0.10%
19.65%
7.97%
0.08%
2.48%0.55%
1.84%
2.26%
0.10%
0.53%
6.04%0.23%
40.07%
2.43%
2.97%
18.47%
0.30%8.17%
0.48%
9.67%
1.22%
0.51%
0.30%
1.52%
8.48%
5.42%
A_UKNWN
DNS
FTP
GAMES
IRC
MULTIMEDIA
NETFS
NETWORK
NEWS
NO_TCPUDP
OTHERS
P2P
T_UKNWN
TELNET
UNIX
WWW
Índice
Introducción Monitorización pasiva de red Sistema SMARTxAC
Identificación de aplicaciones de red Técnicas tradicionales Método basado en técnicas de aprendizaje automático
Evaluación y resultados Precisión de identificación Porcentaje de clasificación
Conclusiones Resumen del método propuesto Conclusiones y trabajos futuros
Resumen del método propuesto
1) Captura del conjunto de entrenamiento• Flujos reales representativos del entorno a monitorizar• Alternativamente generados artificialmente
2) Extracción de atributos de los flujos de entrenamiento
3) Clasificación manual flujo aplicación• Reconocimiento de patrones e inspección manual• Puede simplificarse utilizando conjunto entrenamiento artificial en 1)
4) Construcción del árbol de clasificación C4.5• P.ej. utilizando el software Weka
5) Implantación del árbol generado en 4) en el sistema de monitorización de red
6) Reentrenamiento del sistema cada cierto tiempo• Empezando desde el paso 1)• Para adaptarlo a nuevas aplicaciones o cambios
Conclusiones y trabajos futuros
Identificación tradicional basada en los núm. de puerto Clasificación imprecisa y errónea
Identificación basada en reconocimiento de patrones No aplicable en tiempo real en enlaces de alta velocidad Requiere la captura e inspección de contenidos No aplicable con encriptación o ofuscación del protocolo
Propuesta basada en aprendizaje automático Aplicable en tiempo real No requiere contenido de los paquetes Resultados experimentales muestran precisión > 95%
Trabajos futuros Validación con conjuntos de datos más extensos Automatización de la fase de entrenamiento
Centre de Comunicacions Avançadesde Banda Ampla (CCABA)
Universitat Politècnicade Catalunya (UPC)
Identificación de aplicaciones de red mediante técnicas de aprendizaje
automático
Jornadas Técnicas de RedIRIS 2007
Pere Barlet-Ros
Eva Codina
Josep Solé-Pareta
{pbarlet, ecodina, pareta}@ac.upc.edu
http://www.ccaba.upc.edu/smartxac
Agradecimientos: Este trabajo ha sido financiado parcialmente por el CESCA (convenio SMARTxAC) y el MEC (TSI2005-07520-C03-02 y TEC2005-08051-C03-01)