No puedes defenderte de lo que no ves. Por eso, el primer requisito imprescindible en ciberseguridad es saber todo lo que ocurre en nuestros sistemas. Para ello, implementamos un IDS (Intrusion Detection System o Sistema de Detección de Intrusiones), que vigila sin descanso cada rincón de nuestra red como el ojo de Sauron, notificando al instante intentos de brecha y comportamientos sospechosos. Y entre las opciones IDS, Snort es una de las más populares.
Esto se debe a su efectividad, su código abierto, su calidad al estar desarrollado por Cisco y sus versiones para Windows, Linux y Unix.
Trabajando en equipo con un SIEM (Security Information and Event Management), que analice y alerte de manera global y avanzada, e incluso permita actuar enviando a los Nazgûl (o al SOC, que viene a ser lo mismo), protegeremos nuestro Mordor particular de manera efectiva.
Por eso, vamos a ver cómo trabaja Snort y su coordinación con un SIEM, como Pandora SIEM.

Cómo funciona Snort

Snort es un software que vigila nuestra red analizando los paquetes que pasan por ella como si fuera un perro policía en el aeropuerto, y que también tiene ciertas capacidades de prevención, por lo que él mismo se autodenomina IPS (Intrusion Prevention System).
El funcionamiento de Snort se basa en reglas, que definen posible actividad maliciosa. Actuando conforme a dichas reglas, cuando detecta algo que coincide con ellas, da la voz de alarma. Como si tuviera esos carteles de «Se Busca» de las pelis del Oeste y fuera contrastándolos con lo que analiza, de modo que puede detectar DDoS, escaneos de puertos, buffer overflows, etc.
Pero no se queda ahí, porque Snort es una herramienta híbrida que combina principalmente esa detección basada en reglas (firmas) con análisis de protocolos y, en cierta medida, detección de anomalías.
Snort usa dos clases de reglas:

  • Reglas de la comunidad (Community Ruleset), que puedes descargar y actualizar gratis, ya que son mantenidas por otros usuarios expertos.
  • Reglas para suscriptores (Subscriber Ruleset), que son desarrolladas, probadas y aprobadas por Cisco Talos. De esta manera, por un precio mensual, te aseguras una detección similar a la de los clientes de Cisco.

Dentro de esas reglas, se sigue una sintaxis compuesta de una cabecera, o parte inicial, y unas opciones en la parte final de la regla.
Y a la hora de elaborar o modificar esas reglas, es muy importante el comienzo de la cabecera, porque indica la acción que tomará Snort ante lo que sucede. Estas son:

  • alert: Registra el paquete y emite una alerta.
  • log: Registra el paquete y nada más.
  • pass: Ignora el paquete.

Estas son reglas IDS, que detectan y anotan sin hacer nada, pero Snort tiene ciertas capacidades de prevención en sus acciones, como:

  • sdrop: Lo más básico, bloquea el paquete y no lo registra.
  • drop: El paquete es bloqueado preventivamente y también registrado.
  • reject: Lo anterior, más enviar un paquete de vuelta dependiendo del protocolo (reset si es TCP/ICMP o port unreachable si es UDP).

Tras la acción, viene el resto de la cabecera con protocolos, puertos y direcciones de origen y destino, más sus opciones. Así, comprendiendo y usando la sintaxis, podemos escribir reglas de todo tipo, como esta muy básica que avisa de tráfico HTTP:

alert tcp any any -> 192.168.1.0/24 80 (msg:»HTTP Traffic Detected»; flow:to_server,established; sid:100001;)

Básicamente, emite una alerta de protocolo TCP llegado desde cualquier IP y puerto, con un mensaje de que estamos teniendo tráfico HTTP (tras la flecha vemos cómo se centra en tráfico hacia el puerto 80 web). La parte final sid significa Snort ID y sirve para asignar un número a la regla, facilitando su gestión mediante esos identificadores asignados.
Como vemos, este ojo de Sauron es muy versátil, pudiendo crear reglas propias o usando y adaptando los mejores ejemplos de otros. De este modo, Snort permite:

  • Ser usuario no registrado y usar libremente las reglas de la comunidad.
  • Ser usuario registrado y usar también reglas de Cisco, pero 30 días después que los suscriptores de pago.
  • Ser suscriptor de pago (personal o empresarial) y recibir actualizaciones en tiempo real de esas reglas Cisco.

Snort realiza su labor de varias formas:

  • En modo Packet Sniffer, donde lee todos los paquetes IP de nuestra red, mostrándolos al usuario en la consola de control.
  • En modo Packet Logger, donde guarda en un log todos esos paquetes, para que el administrador sepa quién visita y usa su red, y cómo.
  • En modo NIPDS (Network Intrusion and Prevention Detection System). En este caso, el perro no solo «huele y ladra», sino que puede «morder» de manera básica, dejando de ser un IDS puro y actuando para prevenir la intrusión.

Para entidades con infraestructuras sencillas y sin grandes riesgos, esto es genial, porque Snort no solo es agencia de espionaje, sino también policía local que puede hacer «detenciones simples». Sin embargo, muchas organizaciones necesitarán más, porque los ataques sofisticados (como los catalogados en el MITRE ATT&CK) llegan como naves romulanas con dispositivos de ocultación, tratando de evadir con técnicas muy ingeniosas.

Integración de Snort con un SIEM

Snort sobrevuela la red con vista de águila y examina todo, lo cual es genial y también un problema, porque ya sea en modo Sniffer o Logger, analiza cada paquete, generando una enorme cantidad de información y potenciales alertas.
Pero mucha información no es lo mismo que mucho conocimiento.
De hecho, demasiada nos llena el granero de paja, pero nosotros queremos la aguja, y quitarla antes de pincharnos. Ahí entra la integración con un SIEM, experto en convertir información bruta en conocimiento, destilando lo importante y detectando amenazas avanzadas.
Esto es gracias a su capacidad de correlacionar lo que Snort registra en la red, junto a lo que el SIEM recibe de otros elementos de seguridad (como EDRs en equipos, por ejemplo).
Así, aunque la configuración concreta de Snort con un SIEM dependerá del SIEM en sí, el funcionamiento básico es que este último incluya los logs de Snort en sus análisis.
De este modo, el SIEM ve la Matrix completa.
Algunas soluciones, como Pandora SIEM, son capaces de realizar correlaciones globales y utilizar Machine Learning para detectar anomalías complejas, más allá de lo establecido en las firmas de Snort o del ámbito de la red que vigila. De esa forma, pillaremos a la nave romulana oculta cuando invade la Zona Neutral.
Obviamente, podemos mejorar la integración y el trabajo de ambas herramientas aplicando buenas prácticas como:

  • Filtrar bien las alertas de Snort. Aunque el SIEM tenga capacidades de análisis y correlación avanzadas, no hay que sobrecargarlo con lo que enviamos, por ejemplo, filtrando tráfico legítimo (como una actualización Windows).
  • Actualizar siempre Snort y el SIEM.
  • Probar y comprobar a menudo que las funciones de Snort están funcionando y los logs no están en blanco o llenos de esa paja que lastra al SIEM.
  • Personalización de reglas y alertas. Cada organización tiene una superficie de amenazas diferente y lo que es prioritario para unas puede ser irrelevante para otras. Por eso, aunque estas herramientas están genial por defecto, el administrador debe modificar reglas existentes o crear otras a medida según el perfil de su organización.

Beneficios de la detección avanzada de amenazas con Snort y SIEM

Las ventajas de usar a la vez Snort y SIEM resultan claras después de lo visto.

  • Una visibilidad centralizada de los eventos de seguridad. Porque no todo comienza y termina en la red que vigila Snort, y hay más elementos a correlacionar. Por ejemplo, un malware que, en lugar de introducirse mediante un click de phishing, lo haga a través de un puerto USB, porque alguien ha encontrado un pendrive «inofensivo» que resulta ser un rubber ducky malicioso. De esta manera, tenemos el ojo de Sauron en la red, pero también Palantires como el de Saruman rastreando otros elementos de la infraestructura IT.
  • Una detección más sofisticada. Porque no importa lo mucho que personalicemos los ficheros de reglas de Snort, no va a detectar eventos más allá de la red, ni ataques complejos.
  • Una automatización de respuestas mediante SIEM. Pudiendo llegar mucho más allá de las capacidades básicas IPS de Snort.
  • Una reducción de falsos positivos, alertas y trabajo en general. Debido a que el SIEM es capaz de gestionar la enorme cantidad de información que un IDS suele generar. Así no perdemos vida y dioptrías entre las incontables líneas de los logs.

Los desafíos del uso de Snort con un SIEM

Todo lo anterior es genial, porque podemos convertir nuestro reino IT en una fortaleza, por donde no se van a colar dos hobbits con un anillo que nos traiga la ruina.
Sin embargo, eso tiene un precio y unos desafíos, como:

  • La eterna balanza de dinero y conocimiento. Aunque Snort puede ser usado sin coste monetario al ser de código abierto, en la vida nada es realmente gratis y hay que compensar la balanza con conocimientos, tanto a la hora de configurar inicialmente Snort, como en la de adaptar reglas y conectar con el SIEM.
  • Mantenimiento y actualización constante.
  • Comprobación habitual de que todo funciona bien tras esas actualizaciones o la implantación de una nueva regla.
  • El ruido, que se puede paliar con un ajuste fino de configuraciones, reglas avanzadas y personalizadas (usando opciones como threshold para elevar el umbral de alertas) y que, a lo mejor, no sea necesaria una alarma cada vez que haya tráfico HTTP, como en el ejemplo analizado antes.

En definitiva, Snort pone al alcance de cualquier organización capacidades avanzadas de detección de intrusiones en su red. Unido a un SIEM, puede alzar unos poderosos escudos alrededor de nuestra infraestructura IT, pero no es algo plug and play.
Ese es el principal desafío, pero cuando se trata de organizaciones con una IT mínimamente compleja, que quieran seguir metodologías como NIST, estén bajo legislación como la NIS2 o en las que un incidente sale caro, esta combinación es imprescindible.

Shares