INSTALACION Y CONFIGURACION DE SNORT
- VISUALIZACION: ACID BASE
2012
Javier García Cambronel SEGUNDO DE ASIR
01/03/2012
[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
[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.
[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.
[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.
[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
[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
[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
[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
[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
[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.
[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
[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.
[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
[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;
[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
[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.
[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.
[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.
[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.
[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.
[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
[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
[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.
[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.
[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)
Top Related