230 likes | 394 Views
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.
E N D
Identificación de aplicaciones de red mediante técnicas de aprendizaje automáticoJornadas 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 Porcentaje de tráfico por aplicación Evolución temporal del 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 captura 2 x GigE full-dúplex
Precisión por grupo de aplicación 99,88 99,62 98,40 97,86 97,22 97,14 96,87 96,20 95,43 95,20 100,00 92,98 90,32 90,14 84,56 90,00 80,73 80,00 70,00 60,00 Precisión (%) 50,00 40,00 30,00 20,00 10,00 0,00 IRC FTP P2P DNS MAIL UNIX WWW NEWS NETFS TOTAL GAMES TELNET OTHERS NETWORK MULTIMEDIA Grupo de aplicación
Porcentaje de tráfico por aplicación (I) Núm. puerto Aprendizaje automático
Í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 • Captura del conjunto de entrenamiento • Flujos reales representativos del entorno a monitorizar • Alternativamente generados artificialmente • Extracción de atributos de los flujos de entrenamiento • Clasificación manual flujo aplicación • Reconocimiento de patrones e inspección manual • Puede simplificarse utilizando conjunto entrenamiento artificial en 1) • Construcción del árbol de clasificación C4.5 • P.ej. utilizando el software Weka • Implantación del árbol generado en 4) en el sistema de monitorización de red • 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
Identificación de aplicaciones de red mediante técnicas de aprendizaje automáticoJornadas 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)