MariaDB
 sql >> Teknologi Basis Data >  >> RDS >> MariaDB

Menggunakan Plugin Audit MariaDB untuk Keamanan Database

Ada berbagai cara untuk menjaga keamanan data Anda. Praktik seperti mengontrol akses database, mengamankan konfigurasi, meningkatkan sistem Anda, dan banyak lagi adalah bagian dari keamanan database. Bahkan mungkin Anda memiliki masalah keamanan dan tidak menyadarinya (sampai terlambat), itu sebabnya pemantauan adalah bagian penting untuk memastikan bahwa jika sesuatu yang tidak terduga terjadi, Anda akan dapat menangkapnya. Ini tidak hanya mencakup sistem Anda, tetapi juga database Anda.

Audit adalah cara untuk mengetahui apa yang terjadi di database Anda, dan juga diperlukan untuk banyak peraturan atau standar keamanan (mis. PCI - Industri Kartu Pembayaran).

Server MariaDB, salah satu server database sumber terbuka paling populer, memiliki Plugin Audit sendiri (yang juga berfungsi di MySQL), untuk membantu tugas audit ini. Di blog ini, Anda akan melihat cara menginstal dan menggunakan Plugin Audit MariaDB yang berguna ini.

Kami juga akan memperkenalkan versi plugin MariaDB yang lebih canggih untuk Audit Perusahaan MariaDB, yang disertakan dalam instalasi Perusahaan 10.6, 10.5, dan 10.4. Tapi lebih lanjut tentang itu nanti.

Apa itu Plugin Audit MariaDB?

Audit Plugin dikembangkan oleh MariaDB untuk memenuhi persyaratan untuk merekam akses pengguna agar sesuai dengan peraturan audit.

Untuk setiap sesi klien, ia mencatat, dalam file log (atau syslog), siapa yang terhubung ke server, kueri apa yang dieksekusi, tabel mana yang diakses, dan variabel server yang diubah.

Ini bekerja dengan MariaDB, MySQL, dan Server Percona. MariaDB mulai menyertakan secara default Plugin Audit dari versi 10.0.10 dan 5.5.37, dan dapat diinstal di versi apa pun dari MariaDB 5.5.20.

Penginstalan Plugin Audit MariaDB

File plugin (server_audit.so) diinstal secara default selama instalasi MariaDB di direktori 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

Jadi, Anda hanya perlu menambahkannya ke dalam 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     |

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

Dan aktifkan menggunakan perintah SET GLOBAL:

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

Query OK, 0 rows affected (0.000 sec)

Atau buat persisten di file konfigurasi my.cnf untuk mulai mengaudit:

[MYSQLD]

server_audit_logging=ON

Cara lain untuk menambahkannya ke dalam instance MariaDB adalah dengan menambahkan parameter plugin_load_add di file konfigurasi my.cnf:

[mariadb]

plugin_load_add = server_audit

Disarankan juga untuk menambahkan FORCE_PLUS_PERMANENT untuk menghindari mencopot pemasangannya:

[mariadb]

plugin_load_add = server_audit

server_audit=FORCE_PLUS_PERMANENT

Sekarang Anda telah menginstal MariaDB Audit Plugin, mari kita lihat cara mengkonfigurasinya.

Konfigurasi Plugin Audit MariaDB

Untuk memeriksa konfigurasi saat ini, Anda dapat melihat nilai variabel global “server_audit%” dengan menjalankan perintah berikut:

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)

Anda dapat memodifikasi variabel ini menggunakan perintah SET GLOBAL atau membuatnya tetap ada di file konfigurasi my.cnf di bawah bagian [mysqld].

Mari kita jelaskan beberapa variabel terpenting:

  • server_audit_logging :  Mengaktifkan pencatatan audit.
  • server_audit_events :Menentukan acara yang ingin Anda rekam. Secara default, nilainya kosong, yang berarti semua peristiwa dicatat. Opsinya adalah CONNECTION, QUERY, dan TABLE.
  • server_audit_excl_users, server_audit_incl_users :Variabel ini menentukan aktivitas pengguna mana yang harus dikecualikan atau disertakan dalam file log audit. Secara default, semua aktivitas pengguna dicatat.
  • server_audit_output_type :Secara default, output audit dikirim ke file. Pilihan lainnya adalah syslog, artinya semua entri masuk ke fasilitas syslog.
  • server_audit_syslog_facility, server_audit_syslog_priority :Menentukan fasilitas syslog dan prioritas acara yang harus masuk ke syslog.

Setelah mengonfigurasinya, Anda dapat melihat peristiwa audit di file log (atau syslog) yang ditentukan. Mari kita lihat bagaimana tampilannya.

Log Plugin Audit MariaDB

Untuk melihat peristiwa yang didaftarkan oleh Plugin Log Audit, Anda dapat memeriksa file log yang ditentukan (secara default 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

Seperti yang Anda lihat di log di atas, Anda akan memiliki peristiwa tentang koneksi database dan kueri yang berjalan di sana, bergantung pada konfigurasi server_audit_events.

Menggunakan Plugin Audit MariaDB di ClusterControl

Untuk menghindari konfigurasi manual, Anda dapat mengaktifkan Plugin Audit dari UI ClusterControl. Untuk ini, Anda hanya perlu masuk ke ClusterControl -> Pilih MariaDB Cluster -> Security -> Audit Log:

Dan Anda akan mengaktifkan plugin tanpa instalasi atau konfigurasi manual.

Menggunakan ClusterControl, Anda juga dapat memanfaatkan berbagai fitur, tidak hanya keamanan tetapi juga memantau, mengelola, dan mencadangkan, di antara fitur-fitur bermanfaat lainnya.

Memperkenalkan Plugin Audit Perusahaan MariaDB, server_audit2

MariaDB terus berkembang dan itu termasuk peningkatan plugin. Termasuk dalam instalasi 10.6, 10.5, dan 10.4 MariaDB Enterprise Server, plugin terbaru mereka untuk MariaDB Enterprise Audit adalah server_audit2.so. Singkatnya, ini memungkinkan pengguna untuk menyimpan informasi yang diperlukan untuk audit kepatuhan.


Plugin memperkenalkan tabel sistem untuk template filter dan pengguna, filter default, dan juga beberapa filter tingkat akun per pengguna. Filter default baru memungkinkan orang untuk menentukan aturan audit untuk setiap pengguna tanpa filter yang ditentukan. Tabel terdiri dari nama filter (harus disetel ke "default"), dan kolom aturan. Kumpulan aturan perlu "disegarkan" dengan menjalankan kueri seperti SET GLOBAL server_audit_reload_filters=ON;


Pengguna juga dapat menyimpan nama filter yang berlaku untuk pengguna tertentu dan mengaudit plugin itu sendiri, jadi jika terjadi perubahan dalam konfigurasi plugin audit, itu akan dicatat dalam acara AUDIT_CONFIG (menurut MariaDB, informasi juga dapat ditambahkan ke file log audit baru untuk mencatat pengaturan saat ini).

Selain itu, tabel server_audit_users sekarang dapat digunakan di server_audit2.so. plugin untuk menyimpan informasi terkait pengguna.

Untuk memastikan bahwa instalasi MariaDB Anda memiliki plugin ini, cari server_audit2.so di direktori yang ditentukan dalam variabel sistem plugin_dir atau cukup tanyakan @@plugin_dir jika Anda tidak tahu direktorinya dan tidak ingin menghabiskan waktu menelusuri variabel di my.cnf.

Kesimpulan

Audit diperlukan untuk banyak peraturan keamanan dan juga berguna jika Anda ingin mengetahui apa yang terjadi di database Anda, dan kapan serta siapa yang bertanggung jawab untuk itu.

Plugin Audit MariaDB, dan varian perusahaannya, adalah cara terbaik untuk mengaudit database Anda tanpa menggunakan alat eksternal apa pun, dan juga kompatibel dengan MySQL dan Server Percona. Jika tidak ingin mengonfigurasinya secara manual, Anda dapat menggunakan ClusterControl untuk mengaktifkan Audit Plugin dengan cara yang mudah dari UI.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Makan makanan anjing kita sendiri – Menjalankan JIRA di MariaDB

  2. Pembuatan Versi Data Otomatis di MariaDB Server 10.3

  3. Bagaimana COERCIBILITY() Bekerja di MariaDB

  4. Gambar Docker Populer untuk Server MySQL dan MariaDB

  5. Cara Menjalankan dan Mengelola Pencadangan MySQL untuk Oracle DBA