SIEM Básico

Tabla de contenidos

Athento dispone de varias funcionalidades que conforman su sistema de gestión de eventos e información de seguridad (SIEM). Estas constan de varias herramientas que pueden ser instaladas y configuradas a partir de diversos scripts existentes.

A continuación se listan los comandos de instalación/configuración de estas herramientas:

  • install_and_config_auditd.sh: Instala y configura Auditd, creando reglas personalizadas para el monitoreo de archivos/directorios indicados en la variable de entorno AUDITD_AUDIT_FILES y creando reglas personalizadas para la detección de compresiones masivas de ficheros. La variable de entorno mencionada se encuentra en el archivo .env de la aplicación.

  • install_and_config_inotify.sh: Instala y configura la herramienta inotify. Crea un servicio a partir del cual se inicia un proceso de monitoreo que utiliza dicha herramienta para detectar movimientos de ficheros sobre dispositivos USB o sistemas de archivos montados, inicialmente en el directorio /media.

  • install_and_config_rkhunter_lynis_falco.sh: Instala y configura RKHunter, utilizado para la detección de rootkits. Instala y configura Lynis, utilizado para hardening. Instala y configura Falco para que utilice el módulo kernel, permitiendo asi capturar una mayor cantidad de llamadas al sistema. A este último se le crean reglas personalizadas para detectar la ejecución de shells sospechosas, creación de conexiones inesperadas, modificaciones en los cron, creación de servicios sospechosos y el agregado de claves SSH sospechosas. En la detección de ejecución de shells sospechosas, se excluyen aquellos eventos cuya línea de comando contenga cualquiera de los valores definidos en la variable de entorno  FALCO_SUSPICIOUS_SHELL_CMDLINE_EXCLUDEubicada en el archivo .env de la aplicación.

  • install_and_config_suricata.sh: Instala y configura Suricata, habilitando diferentes fuentes de reglas y actualizando el archivo de configuración de Suricata para capturar los eventos de red correctamente, como potenciales escaneos de puertos, ataques DDoS y demás actividad de red sospechosa. Es posible añadir la ejecución del script scripts/update_suricata.sh al cron cada cierto tiempo para mantener actualizadas las reglas de Suricata.

Para instalar cualquiera de estas herramientas, basta con situarse en el directorio /var/www/athentose/scripts/ y ejecutar el script deseado, por ejemplo:

./install/install_and_config_auditd.sh

Una vez se encuentren instaladas estas herramientas, existen comandos para detectar eventos y enviar una alerta al correo definido en la setting SUPPORT_MAIL.

Los comandos para la detección de eventos son los siguientes:

  • check_authentication_events.py: Analiza el archivo /var/log/auth.log en búsqueda de accesos privilegiados como root, superusuario o a través de ssh, así como tambien modificaciones en usuarios o grupos del sistema. En caso de existir advertencias se envía el correo de alerta a soporte.

  • check_backdoors_rootkits.py: Ejecuta un análisis en el momento utilizando RKHunter y obtiene solamente las advertencias. Toma los logs del día actual sobre eventos referidos a las reglas personalizadas de Falco. En caso de existir advertencias se envía el correo de alerta a soporte.

  • check_exfiltration_events.py: Analiza los logs de detección de eventos de movimientos de archivos provenientes del servicio usb_monitor y toma también los logs de compresiones masivas de archivos de auditd. En caso de encontrar logs los envía a través del correo de alerta a soporte.

  • check_intrusion_detections.py: Realiza una búsqueda de eventos detectados por Suricata en el día actual y alerta por correo a soporte en caso de encontrar logs relevantes.

  • check_modified_files.py: Realiza una búsqueda de logs de auditd referentes a modificaciones de archivos/directorios que se encuentren monitoreados a través de la herramienta. Además se analizan los archivos dentro del directorio /tmp y obtiene los que lleven creados más tiempo que lo indicado en la setting MINUTES_AGO_TMP_FILE, establecida por defecto con un valor de 12 horas, es decir que por defecto se toman los archivos que lleven más de 12 horas creados dentro de dicho directorio. En caso de obtener eventos relevantes sobre cualquiera de estos dos casos, se envía el correo de alerta a soporte.

  • check_package_updates.py: Realiza una búsqueda en los logs de apt y dpkg para encontrar modificaciones de paquetes o librerías del sistema en el día actual. En caso de encontrar modificaciones, envía el correo de alerta a soporte.

  • check_user_lockouts.py: Se detectan los bloqueos de usuarios en Athento para el día actual y en caso de existir, se envía alerta a soporte con los bloqueos detectados.

  • perform_hardening_analysis.py: Obtiene las advertencias y sugerencias del reporte de hardening de Lynis y las envía como alerta a soporte. Esto es complementario al comando hardening_report.py que existe hoy en día.

Para ejecutar cualquiera de estos comandos de detección de eventos, debes situarte en el directorio /var/www/athentose/ y ejecutar el comando deseado, por ejemplo:

python manage.py check_modified_files

Al ejecutar el comando, se realizan las comprobaciones y en caso de existir eventos, se envía el email de alerta al correo definido: