2012
INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: ACID BASE
Javier García Cambronel SEGUNDO DE ASIR 01/03/2012
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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
SEGUNDO DE ASIR
Página 1
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
INTRODUCCIÓN Este documento trata de describir los pasos pas os 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 m arca 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 c ortafuego añadido aporta en conjunto una seguridad bastante aceptable. SEGUNDO DE ASIR
Página 2
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
PROPORCIONA TRES FUNCIONES ESENCIALES DE SEGURIDAD MONITORIZAN: Esto es, el IDS mantiene ma ntiene 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.
SEGUNDO DE ASIR
Página 3
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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 c omo interfaz web para visualizar los logs de Snort, debemos dar soporte para PHP en nuestro servidor web.
SEGUNDO DE ASIR
Página 4
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
INSTALACION SERVIDOR WEB sudo apt-get install apache2
Una vez que hayamos introducido nuestra contraseña si s i 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
SEGUNDO DE ASIR
Página 5
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
PODEMOS VERLO TANTO DE FORMA LOCAL
COMO EXTERNA
SEGUNDO DE ASIR
Página 6
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
INSTALACION DE UNA GESTOR DE BASE DE DATOS (MYSQL) sudo apt-get install mysql-server Una vez ejecutado el comando c omando 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
SEGUNDO DE ASIR
Página 7
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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
SEGUNDO DE ASIR
Página 8
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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 s erie 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: 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 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
SEGUNDO DE ASIR
Página 9
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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.
SEGUNDO DE ASIR
Página 10
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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
SEGUNDO DE ASIR
Página 11
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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.
SEGUNDO DE ASIR
Página 12
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
Nos dice que será necesario actualizar manualmente la configuración.
Una vez hemos pulsado en aceptar, veremos que volvemos a la consola consola y se ha dado por finalizado el asistente
SEGUNDO DE ASIR
Página 13
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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`.* `s nort`.* TO 'snort'@'localhost';
Aplicamos dichos privilegios para que tengan efecto. flush privileges;
SEGUNDO DE ASIR
Página 14
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
VINCULAMOS A SNORT CON EL USUARIO Y BASE B ASE 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 / 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 s nort -h localhost -pAsir2012 snort
Borramos el archivo de configuración pues nos puede dar diversos tipos de problemas sudo rm /etc/snort/db-pending-confi /etc/snort/db-pending-configg
Y ejecutamos una actualización para que todos los paquetes queden perfectamente actualizados a sus últimas versiones sudo apt-get upgrade
SEGUNDO DE ASIR
Página 15
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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.
SEGUNDO DE ASIR
Página 16
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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.
SEGUNDO DE ASIR
Página 17
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
Podemos habilitar la opción de que se envíen resúmenes por correos, 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 c uando 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.
SEGUNDO DE ASIR
Página 18
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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.
SEGUNDO DE ASIR
Página 19
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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 c uenta 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.
SEGUNDO DE ASIR
Página 20
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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
SEGUNDO DE ASIR
Página 21
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
FINALIZAMOS PARA QUE TODO TENGA EFECTO Para que todo esto tenga t enga efecto tendremos que reiniciar apache sudo /etc/init.d/apache2 restart
Y también reiniciaremos snort sudo /etc/init.d/snort restart
SEGUNDO DE ASIR
Página 22
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
LA INFORMACION DE SNORT SEA VISIBLE DESDE ACID BASE Por último accederíamos a ACID BASE en su s u 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.
SEGUNDO DE ASIR
Página 23
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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 Accunetix,, para esto, como ya sabemos poco más tendremos que hacer, que introducir la dirección que queremos a nalizar.
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.
SEGUNDO DE ASIR
Página 24
[INSTALACION Y CONFIGURACION DE SNORT VISUALIZACION: VISUALIZACION: ACID BASE] BASE]
1 de marzo de 2012
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 c orrespondiente 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)
SEGUNDO DE ASIR
Página 25