Archive for the ‘IDS’ Category

OSSEC, la referencia de los HIDS

|

El campo de los detectores de intrusos siempre me ha fascinado, la idea en sí misma de un IDS es genial: un sistema que me permita saber cuándo y cómo soy atacado e incluso efectuar acciones reactivas ante dichos ataques. En un mundo ideal los detectores de intrusos serían la panacea de la seguridad informática pero no estamos en un mundo ideal. No obstante estamos en un campo interesantísmo.

Hay 3 tipos de detectores de intrusos:

Host IDS (HIDS): los sensores se encuentran en cada maquina y por tanto vigilan unicamente dicha maquina.
Network IDS (NIDS): los sensores se encuentran en segmentos de red y por tanto vigilan el trafico de la misma.
Distributed IDS (DIDS): en la práctica se trata de una serie de NIDS que se comunican con un sensor central, ideal para VPN’s.

Todo el mundo que haya oido hablar de detectores de intrusos estará pensando en Snort, sin duda el rey de los NIDS OpenSource. Esta entrada sin embargo es para hablar de OSSEC, un HIDS que he utilizado desde hace tiempo pero que me ha sorprendido gratamente en sus ultimas versiones y que ha incorporado una interfaz web para visionar las alertas.
OSSEC es un detector de intrusos en host que proporciona análisis de logs, verificación de integridad de ficheros( gracias a OSSEC he dicho adiós a AIDE ), monitorización del registro de Window$, detección de rootkits en tiempo real, etc y que permite configurar respuestas activas. Funciona en multitud de sistemas operativos como Linux, OpenBSD, FreeBSD, MacOS, Solaris y Window$. En esta entrada comentaré brevemente como montarnos un OSSEC sobre Linux sin respuesta activa( no se os puede dar todo masticado ) y configuraremos la interfaz web para ver las alertas de forma cómoda y sencilla.

Instalación

Lo primero es bajarnos el agente para Linux, es muy sencillo solo hay que ejecutar:

# wget http://www.ossec.net/files/ossec-hids-1.3.tar.gz

Descomprimimos el fichero

# tar zxvf ossec-hids-1.3.tar.gz

En el directorio resultante ejecutamos el script de instalación:

# ./install.sh

Este script nos deja instalado el OSSEC con la configuración por defecto, para afinarla solo tenemos que modificar el fichero /var/ossec/etc/ossec.conf pero eso es cosa vuestra. Un aspecto a destacar en la instalación es que OSSEC se instala específicamente para el núcleo de Linux que se esté ejecutando en ese momento, por lo tanto si cambiamos de kernel es necesario instalar nuevamente OSSEC.

Para inicializar OSSEC debemos ejecutar el script de control:

# /var/ossec/bin/ossec-control start

No obstante OSSEC detecta el tipo de Linux en el que se está ejecutando y crea un script de inicio adecuado para cada uno, en mi caso para Slackware Linux creó el script /etc/rc.d/rc.ossec

El sistema de detección de intrusos utiliza 4 procesos:

/var/ossec/bin/ossec-maild
/var/ossec/bin/ossec-execd
/var/ossec/bin/ossec-analysisd
/var/ossec/bin/ossec-logcollector
/var/ossec/bin/ossec-syscheckd
/var/ossec/bin/ossec-monitord

Aunque no lo parezca por las grandes prestaciones que tiene, OSSEC no consume ni memoria ni CPU en exceso.

Interfaz Web

El problema cuando instalamos verificadores de integridad, IDS’s, etc suele ser que en teoría proporcionan multitud de beneficios pero en la practica la gestión de las alertas resulta tan tediosa que no merece la pena su uso. Para que no suceda esto último los chicos de OSSEC han desarrollado una interfaz web escrita en php que permite la consulta rapida y sencilla de las alertas. Es una interfaz que si bien no está aún muy madura, ya tiene beneficios y todo apunta a que se están volcando mucho en su desarrollo. Prueba de ello es que existe un Wiki creado unicamente para ella con una lista de funciones pendientes por desarrollar muy interesante.

Instalarla es muy sencillo una vez que tengamos ya en funcionamiento nuestro servidor LAMP( en realidad con un LAP es suficiente ), apenas unos pocos y sencillos pasos.
Descargamos la interfaz web:

# wget http://www.ossec.net/files/ui/ossec-wui-0.2.tar.gz

La descomprimimos en el Document Root de nuestro servidor web:

# tar zxvf ossec-wui-0.2.tar.gz

Entramos en el directorio resultante y ejecutamos el scrip de instalación:

# ./setup.sh

Añadimos en el fichero /etc/group el grupo de nuestro servidor web al grupo ossec, por ejemplo si nuestro servidor se ejecuta con el usuario nobody la linea quedaría similar a esta:

ossec:x:1003:nobody

Una vez realizado esto ya deberíamos poder ver las alertas introduciendo en el navegador la ruta de la interfaz web. Hay que destacar que aún no se permite eliminar alertas, hacer gráficos, etc, pero todo se andará, no nos podemos quejar ya que es la versión 0.2 y nos la venden por el módico precio de 0 €.
Como nota final quiero añadir que normalmente será necesario incluir alguna restricción sobre la interfaz web, para que no pueda visualizarla cualquiera, esto puede restringirse desde Apache configurando una autenticación. En estos momentos solo ofrecemos información porque no se permite el borrado de alertas, pero en el futuro no configurar una autenticación hacia la interfaz web podría dar lugar a un importante agujero de seguridad.

Dejo algunos pantallazos de mi OSSEC en acción:


Free Image Hosting at www.ImageShack.us

En esta imagen vemos la vista general de OSSEC, con los agentes disponibles( desde un servidor web se pueden controlar multitud de PC’s con OSSEC ) a la derecha los ultimos ficheros detectados que han sido modificados en el chequeo de integridad. Debajo podemos ver los ultimos eventos detectados.


Free Image Hosting at www.ImageShack.us

En esta imagen vemos la vista de búsqueda. Se permite buscar eventos por fecha, nivel de peligrosidad, categoría, etc.


Free Image Hosting at www.ImageShack.us

En esta imagen vemos una vista detallada de todos los cambios detectados en la revisión de integridad.


Free Image Hosting at www.ImageShack.us

En esta imagen vemos las estadísticas del sensor, organizadas por riesgo, regla y hora. Como decía antes aún no hay graficos, pero todo se andará.

Conclusión

OSSEC es un sistema de detección de intrusos muy potente, facil de usar, gratuito y licenciado bajo la GPL v2.
Posee capacidades avanzadas como la respuesta ante eventos, aunque configurarla correctamente requiere una dedicación mayor. Unido al poco consumo de recursos y a que es un programa soportado por el 95% de las plataformas más comunes lo convierten en una referencia en el campo de los HIDS y en una imprescindible herramienta que todos los interesados en proteger nuestros sistemas deberíamos utilizar.

Referencias

http://www.ossec.net/main/
http://www.ossec.net/wiki/index.php/OSSEC
http://www.ossec.net/wiki/index.php/OSSECWUI
http://www.ossec.net/dcid/
http://www.snort.org

BASE publica mi guia de Snort

|

Previo pago de 0 €, los chicos de BASE han publicado recientemente mi Guia de Snort, Apache, Mysql, PHP y BASE sobre Slackware. De momento y como se muestra en la foto solo está incluida en el CVS pero me han dicho que con casi toda probabilidad estará incluida en la próxima release del proyecto:


Free Image Hosting at www.ImageShack.us

He ofrecido el manual a los chicos de Snort para la documentación internacional que incluyen en su web, aunque por el momento no he obtenido contestación por su parte.

Estas cosas que no dan dinero y muchas veces más disgustos que alegrías, pero que en un día como hoy elevan mi ego hasta límites insospechados.

Guía Snort + MySQL + BASE + Apache + PHP

|

Los IDS son una parte muy importante en la prevención de ataques, constituyen una primera barrera que nos puede ayudar a corregir fallos de seguridad o a recopilar información acerca de un posible futuro atacante. Este documento está orientado fundamentalmente a la construción de un Detector de intrusos casero utilizando Snort, es por ello que no se utiliza ninguna herramienta propietaria, con lo cual ademas de salirnos gratis tendremos un IDS libre.

Esta guía es una ampliación y actualización sobre el documento “Guía Snort + MySQL + “ACID + PHP en Slackware 10.1″ que realizé haze algo más de un año.Las razones por las cuales me he decidido a actualizar dicho trabajo son varias: la actualización del software utilizado para construir el IDS (Detector de Intrusos) por ejemplo el salto a PHP5 y Apache2, e incluso la modificación del mismo (en esta ocasión cambiamos el gestor ACID por BASE) , la puesta al dia de manera más general, ya que en la anterior estaba muy marcado su uso para la distribución de Linux Slackware en una versión concreta. En esta ocasión utilizo Slackware como distribución y aunque algún paquete está construido especialmente por mí para este propósito (snort o pcre) los pasos son más generales y cualquier usuario de Linux podrá montarse un IDS gracias a esta guía en su propia distribución de Linux, si bien se exigen unos conocimientos previos.

Creo que deberia comentar el cambio más drástico que incluye este documento respecto del anterior, se trata del uso de BASE en lugar de ACID. La decisión ha sido facil, por un lado ahora trabajo en seguridad informática, cosa que no hacía en el momento de escribir la primera guía y he podido ver que BASE es utilizado en mayor medida que ACID (esa es mi experiencia), por otro lado ya lo había conseguido usando ACID y la propuesta de hacer algo diferente también ha tenido su peso en la elección. A esto hay que sumar que BASE está basado en ACID y que la diferencia tampoco es tanta como para desconcertarse. Por si fuera poco ACID no se actualiza desde Agosto del 2003, con lo cual está todo dicho.

Pocas cosas me quedan ya por decir, que todas las acciones se realizan con privilegios de root y comentar que cuando hable de lineas el numero puede variar en vuestros archivos, pero es una orientación muy aproximada. Si encontráis alguna errata podéis notificarmelo a mi correo eletrónico (dmedianero@gmail.com), cualquier mejora u obsevación es bien recibida y espero que este documento os sea de provecho ya que hay muy poca documentación en castellano al respecto. Podéis descargarlo desde mi ftp:

ftp://meleagro.homeunix.org/articulos/snort+BASE.pdf

Un saludo