Suricata una herramienta de detección de intrusos, prevención y seguridad

Suricata una herramienta de detección de intrusos, prevención y seguridad

Suricata es un motor de detección de amenazas potente, versátil y de código abierto que proporciona funcionalidades para la detección de intrusiones (IDS), la prevención de intrusiones (IPS) y el monitoreo de seguridad de la red. Realiza una inspección profunda de paquetes junto con un patrón que coincide con una mezcla que es increíblemente poderosa en la detección de amenazas.

Al momento de escribir esta guía, la última versión de Suricata es 6.0.5.

Características de Suricata

  • IDS/IPS - Suricata está basada en reglas Detección de intrusos y Prevención Motor que aprovecha los conjuntos de reglas desarrollados externamente como el conjunto de reglas de Talos y las amenazas emergentes del conjunto de reglas de Suricata para monitorear el tráfico de la red para cualquier actividad maliciosa, violación de políticas y amenazas.
  • Detección de protocolo automático - Suricata Engine detecta automáticamente protocolos como HTTP y HTTPS. FTP y SMB en cualquier puerto y aplique la lógica adecuada de detección y registro. Esto es útil para detectar malware y canales CNC.
  • Lua Scripting - Suricata puede invocar Lua Scripts que proporcionan detección de malware avanzada para detectar y decodificar el tráfico de malware que de otra manera es difícil de detectar.
  • Múltiple - Suricata proporciona velocidad e importancia en la determinación del tráfico de red. El motor se desarrolla para aplicar la mayor potencia de procesamiento que ofrece modernos conjuntos de hardware de múltiples núcleos.

Instalación de la herramienta de detección de intrusos de Suricata en Linux

En esta sección, demostraremos cómo instalar Suricata Sobre distribuciones con sede en Debian y Rhel.

Instale Suricata en Debian/Ubuntu & Mint

Suricata Es provisto por Debian / Ubuntu repositorios y se pueden instalar fácilmente utilizando el Administrador de paquetes APT. Sin embargo, vale la pena señalar que esto no instala la última versión de Suricata. Para instalar la última versión, debe instalarla desde una fuente que cubriremos más adelante en esta guía.

Instalar Suricata utilizando el apto Administrador de paquetes, ejecute el comando:

$ sudo apt instalación suricata -y 
Instale Suricata en Ubuntu

Suricata comienza automáticamente una vez instalada. Puedes confirmar esto de la siguiente manera.

$ sudo systemctl status suricata 
Consulte Suricata en Ubuntu

Instale Suricata en Rhel, Rocky, Almalinux y Fedora

Instalar Suricata en Rhel Distribuciones como Centos Stream, Rocky Linux, Almalinux, Fedora y Rhel, primero debe habilitar el repositorio de Epel.

$ dnf instalación https: // dl.federaproject.org/pub/epel/epel-liber-latest-9.noarch.RPM [Rhel 9] $ dnf install https: // dl.federaproject.org/pub/epel/epel-liber-latest-8.noarch.RPM [Rhel 8] $ yum instalación https: // dl.federaproject.org/pub/epel/epel-liber-latest-8.noarch.RPM [Rhel 7] 

Una vez Epel está habilitado, instale los siguientes paquetes requeridos y agregue el Oisf repositorio de su sistema.

----------- En sistemas fedora ----------- $ sudo dnf install dnf-plugins-core $ sudo dnf coPr habilitan @oisf/suricata-6.0 ----------- En sistemas RHEL ----------- $ sudo dnf install yum-plugin-coop $ sudo dnf copr habilitan @oisf/suricata-6.0 

A continuación, instalar Suricata Usando el administrador de paquetes DNF o el administrador de paquetes Yum como se muestra.

$ sudo dnf install suricata -y o $ sudo yum instalación suricata -y 
Instale Suricata en RHEL

Una vez Suricata está instalado, inicia y verifica su estado.

$ sudo systemctl inicio suricata $ sudo systemctl status suricata 
Consulte Suricata en RHEL

Instale Suricata desde la fuente en Linux

Los repositorios de sistema operativo predeterminado no proporcionan la última versión de Suricata. Si su objetivo es instalar la última versión de Suricata, Entonces debe instalarlo desde la fuente.

Al momento de escribir esta guía, la última versión de Suricata es 6.0.5. Instalar Suricata de la fuente en Ubuntu/Debian y Rhel distribuciones, instalar las siguientes bibliotecas, herramientas de compilación y dependencias.

----------- Sobre los sistemas Debian ----------- $ sudo apt install rustc build-esencial de carga libpcre3 libpcre3-dbg libpCre3-dev Make Autoconf Automake libbTool libcap-ng0 haz libmagic-dev-libjansson-dev -viSson4 libcap-dev-libnet1 -dev libyaml-0-2 libyaml-devszib1g libjan -ng-dev pkg-config libnetFilter-coleue1 libnfnetlink0 libnetfilter-cold ----------- En sistemas RHEL ----------- $ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc cargo lz4- Desarrollar -y 

A continuación, instale la herramienta SURICATA-UPDATE para actualizar las reglas de Suricata.

$ sudo apt install python3-pip [en Debian] $ sudo yum instalación python3-pip [en Rhel] $ PIP3 Install-Upgrade Suricata-Update 

Luego crea un enlace simbólico a /usr/bin/suricata-update.

$ sudo ln -s/usr/local/bin/suricata-update/usr/bin/suricata-update 

Ahora diríjase a la página de descarga oficial de Suricata y descargue el último archivo de Tarball para Linux usando el comando wget.

$ wget https: // www.OpenInfosecfoundation.org/descargar/Suricata-6.0.6.alquitrán.GZ 

Una vez descargado, extraiga el archivo de tarball e instálelo.

$ sudo tar -xvf suricata -6.0.6.alquitrán.GZ $ CD SURICATA-6.0.6 $ ./configurar --enable-nfqueue--prefix =/usr --sysconfdir =/etc --localstatedir =/var $ make $ make install-full 

Configuración de Suricata en Linux

Para comenzar a configurar Suricata, Necesitamos especificar la IP interna y la red externa. Para hacer esto, acceda al archivo de configuración.

$ sudo vim/etc/suricata/suricata.yaml 

Para el Home_net Directiva, especifique la dirección IP de su sistema Linux.

Home_net: "[173.82.235.7] " 

A continuación, configure el External_net Directiva a "!$ Home_net".

Externo_net: "!$ Home_net " 
Configurar Suricata en Linux

A continuación, especifique la interfaz de red en la que Suricata inspeccionará el tráfico de red. En nuestro caso, este es el eth0 interfaz.

Puede verificar su interfaz de red activa utilizando el comando IP:

$ ip a 

En el archivo de configuración, actualice la directiva de interfaz con el nombre de la interfaz de red.

- Interfaz: eth0 
Configurar la interfaz de red Suricata

A continuación, asegúrese de que el rigor predeterminado El atributo está configurado en /etc/suricata/reglas.

Configurar las reglas de Suricata

Luego guarde los cambios y cierre el archivo de configuración. Luego reiniciar Suricata Para que los cambios se apliquen.

$ sudo systemctl status suricata 

Actualización de reglas de Suricata en Linux

Por defecto, Suricata barcos con un conjunto limitado de reglas de detección ubicadas en el /etc/suricata/reglas directorio. Sin embargo, estos se consideran débiles e ineficaces para detectar intrusiones. Necesitas cargar el Amenaza emergente (En) Reglas que se consideran los conjuntos de reglas más completos para Suricata.

Suricata proporciona una herramienta conocida como Suricata-Update que obtiene conjuntos de reglas de proveedores externos. Para obtener un conjunto de reglas actualizado para su servidor, ejecute el siguiente comando.

$ sudo suricata -update -o/etc/suricata/reglas 
Actualizar los conjuntos de reglas de Suricata Descargar reglas de amenazas emergentes de Suricata

Desde la salida, puede ver el Suricata-Update Obteniendo el gratis Amenazas emergentes y reglas abiertas y salvarlos a Suricata's /etc/suricata/reglas/suricata archivo de reglas. Además, indica el número de reglas procesadas. En este ejemplo, un total de 35941 fueron agregados. De aquellos, 28221 estaban habilitados, 18 fueron eliminados y 1249 fueron modificados.

Agregar conjuntos de reglas de Suricata en Linux

El Suricata-Update La herramienta le permite obtener reglas de los proveedores de reglas. Algunos son libres, como el ET abierto establecer, mientras que otros requieren una suscripción pagada.

Para enumerar el conjunto predeterminado de proveedores de reglas, ejecute el Suricata-Update comando como se muestra.

$ sudo suricata-update list-fuente 
Lista de proveedores de reglas de Suricata

Para agregar un conjunto de reglas, por ejemplo, el Tgreen/caza de reglas, Ejecutar el siguiente comando.

$ sudo suricata-update habilita-fuente tgreen/caza 
Agregar conjunto de reglas de Suricata

Una vez que hayas agregado el conjunto de reglas, ejecutar el Suricata-Update comandar una vez más con el -O/ETC/SURICATA/REGLAS bandera.

$ sudo suricata -update -o/etc/suricata/reglas 
Actualizar el conjunto de reglas de Suricata

Prueba de reglas de Suricata en Linux

Antes de comenzar a probar Suricata, Se recomienda probar si la configuración está bien. Para hacerlo, ejecute el siguiente comando:

$ sudo suricata -t -c/etc/suricata/suricata.Yaml -V 

Asegúrese de que no se informen errores. Si está ejecutando Rhel, Centos Stream, Fedora y Rocky Linux Start y habilitar Suricata.

$ sudo SystemCTL Start Suricata $ sudo SystemCtl Enable Suricata 

Hasta ahora, hemos instalado y configurado con éxito Suricata y actualizó los conjuntos de reglas. El conjunto de reglas abiertas de ET contiene más de 30,000 reglas para detectar tráfico malicioso. En esta sección, pondremos a Suricata a la prueba y verificaremos si puede detectar el tráfico de red sospechoso.

Probaremos el ET abierto conjunto de reglas simulando una intrusión según lo recomendado por la guía QuickStart de Suricata.

La funcionalidad IDS se probará con una ID de firma de 2100498 enviando una solicitud HTTP al TestMynids.organizar sitio web que es un NIDS (Sistema de intrusión y detección de red) estructura.

$ curl http: // testMynids.org/uid/índice.html 

Debe obtener la siguiente salida.

uid = 0 (raíz) gid = 0 (raíz) grupos = 0 (raíz) 

El Http La solicitud enviada está diseñada para activar una alerta imitando la salida del identificación comando que podría ejecutarse en un sistema remoto comprometido a través de un shell.

Ahora examinemos los registros de Suricata para una alerta correspondiente. Suricata se envía con dos archivos de registro que vienen habilitados de forma predeterminada.

/var/log/suricata/fast.log/var/log/suricata/eve.registro 

Verificaremos si hay una entrada de registro en el /var/log/suricata/fast.registro Archivo de registro que corresponde a la solicitud CURL usando el comando GREP. Buscaremos las entradas de registro utilizando el 2100498 Identificador de reglas de la documentación QuickStart.

$ GREP 2100948/var/log/suricata/fast.registro 

Obtendrá la siguiente salida que significa una intrusión. Aquí, 173.82.235.7 es la dirección IP pública del servidor.

09/09/2022-22: 17: 06.796434 [**] [1: 2100498: 7] GPL Attack_Response Id Check devuelto root [**] [Clasificación: tráfico potencialmente malo] [Prioridad: 2] TCP 13.226.210.123: 80 -> 173.82.235.7: 33822 
Verifique los registros de Suricata

Alternativamente, puede verificar el /var/log/suricata/eve.registro Archivo de registro para la ID de firma de 2100498 como se muestra.

$ jq 'select (.alerta .firature_id == 2100498) '/var/log/suricata/eve.json 
Verifique el registro de Suricata para obtener una identificación de firma

Esta fue una guía completa sobre cómo instalar y configurar Suricata en Linux. Hemos analizado varios métodos de instalación, cómo configurar Suricata y actualizar Suricata reglas, así como cómo administrar el servicio Suricata Systemd y realizar pruebas de intrusión de red.

Es nuestra esperanza que ahora pueda instalar y usar cómodamente Suricata Para salvaguardar su sistema de intrusiones de red o tráfico malicioso.