Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET Mastodon

Entradas populares

PostHeaderIcon Suricata - IDS/IPS - Instalación, configuración básica reglas


Suricata es un motor de monitoreo de seguridad de red, IPS e IDS de red de alto rendimiento. Es una herramienta de código abierto propiedad y desarrollada por OISF (Open Information Security Foundation).




Suricata es más que un IDS, básicamente se trata de un motor de red de código abierto y multiplataforma de alto rendimiento que combina las tecnologías IDS (Intrusion Detection System), IPS (Intrusion Prevention System) y NSM (Network Security Monitoring), que fue lanzado en el año 2009 y es desarrollado por la comunidad OISF (Open Information Security Foundation).

  1. Instalación de Suricata — IDS/IPS
  2. Configuración Básica de Suricata
  3. Suricata — Update Signatures
  4. Verificar el estado de Suricata
  5. Prueba de Detección
  6. Ver archivos de registro de Suricata
  7. Rotar archivos registro (logs) de Suricata

1. Instalación de Suricata

  1. Instalación de Dependencias, Recomendado:

Para la instalación de las dependencias para la instalación de suricata, ejecutamos en la terminal el siguiente comando:

$ apt-get install libpcre3 libpcre3-dbg libpcre3-dev build-essential libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev pkg-config zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 make libmagic-dev libjansson-dev libnss3-dev libgeoip-dev liblua5.1-dev libhiredis-dev libevent-dev python-yaml rustc cargo
Recuerda Suricata funciona en modo IDS por defecto, lo que significa que no bloqueará activamente el tráfico de red. Para cambiar al modo IPS, tendrás que editar el archivo de configuración de Suricata. 

/etc/default/suricata

Cambia:

# LISTENMODE=af-packet

LISTENMODE=nfqueue 

Reinicia el servicio y comprueba:


Starting suricata in IPS (nfqueue) mode... done 

Agregamos los paquetes de Suricata — OSIF

Para distribuciones como ubuntu, OSIF mantiene un PPA (Personal Package archive) donde contiene los paquetes de la ultima versión estable de suricata.

$ add-apt-repository ppa:oisf/suricata-stable
$ apt-get update


Si no funciona el repositorio PPA

$ add-apt-repository --remove ppa:oisf/suricata-stable

Añadimos el backport 

# echo "deb http://http.debian.net/debian buster-backports main" > /etc/apt/sources.list.d/backports.list # apt-get update apt-get install suricata -t buster-backports 

#apt-get install suricata-oinkmaster

Instalamos la ultima versión estable de suricata

Ejecutamos el siguiente comando para la instalación de Suricata

$ apt-get install suricata

y suricata-update 

$ apt-get install suricata-update

Verificamos el estado de nuestro IDS — IPS

<>Una vez instalado suricata, verificamos el estado de nuestro IDS — IPS
$ systemctl status suricata

Listo! Ya tenemos a suricata activo!

2. Configuración Básica de Suricata

Primero necesitamos verificar nuestra interfaz de red, que suricata va utiliza para el monitoreo de la red.

Para verificar nuestra interfaz de red, podemos hacer lo siguiente, ejecutamos el comando:

$ ip addr

en nuestro caso la interfaz de red es => enp0s3

Por otro lado podemos ver la configuración en el archivo: /etc/netplan/01-netcfg.yaml


Comandos:
$ nano /etc/netplan/01-netcfg.yaml

Interfaz de Red => enp0s3

Configuración Interfaz de red

  • Suricata por defecto viene configurado con la interfaz de red => eth0
  • Debemos remplazar eth0 de toda configuración en el archivo principal de suricata, y cambiar por nuestra interfaz en nuestro caso => enp0s3.

En el archivo de configuración principal de suricata.

$ nano /etc/suricata/suricata.yml

Configuración de grupo de direcciones IP, donde suricata va monitorizar

En nuestro caso queremos que suricata analice toda nuestra red. Por eso necesitamos configurar en el archivo principal de suricata: la variable HOME_NET

$ nano /etc/suricata/suricata.yml

Por último Guardamos cambios y reiniciamos, y verificamos el estado ante cualquier error de configuración.

$ sudo systemctl restart suricata
$ sudo systemctl status suricata

3. Suricata — Update Signatures - Añadir Reglas

Otro punto importante de configuración es actualizar las firmas o reglas que utiliza suricata para la detección.

Suricata utiliza las firmas para activar alertas, por lo que es necesario instalarlas y mantenerlas actualizadas. Las firmas también se denominan reglas, de ahí el nombre de archivos de reglas. Con una herramienta de suricata, las reglas de actualización se pueden recuperar, actualizar y administrar.

La opción mas simple es:

$ sudo suricata-update

Simplemente ejecutamos el modo predeterminado que obtiene el conjunto de reglas de ETOpen (Emerging Threats open — Ruleset)

Las reglas se instalan en /var/lib/suricata/rules, que también es el predeterminado en la configuración y utiliza el único archivo suricata.rules.

El primer comando asegura que la lista esté actualizada y el segundo muestra la lista. Cada uno de los conjuntos de reglas tiene un nombre que tiene un prefijo de "proveedor", seguido de un nombre de conjunto. Por ejemplo, el conjunto de reglas de identificación de tráfico de OISF se llama "oisf / trafficid".

sudo suricata-update update-sources

sudo suricata-update list-sources

Para habilitar "oisf/trafficid" escribe:

sudo suricata-update enable-source oisf/trafficid

sudo suricata-update

Habilita los siguientes conjuntos de reglas de la misma manera: 

  • sslbl/ssl-fp-blacklist
  • ptresearch/attackdetection
Comandos:
sudo suricata-update enable-source sslbl/ssl-fp-blacklist
sudo suricata-update enable-source ptresearch/attackdetection

Para ver las listas habilitadas:

sudo suricata-update list-enabled-sources

La respuesta debería ser:

Enabled sources:

- oisf/trafficid

- et/open

- sslbl/ssl-fp-blacklist

- ptresearch/attackdetection

Y por último 

suricata-update


Para deshabilitar:

suricata-update disable-source et/pro 

O para eliminar:

suricata-update remove-source et/pro 

Gestionar las reglas de Suricata

La eficacia de IDS Suricata se basa en una buena gestión de las reglas. Es necesario tanto para evitar falsos positivos como para asegurar que las reglas utilizadas estén actualizadas y permitan la detección de amenazas recientes.

Las reglas de Suricata activadas por defecto generan muchos falsos positivos (alertas que no son problemas reales). Recomiendo dejar que Suricata se ejecute durante unas horas usando su equipo normalmente y analizar cuidadosamente las alertas en el archivo fast.log y deshabilitar ciertas reglas. Por ejemplo, si utiliza Dropbox o Skype en su red, deberá desactivar las reglas correspondientes para no generar alertas innecesarias para su red.

Para aumentar la seguridad de sus instalaciones, es posible que también deba agregar nuevas fuentes de reglas o crear sus propias reglas.

 

  • Action: corresponde con la acción (drop, alert, etc.) que realizará Suricata cuando se identifica la regla en el flujo de red.
  • Header: esta sección corresponde al flujo de red en concreto que se va a analizar. De origen a destino. Con la palabra “any” podemos indicarle a Suricata que se analizarán todos los puertos.
  • Rule: regla a implementar para detectar en nuestro caso el malware. Dentro de este campo existen palabras claves que nos ayuda a crear nuestra regla:
    • Msg: mensaje de alerta que emitirá Suricata.
    • flow: flujo de red.
    • Content: contiene la cadena de caracteres que se debe buscar dentro del tráfico.
    • Reference: contiene referencias, en este caso colocamos un hash MD5 de verificación de una muestra de Trickbot.
    • Sid: ID de la regla identificada.
    • Rev: versión de la regla.
    • Classtype: brinda información sobre la clasificación de las reglas y alertas.

 

Veremos cómo manejar esto en los siguientes capítulos.

Formato de reglas


  •     Action (drop, alert, or pass)
  •     Header (protocol, ip address(es), ports)
  •     Options (additional qualification values to determine if the packet/flow/whatever match)


Cada regla de Suricata se compone de la siguiente manera:


 opciones de encabezado de   acción

  • La acción corresponde a la acción realizada en caso de detección (alerta, caída, pase, etc.).
  • El encabezado sirve para definir el protocolo (tcp, http, ftp, dns, tls…) así como la dirección IP y el puerto de origen y destino del tráfico involucrado en la alerta.
  • Las opciones de la regla se muestran entre paréntesis y separadas por comas. Algunas opciones tienen parámetros, que se especifican mediante su palabra clave seguida de dos puntos y el valor del parámetro.

Las reglas se identifican por su identificador de firma, el parámetro sid .

Por ejemplo, aquí está la regla 2012647 para usar Dropbox:

# alert tls

[108.160.162.0/20,162.125.0.0/16,192.189.200.0/23,199.47.216.0/22,205.189.0.0/24,209.99.70.0/24,45.58.64.0/20] 443 -&gt; $HOME_NET any (msg:"ET POLICY Dropbox.com Offsite File Backup in Use"; flow:established,from_server; content:"|55 04 03|"; content:"|0d|*.dropbox.com"; distance:1; within:14; threshold: type limit, count 1, seconds 300, track by_src; reference:url,www.dropbox.com; reference:url,dereknewton.com/2011/04/dropbox-authentication-static-host-ids/; classtype:policy-violation; sid:2012647; rev:5; metadata:created_at 2011_04_07, updated_at 2019_01_16;)


Puede ver las reglas editando el archivo de reglas Suricata:

sudo vi /var/lib/suricata/rules/suricata.rules

Deshabilitar ciertas reglas

Dependiendo de su uso, algunas reglas deben deshabilitarse. Por ejemplo, si permite el uso de Dropbox dentro de su red, la regla para el SID 2012647 debe estar deshabilitada.

Edite el archivo que contiene las reglas para desactivar:

sudo vi /etc/suricata/disable.conf

Agregue la lista de reglas para desactivar, identificadas por su identificador de firma (SID).

Aquí hay un ejemplo de reglas que desactivé en mi instalación:

# suricata-update - disable.conf

1:2012647 # Dropbox

1:2013504 # APT package management

1:2210044 # SURICATA STREAM Packet with invalid timestamp

1:2029706 # COVID

1:2029707 # COVID

1:2029709 # COVID

1:2027865 # DNS Query to .cloud

1:2210054 # SURICATA STREAM excessive retransmissions

1:2260000 # Applayer Mismatch protocol both directions

1:2210020 # STREAM ESTABLISHED packet out of window

1:2016150 # INFO Session Traversal Utilities for NAT

1:2027758 # DNS Query for .cc

1:2002157 # CHAT Skype User-Agent detected

Si es necesario, es posible desactivar todas las reglas que pertenecen al mismo tipo de clasificación de clases. Por ejemplo, la clasificación de decodificación de comandos de protocolo genérico genera demasiadas alertas para mi gusto y es posible deshabilitar todas las reglas en esta clasificación.


# suricata-update - disable.conf

# Disable all rules from protocol command decode class type

re:classtype:protocol-command-decode


Luego, debe actualizar las reglas (consulte Actualización de las reglas).

Agregar una nueva fuente de reglas

Es posible agregar nuevas reglas de una fuente en particular.

Primero actualice la lista de fuentes disponibles:

sudo suricata-update update-sources

Luego vea las fuentes disponibles:

sudo suricata-update list-sources

Para verificar qué fuentes ya están activadas, ejecute el siguiente comando:

sudo suricata-update list-enabled-sources

Active una nueva fuente, por ejemplo, la fuente de las reglas oisf / trafficid .

sudo suricata-update enable-source oisf/trafficid

Luego, debe actualizar las reglas (consulte Actualización de las reglas).

Actualizar las reglas

Para integrar la detección de las últimas amenazas, es necesario actualizar periódicamente las reglas de Suricata ejecutando el siguiente comando:

sudo suricata-update --disable-conf=/etc/suricata/disable.conf

Entonces todo lo que tiene que hacer es reiniciar el servicio Suricata:

sudo systemctl restart suricata.service

4. Verificar el estado de Suricata

Para asegurarnos de que Suricata se esta ejecutando, miremos los logs de suricata.

$ sudo tail /var/log/suricata/suricata.log

Suricata is running!


5. Prueba de Detección

Para probar la funcionalidad de Suricata (IDS), es mejor realizar una prueba con una firma.

Por un lado como muestra la imagen, utilizamos curl para ver el contenido de sitio que usaremos para la prueba.

$ curl http://testmyids.ca/

El sitio testmyids.ca es un sitio diseñado para realiza pruebas de deteccion.

https://stopmalvertising.com/malware-reports/the-c3284d-malware-network-stats.php.html

En este caso en el sitio de prueba encontramos en el contenido del sitio los caracteres #c3284d# /*c3284d*/ Test /*/c3284d*/ #/c3284d#, los cuales corresponden a un malware.

En la imagen, en la parte de la consola de abajo, vemos como suricata utilizando las reglas de ETOpen detecta una posible intrusión.

Rules - Reglas

6.Ver archivos de registro Logs de Suricata


Suricata genera archivos de registro en el directorio /var/log/suricata . Además del tráfico de red y la actividad sospechosa que detecta, Suricata también registra información de servicio y estadísticas sobre el tráfico de red. En una Raspberry Pi, debe prestar atención al tamaño de los registros generados que pueden saturar rápidamente la tarjeta SD utilizada para su almacenamiento. Será necesario configurar un mecanismo de rotación de troncos para evitar cualquier problema.

Los diferentes archivos de registro

Aquí están los 4 archivos de registro generados por Suricata:

  • suricata.log : mensajes de inicio de Suricata
  • stats.log : estadísticas sobre el tráfico de su red
  • fast.log : actividad sospechosa descubierta por Suricata
  • eve.json : tráfico de su red local, así como actividad sospechosa en formato JSON

Archivo de registro de actividad sospechosa


Para ver la actividad sospechosa detectada por Suricata en vivo, solo eche un vistazo al archivo fast.log 
sudo tail -n 100 -f /var/log/suricata/fast.log

A continuación, se muestra un ejemplo de actividad sospechosa detectada por Suricata registrada en el archivo fast.log :

01/29/2021-19:25:45.132975 [**] [1:2025012:3] ET MALWARE Powershell commands sent B64 3 [**] [Classification: A Network Trojan was detected] [Priority: 1] {TCP} XXX.XXX.XXX.XXX:80 -&gt; 192.168.1.22:45986
01/29/2021-19:26:10.183249 [**] [1:2013147:3] ET SHELLCODE Possible %u4141%u4141 UTF-16 Heap Spray Attempt [**] [Classification: Executable code was detected] [Priority: 1] {TCP} XXX.XXX.XXX.XXX:80 -&gt; 192.168.1.22:45986
01/31/2021-10:08:08.889128 [**] [1:2002157:12] ET CHAT Skype User-Agent detected [**] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.1.2:53937 -&gt; XXX.XXX.XXX.XXX:80

7. Rotar de archivos de registro


El tamaño del archivo de registro eve.json puede volverse muy grande rápidamente y ocupar todo el espacio de la tarjeta SD. Usar el mecanismo logrotate integrado en Linux es muy útil para evitar esto. Lo configuraremos para registrar registros de Suricata durante 10 días y limitar el tamaño de cada archivo a 1 GB. Así los logs no podrán ocupar más de 10 GB en la tarjeta SD mientras tengan un historial de los últimos 10 días. Los historiales más antiguos se eliminan automáticamente.

Crear un archivo "/etc/logrotate.d/suricata" con el siguiente contenido:

{
    daily
    maxsize 1G
    rotate 10
    missingok
    nocompress
    create
    sharedscripts
    postrotate
    systemctl restart suricata.service
    endscript
}
Para comprobar que la rotación está correctamente configurada y que funciona, puedes forzarla manualmente con el comando:
sudo logrotate -f /etc/logrotate.conf


Archivo de registro de tráfico de red


El tamaño del archivo de registro de tráfico de red "eve.json" puede aumentar y mucho dependiendo del tráfico de tu red.

Si solo te interesan las alertas del archivo fast.log , desactive los registros del archivo eve.json en el archivo de configuración /etc/suricata/suricata.yaml . Pero ojo, no tendrás registros que te permitan analizar la causa de las alertas.

- eve-log:

   enabled: no

También podemos procesar directamente un fichero pcap con suricata


sudo suricata -c /etc/suricata/suricata.yaml -r [archivo.pcap]:
Y nos genera automáticamente los 4 ficheros de registro.


0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.