Los sistemas de detección de intrusiones (IDS) son aplicaciones que monitorizan una red de ordenadores o un host en busca de actividad sospechosa o el incumplimiento de una serie de reglas establecidas en políticas previamente definidas por las organizaciones. En la mayoría de IDS se utilizan reglas estadísticas para determinar un posible comportamiento anómalo.
Por José M. Ortega
Alumno del Big Data International Campus y Security researcher & Python Developer
Big Data para detección de intrusiones
La posibilidad de que un atacante pueda acceder a un sistema o una red de forma ilegítima, se cataloga principalmente en 2 categorías:
- Basado en reglas y heurísticas: Permite detectar ataques conocidos, por ejemplo ataques por fuerza bruta para acceder a una aplicación web. Sin embargo, podría llegar a tener una alta tasa de falsos negativos para el caso de querer detectar nuevos tipos de ataques.
- Basado en anomalías: Perfila el comportamiento normal del sistema o de una red. Es capaz de detectar ataques nuevos, detectando que los elementos que se comportan de forma distinta al comportamiento previsto que se ha perfilado anteriormente.
Entre las principales aplicaciones de detección de anomalías dentro de la ciberseguridad podemos destacar:
- Detección de malware en redes que pueden ser el origen de un ataque denegación de servicio o detección de ransomware donde se podría analizar si aumenta el número de accesos a disco y el aumento de uso de cpu provocado por el cifrado del sistema de archivos que realiza el ransomware.
- Detección de fraudes, por ejemplo detección de transacciones fraudulentas en función del lugar desde donde se realizan o de la cantidad que se está transfiriendo.
- Detección ataques a aplicaciones web, por ejemplo ataques del tipo sql injection mediante la identificación de consultas que se salen de aquellas que tengamos controladas o mediante la identificación de los parámetros introducidos en la url.
El vínculo entre el Big Data y la Ciberseguridad permite modelar previsiones en un escenario futuro o tener la capacidad de detectar posibles ataques casi en tiempo real. La aplicación de técnicas y uso de herramientas de Big Data nos pueden ayudar a en diferentes operativas de ciberseguridad como las siguientes:
- Realizar predicciones en tiempo real de posibles ciberataques que se estén realizando.
- Conocer a qué clientes o usuarios se les proporciona o da acceso a información.
- Aplicación de sistemas SIEM (Security Information and Event Management) para la monitorización de sistemas.
La ciberseguridad es un área en la que un análisis de alto rendimiento y en tiempo real como el que proporciona el Big Data puede ser fundamental para la toma de decisiones ya que los ataques se cometen cada vez con más frecuencia y en menos tiempo y surgen amenazas nuevas todos los días. En combinación con técnicas de analítica predictiva, se podrían identificar patrones y tendencias de comportamiento, lo que otorga la capacidad de anticiparse a multitud de ataques, que están caracterizados por ser relativamente aleatorios, espontáneos y fuera de lo común.
En este ámbito, existen multitud de fuentes de datos para alimentar el Big Data, como son los logs de sistemas de todo tipo (autenticación, SIEM, IDS/IPS, etc.) y de dispositivos de red, logs de aplicaciones (registro de transacciones, peticiones HTTP, autenticaciones, interacciones del usuario), datos de redes sociales, contenido de los mensajes, etc.
La detección de anomalías ha sido el foco principal de muchas organizaciones debido a su potencial para detectar nuevos ataques. Si nuestro objeto es caracterizar y clasificar automáticamente el comportamiento de los usuarios de una red cuando navegan por internet, los datos los podríamos extraer a partir de la monitorización de las redes de la organización, recogiendo información relativa a los sitios web a los que acceden los usuarios, volumen de datos y los horarios de actividad.
Las organizaciones disponen de una gran cantidad de datos existentes o de fácil acceso que podrían contribuir a mejorar su seguridad. Las fuentes de datos que podrían usar podrían ser: información a bajo nivel de paquetes de red, los registros de actividad web a nivel de usuario y los registros de log del servidor
Uso de herramientas big data en ciberseguridad.
El software que normalmente se utiliza para analizar la información relacionada con los eventos de seguridad en una organización se llama Security Intelligence and Event Management (SIEM).
El software SIEM recibe alertas de seguridad en tiempo real de aplicaciones de software (tanto en la red como en la nube) y equipos de redes inteligentes. Estos sistemas permiten almacenar y analizar la información obtenida a partir de eventos de seguridad originados a partir de los datos que se van registrando desde diferentes fuentes.
La combinación de la analítica de datos junto con el Big Data, es decir, la abundante cantidad de datos (volumen) y heterogeneidad (variedad) de los mismos, junto con la necesidad de respuesta rápida (velocidad) los datos, está suponiendo un cambio en los sistemas SIEM tradicionales. Entre las principales características de estos sistemas podemos destacar:
- Arquitectura escalable basada en el paradigma MapReduce.
- Indexación de datos en tiempo real: desde los servidores, el syslog de los dispositivos de red o los cambios en el registro de Windows.
- Correlación de los datos en base a cuándo fueron generados, a transacciones realizadas o a partir de datos de fuentes externas.
En el mercado podemos encontrar diferentes herramientas SIEM entre las que podemos destacar:
- ELK https://www.elastic.co/es/what-is/elk-stack proporciona un framework de trabajo con el que recopilar, almacenar y analizar datos que podemos obtener a partir de logs del sistema o de una aplicación concreta. Con esta herramienta podríamos construir nuestro propio dashboard como plataforma de investigación con el objetivo de crear su propio laboratorio de análisis de seguridad.
- AlientVault OSSIM https://cybersecurity.att.com/products/ossim: Puede ser una opción adecuada para implementar un SIEM con características básicas en entornos pequeños donde el flujo de datos no sea significativamente alto.
- SIEMonster https://siemonster.com: es una plataforma que integra herramientas open source como RabbitMQ (gestor de colas), Search Guard (seguridad), Wazuh (como sistema de detección de intrusos)
- IBM Security QRadar https://developer.ibm.com/qradar/ce. QRadar es la plataforma de análisis de seguridad de IBM.
- Splunk https://es.wikipedia.org/wiki/Splunk es una solución que permite recoger, indexar y sacar el máximo provecho de todos los datos históricos y en tiempo real con el objetivo de generar información útil para las tomas de decisiones de las organizaciones.
Uso del stack ELK
Aunque como tal, Elastic Stack no es considerada solución que ofrece todas las funcionalidades y componentes que posee un SIEM, sí que puede ser desplegada de manera conjunta con otras herramientas para convertirlo en una solución SIEM.
En la imagen vemos el esquema de funcionamiento de Elastic Stack donde los logs son enviados a Logstash para su normalización, transformación y procesamiento. ElasticSearch indexa y almacena estos datos Por último, Kibana nos permite visualizar y analizar esta información de una forma visual.
Un proceso de Logstash tiene dos elementos input y output que son obligatorios y un elemento opcional, filter. Los complementos de entrada consumen datos de una fuente externa como un fichero de log o una base de datos, los complementos del filtro procesan los datos y los complementos de salida escriben los datos en un destino.
El siguiente ejemplo de configuración de logstash toma como entrada el plugin de twitter donde se configura las claves secretas y de autenticación que se obtienen desde el sitio para desarrolladores y las palabras bajo las cuáles genera un evento para enviarlos a ElasticSearch.
nput{
twitter{
consumer_key => «»
consumer_secret => «»
oauth_token => «»
oauth_token_secret => «»
keywords=>[«Ciberseguridad»,»Big data»,»ELK»]
}
}
output{
file{
path=>»twitter-log.txt»
}
stdout{
codec=>rubydebug
}
elasticsearch{
hosts => [«localhost:9200»],
index =>»twitter-log»
}
}
La ventaja principal de logstash es que dispone de un gran número de plugins para leer datos de diferentes fuentes como una base de datos, un syslog o un socket tcp. En el siguiente repositorio https://github.com/coralogix-resources/logstash-input-plugins podemos encontrar algunos ejemplos de uso de plugins para twitter, websocket o un servidor http.
A nivel de visualización, Kibana es el complemento perfecto para examinar el contenido indexado en un cluster de ElasticSearch y nos ayuda a conectar con diferentes fuentes de datos.
Desde el punto de vista de la ciberseguridad, esta herramienta nos podría ayudar a analizar el número de peticiones estamos recibiendo en un instante de tiempo concreto con el objetivo de detectar un posible ataque de denegación de servicio.
Otro caso de uso interesante es poder etiquetar geográficamente las direcciones IP y mostrar todas sus conexiones de red en un mapa. El uso del filtro de etiquetas geográficas en la configuración de Logstash le permite añadir información como latitud, longitud y nombre de país a cada evento que se emita a ElasticSearch.
Conclusiones
En ciberseguridad es esencial la identificación de posibles ataques y brechas de seguridad antes de que se produzcan y puedan afectar a las organizaciones, por el ahorro de costes que supone para las mismas.
Las tecnología Big Data, combinadas con técnicas de análisis predictivo, machine learning y minería de datos, pueden ayudar a gestionar y analizar toda la información que se recibe desde diferentes fuentes de datos con el objetivo de detectar posibles ataques en tiempo real.
¿Quieres obtener el mismo conocimiento que José M. Ortega?