Ciberseguridad: análisis de datos al rescate

Ciberseguridad: análisis de datos al rescate - Gradiant

 

La ciberseguridad se ha convertido en un tema de gran importancia para todas las organizaciones. El número de ciberataques se ha incrementado exponencialmente en la última década. Los cibercriminales confían en que cada vez aparecen más y más herramientas que les permiten explotar las vulnerabilidades de las empresas. La revelación de las herramientas de hacking de la CIA ‘Vault 7’ ha desencadenado una ciberguerra a escala mundial.

Pero… ¿de qué herramientas disponemos para combatir a los malos? Los sistemas tradicionales, como los antivirus, los sistemas de detección de intrusos o los cortafuegos no pueden seguir todos los avances y descubrimientos del lado oscuro. Algunos expertos apuntan a la inteligencia artificial como la bomba atómica de la ciberguerra que vivimos en la actualidad. El futuro de la humanidad (o al menos el futuro digital) depende de quién gane la nueva carrera cibernética.

En Gradiant estamos decididos a jugar del lado de los buenos, y hemos diseñado una prueba de concepto que permite aplicar nuestro know-how sobre machine learning a seguridad y en el dominio de detección de intrusos.

La plataforma Stream Analytics permite ser dividida en varias capas:

Plataforma Stream Analytics - 1 - Gradiant

Incorporación de datos

Antivirus, cortafuegos, sistemas de detección de intrusos (DIS, por sus siglas en inglés), proxies, gestión de eventos e información de seguridad (SIEM, por sus siglas en inglés)… hay muchos tipos de fuentes de datos en el ámbito de la ciberseguridad. Para dota a nuestra plataforma Stream Analytics de información válida y confiable, hemos seleccionado software de referencia de código abierto que cubre diferentes objetivos:

  • Suricata es un motor de detección de amenazas en red, maduro, rápido y robusto, de código abierto y gratuito. Suricata inspecciona el tráfico de la red utilizando una potente y extensa normativa y lenguaje de firma, además ​​cuenta con un potente soporte de secuencias de comandos Lua para la detección de amenazas complejas.
  • Bro soporta una amplia gama de tareas de análisis de tráfico. Los creadores de Bro enfatizan que no se trata de un sistema clásico de detección de intrusiones basado en firmas (IDS): el lenguaje de scripting de Bro facilita diferentes enfoques para encontrar actividad maliciosa, incluyendo detección de uso indebido semántico, detección de anomalías y análisis de comportamiento.
  • OSSEC es un sistema de detección de intrusos basado en host (HIDS), escalable, multiplataforma y de código abierto. Cuenta con un poderoso motor de correlación y análisis, integrando análisis de registro, verificación de integridad de archivos, supervisión del registro de Windows, aplicación de políticas centralizada, detección de rootkits, alertas en tiempo real y respuesta activa. Funciona en la mayoría de los sistemas operativos, incluyendo Linux, OpenBSD, FreeBSD, MacOS, Solaris y Windows.
  • Squid ofrece control de acceso, autorización y entorno de registro para desarrollar proxy web y aplicaciones de contenido. Puede realizar el almacenamiento en caché para ahorrar recursos de red, autenticación y autorización, registro, organización de la aplicación de políticas de Internet (filtrado de contenido) y administración de uso de recursos de red.

El sistema de mensajería es el componente principal de la capa de incorporación de datos. Todos los demás componentes de la plataforma utilizan el sistema de mensajería para consumir o producir datos. Por tanto, los programas anteriores publican su salida como flujos de datos a un tema específico del sistema de mensajería.

Estos temas concretos cumplen dos propósitos: por un lado, actúan como amortiguadores para los productores de ráfagas, como los datos relacionados con la red; y por otro, ayudan a mejorar el equilibrio de carga y la escalabilidad mediante la definición de particiones y la ampliación y reducción del número de consumidores.

Plataforma Stream Analytics - 2 - Gradiant

Otro paso importante de la incorporación de datos es la normalización. Los componentes de la plataforma deben recibir datos con un formato conocido. Sin embargo, los datos de entrada de la plataforma son de naturaleza diversa y las métricas no están necesariamente en escalas coherentes.

En Gradiant hemos definido nuestro propio modelo de datos interno de tal forma que todos los componentes de la plataforma los comprenden. Nos hemos inspirado en la propuesta del Apache Spot Open Data Model, una iniciativa que está dando los primeros pasos hacia una taxonomía común para describir los datos de telemetría de seguridad utilizados para detectar amenazas. Sin embargo, esta interesante iniciativa está en una etapa inicial con su propuesta no abierta a la discusión todavía. Para transformar las entradas en el modelo de datos interno hemos implementado un conjunto de normalizadores, que consumen eventos de temas de entrada y producen eventos normalizados a temas internos. Estos temas internos son el origen de datos del resto de los componentes de la plataforma.

Motor Machine Learning

Una vez que se han normalizado los flujos de datos, adjuntamos un marco de procesamiento de flujo para detectar posibles ataques. Este es el núcleo de nuestro patio de recreo, y nos ha permitido experimentar con el estado de la técnica de Algoritmos de Aprendizaje Automático.

Por ejemplo, hemos implementado un algoritmo ML capaz de modelar el papel de cada host en la red, es decir, si el host es principalmente un productor de datos o un consumidor de datos. A continuación, el algoritmo busca cambios de rol para detectar posibles ciberataques.

Otro caso de uso en el que el análisis de datos y el aprendizaje automático pueden desempeñar un papel activo está en el resumen de los registros de eventos. Los sistemas de detección de intrusos suelen activar miles de alertas cada día. Debido a esa cantidad de información, las alertas importantes pueden pasar desapercibidas para el administrador de la red. La configuración personalizada del IDS o el postprocesamiento de salida, son tareas costosas que requieren conocimientos expertos. Por ello, hemos aplicado las técnicas de minería de patrones y de clusterización textos para resumir las alertas IDS y resaltar los valores atípicos de las alertas.

Las alertas IDS también han sido analizadas con técnicas de minería de procesos. El algoritmo genera modelos de procesos que representan estrategias de ataque. A continuación, el flujo de datos se puede analizar en tiempo real para detectar un proceso de ataque y reaccionar incluso antes de que el proceso de ataque se complete.

Persistencia de datos

El componente de persistencia de datos está compuesto por un almacén de capas de servicio y un almacén de capas histórico:

  • El almacén de capas histórico guarda una copia de los flujos de datos normalizados. El objetivo principal es solicitar datos históricos para la modelización de datos complejos, reproducción de secuencias, análisis de causas raíz y auditoría. Las bases de datos de esta capa deben manejar grandes cantidades de datos y deben optimizarse para mantener altas tasas de escritura.
  • El propósito de la capa de servicio es proporcionar respuestas optimizadas a las consultas. Estas bases de datos no se utilizan como almacenes canónicos: en cualquier momento, podemos limpiarlos y regenerarlos desde los flujos de salida o el almacén de capas histórico. Consideramos aquí bases de datos de búsqueda de texto completo para campos de texto y bases de datos OLAP para campos numéricos.

Pesistencia de datos - Gradiant

Con el fin de convertir flujos de datos a tablas de base de datos, hemos implementado procesos de conector de persistencia que consumen eventos de los temas internos y los almacenamos en los almacenes de capas histórico y de servicio.

El mapeo desde el modelo interno a las tablas de la base de datos debe realizarse con mucho cuidado, ya que una mala elección de diseño puede tener un alto impacto en el rendimiento. Una regla general en bases de datos de capas históricas, donde cantidades masivas de datos deben ser indexados y las velocidades de escritura son de vital importancia, es que las estructuras de tablas deben ser modeladas de acuerdo con sus consultas de lectura. Esencialmente, eso significa que una tabla sirve una consulta y las bases de datos sólo admiten un conjunto limitado y rígido de consultas.

Para soportar consultas más complejas y flexibles (por ejemplo, OLAP y búsqueda de texto completo) se utiliza el almacén de capas de servicio. En nuestro diseño, la capa de servicio proporciona automáticamente datos normalizados de la semana anterior. Las consultas con intervalos de tiempo más antiguos también son compatibles al reproducir el flujo de la capa histórica a un tema interno específico.

Confrontación

Las tarjetas hablan por sí mismas. Estas son las tecnologías y herramientas que hemos utilizado para poner en funcionamiento nuestro patio de juegos Cybersecurity Stream Analytics.

Confrontación de datos - Gradiant

Tenemos ahora un espacio agradable para probar y validar nuestros resultados de investigación e innovación en el dominio de seguridad y detección de intrusiones. La lección aprendida: trabajar con flujos de datos a gran escala no es una aventura fácil, pero hacerlo bien y con las tecnologías y herramientas correctas nos ayudará a obtener información valiosa y en tiempo para resolver los desafíos actuales y futuros.


Autor: Carlos Giraldo Rodríguez, investigador del área de Sistemas Inteligentes en Red (INetS)