Mengamankan lokasi file log dinamis di MySQL

Database


Mengamankan lokasi file log dinamis di MySQLMySQL memungkinkan Anda mengubah lokasi laporan umum dan laporan pencarian saat server dijalankan oleh siapa pun yang menjalankan peringkat SYSTEM_VARIABLES_ADMIN untuk lokasi mana pun, termasuk melampirkan file yang ada. Di Server Percona untuk MySQL 8.0.28-19, kami memperkenalkan variabel sistem baru yang disebut Jalur Login Aman yang dapat digunakan untuk membatasi lokasi file log ini untuk mencegah kecelakaan atau kemungkinan serangan korupsi data.

Ketika seseorang dengan hak istimewa manajemen variabel sistem mengubah variabel-variabel ini, server melakukan beberapa pemeriksaan kewarasan. Sayangnya, ulasan ini sangat sedikit dan hanya mengkonfirmasi bahwa file yang ditentukan oleh mysqld dapat ditulis.

Sebaliknya, variabel lain yang menentukan direktori dan direktori terkait nama file adalah hanya-baca selama runtime server (seperti datadir, tmpdir, atau log_error), atau memiliki pemeriksaan keamanan tambahan, seperti peringkat FILE terbatas. -priv.

Tanpa mekanisme seperti ini, file log ini dapat diarahkan ke file apa pun yang dapat ditulis oleh MySQL, seperti ibdata0 atau file data lainnya dalam daftar data. Server hanya menambahkan ke file-file ini dan tidak ada data yang dihapus dari mereka, tetapi masih memungkinkan file-file ini rusak dengan menulis pesan log yang tidak terkait dengan mereka.

Untuk mengatasi masalah ini, memulai Percona Server untuk MySQL 8.0.28-19, kami memperkenalkan variabel baru yang disebut safe-log-path. Ini bekerja mirip dengan safe-file-priv: bisa kosong (yang merupakan default) atau nama direktori. Jika ditentukan, file laporan umum dan laporan kueri lambat hanya dapat disetel ke file di direktori tersebut.

Seperti safe-file-priv, server menampilkan peringatan saat startup jika variabel baru ini kosong dan jika direktori data ada di dalamnya.

Meskipun kedua variabel ini serupa, penting juga bahwa keduanya tidak sama: Di sebagian besar pengaturan, pengguna dengan peringkat FILE tidak boleh memiliki akses untuk membaca file log yang ditulis oleh mysqld menggunakan pernyataan SQL, karena berpotensi sensitif terhadap kebocoran. data. Untuk mencegah hal ini, penting untuk mengaturnya di direktori yang berbeda.





Source link

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan.