Instalación y configuración de SNORT

26
INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE 2012 Javier García Cambronel SEGUNDO DE ASIR 01/03/2012

description

2012INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: ACID BASEJavier García Cambronel SEGUNDO DE ASIR 01/03/2012[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: ACID BASE] 1 de marzo de 2012INTRODUCCIÓN¿QUÉ ES SNORT Y QUÉ ES ACID?PREREQUISITOS PARA SNORT CON ACIDINSTALAMOS SNORT Y ACID BASEANÁLISIS DE VULNERABILIDADES Y SU DETECCIONSEGUNDO DE ASIRPágina 1[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: ACID BASE] 1 de marzo de 2012INTRODUCCIÓNEste documento

Transcript of Instalación y configuración de SNORT

Page 1: Instalación y configuración de SNORT

INSTALACION Y CONFIGURACION DE SNORT

- VISUALIZACION: ACID BASE

2012

Javier García Cambronel SEGUNDO DE ASIR

01/03/2012

Page 2: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 1

INTRODUCCIÓN

¿QUÉ ES SNORT Y QUÉ ES ACID?

PREREQUISITOS PARA SNORT CON ACID

INSTALAMOS SNORT Y ACID BASE

ANÁLISIS DE VULNERABILIDADES Y SU

DETECCION

Page 3: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 2

INTRODUCCIÓN

Este documento trata de describir los pasos a realizar para la instalación y configuración de

un sistema de detección de intrusiones. Durante la escritura del documento daré algunos

pasos por sabidos o ya realizados, para cualquier duda recomiendo consultar la

documentación oficial de las aplicaciones a configurar.

¿QUÉ ES SNORT Y QUÉ ES ACID?

SNORT

Es un sniffer de paquetes y un detector de intrusos basado en red (se monitoriza todo un

dominio de colisión). Es un software muy flexible que ofrece capacidades de

almacenamiento de sus bitácoras tanto en archivos de texto como en bases de datos

abiertas como lo es MySQL. Implementa un motor de detección de ataques y barrido de

puertos que permite registrar, alertar y responder ante cualquier anomalía previamente

definida. Así mismo existen herramientas de terceros para mostrar informes en tiempo real

(ACID) o para convertirlo en un Sistema Detector y Preventor de Intrusos.

Un verdadero IDS analiza los paquetes, marca las transmisiones que sean potencialmente

maliciosas y las almacena en un registro formateado, así, Snort utiliza la biblioteca estándar

libcap y tcpdump como registro de paquetes en el fondo. Puede funcionar como sniffer

(podemos ver en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico),

registro de paquetes (permite guardar en un archivo los logs para su posterior análisis, un

análisis offline) o como un IDS normal (en este caso NIDS). Cuando un paquete coincide con

algún patrón establecido en las reglas de configuración, se logea. Así se sabe cuándo, de

dónde y cómo se produjo el ataque. La característica más apreciada de Snort, además de su

funcionalidad, es su subsistema flexible de firmas de ataques. Snort tiene una base de datos

de ataques que se está actualizando constantemente y a la cual se puede añadir o actualizar

a través de la Internet. Los usuarios pueden crear 'firmas' basadas en las características de

los nuevos ataques de red y enviarlas a la lista de correo de firmas de Snort, para que así

todos los usuarios de Snort se puedan beneficiar. Esta ética de comunidad y compartir ha

convertido a Snort en uno de los IDSes basados en red más populares, actualizados y

robustos. Resulta imprescindible tomar más medidas complementarias al amparo de esta

alarma que salta. Un cortafuego añadido aporta en conjunto una seguridad bastante

aceptable.

Page 4: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 3

PROPORCIONA TRES FUNCIONES ESENCIALES DE SEGURIDAD

MONITORIZAN:

Esto es, el IDS mantiene siempre un ojo en la red, observando y escudriñando eltráfico en

busca de cualquier paquete susceptible de contener código no deseado. Quévisita quién y

cuándo lo hace en nuestra red, quién viene desde el exterior y québusca... etc. En este

sentido actúa exactamente igual que un sniffer. De hecho, cabe laposibilidad de utilizarlos

como tal.

DETECTAN:

Usan políticas (totalmente configurables) para definir los actos sospechosos de todo ese

tráfico que provocará una alarma si ocurren. Los patrones se pueden actualizar cada cierto

tiempo si se descubren nuevos tipos de ataques.

RESPONDEN:

Esta alarma puede venir en forma de archivos en el sistema, páginas html dinámicas con

gráficos o incluso correos con la información necesaria. También podría incluir la expulsión

de un usuario del sistema... etc. A la hora de realizar labores de forense (tras un ataque,

determinar el alcance, evaluar los daños, e Intentar cazar al autor) resulta de gran ayuda. Un

elaborado registro de las incidencias ocurridas en la red, con el contenido de los paquetes de

cada "visita" resulta imprescindible para realizar una buena labor de investigación, Pero para

ello, no se pueden alojar los logs dentro de la propia máquina. Todos sabemos lo sencillo

que resulta borrarlos si un atacante llega a tener el control de servidor. Lo mejor es instalar

una base de datos en un sistema remoto que almacene los registros ordenadamente, y de

esta forma, también puedan ser consultados de manera sencilla.

Page 5: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 4

ACID

ACID (Analysis Console for Intrussion Databases) es una interface web desarrollada en

lenguaje PHP, que nos muestra los registros guardados por Snort. Snort puede guardarlos en

una base de datos o en simples ficheros de texto (por ejemplo syslog)... si queremos usar

ACID para visualizar sus efectos, deberemos usar MySQL como almacén para los logs

recogidos por Snort.

PREREQUISITOS PARA SNORT CON ACID

SERVIDOR WEB

ACID es una interface web, por lo que partimos de la base de que el sistema operativo sobre

el que esta funcionando tiene instalado un servidor web, en mi caso particular (y para las

explicaciones de este documento) es un APACHE.

BASE DE DATOS

Snort debe dejar los logs en una base de datos si queremos poderlos visualizar con ACID, por

lo que previamente necesitamos una base de datos, como por ejemplo MySQL.

Aunque también podemos hacerlo con PosgreSQL, Oracle y alguna otra más... yo lo he hecho

con MySQL, como muestro en el documento.

Lo primero que debemos hacer es instalar apache en Ubuntu, en mi caso en Ubuntu 11.04

SOPORTE PHP

Si queremos poder usar ACID como interfaz web para visualizar los logs de Snort, debemos

dar soporte para PHP en nuestro servidor web.

Page 6: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 5

INSTALACION SERVIDOR WEB

sudo apt-get install apache2

Una vez que hayamos introducido nuestra contraseña si nos la pide nos pedirá una

confirmación y comenzará la instalación comenzará la instalación

Esto instalará Apache 2 y todas sus dependencias, ahora nos dirigiremos al directorio

/etc/apache2/ donde nos encontraremos con una serie de archivos, el archivo apache2.conf

es el archivo principal de configuración de nuestro apache, no lo modificaremos por el

momento.

También podemos encontrar el archivo httpd.conf, este archivo esta vacío y así lo

dejaremos, su fin es simplemente garantizar compatibilidad con versiones anteriores de

apache.

Reiniciemos apache:

sudo /etc/init.d/apache2 restart

Page 7: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 6

PODEMOS VERLO TANTO DE FORMA LOCAL

COMO EXTERNA

Page 8: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 7

INSTALACION DE UNA GESTOR DE BASE DE DATOS (MYSQL)

sudo apt-get install mysql-server

Una vez ejecutado el comando se nos pedirá la confirmación pertinente como en anteriores

ocasiones y confirmaríamos veríamos el progreso y se nos presentara la siguiente ventana en

la que tendríamos que introducir la contraseña para acceder como root a mysql o dejarlo sin

contraseña, NO RECOMENDADO

Esto instalara mysql server 5.0, el cliente mysql y todas sus dependencias. Para asegurarnos

que todo ha salido bien podemos ejecutar en una terminal:

Mysql –unombredeusuario -pcontraseña

Page 9: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 8

SOPORTE PHP PARA NUESTRO SERVIDOR Y GESTOR DE BASES

DE DATOS

sudo apt-get install php5 php5-mysql

Después de ingresar este comando si se nos pide la contraseña la metemos y nos saldrá una

advertencia de si queremos continuar la instalación de dicho paquete y lo confirmamos.

Después de esto veremos como comienza la instalación de cada uno de los paquetes

Y veremos como todo esto se ha llevado a cabo sin ningún problema

Page 10: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 9

Esto instalara PHP 5 y todas sus dependencias y los módulos necesarios para una

comunicación con bases de datos mysql, para asegurarnos que fue correcto podemos hacer

lo siguiente, en el directorio /var/www/ se encuentran una serie de directorios y archivos

que son los encargados de mostrarnos una página de inicio para saber si apache esta

funcionando, esta página es la que vimos cuando verificamos que apache funcionaba y no

dice mucho mas que la frase "It Works!", lo que haremos ahora es crear el archivo info.php

dentro de este directorio con el siguiente comando sudo gedit /var/www/info.php en el cual

simplemente escribiremos lo siguiente:

<?php

phpinfo();

?>

Quedando como vemos en la siguiente imagen

Luego, desde un navegador escribimos como URL la dirección del servidor y solicitamos la

página info.php, de modo que quede algo como lo 192.168.1.36/info.php, esto nos debería

devolver una página bastante extensa en la cual figuran las características de PHP

Page 11: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 10

INSTALAMOS SNORT Y ACID BASE

Primero lo que hacemos es instalar los paquetes necesarios tanto para snort como para acid

base, para este cometido lo que vamos a hacer será ejecutar el siguiente comando.

apt-get install install snort-mysql snort-doc acidbase

Después de esto, la instalación se empezará a realizar.

Page 12: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 11

INSTALACION DE SNORT PRIMERA PARTE

Lo primero que se nos preguntara será el intervalo de nuestra red local, en mi caso es el

siguiente 192.168.1.0/24 asique así la indicamos para que tenga efecto en toda la red, si

queremos podemos indicar las direcciones IP de manera específica como se indica en la

pantalla.

Nos avisara de que no se ha configurado ninguna base de datos

Nos preguntara que si queremos configurar una base de datos, y le decimos que no.

Y de esta forma finalizaremos la configuración de snort, por el momento y empezara

automáticamente la de ACID BASE

Page 13: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 12

INSTALACION ACID BASE

Nos avisa de que se ha cambiado la ruta de inclusión para php.

Seleccionamos el tipo de nuestra base de datos.

Introducimos la contraseña.

Y la confirmamos.

Page 14: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 13

Nos dice que será necesario actualizar manualmente la configuración.

Una vez hemos pulsado en aceptar, veremos que volvemos a la consola y se ha dado por

finalizado el asistente

Page 15: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 14

INSTALACION DE SNORT SEGUNDA PARTE

CREAMOS UN USUARIO Y UNA BASE DE DATOS PARA SNORT

Para seguir con la configuración de Snort, lo que tenemos que hacer es identificarnos en

nuestra base de datos, lo hacemos con el siguiente comando.

mysql -uroot -pAsir2012

Ahora creamos un usuario de nombre snort, que tiene como contraseña Asir2012,este

usuario lo vamos a crear, porque va a ser el usuario que vamos a configurar, para la utilizar

snort, para evitar usar el usuario root y correr riesgos innecesarios

CREATE USER'snort'@'localhost' IDENTIFIED BY 'Asir2012';

Creamos la base de datos, si el asistente no la ha creado ya, (normalmente no la crea) con el

siguiente comando:

CREATE DATABASE IF NOT EXISTS `snort`;

Damos todos los privilegios a l usuarios snort sobre la base de datos recién creada.

GRANT ALL PRIVILEGES ON `snort`.* TO 'snort'@'localhost';

Aplicamos dichos privilegios para que tengan efecto.

flush privileges;

Page 16: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 15

VINCULAMOS A SNORT CON EL USUARIO Y BASE DE DATOS CREADA

Ahora nos situamos en el directorio donde se encuentra el archivo que vamos a utilizar para

vincular a snort con nuestro usuario y base de datos:

cd /usr/share/doc/snort-mysql/

Y ejecutamos el siguiente comando para que la operación se lleve a cabo

zcat create_mysql.gz | mysql -u snort -h localhost -pAsir2012 snort

Borramos el archivo de configuración pues nos puede dar diversos tipos de problemas

sudo rm /etc/snort/db-pending-config

Y ejecutamos una actualización para que todos los paquetes queden perfectamente

actualizados a sus últimas versiones

sudo apt-get upgrade

Page 17: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 16

REALIZAMOS LA RECONFIGURACIÓN

Ejecutamos el siguiente comando para hacer de nuevo una reconfiguración una vez que ya

tenemos creado nuestro usuario y nuestra base de datos a utilizar:

sudo dpkg-reconfigure -plow snort-mysql

Nos preguntará que cuando deseamos arrancar snort, nosotros le decimos que cada vez que

arranque el sistema, asique seleccionamos la primera opción.

Nos mostrara información sobre la configuración de interfaces y demás y pulsamos en

aceptar una vez que lo hayamos leído.

Page 18: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 17

Si dudamos de cual es nuestra interfaz, podremos saberla rápidamente, solamente con

ejecutar el siguiente comando en la consola

ifconfig

Una vez hecho esto introduciríamos nuestra interfaz

Seleccionaríamos de nuevo la red

Ahora leeremos atentamente la pantalla, para escoger la opción que más nos interese a

nosotros nos interesa no deshabilitar el modo promiscuo para que snort compruebe así

todos los paquetes que pasen por el segmento Ethernet incluso aunque sean parte de una

conexión entre otros dos sistemas.

Page 19: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 18

Podemos habilitar la opción de que se envíen resúmenes por correos, nosotros le decimos

que no, porque vamos a utilizar BASE ACID y ofrece muchas opciones, más claras y mejores,

pero si dijéramos que si, tendríamos que poner el nivel de riesgo, y cuando una amenaza

fuera de ese nivel, se nos enviaría un correo informativo avisándonos de esta.

Nos dice que no se ha configurado ninguna base de datos y pulsamos aceptar.

Decimos que si queremos configurar una base de datos, donde snort-mysql enviará los

registros.

Page 20: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 19

Seleccionamos el nombre de nuestro servidor.

Seleccionamos el nombre de la base de datos a utilizar, que será la que hemos creado

anteriormente.

El nombre de usuario, con el que vamos a acceder a dicha base de datos, que va a ser el que

hemos creado, para así no acceder con root, por los riesgos de seguridad que esto

conllevaría.

Introducimos la contraseña para acceder a la base de datos.

Una vez hecho esto veremos como se mostraría que el sistema de detección de intrusos

SNORT se ha iniciado correctamente.

Page 21: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 20

EDITAMOS LOS ARCHIVOS DE CONFIGURACION DE SNORT Y ACID BASE

SNORT

Nos dirigiremos ahora al archivo de configuración para editarlo, lo haremos con el siguiente

comando:

sudo gedit /etc/snort/snort.conf

CONFIGURACION DE RED Y SALIDA

En el tendremos que modificar las siguientes líneas adaptándolas a nuestra configuración le

pondremos nuestra red y le indicaremos la salida.

var HOME_NET 192.168.1.0/24

output database: log, mysql, user=snort password=Asir2012 dbname=snort host=localhost

Quedando como vemos en la siguiente imagen para el primer cambio

Y como en esta imagen para el segundo de ellos.

REGLAS

Hay que tener en cuenta que en este archivo de configuración podemos desactivar las reglas

que nos convengan, y configurarlo de esta forma a nuestro gusto, para desactivar reglas se

puede hacer simplemente comentando los correspondientes includes.

Page 22: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 21

ACID BASE

Ahora nos toca configurar acidbase, para ello ejecutamos el siguiente comando

sudo gedit /etc/acidbase/database.php

Y lo adaptamos a lo que falte en nuestra configuración indicándole el puerto y demás,

teniendo de guía las siguientes líneas que vemos, que son las ideales para mi configuración.

$alert_user='snort';

$alert_password='Asir2012';

$basepath='';

$alert_dbname='snort';

$alert_host='localhost';

$alert_port='3306';

$DBtype='mysql';

Lo dejaríamos como vemos en la imagen

Page 23: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 22

FINALIZAMOS PARA QUE TODO TENGA EFECTO

Para que todo esto tenga efecto tendremos que reiniciar apache

sudo /etc/init.d/apache2 restart

Y también reiniciaremos snort

sudo /etc/init.d/snort restart

Page 24: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 23

LA INFORMACION DE SNORT SEA VISIBLE DESDE ACID BASE

Por último accederíamos a ACID BASE en su respectiva dirección

http://localhost/acidbase

Seleccionaríamos Setup page para hacer instalar los archivos necesarios para el

funcionamiento.

Y después a Create BASE AG

Veremos como se realiza el proceso

Veríamos ya que todo esta en funcionamiento, y con el usuario al que estamos accediendo y

otro tipo de información en la parte derecha de la pantalla.

Page 25: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 24

ANÁLISIS DE VULNERABILIDADES Y SU DETECCION

HACEMOS UN ANÁLIS DE VULNERABILIDADES WEB

El escáner que vamos a utilizar va a ser Accunetix, para esto, como ya sabemos poco más

tendremos que hacer, que introducir la dirección que queremos analizar.

Una vez terminado el análisis, vemos como se nos muestran los resultados de la dirección

analizada vemos que el propio resumen, tampoco nos muestra realmente muchos fallos de

seguridad.

Puertos abiertos y demás información no muy importante, pero que podríamos y

deberíamos de evitar.

Page 26: Instalación y configuración de SNORT

[INSTALACION Y CONFIGURACION DE SNORT - VISUALIZACION: ACID BASE] 1 de marzo de 2012

SEGUNDO DE ASIR Página 25

VEMOS LOS RESULTADOS DE SNORT

En el equipo victima donde tenemos instalado SNORT accedemos a BASE el cuál nos muestra

la información que snort ha guardado en la base de datos y después de haber sido

analizados por accunetix, vemos el resumen de alertas, el puerto de origen, el protocolo

utilizado por los ataques, a que categorías pertenecen estos….

Podemos ver una análisis de tráfico teniendo en cuenta los distintos tipos de protocolos.

Podremos ver también los ataques que más se han utilizado su clasificación y el número

total de ellos y correspondiente porcentaje

Como otras cosas para la detección muy importantes la dirección de origen y la de destino y

la hora de los mismos (primera y última)