sql >> Base de Datos >  >> RDS >> MariaDB

Uso del complemento de auditoría de MariaDB para la seguridad de la base de datos

Hay diferentes maneras de mantener sus datos seguros. Prácticas como controlar el acceso a la base de datos, asegurar la configuración, actualizar su sistema y más son parte de la seguridad de la base de datos. Incluso es posible que tengas problemas de seguridad y no te des cuenta (hasta que sea demasiado tarde), por eso la monitorización es una pieza clave para asegurarte de que si ocurre algo inesperado, podrás atraparlo. Esto incluye no solo su sistema, sino también sus bases de datos.

La auditoría es una forma de saber qué sucede en su base de datos y también es necesaria para muchas normas o estándares de seguridad (por ejemplo, PCI - Industria de tarjetas de pago).

MariaDB Server, uno de los servidores de bases de datos de código abierto más populares, tiene su propio complemento de auditoría (que también funciona en MySQL), para ayudar con esta tarea de auditoría. En este blog, verá cómo instalar y usar este útil complemento de auditoría de MariaDB.

También presentaremos la versión más avanzada de MariaDB del complemento para MariaDB Enterprise Audit, que se incluye en las instalaciones Enterprise 10.6, 10.5 y 10.4. Pero hablaremos de eso más adelante.

¿Qué es el complemento de auditoría de MariaDB?

El complemento de auditoría está desarrollado por MariaDB para cumplir con los requisitos para registrar el acceso de los usuarios para cumplir con las normas de auditoría.

Para cada sesión de cliente, registra, en un archivo de registro (o syslog), quién se conectó al servidor, qué consultas se ejecutaron, a qué tablas se accedió y cambiaron las variables del servidor.

Funciona con MariaDB, MySQL y Percona Server. MariaDB comenzó a incluir por defecto el Audit Plugin desde las versiones 10.0.10 y 5.5.37, y se puede instalar en cualquier versión desde MariaDB 5.5.20.

Instalación del complemento de auditoría MariaDB

El archivo del complemento (server_audit.so) se instala de manera predeterminada durante la instalación de MariaDB en el directorio de complementos /usr/lib/mysql/plugin/:

$ ls -lah /usr/lib/mysql/plugin/ |grep server_audit

-rw-r--r-- 1 root  root  63K May  9 19:33 server_audit.so

Entonces, solo necesita agregarlo a la instancia de MariaDB:

MariaDB [(none)]> INSTALL SONAME 'server_audit';

Query OK, 0 rows affected (0.003 sec)

MariaDB [(none)]> SHOW PLUGINS;

+--------------+--------+-------+-----------------+---------+

| Name         | Status | Type  | Library         | License |

+--------------+--------+-------+-----------------+---------+

| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL     |

+--------------+--------+-------+-----------------+---------+

Y habilítelo usando el comando SET GLOBAL:

MariaDB [(none)]> SET GLOBAL server_audit_logging=ON;

Query OK, 0 rows affected (0.000 sec)

O hágalo persistente en el archivo de configuración my.cnf para comenzar a auditar:

[MYSQLD]

server_audit_logging=ON

Otra forma de agregarlo a la instancia de MariaDB es agregar el parámetro plugin_load_add en el archivo de configuración my.cnf:

[mariadb]

plugin_load_add = server_audit

También se recomienda agregar FORCE_PLUS_PERMANENT para evitar su desinstalación:

[mariadb]

plugin_load_add = server_audit

server_audit=FORCE_PLUS_PERMANENT

Ahora que tiene instalado el complemento de auditoría de MariaDB, veamos cómo configurarlo.

Configuración del complemento de auditoría MariaDB

Para verificar la configuración actual, puede ver el valor de las variables globales "server_audit%" ejecutando el siguiente comando:

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE "server_audit%";

+-------------------------------+-----------------------+

| Variable_name                 | Value                 |

+-------------------------------+-----------------------+

| server_audit_events           |                       |

| server_audit_excl_users       |                       |

| server_audit_file_path        | server_audit.log      |

| server_audit_file_rotate_now  | OFF                   |

| server_audit_file_rotate_size | 1000000               |

| server_audit_file_rotations   | 9                     |

| server_audit_incl_users       |                       |

| server_audit_logging          | OFF                   |

| server_audit_mode             | 0                     |

| server_audit_output_type      | file                  |

| server_audit_query_log_limit  | 1024                  |

| server_audit_syslog_facility  | LOG_USER              |

| server_audit_syslog_ident     | mysql-server_auditing |

| server_audit_syslog_info      |                       |

| server_audit_syslog_priority  | LOG_INFO              |

+-------------------------------+-----------------------+

15 rows in set (0.001 sec)

Puede modificar estas variables usando el comando ESTABLECER GLOBAL o hacerlo persistente en el archivo de configuración my.cnf en la sección [mysqld].

Vamos a describir algunas de las variables más importantes:

  • server_audit_logging :  Habilita el registro de auditoría.
  • servidor_auditoría_eventos :especifica los eventos que desea grabar. De forma predeterminada, el valor está vacío, lo que significa que se registran todos los eventos. Las opciones son CONEXIÓN, CONSULTA y TABLA.
  • server_audit_excl_users, server_audit_incl_users :estas variables especifican qué actividad de los usuarios debe excluirse o incluirse en el archivo de registro de auditoría. De forma predeterminada, se registra la actividad de todos los usuarios.
  • server_audit_output_type :De forma predeterminada, la salida de auditoría se envía a un archivo. La otra opción es syslog, lo que significa que todas las entradas van a la instalación de syslog.
  • server_audit_syslog_facility, server_audit_syslog_priority :especifica la instalación de syslog y la prioridad de los eventos que deben ir a syslog.

Después de configurarlo, puede ver los eventos de auditoría en el archivo de registro especificado (o syslog). Veamos cómo se ve.

Registro del complemento de auditoría de MariaDB

Para ver los eventos registrados por el complemento de registro de auditoría, puede consultar el archivo de registro especificado (por defecto, server_audit.log).

$ tail -f /var/lib/mysql/server_audit.log

20200703 19:07:04,MariaDB1,cmon,10.10.10.116,64,915239,QUERY,information_schema,'FLUSH /*!50500 SLOW */ LOGS',0

20200703 19:07:05,MariaDB1,cmon,10.10.10.116,61,915240,QUERY,information_schema,'SHOW GLOBAL STATUS',0

20200703 19:07:05,MariaDB1,cmon,10.10.10.116,64,915241,WRITE,mysql,slow_log,

20200703 19:07:05,MariaDB1,cmon,10.10.10.116,64,915241,QUERY,information_schema,'SET GLOBAL SLOW_QUERY_LOG=1',0

20200703 19:07:06,MariaDB1,cmon,10.10.10.116,61,915242,QUERY,information_schema,'SHOW GLOBAL STATUS',0

20200703 19:15:42,MariaDB1,root,localhost,124,0,CONNECT,,,0

20200703 19:15:42,MariaDB1,root,localhost,124,917042,QUERY,,'select @@version_comment limit 1',0

20200703 19:15:48,MariaDB1,root,localhost,124,0,DISCONNECT,,,0

20200703 19:57:41,MariaDB1,root,localhost,135,925831,QUERY,,'create database test1',0

20200703 19:58:05,MariaDB1,root,127.0.0.1,136,0,FAILED_CONNECT,,,1045

20200703 19:58:05,MariaDB1,root,127.0.0.1,136,0,DISCONNECT,,,0

20200703 19:58:49,MariaDB1,root,localhost,137,926073,QUERY,,'SELECT DATABASE()',0

20200703 19:58:49,MariaDB1,root,localhost,137,926075,QUERY,test1,'show databases',0

20200703 19:58:49,MariaDB1,root,localhost,137,926076,QUERY,test1,'show tables',0

20200703 19:59:20,MariaDB1,root,localhost,137,926182,CREATE,test1,t1,

20200703 19:59:20,MariaDB1,root,localhost,137,926182,QUERY,test1,'create table t1 (id int, message text)',0

20200703 19:59:48,MariaDB1,root,localhost,137,926287,QUERY,test1,'insert into t1 values (4,\'message 1\')',0

Como puede ver en el registro anterior, tendrá eventos sobre las conexiones de la base de datos y las consultas que se ejecutan allí, según la configuración de server_audit_events.

Uso del complemento de auditoría de MariaDB en ClusterControl

Para evitar la configuración manual, puede habilitar el complemento de auditoría desde la interfaz de usuario de ClusterControl. Para esto, solo necesita ir a ClusterControl -> Seleccione el Clúster de MariaDB -> Seguridad -> Registro de auditoría:

Y tendrás el complemento habilitado sin ninguna instalación ni configuración manual.

Usando ClusterControl también puede aprovechar diferentes funciones, no solo seguridad sino también monitoreo, administración y respaldo, entre otras funciones útiles.

Presentamos el complemento de auditoría empresarial de MariaDB, server_audit2

MariaDB continúa evolucionando y eso incluye mejoras en los complementos. Incluido en las instalaciones de MariaDB Enterprise Server 10.6, 10.5 y 10.4, su complemento más reciente para MariaDB Enterprise Audit es server_audit2.so. En pocas palabras, permite a los usuarios almacenar la información necesaria para las auditorías de cumplimiento.


El complemento presenta tablas de sistema para plantillas de filtro y usuarios, un filtro predeterminado y también algunos filtros de nivel de cuenta por usuario. El nuevo filtro predeterminado permite que las personas definan reglas de auditoría para cualquier usuario sin un filtro definido. La tabla consta de un nombre de filtro (debe establecerse como "predeterminado") y una columna de reglas. Los conjuntos de reglas deben "actualizarse" ejecutando una consulta como SET GLOBAL server_audit_reload_filters=ON;


Los usuarios también pueden almacenar nombres de filtros aplicables a un determinado usuario y auditar el propio complemento, por lo que si se produce un cambio en la configuración del complemento de auditoría, se registra en el evento AUDIT_CONFIG (según MariaDB, la información también se puede agregar a un nuevo archivo de registro de auditoría para registrar la configuración actual).

Además, la tabla server_audit_users ahora se puede usar en server_audit2.so. complemento para almacenar información relacionada con el usuario.

Para asegurarse de que su instalación de MariaDB tenga este complemento, busque server_audit2.so en el directorio definido en la variable del sistema plugin_dir o simplemente consulte @@plugin_dir si no conoce el directorio y no quiero pasar tiempo revisando variables en my.cnf.

Conclusión

La auditoría es necesaria para muchas normas de seguridad y también es útil si desea saber qué sucedió en su base de datos, cuándo y quién fue el responsable de ello.

El complemento de auditoría de MariaDB, y su variante empresarial, es una excelente manera de auditar sus bases de datos sin usar ninguna herramienta externa, y también es compatible con MySQL y Percona Server. Si desea evitar configurarlo manualmente, puede usar ClusterControl para habilitar el complemento de auditoría de una manera fácil desde la interfaz de usuario.