Suricata 1.4.4 lanzado: un sistema de monitoreo de seguridad, prevención y detección de intrusiones en la red


Suricata es un moderno sistema de monitoreo de seguridad, prevención y detección de intrusiones de red de alto rendimiento y código abierto para sistemas basados en Unix/Linux, FreeBSD y Windows. Fue desarrollado y propiedad de una fundación sin fines de lucro, la OISF (Open Information Security Foundation).

Recientemente, el equipo del proyecto OISF anunció el lanzamiento de Suricata 1.4.4 con actualizaciones menores pero cruciales y corrigió algunos errores esenciales con respecto a la versión anterior.

Características de Suricata

Suricata es un motor de detección y prevención de intrusiones basado en reglas que hace uso de conjuntos de reglas desarrollados externamente para monitorear el tráfico de la red, además de poder manejar el tráfico de varios gigabytes y brinda alertas por correo electrónico a los administradores del sistema/red.

Suricata proporciona velocidad e importancia en la determinación del tráfico de la red. El motor está desarrollado para aplicar la mayor potencia de procesamiento que ofrecen los modernos conjuntos de chips de hardware de múltiples núcleos.

El motor no solo proporciona palabras clave para TCP, UDP, ICMP e IP, sino que también tiene un soporte integrado para HTTP, FTP, TLS y SMB. Un administrador del sistema puede crear su propia regla para detectar una coincidencia dentro de un flujo HTTP. Esto se convertirá en una detección y control de malware diferente.

El motor ciertamente tomará reglas que son coincidencias de IP basadas en el RBN y listas de IP comprometidas en Emerging Threats y las mantendrá en un preprocesador de coincidencia rápida específico.

Paso: 1 Instalar Suricata en RHEL, CentOS y Fedora

Debe usar el repositorio EPEL de Fedora para instalar algunos paquetes necesarios para los sistemas i386 y x86_64.

  1. Habilite el repositorio EPEL de Fedora

Antes de que pueda compilar y construir Suricata para su sistema, instale los siguientes paquetes de dependencia que son necesarios para la instalación posterior. El proceso puede tardar un poco en completarse, según la velocidad de Internet.

# yum -y install libpcap libpcap-devel libnet libnet-devel pcre \
pcre-devel gcc gcc-c++ automake autoconf libtool make libyaml \
libyaml-devel zlib zlib-devel libcap-ng libcap-ng-devel magic magic-devel file file-devel

A continuación, cree Suricata con soporte IPS. Para esto, necesitamos los paquetes “libnfnetlink” y “libnetfilter_queue”, pero estos paquetes preconstruidos no están disponibles en los repositorios EPEL o CentOS Base. Entonces, necesitamos descargar e instalar rpms desde el repositorio Emerging Threats CentOS.

# rpm -Uvh http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnetfilter_queue-0.0.15-1.i386.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnetfilter_queue-devel-0.0.15-1.i386.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnfnetlink-0.0.30-1.i386.rpm \ 
http://rules.emergingthreatspro.com/projects/emergingrepo/i386/libnfnetlink-devel-0.0.30-1.i386.rpm
# rpm -Uvh http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnetfilter_queue-devel-0.0.15-1.x86_64.rpm \
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-0.0.30-1.x86_64.rpm \ 
http://rules.emergingthreatspro.com/projects/emergingrepo/x86_64/libnfnetlink-devel-0.0.30-1.x86_64.rpm

Descargue los archivos fuente de Suricata más recientes y compílelos usando los siguientes comandos.

# cd /tmp
# wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz
# tar -xvzf suricata-1.4.4.tar.gz
# cd suricata-1.4.4

Ahora usamos la función de configuración automática de Suricata para crear automáticamente todos los directorios necesarios, archivos de configuración y los últimos conjuntos de reglas.

# ./configure && make && make install-conf
# ./configure && make && make install-rules
# ./configure && make && make install-full

Paso 2: instalar Suricata en Debian y Ubuntu

Antes de comenzar la instalación, debe tener los siguientes paquetes de requisitos previos instalados en el sistema para continuar. Asegúrese de ser usuario root para ejecutar el siguiente comando. Este proceso de instalación puede llevar algún tiempo, dependiendo de la velocidad actual de Internet.

# apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev \
build-essential autoconf automake libtool libpcap-dev libnet1-dev \
libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev \
pkg-config magic file libhtp-dev

De forma predeterminada, funciona como IDS. Si desea agregar compatibilidad con IDS, instale algunos paquetes necesarios de la siguiente manera.

# apt-get -y install libnetfilter-queue-dev libnetfilter-queue1 libnfnetlink-dev libnfnetlink0

Descargue el último tar-ball de Suricata y constrúyalo usando los siguientes comandos.

# cd /tmp
# wget http://www.openinfosecfoundation.org/download/suricata-1.4.4.tar.gz
# tar -xvzf suricata-1.4.4.tar.gz
# cd suricata-1.4.4

Utilice la opción Configuración automática de Suricata para crear automáticamente todos los directorios, archivos de configuración y conjuntos de reglas necesarios, como se muestra a continuación.

# ./configure && make && make install-conf
# ./configure && make && make install-rules
# ./configure && make && make install-full

Paso 3: Configuración básica de Suricata

Después de descargar e instalar Suricata, ahora es el momento de continuar con la configuración básica. Cree las siguientes direcciones.

# mkdir /var/log/suricata
# mkdir /etc/suricata

La siguiente parte es copiar archivos de configuración tales como "clasificación.config", "referencia.config" y "suricata.yaml" del directorio de instalación de la compilación base.

# cd /tmp/suricata-1.4.4
# cp classification.config /etc/suricata
# cp reference.config /etc/suricata
# cp suricata.yaml /etc/suricata

Por último, inicie "Suricata Engine" por primera vez y especifique el nombre del dispositivo de interfaz de su preferencia. En lugar de eth0, puede incluir la tarjeta de red de su preferencia.

# suricata -c /etc/suricata/suricata.yaml -i eth0

23/7/2013 -- 12:22:45 -  - This is Suricata version 1.4.4 RELEASE
23/7/2013 -- 12:22:45 -  - CPUs/cores online: 2
23/7/2013 -- 12:22:45 -  - Found an MTU of 1500 for 'eth0'
23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the defrag hash... 65536 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 65535 defrag trackers of size 104
23/7/2013 -- 12:22:45 -  - defrag memory usage: 8912792 bytes, maximum: 33554432
23/7/2013 -- 12:22:45 -  - AutoFP mode using default "Active Packets" flow load balancer
23/7/2013 -- 12:22:45 -  - preallocated 1024 packets. Total memory 3170304
23/7/2013 -- 12:22:45 -  - allocated 131072 bytes of memory for the host hash... 4096 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 1000 hosts of size 76
23/7/2013 -- 12:22:45 -  - host memory usage: 207072 bytes, maximum: 16777216
23/7/2013 -- 12:22:45 -  - allocated 2097152 bytes of memory for the flow hash... 65536 buckets of size 32
23/7/2013 -- 12:22:45 -  - preallocated 10000 flows of size 176
23/7/2013 -- 12:22:45 -  - flow memory usage: 3857152 bytes, maximum: 33554432
23/7/2013 -- 12:22:45 -  - IP reputation disabled
23/7/2013 -- 12:22:45 -  - using magic-file /usr/share/file/magic

Después de varios minutos, verifique que el motor esté funcionando correctamente y reciba e inspeccione el tráfico.

# cd /usr/local/var/log/suricata/
# ls -l

-rw-r--r-- 1 root root  25331 Jul 23 12:27 fast.log
drwxr-xr-x 2 root root   4096 Jul 23 11:34 files
-rw-r--r-- 1 root root  12345 Jul 23 11:37 http.log
-rw-r--r-- 1 root root 650978 Jul 23 12:27 stats.log
-rw-r--r-- 1 root root  22853 Jul 23 11:53 unified2.alert.1374557837
-rw-r--r-- 1 root root   2691 Jul 23 12:09 unified2.alert.1374559711
-rw-r--r-- 1 root root   2143 Jul 23 12:13 unified2.alert.1374559939
-rw-r--r-- 1 root root   6262 Jul 23 12:27 unified2.alert.1374560613

Mire el archivo "stats.log" y asegúrese de que la información mostrada esté actualizada en tiempo real.

# tail -f stats.log

tcp.reassembly_memuse     | Detect                    | 0
tcp.reassembly_gap        | Detect                    | 0
detect.alert              | Detect                    | 27
flow_mgr.closed_pruned    | FlowManagerThread         | 3
flow_mgr.new_pruned       | FlowManagerThread         | 277
flow_mgr.est_pruned       | FlowManagerThread         | 0
flow.memuse               | FlowManagerThread         | 3870000
flow.spare                | FlowManagerThread         | 10000
flow.emerg_mode_entered   | FlowManagerThread         | 0
flow.emerg_mode_over      | FlowManagerThread         | 0

Enlaces de referencia

Página de inicio de Suricata
Guía del usuario de Suricata