Skip to main content

Análisis de logs en Bases de datos

Prueba piloto con Mariadb.

Actualización de sistema, e instalación de Apache.
sudo apt-get update
sudo apt-get install apache2
sudo sudo systemctl start apache2
sudo sudo systemctl status apache2

Actualización e instalación de MariaDB

sudo apt update
sudo apt install mariadb-server
sudo systemctl status mariadb

Una vez instalada mariadb comprobamos con el estatus:

image.png

Como no se tiene una configuración predeterminada de usuario ni password la contraseña esta vacía y el usuario por defecto es root. Ingresamos a la base de datos:

mysql -u root -p

Creamos un usuario que pueda conectarse de manera remota a las bases de datos y le otorgramos los privilegios necesarios para acceder con los siguientes comandos.

CREATE USER 'remoto'@'%' IDENTIFIED BY '1234';
grant all privileges on *.* to 'remoto'@'%' with grant option;

Realizamos la creación del usuario saliendo de root e ingresando con usuario “remoto” de manera local.

MariaDB [(none)]>exit
mysql -u remoto -p
exit

Ingresamos de forma exitosa:

image.png

Habilitamos el acceso remoto de mariadb, salimos del usuario creado e ingresamos a la configuracion 50-server.cnf desde el terminal y cambiamos el valor de bind address.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

image.png

Cabe destacar que esta configuración solo es recomendable para entornos de prueba, en un entorno de producción tenemos que restringir lo mas posible que dirección o direcciones IP pueden conectarse.

Reiniciamos Mariadb para aplicar los cambios.

sudo systemctl restart mariadb

Tenemos la direccion ip del servidor “192.168.24.84” con la que realizaremos la prueba remota desde nuestro terminal.

mysql -h 192.168.24.84 -P 3306 -u remoto -p

image.png

Para que se registren los logs de mariadb se deben realizar cambios en el archivo de configuración quitando el símbolo de comentario en las siguientes lineas.

nano /etc/mysql/mariadb.conf.d/50-server.cnf

image.png

Los logs se registran en el directorio /var/lib/mysql/server_audit.log.

Instalar el pluggin de auditoria en el servidor mariadb.
root# mysql -u remoto -p
INSTALL SONAME 'server_audit';
show plugins;
SHOW GLOBAL VARIABLES LIKE "server_Audit%";
SET GLOBAL server_audit_events= 'CONNECT,QUERY_DML,TABLE';
SET GLOBAL server_audit_logging =ON;
SHOW GLOBAL VARIABLES LIKE "server_Audit%";
SET GLOBAL server_audit_excl_users = remoto;
SHOW GRANTS FOR 'remoto';
nano /etc/mysql/mariadb.conf.d/50-server.cnf
plugin_load=server_audit=server_audit.so
sudo systemctl restart mariadb

Instalación de rsyslog en nuestro servidor MariaDB.

apt-get install -y rsyslog

Después debemos enviar los registros al servidor de Wazuh. En /etc/rsyslog.conf, deberá definir qué enviar al servidor de Wazuh, por UDP o TCP, la dirección IP del servidor de Wazuh y el puerto.

image.png

Para aplicar los cambios se debe reiniciar el servicio Rsyslog.

systemctl restart rsyslog

Se debe habilitar el complemento de auditoria

nano /etc/mysql/my.cnf

image.png

Reiniciamos para aplicar los cambios

systemctl restart mariadb

Para realizar una prueba usamos una contraseña incorrecta y correcta en repetidas ocasiones desde un terminal remoto:

mysql -h 192.168.24.84 -P 3306 -u remoto -p

Verificamos el archivo de auditoria.

cat /var/log/mysql/mariadb-audit.log | grep remoto

image.png

Por ultimo verificamos el archivo Syslog para confirmar que la información este correlacionada.

image.png

En el servidor configuramos la conexión remota con esta acción Wazuh también obtendrá registros de nuestro servidor MariaDB, para eso, necesitamos editar el archivo de configuración.

sudo nano /var/ossec/etc/ossec.conf

image.png

systemctl restart wazuh-manager.service

Para el archivo de logs en Wazuh, en el agente.

image.png

nano /var/ossec/etc/rules/local_rules.xml

image.png

systemctl restart wazuh-manager

Con todas las configuraciones realizadas se pueden ver las alertas en el dashboard de Wazuh-manager.

image.png