Toutes les actualités

Suricata, la herramienta para detección de tráfico malicioso en tu red

Descubre como Suricata puede ayudarte a detectar las amenazas en tu tráfico de red.

photo de SCASSI
SCASSI
Descubre como Suricata puede ayudarte a detectar las amenazas en tu tráfico de red.

Actualmente, la ciberseguridad se ha convertido en una de las principales áreas a mejorar en las organizaciones. Se pueden ver diariamente numerosos artículos que hacen referencia a ciberataques sufridos por las empresas, y es por ello por lo que la inversión en durante el pasado año, según datos del IDC (Informe de Datos de Cotización) se registró un crecimiento del 7,7%.

Las empresas buscan diferentes soluciones para proteger y salvaguardar los datos, los cuales suponen el activo más importante en cualquier negocio y, a su vez, buscan soluciones que mitiguen los ataques.

¿Conoces Suricata?

Entre las soluciones buscadas por las organizaciones toman importancia la implantación de los IDS o detectores de intrusiones con Suricata. Suricata es un motor de detección de amenazas de alta velocidad y bajo consumo de recursos que analiza el tráfico de la red en busca de patrones y comportamientos maliciosos, pudiendo generar o bloqueos del tráfico no deseado, protegiendo de esta manera la red y los sistemas de la organización contra posibles amenazas. Además, dispone de una interfaz gráfica para ayudar y facilitar la configuración de una forma sencilla y amigable para el administrador.

En este artículo, se trata la generación de las reglas, explicando su estructura y los diferentes parámetros para definirlas.

Estructura de reglas en Suricata

Las reglas de Suricata son el conjunto de directivas que se utilizan para especificar qué tipos de tráfico de red deben ser monitoreados y qué acciones deben tomarse cuando se detecta tráfico sospechoso. Las reglas de Suricata se componen de tres partes principales: la acción (action), la cabecera (header) y las opciones (options). La estructura general de las reglas en Suricata, nombradas como “Signature”, disponen de una serie de campos que describen las características de la propia regla.

Estas reglas pueden ser aplicadas a cada una de las interfaces disponibles en base a las necesidades de la organización.

El formato de las reglas de Suricata se define como:

·       Action: Determina la acción que sucede cuando se produce una coincidencia con la firma (signatura)

·       Header: Se define el protocolo, las direcciones IP y puertos de origen y destino de la dirección de la regla

·       Options: Proporciona una serie de opciones adicionales que se pueden utilizar para refinar la regla en base a como se desea que actúe. Por ejemplo, si se desea realizar una búsqueda que no diferencie de mayúsculas y minúsculas, se puede usar el parámetro “nocase” (no case sensitive).

 A continuación, se desglosa cada uno de los parámetros aplicables a las reglas de Suricata, describiendo y mostrando algunos de sus parámetros:

Action:

  • alert: se genera una alerta en el registro de eventos y se permite el tráfico.
  • drop: se descarta el tráfico que cumple la regla.
  • reject: se rechaza el tráfico que cumple la regla con un mensaje de error ICMP.
  • pass: se permite el tráfico que cumple la regla sin generar una alerta en el registro de eventos.
  • sdrop: se descarta el tráfico que cumple la regla sin generar una alerta en el registro de eventos.
  • ignore: se ignora el tráfico que cumple la regla sin generar una alerta en el registro de eventos.
  • replace: se reemplaza el contenido que cumple la regla antes de permitirlo o descartarlo.
  • log: se registra el tráfico que cumple la regla en el registro de eventos sin generar una alerta ni bloquear el tráfico.
  • user: se utiliza para aplicar una acción personalizada definida por el usuario en la configuración.

 Header:

  • Protocolo: especifica el protocolo especifico de la capa de transporte que se analizará. A continuación, se enumeran algunos de los protocolos principales:      TCP,  UDP,  ICMP,  ICMPv6,  IP,  ARP
  • IP de origen o destino: Especifica la dirección IP de origen y destino del trafico
  • Puerto de origen o destino: Especifica el puerto de origen y destino del trafico
  • Contenido: hace referencia al contenido que se debe buscar en el tráfico, como pudieran ser cadenas de texto o un patrón de bytes.
    • Content: permite buscar una cadena de texto en el paquete.
    • Content:!"string": permite buscar paquetes que NO contengan una cadena de texto.
    • Content:| hex |: permite buscar un valor hexadecimal específico en el paquete.
    • Content:!"| hex |": permite buscar paquetes que NO contengan un valor hexadecimal específico.
    • Content:"pattern1"; content:"pattern2": permite buscar múltiples patrones en el mismo paquete.
    • Content:"pattern1"; within:X; content:"pattern2": permite buscar patrones que estén separados por X bytes.

Opciones:

  • distance: se usa junto con within para especificar una distancia a partir de la última coincidencia de contenido. Por ejemplo, si tuvieras content:"ABC"; distance:10; content:"DEF";, estarías buscando un "DEF" que aparece después de 10 bytes del final del "ABC" anterior.
  • offset: se utiliza para saltar una cantidad específica de bytes en un paquete antes de intentar hacer coincidir el contenido.
  • depth: se utiliza para limitar la profundidad de búsqueda de una coincidencia en un paquete.
  • http_method, http_uri, http_header, etc.: estos son modificadores específicos para HTTP que te permiten buscar en partes específicas de una solicitud o respuesta HTTP.

 

Regla para la detección de escaneo de puertos

Así se vería una regla sencilla para detectar escaneo de puertos basados eb el envío de paquetes SYN:

ACTION | HEADER | OPTIONS

alert tcp any any -> any any (msg:"SYN SCAN Detectado"; flow:stateless; flags:S; reference:arachnids,198; classtype:attempted-recon; sid:2100624; priority:5; rev:8; threshold:type both, track by_src, count 9, seconds 1;)

  • alert: Indica que se generará una alerta si se cumple la condición establecida.
  • tcp: Indica que se buscará en los paquetes TCP.
  • any any -> any any: Define las direcciones IP y los puertos origen y destino de los paquetes que se buscarán. En este caso, se buscarán en cualquier dirección IP y puerto origen y destino.
  • msg:"SYN Escaneo Detectado": Define el mensaje de alerta que se mostrará cuando se cumpla la condición establecida. En este caso, el mensaje es "SYN SCAN Detectado".
  • flow:stateless: Indica que la regla se aplica a flujos sin estado, es decir, en los que no se espera un seguimiento de la conexión TCP.
  • flags:S: Indica que se buscarán paquetes que tengan establecido el bit SYN (S) activo.
  • reference:arachnids,198: Hace referencia al identificador de la regla en la base de datos de Arachnids.
  • classtype:attempted-recon: Indica la clasificación de la alerta. En este caso, "attempted-recon" significa que se ha detectado un intento de reconocimiento.
  • sid:2100624: Identificador único de la regla.
  • priority:5: Prioridad asignada a la regla, en una escala del 1 al 5.
  • rev:8: Número de revisión de la regla.
  • threshold:type both, track by_src, count 9, seconds 1: Establece un umbral para evitar alertas falsas. En este caso, se generará una alerta cuando se detecten más de 9 intentos de escaneo de puertos por segundo desde la misma dirección IP origen.

Conclusión

En conclusión, las reglas de Suricata se utilizan para detectar amenazas como intentos de escaneo de puertos, ataques de denegación de servicio, malware o intrusiones de red, entre otros. La creación y gestión de reglas dentro de Suricata permite a las organizaciones adaptar su sistema de seguridad a sus necesidades específicas y al paisaje de amenazas en constante cambio.

Desde SCASSI, estamos listos para ayudar a las organizaciones a mejorar sus capacidades de detección. Esto es el primer paso para establecer flujos de trabajo eficientes para la gestión de amenazas y alertas. La ciberseguridad es un viaje, no un destino. En SCASSI, estamos comprometidos a apoyar a nuestros clientes en cada paso de este viaje, ayudándoles a mantenerse seguros y resilientes en el ciberespacio cada vez más amenazado.