MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Korzystanie z wtyczki audytu MariaDB do zabezpieczania baz danych

Istnieją różne sposoby zabezpieczania danych. Praktyki, takie jak kontrolowanie dostępu do bazy danych, zabezpieczanie konfiguracji, aktualizowanie systemu i inne, są częścią bezpieczeństwa bazy danych. Możliwe jest nawet, że masz problemy z bezpieczeństwem i nie zdajesz sobie z tego sprawy (dopóki nie będzie za późno), dlatego monitorowanie jest kluczowym elementem, który zapewnia, że ​​jeśli wydarzy się coś nieoczekiwanego, będziesz w stanie to złapać. Dotyczy to nie tylko Twojego systemu, ale także baz danych.

Audyt to sposób na sprawdzenie, co dzieje się w Twojej bazie danych i jest również wymagany w przypadku wielu przepisów lub standardów bezpieczeństwa (np. PCI - Payment Card Industry).

MariaDB Server, jeden z najpopularniejszych serwerów bazodanowych typu open source, ma własną wtyczkę audytu (działa również na MySQL), aby pomóc w tym zadaniu audytu. W tym blogu dowiesz się, jak zainstalować i używać tej przydatnej wtyczki MariaDB Audit.

Wprowadzimy również bardziej zaawansowaną wersję wtyczki MariaDB do MariaDB Enterprise Audit, która jest dołączona do instalacji Enterprise 10.6, 10.5 i 10.4. Ale o tym później.

Co to jest wtyczka audytu MariaDB?

Wtyczka audytu została opracowana przez MariaDB w celu spełnienia wymagań dotyczących rejestrowania dostępu użytkownika zgodnie z przepisami dotyczącymi audytu.

Dla każdej sesji klienta zapisuje w pliku dziennika (lub syslog), kto połączył się z serwerem, jakie zapytania zostały wykonane, do których tabel uzyskano dostęp i które uległy zmianie.

Działa z MariaDB, MySQL i Percona Server. MariaDB zaczęła domyślnie dołączać wtyczkę Audit z wersji 10.0.10 i 5.5.37 i można ją zainstalować w dowolnej wersji z MariaDB 5.5.20.

Instalacja wtyczki audytu MariaDB

Plik wtyczki (server_audit.so) jest domyślnie instalowany podczas instalacji MariaDB w katalogu wtyczek /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

Więc wystarczy dodać go do instancji 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     |

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

I włącz go za pomocą polecenia SET GLOBAL:

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

Query OK, 0 rows affected (0.000 sec)

Lub utrwal go w pliku konfiguracyjnym my.cnf, aby rozpocząć audyt:

[MYSQLD]

server_audit_logging=ON

Innym sposobem dodania go do instancji MariaDB jest dodanie parametru plugin_load_add w pliku konfiguracyjnym my.cnf:

[mariadb]

plugin_load_add = server_audit

Zaleca się również dodanie FORCE_PLUS_PERMANENT, aby uniknąć odinstalowania:

[mariadb]

plugin_load_add = server_audit

server_audit=FORCE_PLUS_PERMANENT

Teraz masz już zainstalowaną wtyczkę MariaDB Audit, zobaczmy, jak ją skonfigurować.

Konfiguracja wtyczki audytu MariaDB

Aby sprawdzić bieżącą konfigurację, możesz zobaczyć wartość zmiennych globalnych „server_audit%”, uruchamiając następujące polecenie:

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)

Możesz modyfikować te zmienne za pomocą polecenia SET GLOBAL lub uczynić je trwałymi w pliku konfiguracyjnym my.cnf w sekcji [mysqld].

Opiszmy niektóre z najważniejszych zmiennych:

  • server_audit_logging :Włącza rejestrowanie kontrolne.
  • server_audit_events :Określa zdarzenia, które chcesz zarejestrować. Domyślnie wartość jest pusta, co oznacza, że ​​wszystkie zdarzenia są rejestrowane. Dostępne opcje to POŁĄCZENIE, ZAPYTANIE i TABELA.
  • server_audit_excl_users, server_audit_incl_users :te zmienne określają, które działania użytkowników należy wykluczyć lub uwzględnić w pliku dziennika kontroli. Domyślnie rejestrowana jest cała aktywność użytkowników.
  • server_audit_output_type :Domyślnie dane wyjściowe audytu są wysyłane do pliku. Inną opcją jest syslog, co oznacza, że ​​wszystkie wpisy trafiają do funkcji syslog.
  • server_audit_syslog_facility, server_audit_syslog_priority :Określa funkcję syslog i priorytet zdarzeń, które powinny trafić do syslog.

Po skonfigurowaniu możesz zobaczyć zdarzenia audytu w określonym pliku dziennika (lub syslog). Zobaczmy, jak to wygląda.

Dziennik wtyczki audytu MariaDB

Aby zobaczyć zdarzenia zarejestrowane przez wtyczkę dziennika audytu, możesz sprawdzić określony plik dziennika (domyślnie 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

Jak widać w powyższym dzienniku, będziesz mieć zdarzenia dotyczące połączeń z bazą danych i uruchomionych tam zapytań, w zależności od konfiguracji server_audit_events.

Korzystanie z wtyczki MariaDB Audit w ClusterControl

Aby uniknąć ręcznej konfiguracji, możesz włączyć wtyczkę audytu z interfejsu użytkownika ClusterControl. W tym celu wystarczy przejść do ClusterControl -> Wybierz klaster MariaDB -> Bezpieczeństwo -> Dziennik audytu:

Wtyczka będzie włączona bez ręcznej instalacji ani konfiguracji.

Korzystając z ClusterControl, możesz także korzystać z różnych funkcji, nie tylko bezpieczeństwa, ale także monitorowania, zarządzania i tworzenia kopii zapasowych oraz innych przydatnych funkcji.

Przedstawiamy wtyczkę MariaDB Enterprise Audit, server_audit2

MariaDB nadal ewoluuje, co obejmuje ulepszenia wtyczek. Ich najnowsza wtyczka do MariaDB Enterprise Audit zawarta w instalacjach MariaDB Enterprise Server 10.6, 10.5 i 10.4 to server_audit2.so. Krótko mówiąc, umożliwia użytkownikom przechowywanie informacji niezbędnych do audytów zgodności.


Wtyczka wprowadza tabele systemowe dla szablonów filtrów i użytkowników, filtr domyślny, a także niektóre filtry na poziomie konta użytkownika. Nowy domyślny filtr umożliwia użytkownikom definiowanie reguł audytu dla dowolnego użytkownika bez zdefiniowanego filtra. Tabela składa się z nazwy filtra (wymagana wartość „domyślna”) oraz kolumny reguły. Zestawy reguł należy „odświeżyć”, uruchamiając zapytanie typu SET GLOBAL server_audit_reload_filters=ON;


Użytkownicy mogą również przechowywać nazwy filtrów mające zastosowanie do określonego użytkownika i przeprowadzać audyt samej wtyczki, więc jeśli nastąpi zmiana w konfiguracji wtyczki audytu, jest ona rejestrowana w zdarzeniu AUDIT_CONFIG (zgodnie z MariaDB, informacje można również dodać do nowego pliku dziennika kontroli, aby zarejestrować bieżące ustawienia).

Dodatkowo tabela server_audit_users może być teraz używana w server_audit2.so. wtyczka do przechowywania informacji związanych z użytkownikiem.

Aby upewnić się, że instalacja MariaDB zawiera tę wtyczkę, wyszukaj server_audit2.so w katalogu zdefiniowanym w zmiennej systemowej plugin_dir lub po prostu wpisz zapytanie @@plugin_dir, jeśli nie znasz katalogu i nie znasz chcesz spędzić czas na przeglądaniu zmiennych w my.cnf.

Wnioski

Audyt jest wymagany w przypadku wielu przepisów bezpieczeństwa i jest również przydatny, jeśli chcesz wiedzieć, co się stało w Twojej bazie danych oraz kiedy i kto był za to odpowiedzialny.

Wtyczka MariaDB Audit Plugin i jej wariant dla przedsiębiorstw to doskonały sposób na kontrolowanie baz danych bez użycia jakiegokolwiek narzędzia zewnętrznego, a ponadto jest zgodna z MySQL i Percona Server. Jeśli chcesz uniknąć ręcznego konfigurowania, możesz użyć ClusterControl, aby włączyć wtyczkę audytu w łatwy sposób z interfejsu użytkownika.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak wykryć, czy wartość zawiera co najmniej jedną cyfrę w MariaDB?

  2. Rozważania dotyczące bezpieczeństwa wdrożeń MariaDB w środowisku chmury hybrydowej

  3. Kopie zapasowe baz danych — porównanie MariaDB Mariabackup i Percona Xtrabackup

  4. Jak zainstalować i zabezpieczyć MariaDB 10 w CentOS 7?

  5. MariaDB WERSJA() Objaśnienie