Suricata … ¿El IPS definitivo?

Desde hace bastante tiempo en Silicontower.net venimos siguiendo de cerca el desarrollo de Suricata. Suricata es un nuevo motor IDP/IPS “multi-threaded” compatible con reglas de Snort, y que en el futuro pretende utilizar procesadores GPU para realizar las tareas de escaneado.
Pero vayamos por partes…
¿Qué es un IDP o IPS y para que sirve?
Pues un IDP (Intrusion Detection Prevention) o IPS (Intrusion Prevention System) son sistemas ideados para detectar intrusiones en una red.
Por un lado el IDP detectaría y nos notificaría cuando hay una posible intrusión no autorizada en nuestra red, y el IPS sería capaz de bloquearla mientras se produce.
¿Cómo funciona un IPS?
En pocas palabras, un IPS es un antivirus / anti-malware para el tráfico de nuestra red.
Un sistema IPS escanea en tiempo real todo el tráfico de nuestra red, buscando posibles problemas seguridad en el tráfico que se envía a nuestros servidores.
El sistema IPS utiliza lo que denominamos un sistema de búsqueda de patrones, buscando en el tráfico patrones de texto que no deberían existir y decidiendo así si debe bloquearlos.
Imaginemos por ejemplo una SQL Injection (Ataque en el cual se envía una sentencia SQL a un formulario web, de forma que se ejecute en el servidor SQL remoto). Para estas situaciones el IPS busca patrones similares a una consulta MySQL en el código que se envía a nuestro servidor web, bloqueándolo antes de que llegue al mismo. (Recordemos que un servidor web no recibe consultas MySQL directamente, sino que es el mismo quien las realiza contra los servidores de MySQL)
¿Porque necesitamos un IDP o IPS?
Los bugs de seguridad no son solo algo que afecte a los sistemas operativos de cliente (Como puede ser Windows en sus diferentes versiones, Linux o Mac OS) sino que también los encontramos en aplicativos web como Joomla!, WordPress y muchos otros.
También puede darse el caso de que un desarrollo hecho a medida contenga, ya sea por desconocimiento o descuido, por algún problema de seguridad que no ha sido detectado.
Los proveedores de hosting, como nosotros, hacemos todo lo posible por mantener nuestros sistemas seguros y actualizados. Pero por razones obvias, no podemos modificar la programación de los sitios web de nuestros clientes. Tampoco podemos pretender que, por ejemplo, un cliente con un sitio en hecho en WordPress, lo actualice cada vez que se lanza una nueva versión para solventar anteriores problemas de seguridad.
De aquí la importancia de un buen sistema IPS, capaz de proteger sitios web inseguros, sin la necesidad de modificar el código de los mismos.
¿Y qué tiene de especial Suricata?
Pues básicamente el rendimiento. Suricata ha sido programado para utilizar sistemas multiprocesador, e incluso en el futuro GPUs (Tipo Nvidia Tesla) para escanear el tráfico.
Recordemos que en un proveedor de Hosting el tráfico puede ser de varios cientos de megas por segundo por línea de comunicaciones, y escanear todo ese tráfico en tiempo real requiere de bastante potencia.
Snort, el IPS estándar de facto anterior, era mono-proceso, no pudiendo aprovechar las ya muy habituales CPUs multi-core, lo que hacía casi imposible filtrar todo el tráfico en tiempo real.
Pero Suricata es diferente, y si bien el soporte para GPUs todavía está en pañales, siendo mucho más lento que utilizando procesadores normales, cada día es más prometedor, es cosa de muy poco tiempo que pueda ser utilizado en entornos de producción.
El resultado de nuestras pruebas.
Hace unos meses en Silicontower.net realizamos una serie de pruebas con Suricata, y fuimos capaces de filtrar en tiempo real casi 200 megas por segundo utilizando una simple CPU Quad Core, realmente impresionante, y más si tenemos en cuenta que para las pruebas utilizamos un conjunto completo de normas de Snort.
Con la llegada de los nuevos procesadores Dual Intel Xeon E5 de hasta 10 cores, parece ya solo cuestión de meses, que podamos empezar a utilizar Suricata para filtrar todo el tráfico de nuestra plataforma, y ofrecer así a nuestros clientes un mayor nivel de protección y seguridad.
Para publicar un comentario para este artículo, simplemente complete el formulario más abajo. Los campos marcados con un asterisco son obligatorios.