sql >> Databáze >  >> RDS >> MariaDB

Použití modulu MariaDB Audit pro zabezpečení databáze

Existují různé způsoby, jak udržet svá data v bezpečí. Praktiky, jako je řízení přístupu k databázi, zabezpečení konfigurace, upgrade vašeho systému a další, jsou součástí zabezpečení databáze. Je dokonce možné, že máte bezpečnostní problémy a neuvědomujete si to (dokud není příliš pozdě), proto je monitorování klíčovým prvkem, který zajistí, že pokud se stane něco neočekávaného, ​​budete to schopni zachytit. To zahrnuje nejen váš systém, ale také vaše databáze.

Audit je způsob, jak zjistit, co se děje ve vaší databázi, a je také vyžadován mnoha bezpečnostními předpisy nebo standardy (např. PCI – Payment Card Industry).

MariaDB Server, jeden z nejpopulárnějších databázových serverů s otevřeným zdrojovým kódem, má svůj vlastní modul Audit Plugin (který funguje také na MySQL), aby pomohl s tímto úkolem auditu. V tomto blogu uvidíte, jak nainstalovat a používat tento užitečný modul MariaDB Audit Plugin.

Představíme také pokročilejší verzi pluginu MariaDB pro MariaDB Enterprise Audit, která je součástí podnikových instalací 10.6, 10.5 a 10.4. Ale o tom později.

Co je modul MariaDB Audit Plugin?

Audit Plugin byl vyvinut společností MariaDB, aby splňoval požadavky na záznam přístupu uživatelů, aby byl v souladu s předpisy o auditu.

Pro každou relaci klienta zaznamenává do souboru protokolu (nebo syslog), kdo se připojil k serveru, jaké dotazy byly provedeny, ke kterým tabulkám byl přistupován a proměnné serveru se změnily.

Funguje s MariaDB, MySQL a Percona Server. MariaDB začala ve výchozím nastavení zahrnovat Audit Plugin od verzí 10.0.10 a 5.5.37 a lze jej nainstalovat v jakékoli verzi od MariaDB 5.5.20.

Instalace modulu MariaDB Audit Plugin

Soubor pluginu (server_audit.so) je standardně nainstalován během instalace MariaDB v adresáři 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

Takže jej stačí přidat do instance 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     |

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

A povolte jej pomocí příkazu SET GLOBAL:

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

Query OK, 0 rows affected (0.000 sec)

Nebo jej nastavte jako trvalé v konfiguračním souboru my.cnf, abyste mohli zahájit audit:

[MYSQLD]

server_audit_logging=ON

Dalším způsobem, jak jej přidat do instance MariaDB, je přidání parametru plugin_load_add do konfiguračního souboru my.cnf:

[mariadb]

plugin_load_add = server_audit

Doporučujeme také přidat FORCE_PLUS_PERMANENT, aby nedošlo k jeho odinstalaci:

[mariadb]

plugin_load_add = server_audit

server_audit=FORCE_PLUS_PERMANENT

Nyní máte nainstalovaný modul MariaDB Audit Plugin, pojďme se podívat, jak jej nakonfigurovat.

Konfigurace modulu MariaDB Audit Plugin

Pro kontrolu aktuální konfigurace můžete zobrazit hodnotu globálních proměnných „server_audit%“ spuštěním následujícího příkazu:

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)

Tyto proměnné můžete upravit pomocí příkazu SET GLOBAL nebo je nastavit jako trvalé v konfiguračním souboru my.cnf v sekci [mysqld].

Popišme si některé z nejdůležitějších proměnných:

  • server_audit_logging :  Povolí protokolování auditu.
  • server_audit_events :Určuje události, které chcete zaznamenat. Ve výchozím nastavení je hodnota prázdná, což znamená, že se zaznamenávají všechny události. Možnosti jsou CONNECTION, QUERY a TABLE.
  • server_audit_excl_users, server_audit_incl_users :Tyto proměnné určují, která aktivita uživatelů by měla být vyloučena nebo zahrnuta do souboru protokolu auditu. Ve výchozím nastavení se zaznamenává aktivita všech uživatelů.
  • server_audit_output_type :Standardně je výstup auditu odeslán do souboru. Druhou možností je syslog, což znamená, že všechny záznamy jdou do zařízení syslog.
  • server_audit_syslog_facility, server_audit_syslog_priority :Určuje zařízení syslog a prioritu událostí, které by měly jít do syslog.

Po jeho konfiguraci můžete vidět události auditu v zadaném souboru protokolu (nebo syslog). Podívejme se, jak to vypadá.

Protokol pluginu MariaDB Audit

Chcete-li vidět události registrované modulem Audit Log Plugin, můžete zkontrolovat zadaný soubor protokolu (ve výchozím nastavení 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 můžete vidět ve výše uvedeném protokolu, v závislosti na konfiguraci server_audit_events budete mít události týkající se připojení k databázi a dotazů.

Použití pluginu MariaDB Audit v ClusterControl

Abyste se vyhnuli ruční konfiguraci, můžete povolit modul Audit Plugin z uživatelského rozhraní ClusterControl. K tomu stačí přejít do ClusterControl -> Vyberte klastr MariaDB -> Zabezpečení -> Protokol auditu:

A budete mít plugin povolený bez jakékoli ruční instalace nebo konfigurace.

Pomocí ClusterControl můžete také využívat různé funkce, nejen zabezpečení, ale také monitorování, správu a zálohování a další užitečné funkce.

Představujeme modul MariaDB Enterprise Audit Plugin, server_audit2

MariaDB se neustále vyvíjí a to zahrnuje vylepšení pluginů. Jejich nejnovější plugin pro MariaDB Enterprise Audit je součástí instalací MariaDB Enterprise Server 10.6, 10.5 a 10.4 server_audit2.so. Stručně řečeno, umožňuje uživatelům ukládat informace nezbytné pro audity souladu.


Plugin zavádí systémové tabulky pro šablony filtrů a uživatele, výchozí filtr a také některé filtry na úrovni uživatelských účtů. Nový výchozí filtr umožňuje lidem definovat pravidla auditování pro libovolného uživatele bez definovaného filtru. Tabulka se skládá z názvu filtru (vyžaduje nastavení na „výchozí“) a sloupce pravidla. Sady pravidel je třeba „obnovit“ spuštěním dotazu jako SET GLOBAL server_audit_reload_filters=ON;


Uživatelé mohou také ukládat názvy filtrů platné pro určitého uživatele a auditovat samotný plugin, takže pokud dojde ke změně v konfiguraci auditovacího pluginu, je zaprotokolován do události AUDIT_CONFIG (podle MariaDB, informace lze také přidat do nového souboru protokolu auditu a zaznamenat aktuální nastavení).

Tabulku server_audit_users lze nyní použít v server_audit2.so. plugin pro ukládání informací souvisejících s uživatelem.

Abyste se ujistili, že vaše instalace MariaDB obsahuje tento plugin, vyhledejte server_audit2.so v adresáři definovaném v systémové proměnné plugin_dir nebo jednoduše zadejte dotaz @@plugin_dir, pokud adresář neznáte a neznáte chcete strávit čas procházením proměnných v my.cnf.

Závěr

Audit je vyžadován pro mnoho bezpečnostních předpisů a je také užitečný, pokud chcete vědět, co se stalo ve vaší databázi a kdy a kdo za to byl zodpovědný.

Plugin MariaDB Audit Plugin a jeho podniková varianta je vynikajícím způsobem, jak auditovat databáze bez použití jakéhokoli externího nástroje, a je také kompatibilní s MySQL a Percona Server. Pokud se chcete vyhnout ruční konfiguraci, můžete použít ClusterControl k aktivaci Audit Plugin jednoduchým způsobem z uživatelského rozhraní.


  1. rails + MySQL na OSX:Knihovna není načtena:libmysqlclient.18.dylib

  2. Java SQL ERROR:Relation Table_Name neexistuje

  3. Funkce SINH() v Oracle

  4. Odstraňování problémů s výkonem CPU na VMware