Ya hemos visto en artículos anteriores como instalar, configurar, incluso añadir un sensor suricata a un SIEM Prelude. Esto lo hicimos con la versión 1.0.2 de Suricata.
En esta ocasión instalaremos y configuraremos la versión 1.2.1 de Suricata pero, además, añadiremos la funcionalidad de extracción de ficheros de sesiones HTTP.
Ya hemos hablado en varias ocasiones de la forma que tenemos de extraer ficheros de datos Binarios / Objetos HTTP a partir de una captura de tráfico de red, e incluso la forma de extraer fichero de impresión en red. También la forma de hacerlo con Tcpxtract, Justniffer, Assniffer, con Xplico, etc.
Al lio..
Instalación de Suricata 1.2.1
Yo ya tengo todos los prerequisitos e instalo directamente. Cualquier problema o para una primera instalación de suricata teneis más información sobre instalación y resolución de errores aquí: IDS / IPS Suricata. Instalación, configuración y puesta en marcha.
wget http://www.openinfosecfoundation.org/download/suricata-1.2.1.tar.gz
tar -xvzf suricata-1.2.1.tar.gz
cd suricata-1.2.1
./configure –enable-prelude
–enable-prelude por si usamos suricata como un sensor prelude que es mi caso.
Ahora, si no tememos las carpetas creadas por otra instalación anterior de suricata hacemos:
mkdir /var/log/suricata/
mkdir /etc/suricata
cp suricata.yaml /etc/suricata
cp classification.config /etc/suricata
make
sudo make install
cd /etc/suricata
Vamos a descargar las rules o reglas Emerging-Threats:
wget http://www.emergingthreats.net/rules/emerging.rules.tar.gz
tar xzvf emerging.rules.tar.gz
La extracción de ficheros de sesiones HTTP en suricata se realiza mediante reglas. Un ejemplo de estas reglas (files.rules) las descargaremos y ubicaremos en /etc/suricata/rules :
Editamos files.rules y descomentamos las reglas que queramos usar.
Modificación de archivo de configuración suricata.yaml
Editamos /etc/suricata/suricata.yaml
Aunque no es necesario para la extracción de ficheros, yo he realizado la modificación siguiente:
– pcap-log:
enabled: yes
filename: log.pcap
Para la extracción de ficheros sí nos hará falta:
– file:
enabled: yes
log-dir: files
force-magic: no
log-dir files hará que los ficheros extraidos se depositen en /var/log/suricata/files
También en la sección stream:
stream:
memcap: 32mb
checksum_validation: no
inline: no
reassembly:
memcap: 64mb
depth: 0
toserver_chunk_size: 2560
toclient_chunk_size: 2560
depth en 0, es decir, sin límite.
En cualquier caso también nos hará falta:
- threshold-file: /etc/suricata/threshold.config
- default-rule-path: /etc/suricata/rules/
- classification-file: /etc/suricata/classification.config
- reference-config-file: /etc/suricata/reference.config
En la sección libhtp:
libhtp:
default-config:
personality: IDS
# Can be specified in kb, mb, gb. Just a number indicates
# it’s in bytes.
request_body_limit: 0
response-body-limit: 0
server-config:
– apache:
address: [192.168.1.0/24, 127.0.0.0/8, «::1»]
personality: Apache_2_2
# Can be specified in kb, mb, gb. Just a number indicates
# it’s in bytes.
request_body_limit: 0
response-body-limit: 0
– iis7:
address:
– 192.168.0.0/24
– 192.168.10.0/24
personality: IIS_7_0
# Can be specified in kb, mb, gb. Just a number indicates
# it’s in bytes.
request_body_limit: 0
response-body-limit: 0
En la sección rule-files, que es donde se indican las rules a cargar, comentamos o descomentamos las reglas de nuestro interés y, además, añadimos la regla que anteriormente descargamos files.rules:
– files.rules
Otras modificaciones pueden ser la ubicación de puertos de servicios que se encuentran con la indicación de puertos por defecto, nuestra HOME-NET, etc.
y listo.
Sobre algunas características de suricata ya escribí algo aquí: IDS / IPS Suricata. Entendiendo y configurando Suricata. Parte I
Extracción de ficheros con suricata.
Ya solo nos queda ejecutar suricata:
sudo suricata -c /etc/suricata/suricata.yaml -r ../pcap1/ids_2.pcap
Vemos la salida de información en consola:
Vamos a /var/log/suricata y vemos:
Ya, en otro capítulo de Suricata IDS/IPS os hablé de los logs:
IDS / IPS Suricata. Instalación, configuración y puesta en marcha.
Dentro de la carpeta /var/log/suricata/files tendremos una serie de ficheros extraídos de la forma:
Tendríamos ficheros de texto, pfd, imágenes .js, etc ,etc ,etc,
Si editamos, por ejemplo, (estaría más a bajo del listado) file.9984.meta:
TIME: 12/07/2011-12:16:52.887378 PCAP PKT NUM: 869016 SRC IP: 195.xxx.152.xx DST IP: 192.168.101.240 PROTO: 6 SRC PORT: 80 DST PORT: 36908 FILENAME: /hphotos-xp-cpd4/381174_249112748_148457649_683242_1878105586_a.jpg MAGIC: JPEG image data, JFIF standard 1.02, comment: "*" STATE: CLOSED SIZE: 10356
Tenemos información de la extracción respecto a origen, destino, puerto, etc. El archivo meta hace referencia, en este caso a file.9984.
En el explorador veríamos los ficheros:
Relacionado con suricata IDS / IPS:
- IDS / IPS Suricata. Instalación, configuración y puesta en marcha.
- IDS / IPS Suricata. Entendiendo y configurando Suricata. Parte I
- Instalando y Configurando Centro IDS / IPS con Prelude SIEM, Snort y Prewikka. Parte 4. Sensor Suricata.
======
Y hasta aquí por hoy. Hasta lá próxima-
Me ha gustado mucho….. Gracias….
Muchas gracias a tí Francisco por leerme.
Hola Alfon. Hace tiempo que te leo y debo decirte que tu página es (de lejos) la mejor a nivel nacional sobre seguridad y redes enfocadas al análisis del tráfico de red que en definitiva es la esencia de la seguridad en redes y me sorprende ver como no tienes muchos mas comentarios sobre temas interesantes como este.
Me gustaría comentar una cosa y no se si es el lugar adecuado pero ahí va….
Hace tiempo que vengo escuchando muchas bondades de suricata, entre ellas que se puede usar el potencial de la GPU para mejorar el rendimiento del IDS. Hay algunos que afirman que es mas eficiente que snort a la hora de realizar el reensamblado de los paquetes tcp/ip y procesamiento de paquetes en general.
En definitiva, lo que comentas es una característica que no se si se implementa en snort, pero me gustaría saber en realidad, que ventaja real supone usar suricata en lugar de snort, siendo esta última una herramienta mucho mas madura que lleva «cociéndose» desde hace muchos años, frente a la joven suricata que solo al revisar su archivo de configuración ya me abundan serias dudas sobre si realmente es mejor que snort…
Como último, volviendo al tema principal del artículo me gustaría saber si es posible realizar eso mismo con otros protocolos, como por ejemplo ftp, o si es posible realizarlo con Snort, que es el que uso.
Un saludo y gracias Alfon.
Y por favor, no dejes de escribir nunca!!!! x)
Perdona el retraso nx0. Ante todo gracias por tus comentarios ;-))
En el Twitter he dejado algunos documentos sobre rendimiento. Estoy preparando material para publicar respecto a tus cometarios. Sobre GPU/CUDA y aceleración gráfica, aún no está demasiado maduro pero avanza sensiblemente. Aquí tienes una guía algo antigua sobre su configuración: https://t.co/3eOXlTGQ Sobre comparativa tienes: http://t.co/Km2UP8rA y también de 2011: http://www.aldeid.com/wiki/Suricata-vs-snort Habría que hacer nuevas comparativas porque la beta 1.3 tiene muchas novedades.
Saludos,
Wow eso de utilizar CUDA esta muy pero que muy bien
Pingback: Suricata IDS/IPS 1.4b1 Instalación y configuración en Ubuntu mediante PPA. Custom HTTP logging. | Seguridad y Redes