Netflow, machine learning y la detección de anomalías en red: una aproximación académica (Parte I)

martes, 12 de septiembre de 2017

Encontrar patrones en los datos de red que no se ajusten al comportamiento esperado (o sea anomalías), sigue siendo un reto interesante en la seguridad informática. Las anomalías en el tráfico aparecerán por varias razones como actividades maliciosas o caídas, y en este sentido Netflow, en combinación con técnicas de machine learning, puede convertirse en un buen aliado para ir más allá de las firmas y ser capaz así de encontrar patrones previamente desconocidos. Analicemos ciertos estudios académicos que se han realizado hasta ahora en torno a la detección de anomalías con Netflow.






Netflow

Netflow es un protocolo de red desarrollado por Cisco en 1996. La versión 9 viene recogida en el RFC 3954. Netflow recoge información sobre tráfico IP cuando entra o sale de una interfaz. Define cómo un router exporta información y estadísticas de sockets. Es un estándar que incorporan muchos de los routers y switches de Cisco, Juniper, Enterasys y otros fabricantes. El IETF define un flujo como una secuencia de paquetes desde una aplicación remitente a una receptora. Una definición análoga lo describe un flujo de red como una secuencia uni o bidireccional de paquetes entre dos endpoints (del cliente al servidor o viceversa).

Algunos de los campos más destacados incluyen la fecha y hora de comienzo y finalización del flujo, dirección IP de origen y destino, puerto origen y destino, tipo de protocolo, interfaz lógica de entrada y salida, tipo de servicio, información de ruteo (next hop y máscara IP) y bytes transferidos, entre otros. En función de la versión de Netflow pueden darse algunas variaciones en los campos contemplados.

Estas estadísticas del tráfico se pueden usar para diferentes propósitos, desde la seguridad a la monitorización de la red pasando por el análisis del tráfico, clasificación o facturación. Dentro del ámbito específico de la seguridad, obviamente, Netflow se puede utilizar para la detección de escaneos denegaciones de servicio, detección de malware, atacantes internos, violaciones en la política de seguridad, malas configuraciones o ayudar en investigaciones forenses.

Como ya comentamos en un artículo anterior, un sistema de este tipo consta de tres componentes principales: exportador, colector y analizador. En algunos sistemas se incorpora una caché en caso de gran cantidad de tráfico de red o de limitación en los recursos computacionales. Los dispositivos de red miran los paquetes que llegan a las interfaces y capturan las estadísticas por flujo basándose en la configuración asignada. Almacenan los flujos en una caché, agregan y exportan los datos a través de UDP o SCTP. La caché se crea con la llegada del primer paquete del flujo, se mantiene para flujos con características similares y se exporta periódicamente a los colectores de acuerdo a la política establecida. Esto puede tener algunos inconvenientes como que algunos flujos no se contemplen cuando la caché esté llena.

Los formatos de exportación de las versiones 1 a 8 de Netflow son fijos. Sin embargo, a partir de la versión 9 es más flexible e incorpora MPLS, IPv6, BGP e incluso campos que puede definir el usuario. Las versiones más populares de Netflow son la 5 y 9.

Ventajas y desventajas de Netflow

Netflow es ligero y universal. Está adoptado como un estándar en muchos dispositivos de los fabricantes más importantes. Las ventajas de trabajar con un estándar y de forma unificada son evidentes, y dada la heterogeneidad que suele estar presente en la redes, el hecho de contar con una fuente de datos unificada puede ser de gran ayuda.

La gran cantidad de tráfico que circula por las redes puede llegar a ser abrumadora y ahí es donde la capacidad de Netflow de agregar tráfico puede resultar también muy útil al permitir abstraerse de los detalles y mostrar estadísticas sobre el tráfico de red que permita conocer qué está pasando. De esta manera, agregando el tráfico, es posible que un colector de Netflow reciba flujos que podrían representar a miles de paquetes. Además Netflow no resulta especialmente complicado o costoso en su adopción y despliegue. En lo relacionado con la seguridad, puede ser útil para levantar alertas en un primer nivel que posteriormente se puedan refinar con algoritmos que van más al detalle. La potencial presencia de DPI (Deep Packet Inspection) puede detectar muchos más ataques que pasan desapercibidos a Netflow, sin embargo se podría utilizar este primer nivel de filtrado para ahorrar tiempo y recursos además de ayudar a agilizar el análisis del tráfico en tiempo real.

Otra de las ventajas que puede presentar Netflow es el cumplimiento de ciertas normativas en el sentido de que no revela información privada, sensible o personal. Cuando se trata con tráfico de aplicación que puede contener este tipo de la información es habitual enfrentarse a situaciones en los que se exija privacidad, siendo necesario en muchos casos adoptar soluciones como pueden ser la anonimización de los datos.

Pero precisamente la característica de abstracción de detalles de Netflow se puede convertir también en una desventaja en determinadas situaciones. Debe tenerse en cuenta que Netflow se queda en un análisis en la capa de red y por tanto, algo tan relevante como la información de la capa de aplicación, por ejemplo, no está disponible a priori. Sin datos de protocolos específicos, en el caso de la detección de anomalías, es posible que únicamente analizando el tráfico Netflow se den casos en los que la anomalía sea compleja de detectar. Por ejemplo, si se quiere proteger un servidor web, el tráfico Netflow no permitiría detectar muchos ataques web que únicamente pueden detectarse cuando se analizan los parámetros presentes en la petición de la capa de aplicación. Es por ello que en algunas situaciones se incorpora información de la capa de aplicación a las trazas Netflow.

No es la única limitación. De hecho, para darles solución han surgido varias propuestas que repasaremos en la siguiente entrega.

Carmen Torrano
Innovación y laboratorio
carmen.torrano@11paths.com

1 comentario:

  1. Buenas,

    Tal vez sería interesante muestrear usando el protocolo Sflow que también envía información de capas de aplicación. Obviamente no va a servir de nada si se manda un único paquete malicioso, pero si serviría para detectar ataques de fuerza bruta o baterías de prueba contra servidores.

    Un saludo!

    ResponderEliminar