Cargando



Suricata sistema de deteccion de Intrusos

Suricata es una herramienta gratuita y de código libre que se ha desarrollado para controlar el tráfico de red y su principal objetivo es que rastree o busque los eventos de seguridad que pueden indicar un ataque o posible intrusión en un servidor o en algún equipo de la red.


nov 02 2015 21:15
Avanzado
nov 02 2015 21:49
Suricata se basa en el sistema de Snort IDS, que también es un sistema de detección de intrusos, Snort lo hemos visto en otros tutoriales como:
Suricata que es capaz de realizar análisis multihilo, de forma nativa decodificar flujos de red y ensamblar archivos de secuencias de red mientras realiza el análisis.


suricata.jpg



Esta herramienta es muy escalable esto significa que puede ejecutar varias instancias y equilibrando la carga si tenemos varios procesadores permitiendo la utilizacion de todo el potencial de un equipo. Esto permite que no tengamos problemas de consumo de recursos mientras ejecutamos un análisis.

Los protocolos más comunes son reconocidos automáticamente por Suricata, tanto http, https, ftp, smtp, pop3 y otros, permitiendo así que podamos configurar reglas para los permisos y el filtrado del trafico que entra y sale, además controlamos el puerto por el que se accede a cada protocolo.

Otro de los servicios que brinda es la identificación Archivo, sumas de verificación MD5 y control de archivos comprimidos. Suricata puede identificar que tipos de archivo están tranfiriéndose o accediéndose en la red. Si queremos acceder a un archivo, esta tarea hará que Suricata cree un archivo en el disco con formato de metadatos que describe la situación y el la tarea realizada. La suma de verificación MD5 sirve para determinar que el archivo de metadatos que guarda la información de las tareas realizadas no ha sido modificado.

Instalar Suricata en nuestro sistema operativo


Suricata se puede utilizar en cualquier plataforma Linux, Mac, FreeBSD, UNIX y Windows lo podemos descargar desde su pagina oficial o bien si tenemos Linux instalar desde los repositorios.


panta01.jpg


Instalaremos Suricata en este tutorial en Linux Mint. Para instalar Suricata abrimos una ventana de terminal y escribimos los siguientes comandos:
sudo add-apt ppa-repositorio: oisf / suricata estable
sudo update apt-get
sudo apt-get install suricata
Con esto estaría instalado.

Configurar Suricata en un servidor


Desde Linux deberemos acceder a la terminal en modo administrador, comenzaremos con la creación de una carpeta donde almacenar la información que ira recogiendo y registrando Suricata.
sudo mkdir /var/log/suricata
Deberemos además verificar que el sistema se encuentre en la carpeta etc, sino lo creamos:
sudo mkdir /etc/suricata
Ya tendremos instalado Suricata y el Sistema de detección de intrusiones y analizador de trafico de red. En esta etapa no hay reglas definidas para filtrar por ello deberemos crear reglas o bien utilizar. Emerging Threats que es un repositorio de reglas y amenazas conocidas para Snort y Suricata, algo así como la base de datos de un antivirus pero para intrusiones utilizar las reglas de Emerging Threats es libre y gratuito.


A continuación podemos descargar archivos de reglas desde la terminal con los siguientes comandos:
wget http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Luego deberemos descomprimir el archivo y copiarlo a la carpeta /etc/suricata
tar zxvf emerging.rules.tar.gz
cp -r rules /etc/suricata/
A continuación deberemos configurar el motor de análisis de Suricata, con la configuración por defecto utilizará las interfaces de red eth0 con reglas que contenga y definamos en el archivo signatures.rules, para configurar nuevas reglas debemos utilizar el siguiente comando:
suricata -c suricata.yaml -s signatures.rules -i eth0
Serán configuradas las reglas.

Interfaces de red disponibles


Para comprobar las conexiones o de interfaces de red disponibles, desde una ventana de terminal escribimos el siguiente comando:
Ifconfig

panta02.jpg


Ahora se puede ver cual queremos auditar sabiendo la IP de cada una y su nombre. Para iniciar el motor y asignar una interfaz de red por ejemplo la red wifi, escribimos el siguiente comando:
sudo suricata -c /etc/suricata/suricata.yaml -i wlan0
Si queremos auditar la red cableada utilizaremos eth0. Para ver si el motor está funcionando correctamente y realmente esta realizando inspecciones en la red deberemos utilizar el siguiente comando:
cd /var/log/suricata
tail http.log
Esto nos mostrará un listado con la fecha la hora y la web o la ip a la que se accedió y a través de que puerto. Si miramos el archivos statslog, podremos observar, el flujo de tráfico y las alertas detectadas, debemos distinguir la páginas que navegamos de aquellas que se redireccionan mediante publicidad.


panta03.jpg

tail -f stats.log
También podemos descargar los archivos de log y abrirlos con un editor de texto o un software propio para mejorar la lectura.
Un ejemplo es un archivo Json que se denomina even.json


panta04.jpg



Aquí podemos ver los puertos utilizados y las ip podemos observar que la ip 31.13.85.8 se corresponde a Facebook, también detectamos un acceso a c.live.com, que sería la web de correo de Outlook.


panta05.jpg



Veamos otro log donde donde detectamos accesos desde Google Chrome a la web de Solvetic.com.


panta06.jpg


Para no controlar todo el tráfico podemos determinar el monitor de un grupo o de un usuario determinado con el siguiente comando.
sudo suricata -c /etc/suricata/suricata.yaml -D -i eth0 --user=jose01 --group=contabilidad
Debemos tener en cuenta que ejecutar los conjuntos de reglas, incluso de tamaño modesto para hacer un monitoreo de un flujo de tráfico HTTP utilizando el repositorios de las amenazas completo y su conjunto de reglas requerirá aproximadamente una un consumo de recursos de CPU y memoria RAM equivalente a un trafico de 50 Mb por segundo aunque no es mucho como para afectar un servidor.

Reglas para ignorar trafico


En algunos casos hay razones para ignorar cierto tráfico que no nos interesa monitorear. Tal vez un host o red de confianza o un sitio web.

Veremos algunas estrategias para ignorar el tráfico con suricata. Mediante los filtros de captura se le puede decir a Suricata, que seguir y que no. Por ejemplo, un sencillo filtro de protocolo tcp sólo auditara los paquetes TCP.

Si algunos equipos o redes deben ser ignorados, deberemos utilizar not IP1 o ip/ 24, para ignorar todos los equipos de una red.

Aprobar un paquete y su trafico


Para aprobar reglas con Suricata y determinar que no se filtre un paquete por ejemplo proveniente de una determinada ip y del protocolo TCP entonces utilizaremos el siguiente comando en los archivos de reglas establecidos en la carpeta /etc/suricata/rules
Pass 192.168.0.1 any <> any any (msg: "Aceptar todo el tráfico de esta ip";)
Para ver que módulos tenemos activados de Suricata abriremos una ventana de terminal y luego escribimos el siguiente comando:
suricata --build-info
Hemos visto como Suricata con sus servicio IDS basado en reglas para controlar el tráfico de red y proporcionar alertas al administrador del sistema cuando se producen eventos sospechosos, es muy útil para que acompañado por otros sistemas de seguridad de red permita proteger nuestros datos de accesos indebidos.

Suricata cuenta con la funcionalidad y opciones de bibliotecas que pueden añadirse mediante plugins para incorporarse como monitor o API en otras aplicaciones.

Algo importante es conocer que servicios están activos y que debemos monitorear para no tener informes larguísimos de servicios o puertos que no funcionan.

Si por ejemplo los servidores son solo para web y solo necesitan el puerto 80 para HTTP, no hay razón para monitorear el servicio SMTP que es para enviar correo.

¿Te ayudó este Tutorial?


Sin comentarios, sé el primero!

No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!

X