Cómo construir un servicio de detección de intrusiones basado en anomalías para una nube

Comience por elegir el tipo de datos que desea analizar y el mejor método para recopilarlos. Es posible que desee conectar datos de flujo que muestren la IP de origen y destino del paquete que atraviesa su red, junto con la cantidad de datos transferidos, las marcas de tiempo e incluso cualquier información de autenticación que lo acompañe. El mejor método para recopilar esto podría ser con NetFlow.

Otros tipos de información que pueden ser de interés podrían ser registros de eventos. Muchos dispositivos admiten el reenvío de eventos a un registrador centralizado. Existen productos de Splunk y AlienVault que pueden agregar estos registros y análisis de preformas. Lo que nos lleva a un motor de análisis.

Algo tendrá que ingerir todos estos datos recopilados y filtrar lo que es útil y lo que no. Los datos “interesantes” deberán compararse con otros tipos de datos, ya sean líneas base preconstruidas, firmas de ataque, lo que sea, para determinar las acciones que causaron la generación de estos datos. El motor de análisis tendría que ser lo suficientemente inteligente como para detectar cualquier cosa que no sea tráfico ordinario, sin generar alarma por eventos triviales.

Existen muchos productos que hacen estas cosas. Si está pensando en hacer uno desde cero, debe familiarizarse con los productos existentes que hacen estas cosas, identificar sus fortalezas y deficiencias, luego pensar en formas de lograr lo que hacen al abordar sus deficiencias y diseñar una mejor interfaz de usuario .

Los sistemas basados ​​en anomalías caen en la trampa de lo que es normal y lo que es una anomalía.
¿Cuál es la función forzada para construir una intrusión de detección de anomalías en la nube o para la nube?
El desafío más importante que enfrentará es obtener suficiente “información” en forma de Netflow o registros o lo que sea que esté buscando en la nube para que tenga sentido.
Como indican otras respuestas, explore lo que hay ahí fuera. Comercial o de código abierto tanto para prem y cloud.

Primero comienza tocando en un punto donde puede recopilar una gran cantidad de datos. Después de lo cual los recoge regularmente. Cree un conjunto de entrenamiento y aplique su herramienta de aprendizaje automático favorita. Entrena y sintoniza cuando y según sea necesario. Ejecute datos obtenidos más nuevos a través de su modelo y marque anomalías.

Aconsejo no reinventar la rueda. Entonces, si puede encontrar una solución existente, simplemente úsela (es decir, Snort).