miércoles, noviembre 11, 2020

OSSEC: El mundo del IDS (Intrusion Detection System) y del HIDS (Host IDS)

OSSEC es una plataforma de monitorización y detección de intrusos de código abierto. Está basado en host, es lo que llamaríamos un HIDS o sistema de detección de intrusos en host. ¿Por qué escribir de OSSEC? Hay muchas soluciones antiguas o de las llamadas con experiencia o estables que para mucha gente son desconocidas. Es esa seguridad que nos protege, que detecta las intrusiones y que, aunque los años pasen siguen ahí. 

Figura 1: OSSEC: El mundo del IDS (Intrusion Detection System) y del  HIDS (Host IDS)

La última versión estable de OSSEC data de abril de 2019 y es una solución programada en Lenguaje C, un lenguaje de programación muy especial y muy relacionado con los sistemas operativos. Podemos decir que OSSEC opera como un SIM (Security Incident Management). Su función es la de analizar registros de eventos del sistema operativo, hacer comprobaciones de la integridad de los archivos del sistema de ficheros, auditar los registros de los equipos, detectar rootkits o dar respuesta activa y alertar en tiempo real.

Figura 2: GitHub de OSSEC

OSSEC es un software bastante adaptable y proporciona muchos quehaceres en la seguridad defensiva. El proyecto surgió en 2008 y en 2009 TrendMicro lo adquiere, eso sí, con la promesa de mantenerlo en Open Source. El GitHub del proyecto sigue estando abierto para que cualquiera pueda aportar a este proyecto. Detrás hay un gran número de colaboradores y programadores.

Instalación de OSSEC

La instalación se puede realizar a través de la web de https://www.ossec.net. En el apartado “Documentation” tenemos la información referente a la instalación. La instalación puede hacerse en una gran diversidad de sistemas operativos. OSSEC dispone de varias partes en su arquitectura que hay que entender para hacer el proceso correctamente.

Figura 3: Comienzo de proceso de instalación

Principalmente, tenemos un servidor que centralizará la operativa. A este servidor le podemos poner una interfaz gráfica que permite gestionar las diferentes acciones de forma más cómoda.  Además, tenemos los agentes que son herramientas que permiten recopilar la información de las máquinas remotas y enviarlas al servidor para su gestión. Toda esta información se puede encontrar en la web de OSSEC. 

Figura 4: Configuración de ficheros de log a analizar

La instalación nos devolverá todo lo necesario instalado, por defecto, en la ruta /var/ossec. A partir de aquí dispondremos de un gran número de posibilidades. Hay que pensar que OSSEC dispone de binarios encargados de la recopilación de información, del análisis, de la monitorización, del chequeo de integridad en el sistema de archivos, etcétera.

Figura 5: Finalización de la instalación

Cuando finaliza la instalación debemos ver que en la ruta /var/ossec/bin encontraremos un gran número de binarios que proporcionan todo el potencial de la herramienta. Así como en /var/ossec/etc podremos encontrar el fichero de configuración de OSSEC.

Figura 6: Arranque y comprobación del estado del servicio de OSSEC

Si queremos arrancar OSSEC podemos hacer uso del binario ossec-control con la opción “start”. Con la opción “status” podemos ver todo lo que tenemos al alcance y estamos ejecutando. Podemos instalar la solución OSSEC-WUI para poder hacer uso de Apache y PHP y poder ejecutar una interfaz gráfica que proporcione lo necesario para poder gestionar desde un entorno más amigable.

¿Dónde están las cosas?

- /bin y /etc: Son carpetas que lo dicen todo con su nombre. En la primera encontraremos los binarios de OSSEC. En la segunda veremos los ficheros de configuración. 
 
- /logs: Aquí encontraremos los logs: ossec.log y alerts/alerts.log. 
 
- /rules: En este directorio se almacenan las reglas que son utilizadas para generar alertas. 
 
- /stats: Directorio donde se generan estadísticas.

¿Cómo es el fichero de configuración?

En /var/ossec/etc/ossec.conf encontraremos el fichero de configuración. Es un fichero que se divide en diferentes partes o directivas.

- Global: Es un apartado global donde se puede configurar el servicio del SMTP para notificar las alertas. 
 
- Rules. Es una directiva donde se “incluyen” los ficheros con las reglas de detección. Estas reglas están escritas en ficheros XML. 
 
- Active-response: Esta directiva muestra las diferentes respuestas activas que tiene OSSEC configuradas por defecto. Se puede configurar cómo se quiere responder ante un tipo de evento generado. 

Figura 7: Configuración de active-response

- Localfiles: Esta directiva indica los ficheros a monitorizar y analizar. Son los ficheros de log del sistema. Esta es la sección del “collector”.

Figura 8: Configuración de localfile

- Syscheck: Este apartado configura cómo trabajará el monitoreo sobre el sistema, así como los directorios y ficheros que serán chequeados para ver los posibles cambios o alteraciones. Esto es importante, ya que ante una intrusión puede haber carpetas que cambien en lo que a permisos se refiere, puede haber ficheros que son alterados en su contenido, etcétera. Otra herramienta interesante en este campo es tripwire, pero esa la dejamos para otro momento. 

Instalando un agente en GNU/Linux

La instalación de un agente de OSSEC en GNU/Linux como una herramienta de fortificación es sencilla. Hay que hacer uso del binario /var/ossec/bin/manage_agents. Desde esta herramienta se llevará a cabo una doble operativa:

- El servidor, dónde hemos instalado OSSEC, tiene una key que debemos extraer para proporcionársela al cliente (o agente). 
 
- El agente debe añadir esa key desde la herramienta manage_agents. 

Lo primero es que desde manage_agents en el servidor añadir un agent y le asignamos un ID, por ejemplo, 001. Con 001 nos devolverán una key bastante larga. Esa key hay que hacerla llegar a la máquina GNU/Linux en la que queremos instalar el agente.  Ejecutamos manage_agents en la máquina GNU/Linux cliente.

Figura 9: Configuración del agente

En esta máquina solo obtendremos dos opciones: importar una clave de servidor o salir. Al darle a importar obtendremos información sobre el propio agente, esa info viene en la propia clave. Una vez hecho esto, tendremos al agente recopilando información y enviándola a OSSEC. Si disponemos de OSSEC-WUI instalado en la máquina del servidor, podremos empezar a ver los logs remotos que están llegando.

Figura 10: Libros de Linux Exploiting y de Hardening de Servidores GNU/Linux

OSSEC una herramienta con mucho potencial para la Fortificación de sistemas GNU/Linux que se puede descubrir a través del uso de máquinas virtuales en un laboratorio y que, si te dedicas a la ciberseguridad, debes conocer. El mundo de los IDS es apasionante, y no todo son los IDS de red o NIDS, también hay que ocuparse de los HIDS. 

Saludos,

Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Hacking con Metasploit: Advanced Pentesting" "Hacking Windows", "Ethical Hacking", "Got Root",  “Pentesting con Powershell”, "Pentesting con Kali Silver Edition" y de "Empire: Hacking Avanzado en el Red Team", Microsoft MVP en Seguridad y Security Researcher en el equipo de "Ideas Locas" de la unidad CDCO de Telefónica.  Para consultas puedes usar el Buzón Público para contactar con Pablo González - Conseguir 100 Tempos Gratis en MyPublicInbox

 Contactar con Pablo González

No hay comentarios:

Publicar un comentario