MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Usando o plug-in de auditoria MariaDB para segurança de banco de dados

Existem diferentes maneiras de manter seus dados seguros. Práticas como controlar o acesso ao banco de dados, proteger a configuração, atualizar seu sistema e muito mais fazem parte da segurança do banco de dados. É até possível que você tenha problemas de segurança e não perceba (até que seja tarde demais), por isso o monitoramento é uma peça chave para garantir que se algo inesperado acontecer, você será capaz de pegá-lo. Isso inclui não apenas seu sistema, mas também seus bancos de dados.

A auditoria é uma maneira de saber o que está acontecendo em seu banco de dados e também é necessária para muitos regulamentos ou padrões de segurança (por exemplo, PCI - Payment Card Industry).

O MariaDB Server, um dos servidores de banco de dados de código aberto mais populares, possui seu próprio Plugin de Auditoria (que também funciona no MySQL), para ajudar nessa tarefa de auditoria. Neste blog, você verá como instalar e usar este útil plug-in de auditoria MariaDB.

Também apresentaremos a versão mais avançada do MariaDB do plug-in para MariaDB Enterprise Audit, que está incluído nas instalações Enterprise 10.6, 10.5 e 10.4. Mas mais sobre isso mais tarde.

O que é o plug-in de auditoria MariaDB?

O plug-in de auditoria é desenvolvido pelo MariaDB para atender aos requisitos de registro de acesso do usuário para estar em conformidade com os regulamentos de auditoria.

Para cada sessão do cliente, ele registra, em um arquivo de log (ou syslog), quem se conectou ao servidor, quais consultas foram executadas, quais tabelas foram acessadas e as variáveis ​​do servidor alteradas.

Funciona com MariaDB, MySQL e Servidor Percona. O MariaDB passou a incluir por padrão o Plugin de Auditoria das versões 10.0.10 e 5.5.37, e pode ser instalado em qualquer versão do MariaDB 5.5.20.

Instalação do plug-in de auditoria MariaDB

O arquivo de plugin (server_audit.so) é instalado por padrão durante a instalação do MariaDB no diretório de plugins /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

Então, você só precisa adicioná-lo à instância 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     |

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

E habilite-o usando o comando SET GLOBAL:

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

Query OK, 0 rows affected (0.000 sec)

Ou torne-o persistente no arquivo de configuração my.cnf para iniciar a auditoria:

[MYSQLD]

server_audit_logging=ON

Outra maneira de adicioná-lo à instância MariaDB é adicionando o parâmetro plugin_load_add no arquivo de configuração my.cnf:

[mariadb]

plugin_load_add = server_audit

Também é recomendado adicionar o FORCE_PLUS_PERMANENT para evitar desinstalá-lo:

[mariadb]

plugin_load_add = server_audit

server_audit=FORCE_PLUS_PERMANENT

Agora que você tem o MariaDB Audit Plugin instalado, vamos ver como configurá-lo.

Configuração do plug-in de auditoria MariaDB

Para verificar a configuração atual você pode ver o valor das variáveis ​​globais “server_audit%” executando o seguinte 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)

Você pode modificar essas variáveis ​​usando o comando SET GLOBAL ou torná-las persistentes no arquivo de configuração my.cnf na seção [mysqld].

Vamos descrever algumas das variáveis ​​mais importantes:

  • server_audit_logging :  Ativa a geração de registros de auditoria.
  • server_audit_events :especifica os eventos que você deseja gravar. Por padrão, o valor é vazio, o que significa que todos os eventos são registrados. As opções são CONNECTION, QUERY e TABLE.
  • server_audit_excl_users, server_audit_incl_users :essas variáveis ​​especificam quais atividades de usuários devem ser excluídas ou incluídas no arquivo de log de auditoria. Por padrão, todas as atividades dos usuários são registradas.
  • server_audit_output_type :Por padrão, a saída de auditoria é enviada para um arquivo. A outra opção é syslog, o que significa que todas as entradas vão para o recurso syslog.
  • server_audit_syslog_facility, server_audit_syslog_priority :especifica o recurso syslog e a prioridade dos eventos que devem ir para o syslog.

Após configurá-lo, você pode ver os eventos de auditoria no arquivo de log especificado (ou syslog). Vamos ver como fica.

Registro do plug-in de auditoria MariaDB

Para ver os eventos registrados pelo Plugin de Log de Auditoria, você pode verificar o arquivo de log especificado (por padrão 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 você pode ver no log acima, você terá eventos sobre conexões de banco de dados e as consultas em execução lá, dependendo da configuração server_audit_events.

Usando o plug-in de auditoria MariaDB no ClusterControl

Para evitar a configuração manual, você pode habilitar o plug-in de auditoria na interface do usuário do ClusterControl. Para isso, você só precisa ir para ClusterControl -> Selecionar o MariaDB Cluster -> Segurança -> Log de Auditoria:


E você terá o plugin habilitado sem nenhuma instalação manual ou configuração.

Usando o ClusterControl você também pode aproveitar diferentes recursos, não apenas segurança, mas também monitoramento, gerenciamento e backup, entre outros recursos úteis.

Apresentando o MariaDB Enterprise Audit Plugin, server_audit2

MariaDB continua a evoluir e isso inclui melhorias de plugins. Incluído nas instalações 10.6, 10.5 e 10.4 do MariaDB Enterprise Server, seu plug-in mais recente para o MariaDB Enterprise Audit é server_audit2.so. Em poucas palavras, ele permite que os usuários armazenem informações necessárias para auditorias de conformidade.


O plugin apresenta tabelas de sistema para modelos de filtro e usuários, um filtro padrão e também alguns filtros de nível de conta por usuário. O novo filtro padrão permite que as pessoas definam regras de auditoria para qualquer usuário sem um filtro definido. A tabela consiste em um nome de filtro (que deve ser definido como "padrão") e uma coluna de regra. Os conjuntos de regras precisam ser “atualizados” executando uma consulta como SET GLOBAL server_audit_reload_filters=ON;


Os usuários também podem armazenar nomes de filtros aplicáveis ​​a um determinado usuário e auditar o próprio plug-in, portanto, se ocorrer uma alteração na configuração do plug-in de auditoria, ele será registrado no evento AUDIT_CONFIG (conforme MariaDB, as informações também podem ser adicionadas a um novo arquivo de log de auditoria para registrar as configurações atuais).

Além disso, a tabela server_audit_users agora pode ser usada em server_audit2.so. plugin para armazenar informações relacionadas ao usuário.

Para garantir que sua instalação do MariaDB tenha este plugin, procure por server_audit2.so no diretório definido na variável de sistema plugin_dir ou simplesmente consulte @@plugin_dir se você não conhece o diretório e não quer gastar tempo passando por variáveis ​​em my.cnf.

Conclusão

A auditoria é necessária para muitas regulamentações de segurança e também é útil se você quiser saber o que aconteceu em seu banco de dados, quando e quem foi responsável por isso.

O plug-in de auditoria MariaDB, e sua variante empresarial, é uma excelente maneira de auditar seus bancos de dados sem usar nenhuma ferramenta externa e também é compatível com MySQL e Percona Server. Se você quiser evitar configurá-lo manualmente, use o ClusterControl para ativar o Plugin de auditoria de maneira fácil na interface do usuário.